package io.muoncore.examples;
import io.muoncore.Muon;
import io.muoncore.MuonBuilder;
import io.muoncore.api.MuonFuture;
import io.muoncore.config.AutoConfiguration;
import io.muoncore.config.MuonConfigBuilder;
import io.muoncore.descriptors.ServiceExtendedDescriptor;
import java.io.IOException;
import java.net.URISyntaxException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.util.concurrent.ExecutionException;
public class ServiceIntrospect {
public static void main(String[] args) throws URISyntaxException, InterruptedException, NoSuchAlgorithmException, KeyManagementException, IOException, ExecutionException {
String serviceName = "awesomeServiceQuery";
AutoConfiguration config = MuonConfigBuilder
.withServiceIdentifier(serviceName)
.withTags("node", "awesome")
.build();
Muon muon = MuonBuilder.withConfig(config).build();
//allow discovery settle time.
Thread.sleep(5000);
MuonFuture<ServiceExtendedDescriptor> desc = muon.introspect("photon");
desc.get().getProtocols().stream().forEach(proto -> {
System.out.println("PROTOCOL: " + proto.getProtocolName());
proto.getOperations().stream().forEach(op -> {
System.out.println(op.getResource());
});
});
muon.shutdown();
}
}