@Override public Publisher getPublisher() { int connectTimeout = config.getAs(RESTPubSubConfig.PUBLISHER_CONNECT_TIMEOUT, Integer.class); if (context == Context.QUERY_PROCESSING) { return new RESTResultPublisher(HttpClients.createDefault(), connectTimeout); } else { String queryURL = ((List<String>) config.getAs(RESTPubSubConfig.QUERY_URLS, List.class)).get(0); String resultURL = config.getAs(RESTPubSubConfig.RESULT_URL, String.class); return new RESTQueryPublisher(HttpClients.createDefault(), queryURL, resultURL, connectTimeout); } }
@Override public void send(PubSubMessage message) { // Put responseURL in the metadata so the ResponsePublisher knows to which host to send the response Metadata metadata = message.getMetadata(); metadata = metadata == null ? new Metadata() : metadata; metadata.setContent(resultURL); message.setMetadata(metadata); sendToURL(queryURL, message); } }