diff options
author | Marcin Migdal <marcin.migdal@nokia.com> | 2019-03-27 11:53:45 +0100 |
---|---|---|
committer | Marcin Migdal <marcin.migdal@nokia.com> | 2019-03-27 11:53:45 +0100 |
commit | 4dcef4e7da04caf4b98ce9553c600e3821b91922 (patch) | |
tree | a6176b3d1ad650566d846233aeead36e6da1f808 /rest-services | |
parent | 51d3ae2b08dd49029cd9c86bfe8d95d1eef14326 (diff) |
DMaaP consumer more generic
Added logging to Cloud Http Client
Change-Id: I443163b3ec292370c39cd10229c3479e36f6c9c1
Issue-ID: DCAEGEN2-1310
Signed-off-by: mmigdal <marcin.migdal@nokia.com>
Signed-off-by: Marcin Migdal <marcin.migdal@nokia.com>
Diffstat (limited to 'rest-services')
3 files changed, 59 insertions, 48 deletions
diff --git a/rest-services/common-dependency/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/adapters/http/CloudHttpClient.java b/rest-services/common-dependency/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/adapters/http/CloudHttpClient.java index 8e317f8b..132d3d83 100644 --- a/rest-services/common-dependency/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/adapters/http/CloudHttpClient.java +++ b/rest-services/common-dependency/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/adapters/http/CloudHttpClient.java @@ -28,8 +28,9 @@ import java.util.Map; import org.onap.dcaegen2.services.sdk.rest.services.model.ClientModel; import org.onap.dcaegen2.services.sdk.rest.services.model.JsonBodyBuilder; import org.onap.dcaegen2.services.sdk.rest.services.model.logging.RequestDiagnosticContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import reactor.core.publisher.Mono; -import reactor.netty.http.client.HttpClient; import reactor.netty.http.client.HttpClientResponse; @@ -40,6 +41,7 @@ import reactor.netty.http.client.HttpClientResponse; @Deprecated public class CloudHttpClient { + private static final Logger LOGGER = LoggerFactory.getLogger(CloudHttpClient.class); private final Gson gson = new Gson(); private final RxHttpClient httpClient; @@ -64,38 +66,38 @@ public class CloudHttpClient { } public <T> Mono<T> get( - String url, - RequestDiagnosticContext context, - Map<String, String> customHeaders, - Class<T> bodyClass) { + String url, + RequestDiagnosticContext context, + Map<String, String> customHeaders, + Class<T> bodyClass) { return httpClient.call( - ImmutableHttpRequest.builder() - .method(HttpMethod.GET) - .url(url) - .customHeaders(HashMap.ofAll(customHeaders)) - .diagnosticContext(context) - .build()) - .doOnNext(HttpResponse::throwIfUnsuccessful) - .map(HttpResponse::bodyAsString) - .map(body -> gson.fromJson(body, bodyClass)); + ImmutableHttpRequest.builder() + .method(HttpMethod.GET) + .url(url) + .customHeaders(HashMap.ofAll(customHeaders)) + .diagnosticContext(context) + .build()) + .doOnNext(HttpResponse::throwIfUnsuccessful) + .map(HttpResponse::bodyAsString) + .map(body -> gson.fromJson(body, bodyClass)); } public Mono<HttpClientResponse> post( - String url, - RequestDiagnosticContext context, - Map<String, String> customHeaders, - JsonBodyBuilder jsonBodyBuilder, - ClientModel clientModel) { + String url, + RequestDiagnosticContext context, + Map<String, String> customHeaders, + JsonBodyBuilder jsonBodyBuilder, + ClientModel clientModel) { return callForRawResponse(url, context, customHeaders, jsonBodyBuilder, clientModel, HttpMethod.POST); } public Mono<HttpClientResponse> patch( - String url, - RequestDiagnosticContext context, - Map<String, String> customHeaders, - JsonBodyBuilder jsonBodyBuilder, - ClientModel clientModel) { + String url, + RequestDiagnosticContext context, + Map<String, String> customHeaders, + JsonBodyBuilder jsonBodyBuilder, + ClientModel clientModel) { return callForRawResponse(url, context, customHeaders, jsonBodyBuilder, clientModel, HttpMethod.PATCH); } @@ -109,22 +111,29 @@ public class CloudHttpClient { } private Mono<HttpClientResponse> callForRawResponse( - String url, - RequestDiagnosticContext context, - Map<String, String> customHeaders, - JsonBodyBuilder jsonBodyBuilder, - ClientModel clientModel, - HttpMethod method) { + String url, + RequestDiagnosticContext context, + Map<String, String> customHeaders, + JsonBodyBuilder jsonBodyBuilder, + ClientModel clientModel, + HttpMethod method) { + + String jsonBody = jsonBodyBuilder.createJsonBody(clientModel); + LOGGER.debug("CloudHttpClient JSon body:: {}", jsonBody); + LOGGER.debug("CloudHttpClient url: {}", url); + LOGGER.debug("CloudHttpClient customHeaders: {}", customHeaders); + return httpClient.prepareRequest( - ImmutableHttpRequest.builder() - .url(url) - .customHeaders(HashMap.ofAll(customHeaders)) - .diagnosticContext(context) - .body(RequestBody.fromString(jsonBodyBuilder.createJsonBody(clientModel))) - .method(method) - .build()) - .responseSingle((httpClientResponse, byteBufMono) -> Mono.just(httpClientResponse)); + ImmutableHttpRequest.builder() + .url(url) + .customHeaders(HashMap.ofAll(customHeaders)) + .diagnosticContext(context) + .body(RequestBody.fromString(jsonBody)) + .method(method) + .build()) + .responseSingle((httpClientResponse, byteBufMono) -> Mono.just(httpClientResponse)); } + } diff --git a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPConsumerReactiveHttpClient.java b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPConsumerReactiveHttpClient.java index b37ac3dc..81a62eba 100644 --- a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPConsumerReactiveHttpClient.java +++ b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPConsumerReactiveHttpClient.java @@ -20,7 +20,7 @@ package org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.service.consumer; -import com.google.gson.JsonArray; +import com.google.gson.JsonElement; import java.net.URI; import java.util.Map; import java.util.Optional; @@ -60,15 +60,16 @@ public class DMaaPConsumerReactiveHttpClient extends DMaaPAbstractReactiveHttpCl * * @return reactive response from DMaaP in string format */ - public Mono<JsonArray> getDMaaPConsumerResponse(Optional<RequestDiagnosticContext> requestDiagnosticContextOptional) { - Map<String,String> headers = DMaaPClientServiceUtils.getHeaders(consumerConfiguration.dmaapContentType()); + public Mono<JsonElement> getDMaaPConsumerResponse( + Optional<RequestDiagnosticContext> requestDiagnosticContextOptional) { + Map<String, String> headers = DMaaPClientServiceUtils.getHeaders(consumerConfiguration.dmaapContentType()); if (requestDiagnosticContextOptional.isPresent()) { return cloudHttpClient - .get(getUri().toString(), requestDiagnosticContextOptional.get(), headers, JsonArray.class); + .get(getUri().toString(), requestDiagnosticContextOptional.get(), headers, JsonElement.class); } RequestDiagnosticContext requestDiagnosticContext = ImmutableRequestDiagnosticContext.builder() .invocationId(UUID.randomUUID()).requestId(UUID.randomUUID()).build(); - return cloudHttpClient.get(getUri().toString(), requestDiagnosticContext, headers, JsonArray.class); + return cloudHttpClient.get(getUri().toString(), requestDiagnosticContext, headers, JsonElement.class); } URI getUri() { diff --git a/rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPConsumerReactiveHttpClientTest.java b/rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPConsumerReactiveHttpClientTest.java index c37514eb..5a29fff0 100644 --- a/rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPConsumerReactiveHttpClientTest.java +++ b/rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPConsumerReactiveHttpClientTest.java @@ -23,7 +23,7 @@ package org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.service.consum import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import com.google.gson.JsonArray; +import com.google.gson.JsonElement; import java.net.URI; import java.util.Optional; import org.apache.http.entity.ContentType; @@ -45,7 +45,7 @@ class DMaaPConsumerReactiveHttpClientTest { private static final String JSON_MESSAGE = "{ \"responseFromDmaap\": \"Success\"}"; private DMaaPConsumerReactiveHttpClient dmaapConsumerReactiveHttpClient; private DmaapConsumerConfiguration consumerConfigurationMock = mock(DmaapConsumerConfiguration.class); - private Mono<JsonArray> expectedResult; + private Mono<JsonElement> expectedResult; private CloudHttpClient httpClient = mock(CloudHttpClient.class); private URI exampleTestUri = URI .create("https://54.45.33.2:1234/unauthenticated.SEC_OTHER_OUTPUT/OpenDCAE-c12/c12"); @@ -68,11 +68,12 @@ class DMaaPConsumerReactiveHttpClientTest { @Test void getHttpResponse_Success() { //given - expectedResult = Mono.just(mock(JsonArray.class)); - when(httpClient.get(exampleTestUri.toString(), requestDiagnosticContext, DMaaPClientServiceUtils.getHeaders(ContentType.APPLICATION_JSON.getMimeType()), JsonArray.class)) + expectedResult = Mono.just(mock(JsonElement.class)); + when(httpClient.get(exampleTestUri.toString(), requestDiagnosticContext, + DMaaPClientServiceUtils.getHeaders(ContentType.APPLICATION_JSON.getMimeType()), JsonElement.class)) .thenReturn(expectedResult); //when - Mono<JsonArray> response = dmaapConsumerReactiveHttpClient + Mono<JsonElement> response = dmaapConsumerReactiveHttpClient .getDMaaPConsumerResponse(Optional.of(requestDiagnosticContext)); //then StepVerifier.create(response).expectSubscription() |