diff options
Diffstat (limited to 'prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java')
-rw-r--r-- | prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java | 49 |
1 files changed, 23 insertions, 26 deletions
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java index 1a9abf0f..55a8bb58 100644 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java +++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java @@ -20,52 +20,52 @@ package org.onap.dcaegen2.services.prh.tasks; -import java.util.Optional; -import javax.net.ssl.SSLException; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; -import org.onap.dcaegen2.services.prh.configuration.Config; import org.onap.dcaegen2.services.prh.exceptions.DmaapNotFoundException; import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; import org.onap.dcaegen2.services.prh.model.PnfReadyJsonBodyBuilderImpl; +import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.DmaapPublisherConfiguration; import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.service.producer.DMaaPPublisherReactiveHttpClient; import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.service.producer.DmaaPRestTemplateFactory; import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.service.producer.PublisherReactiveHttpClientFactory; -import org.onap.dcaegen2.services.sdk.rest.services.uri.URI.URIBuilder; +import org.onap.dcaegen2.services.sdk.rest.services.uri.URI; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; -import reactor.netty.http.client.HttpClientResponse; + +import javax.net.ssl.SSLException; +import java.util.Optional; +import java.util.function.Supplier; /** * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18 */ -@Component public class DmaapPublisherTaskImpl implements DmaapPublisherTask { private static final Logger LOGGER = LoggerFactory.getLogger(DmaapPublisherTaskImpl.class); + private final Supplier<DmaapPublisherConfiguration> config; private final PnfReadyJsonBodyBuilderImpl pnfReadyJsonBodyBuilder = new PnfReadyJsonBodyBuilderImpl(); - private Config config; private final PublisherReactiveHttpClientFactory httpClientFactory; - @Autowired - public DmaapPublisherTaskImpl(Config config) { - this(config, - new PublisherReactiveHttpClientFactory(new DmaaPRestTemplateFactory(), new PnfReadyJsonBodyBuilderImpl())); + public DmaapPublisherTaskImpl(final Supplier<DmaapPublisherConfiguration> config) { + this(config, new PublisherReactiveHttpClientFactory( + new DmaaPRestTemplateFactory(), + new PnfReadyJsonBodyBuilderImpl())); } - DmaapPublisherTaskImpl(Config config, PublisherReactiveHttpClientFactory httpClientFactory) { + DmaapPublisherTaskImpl( + Supplier<DmaapPublisherConfiguration> config, + PublisherReactiveHttpClientFactory httpClientFactory) { this.config = config; this.httpClientFactory = httpClientFactory; } @Override - public Mono<HttpClientResponse> execute(ConsumerDmaapModel consumerDmaapModel) - throws DmaapNotFoundException, SSLException { + public Mono<org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse> + execute(ConsumerDmaapModel consumerDmaapModel) throws DmaapNotFoundException, SSLException { if (consumerDmaapModel == null) { throw new DmaapNotFoundException("Invoked null object to DMaaP task"); } @@ -74,10 +74,9 @@ public class DmaapPublisherTaskImpl implements DmaapPublisherTask { return dmaapPublisherReactiveHttpClient.getDMaaPProducerResponse(consumerDmaapModel, Optional.empty()); } - @Override public DMaaPPublisherReactiveHttpClient resolveClient() throws SSLException { - return httpClientFactory.create(config.getDmaapPublisherConfiguration()); + return httpClientFactory.create(config.get()); } @@ -87,13 +86,13 @@ public class DmaapPublisherTaskImpl implements DmaapPublisherTask { * As WA plesae use Mono<HttpResponse> executeWithApache(ConsumerDmaapModel consumerDmaapModel); * */ @Override - public Mono<HttpResponse> executeWithApache(ConsumerDmaapModel consumerDmaapModel) { + public Mono<org.apache.http.HttpResponse> executeWithApache(ConsumerDmaapModel consumerDmaapModel) { String json = pnfReadyJsonBodyBuilder.createJsonBody(consumerDmaapModel); DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost postRequest = new HttpPost(getUrl()); try { StringEntity input = new StringEntity(json); - input.setContentType(config.getDmaapPublisherConfiguration().dmaapContentType()); + input.setContentType(config.get().dmaapContentType()); postRequest.setEntity(input); HttpResponse response = httpClient.execute(postRequest); return Mono.just(response); @@ -104,15 +103,13 @@ public class DmaapPublisherTaskImpl implements DmaapPublisherTask { } private String getUrl() { - return (new URIBuilder()).scheme(config.getDmaapPublisherConfiguration().dmaapProtocol()) - .host(config.getDmaapPublisherConfiguration().dmaapHostName()) - .port(config.getDmaapPublisherConfiguration().dmaapPortNumber()).path(this.createRequestPath()).build() + return (new URI.URIBuilder()).scheme(config.get().dmaapProtocol()) + .host(config.get().dmaapHostName()) + .port(config.get().dmaapPortNumber()).path(this.createRequestPath()).build() .toString(); } private String createRequestPath() { - return "/" + config.getDmaapPublisherConfiguration().dmaapTopicName(); + return "/" + config.get().dmaapTopicName(); } - - }
\ No newline at end of file |