package io.muoncore.examples; import io.muoncore.Muon; import io.muoncore.MuonBuilder; import io.muoncore.config.AutoConfiguration; import io.muoncore.config.MuonConfigBuilder; import io.muoncore.protocol.reactivestream.server.PublisherLookup; import reactor.rx.broadcast.Broadcaster; import java.io.IOException; import java.net.URISyntaxException; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.util.Map; import static io.muoncore.protocol.requestresponse.server.HandlerPredicates.path; public class ServiceResourceToPublishHotStream { public static void main(String[] args) throws URISyntaxException, NoSuchAlgorithmException, KeyManagementException, IOException { AutoConfiguration config = MuonConfigBuilder.withServiceIdentifier("stream-test").build(); Muon muon = MuonBuilder.withConfig(config).build(); muon.getDiscovery().blockUntilReady(); final Broadcaster<Map> stream = Broadcaster.create(); muon.handleRequest(path("/in"), wrapper -> { Map data = wrapper.getRequest().getPayload(Map.class); stream.accept(data); wrapper.ok("thanks!"); }); muon.handleRequest(path("/hello"), wrapper -> { wrapper.ok("thanks!"); }); muon.publishSource("/livedata", PublisherLookup.PublisherType.HOT, stream); } }