diff options
Diffstat (limited to 'rest-services/aai-client/src/main/java')
5 files changed, 0 insertions, 326 deletions
diff --git a/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/config/AaiClientConfiguration.java b/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/config/AaiClientConfiguration.java index fc4b0f4f..30bf2538 100644 --- a/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/config/AaiClientConfiguration.java +++ b/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/config/AaiClientConfiguration.java @@ -22,14 +22,11 @@ package org.onap.dcaegen2.services.sdk.rest.services.aai.client.config; import org.immutables.gson.Gson; import org.immutables.value.Value; -import org.springframework.stereotype.Component; - import java.io.Serializable; import java.util.Map; -@Component @Value.Immutable(prehash = true) @Value.Style(builder = "new") @Gson.TypeAdapters diff --git a/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/AaiHttpClientFactory.java b/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/AaiHttpClientFactory.java index 903528b9..d3047561 100644 --- a/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/AaiHttpClientFactory.java +++ b/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/AaiHttpClientFactory.java @@ -30,7 +30,6 @@ import org.onap.dcaegen2.services.sdk.rest.services.model.JsonBodyBuilder; import org.onap.dcaegen2.services.sdk.rest.services.ssl.SslFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import reactor.core.publisher.Mono; import reactor.netty.Connection; import reactor.netty.http.client.HttpClient; import reactor.netty.http.client.HttpClientRequest; diff --git a/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/AaiReactiveWebClientFactory.java b/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/AaiReactiveWebClientFactory.java deleted file mode 100644 index 85ba8ea5..00000000 --- a/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/AaiReactiveWebClientFactory.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * DCAEGEN2-SERVICES-SDK - * ================================================================================ - * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.dcaegen2.services.sdk.rest.services.aai.client.service; - -import io.netty.handler.ssl.SslContext; - -import org.onap.dcaegen2.services.sdk.rest.services.aai.client.config.AaiClientConfiguration; -import org.onap.dcaegen2.services.sdk.rest.services.ssl.SslFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.MDC; -import org.springframework.http.client.reactive.ClientHttpConnector; -import org.springframework.http.client.reactive.ReactorClientHttpConnector; -import org.springframework.web.reactive.function.client.ExchangeFilterFunction; -import org.springframework.web.reactive.function.client.WebClient; - -import reactor.core.publisher.Mono; -import reactor.netty.http.client.HttpClient; - -import javax.net.ssl.SSLException; -import java.util.Map; - -import static org.onap.dcaegen2.services.sdk.rest.services.model.logging.MdcVariables.RESPONSE_CODE; -import static org.onap.dcaegen2.services.sdk.rest.services.model.logging.MdcVariables.SERVICE_NAME; -import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.basicAuthentication; - - -public class AaiReactiveWebClientFactory { - - private static final Logger LOGGER = LoggerFactory.getLogger(AaiReactiveWebClientFactory.class); - - private final String aaiUserName; - private final String aaiUserPassword; - private final Map<String, String> aaiHeaders; - private final Boolean enableAaiCertAuth; - private final String trustStorePath; - private final String trustStorePasswordPath; - private final String keyStorePath; - private final String keyStorePasswordPath; - private final SslFactory sslFactory; - - /** - * Creating AaiReactiveWebClientFactory. - * - * @param configuration - configuration object - * @param sslFactory - factory for ssl setup - */ - public AaiReactiveWebClientFactory(SslFactory sslFactory, AaiClientConfiguration configuration) { - this.aaiUserName = configuration.aaiUserName(); - this.aaiUserPassword = configuration.aaiUserPassword(); - this.aaiHeaders = configuration.aaiHeaders(); - this.trustStorePath = configuration.trustStorePath(); - this.trustStorePasswordPath = configuration.trustStorePasswordPath(); - this.keyStorePath = configuration.keyStorePath(); - this.keyStorePasswordPath = configuration.keyStorePasswordPath(); - this.enableAaiCertAuth = configuration.enableAaiCertAuth(); - this.sslFactory = sslFactory; - } - - /** - * Construct Reactive WebClient with appropriate settings. - * - * @return WebClient - */ - public WebClient build() throws SSLException { - LOGGER.debug("Setting ssl context"); - - SslContext sslContext = createSslContext(); - - ClientHttpConnector reactorClientHttpConnector = new ReactorClientHttpConnector( - HttpClient.create().secure(sslContextSpec -> sslContextSpec.sslContext(sslContext))); - - return WebClient.builder() - .clientConnector(reactorClientHttpConnector) - .defaultHeaders(httpHeaders -> httpHeaders.setAll(aaiHeaders)) - .filter(basicAuthentication(aaiUserName, aaiUserPassword)) - .filter(logRequest()) - .filter(logResponse()) - .build(); - } - - private SslContext createSslContext() throws SSLException { - if (enableAaiCertAuth) { - return sslFactory.createSecureContext( - keyStorePath, - keyStorePasswordPath, - trustStorePath, - trustStorePasswordPath - ); - } - return sslFactory.createInsecureContext(); - } - - private ExchangeFilterFunction logRequest() { - return ExchangeFilterFunction.ofRequestProcessor(clientRequest -> { - MDC.put(SERVICE_NAME, String.valueOf(clientRequest.url())); - LOGGER.info("Request: {} {}", clientRequest.method(), clientRequest.url()); - clientRequest.headers() - .forEach((name, values) -> values.forEach(value -> LOGGER.info("{}={}", name, value))); - MDC.remove(SERVICE_NAME); - return Mono.just(clientRequest); - }); - } - - private ExchangeFilterFunction logResponse() { - return ExchangeFilterFunction.ofResponseProcessor(clientResponse -> { - MDC.put(RESPONSE_CODE, String.valueOf(clientResponse.statusCode())); - LOGGER.info("Response Status {}", clientResponse.statusCode()); - MDC.remove(RESPONSE_CODE); - return Mono.just(clientResponse); - }); - } -} diff --git a/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/http/patch/AaiReactiveHttpPatchClient.java b/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/http/patch/AaiReactiveHttpPatchClient.java deleted file mode 100644 index 841db6e8..00000000 --- a/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/http/patch/AaiReactiveHttpPatchClient.java +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * DCAEGEN2-SERVICES-SDK - * ================================================================================ - * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.dcaegen2.services.sdk.rest.services.aai.client.service.http.patch; - - -import org.onap.dcaegen2.services.sdk.rest.services.aai.client.config.AaiClientConfiguration; -import org.onap.dcaegen2.services.sdk.rest.services.model.AaiModel; -import org.onap.dcaegen2.services.sdk.rest.services.model.JsonBodyBuilder; -import org.slf4j.MDC; -import org.springframework.web.reactive.function.client.ClientResponse; -import org.springframework.web.reactive.function.client.WebClient; -import org.springframework.web.util.DefaultUriBuilderFactory; -import reactor.core.publisher.Mono; - -import java.net.URI; -import java.util.UUID; - - -import static org.onap.dcaegen2.services.sdk.rest.services.model.logging.MdcVariables.REQUEST_ID; -import static org.onap.dcaegen2.services.sdk.rest.services.model.logging.MdcVariables.X_INVOCATION_ID; -import static org.onap.dcaegen2.services.sdk.rest.services.model.logging.MdcVariables.X_ONAP_REQUEST_ID; - - -public class AaiReactiveHttpPatchClient { - - private WebClient webClient; - private final String aaiHost; - private final String aaiProtocol; - private final Integer aaiHostPortNumber; - private final String aaiBasePath; - private final String aaiPnfPath; - private final JsonBodyBuilder jsonBodyBuilder; - - /** - * Constructor of AaiProducerReactiveHttpClient. - * - * @param configuration - AAI producer configuration object - */ - public AaiReactiveHttpPatchClient(AaiClientConfiguration configuration, JsonBodyBuilder jsonBodyBuilder) { - this.aaiHost = configuration.aaiHost(); - this.aaiProtocol = configuration.aaiProtocol(); - this.aaiHostPortNumber = configuration.aaiPort(); - this.aaiBasePath = configuration.aaiBasePath(); - this.aaiPnfPath = configuration.aaiPnfPath(); - this.jsonBodyBuilder = jsonBodyBuilder; - } - - /** - * Function for calling AAI Http producer - patch request to AAI database. - * - * @param aaiModel - object which will be sent to AAI database - * @return status code of operation - */ - public Mono<ClientResponse> getAaiProducerResponse(AaiModel aaiModel) { - return patchAaiRequest(aaiModel); - } - - public AaiReactiveHttpPatchClient createAaiWebClient(WebClient webClient) { - this.webClient = webClient; - return this; - } - - private Mono<ClientResponse> patchAaiRequest(AaiModel aaiModel) { - return - webClient.patch() - .uri(getUri(aaiModel.getCorrelationId())) - .header(X_ONAP_REQUEST_ID, MDC.get(REQUEST_ID)) - .header(X_INVOCATION_ID, UUID.randomUUID().toString()) - .body(Mono.just(jsonBodyBuilder.createJsonBody(aaiModel)), String.class) - .exchange(); - } - - URI getUri(String pnfName) { - return new DefaultUriBuilderFactory().builder().scheme(aaiProtocol).host(aaiHost).port(aaiHostPortNumber) - .path(aaiBasePath + aaiPnfPath + "/" + pnfName).build(); - } -}
\ No newline at end of file diff --git a/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/http/put/AaiReactiveHttpPutClient.java b/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/http/put/AaiReactiveHttpPutClient.java deleted file mode 100644 index bd5271be..00000000 --- a/rest-services/aai-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/http/put/AaiReactiveHttpPutClient.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * DCAEGEN2-SERVICES-SDK - * ================================================================================ - * Copyright (C) 2018-2019 NOKIA Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.dcaegen2.services.sdk.rest.services.aai.client.service.http.put; - - -import org.onap.dcaegen2.services.sdk.rest.services.aai.client.config.AaiClientConfiguration; -import org.onap.dcaegen2.services.sdk.rest.services.model.AaiModel; -import org.onap.dcaegen2.services.sdk.rest.services.model.JsonBodyBuilder; -import org.slf4j.MDC; -import org.springframework.web.reactive.function.client.ClientResponse; -import org.springframework.web.reactive.function.client.WebClient; -import org.springframework.web.util.DefaultUriBuilderFactory; -import reactor.core.publisher.Mono; - -import java.net.URI; -import java.util.UUID; - - -import static org.onap.dcaegen2.services.sdk.rest.services.model.logging.MdcVariables.REQUEST_ID; -import static org.onap.dcaegen2.services.sdk.rest.services.model.logging.MdcVariables.X_INVOCATION_ID; -import static org.onap.dcaegen2.services.sdk.rest.services.model.logging.MdcVariables.X_ONAP_REQUEST_ID; - - -public class AaiReactiveHttpPutClient { - - private WebClient webClient; - private final String aaiHost; - private final String aaiProtocol; - private final Integer aaiHostPortNumber; - private final String aaiBasePath; - private final String aaiPnfPath; - - private final JsonBodyBuilder jsonBodyBuilder; - - /** - * Constructor of AaiProducerReactiveHttpClient. - * - * @param configuration - AAI producer configuration object - */ - public AaiReactiveHttpPutClient(AaiClientConfiguration configuration, JsonBodyBuilder jsonBodyBuilder) { - this.aaiHost = configuration.aaiHost(); - this.aaiProtocol = configuration.aaiProtocol(); - this.aaiHostPortNumber = configuration.aaiPort(); - this.aaiBasePath = configuration.aaiBasePath(); - this.aaiPnfPath = configuration.aaiPnfPath(); - this.jsonBodyBuilder = jsonBodyBuilder; - } - - /** - * Function for calling AAI Http producer - put request to AAI database. - * - * @param aaiModel - object which will be sent to AAI database - * @return status code of operation - */ - public Mono<ClientResponse> getAaiProducerResponse(AaiModel aaiModel) { - return putAaiRequest(aaiModel); - } - - public AaiReactiveHttpPutClient createAaiWebClient(WebClient webClient) { - this.webClient = webClient; - return this; - } - - private Mono<ClientResponse> putAaiRequest(AaiModel aaiModel) { - return - webClient.put() - .uri(getUri(aaiModel.getCorrelationId())) - .header(X_ONAP_REQUEST_ID, MDC.get(REQUEST_ID)) - .header(X_INVOCATION_ID, UUID.randomUUID().toString()) - .body(Mono.just(jsonBodyBuilder.createJsonBody(aaiModel)), String.class) - .exchange(); - } - - URI getUri(String pnfName) { - return new DefaultUriBuilderFactory().builder().scheme(aaiProtocol).host(aaiHost).port(aaiHostPortNumber) - .path(aaiBasePath + aaiPnfPath + "/" + pnfName).build(); - } -}
\ No newline at end of file |