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.SchemasDescriptor; import java.util.concurrent.ExecutionException; public class ServiceComposition { public static void main(String[] args) throws ExecutionException, InterruptedException { AutoConfiguration config = MuonConfigBuilder.withServiceIdentifier("st").build(); Muon muon = MuonBuilder.withConfig(config).build(); muon.getDiscovery().blockUntilReady(); MuonFuture<SchemasDescriptor> schemas = muon.getSchemas("stream-test", "rpc", "/in"); SchemasDescriptor schemasDescriptor = schemas.get(); System.out.println("SCHEMAS"); schemasDescriptor.getSchemas().values().forEach(schemaDescriptor -> { System.out.println(schemaDescriptor.getName()); System.out.println(schemaDescriptor.getType()); System.out.println(schemaDescriptor.getSchema()); }); } // public static void main(String[] args) throws URISyntaxException, InterruptedException, NoSuchAlgorithmException, KeyManagementException, IOException { // // // // // // FutureTask<Map> val1 = new FutureTask<Map>(new Callable<Map>() { // @Override // public Map call() throws Exception { // Thread.sleep(500); // HashMap map = new HashMap(); // map.put("NEW", "DATA!"); // return map; // } // }); // // FutureTask<Map> val2 = new FutureTask<Map>(new Callable<Map>() { // @Override // public Map call() throws Exception { // Thread.sleep(1500); // HashMap map = new HashMap(); // map.put("My Data", "Is Old"); // return map; // } // }); // // Executor exec = Executors.newFixedThreadPool(10); // exec.execute(val1); // exec.execute(val2); // // Stream<List<Map>> aggregate = // Streams.join( // Streams.from(val1).timeout(1, TimeUnit.SECONDS, Streams.just(new HashMap())), // Streams.from(val2).timeout(1, TimeUnit.SECONDS, Streams.just(new HashMap()))); // // aggregate.consume(new Consumer<List<Map>>() { // @Override // public void accept(List<Map> maps) { // System.out.println("Got " + maps.size()); // } // }); // // Object obj = new Object(); // synchronized (obj) { // obj.wait(); // } // // // //// final Muon muon = new Muon( //// new AmqpDiscovery("amqp://localhost:5672")); //// //// muon.setServiceIdentifer("consumer-" + UUID.randomUUID().toString()); //// new AmqpTransportExtension("amqp://localhost:5672").extend(muon); //// muon.start(); // // //allow discovery settle time. // //Thread.sleep(5000); // // /*Stream<List<MuonClient.MuonResult<Map>>> aggregate = loadData(muon); // // final Map userData = new HashMap(); //default // final Map orderData = new HashMap(); //default // // aggregate.consume(new Consumer<List<MuonClient.MuonResult<Map>>>() { // @Override // public void accept(List<MuonClient.MuonResult<Map>> result) { // System.out.println("Received " + result.size()); // } // });*/ // } // // private static Stream<List<Map>> loadData( // OldMuon muon) { // // Stream<Map> s1 = Streams.wrap( // muon.query("muon://user?stream=dawson", Map.class).toPublisher()) // .map(new Function<MuonClient.MuonResult<Map>, Map>() { // @Override // public Map apply(MuonClient.MuonResult<Map> mapMuonResult) { // return mapMuonResult.getResponseEvent().getDecodedContent(); // } // }) // .timeout(500, TimeUnit.MILLISECONDS, // Streams.just(defaultUser())); // // Stream<Map> s2 = Streams.wrap( // muon.query("muon://order?stream=dawson", Map.class).toPublisher()) // .map(new Function<MuonClient.MuonResult<Map>, Map>() { // @Override // public Map apply(MuonClient.MuonResult<Map> mapMuonResult) { // return mapMuonResult.getResponseEvent().getDecodedContent(); // } // }) // .timeout(500, TimeUnit.MILLISECONDS, // Streams.just(defaultOrder())); // // return Streams.join(s1, s2); // } // // static Map defaultUser() { // HashMap map = new HashMap(); // map.put("username", "defaultUser"); // return map; // } // // static Map defaultOrder() { // HashMap map = new HashMap(); // map.put("orderId", "defaultOrder!!"); // return map; // } }