diff options
Diffstat (limited to 'src/main/java/org/onap/dcae/configuration/cbs')
-rw-r--r-- | src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationProvider.java (renamed from src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationResolver.java) | 49 | ||||
-rw-r--r-- | src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolver.java | 58 | ||||
-rw-r--r-- | src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolverFactory.java | 28 |
3 files changed, 37 insertions, 98 deletions
diff --git a/src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationResolver.java b/src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationProvider.java index dc02131e..fc88197c 100644 --- a/src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationResolver.java +++ b/src/main/java/org/onap/dcae/configuration/cbs/CbsClientConfigurationProvider.java @@ -19,33 +19,58 @@ */ package org.onap.dcae.configuration.cbs; +import org.jetbrains.annotations.NotNull; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.CbsClientConfiguration; import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.ImmutableCbsClientConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -class CbsClientConfigurationResolver { +/** + * CbsClientConfigurationProvider is used to provide production or dev configuration for CBS client. + */ +public class CbsClientConfigurationProvider { - private static final Logger LOGGER = LoggerFactory.getLogger(CbsClientConfigurationResolver.class); + private static final Logger LOGGER = LoggerFactory.getLogger(CbsClientConfigurationProvider.class); - private final String defaultProtocol = "http"; - private final String defaultHostname = "config-binding-service"; - private final int defaultPort = 10000; - private final String defaultAppName = "dcae-ves-collector"; + private static final String DEFAULT_PROTOCOL = "http"; + private static final String DEFAULT_HOSTNAME = "config-binding-service"; + private static final int DEFAULT_PORT = 10000; + private static final String DEFAULT_APP_NAME = "dcae-ves-collector"; + private static final String DEV_MODE_PROPERTY = "devMode"; + private static final String CBS_PORT_PROPERTY = "cbsPort"; - CbsClientConfiguration resolveCbsClientConfiguration() { + /** + * Returns configuration for CBS client. + * @return Production or dev configuration for CBS client, depends on application run arguments. + */ + public CbsClientConfiguration get() { try { - return CbsClientConfiguration.fromEnvironment(); + if (isDevModeEnabled()) { + return getDevConfiguration(); + } else { + return CbsClientConfiguration.fromEnvironment(); + } } catch (Exception e) { - LOGGER.warn("Failed resolving CBS client configuration from system environments: " + e); + LOGGER.warn(String.format("Failed resolving CBS client configuration from system environments: %s", e)); } - LOGGER.info("Falling back to use default CBS client configuration properties"); return getFallbackConfiguration(); } + @NotNull + private ImmutableCbsClientConfiguration getDevConfiguration() { + return createCbsClientConfiguration( + DEFAULT_PROTOCOL, DEFAULT_HOSTNAME, DEFAULT_APP_NAME, + Integer.parseInt(System.getProperty(CBS_PORT_PROPERTY, String.valueOf(DEFAULT_PORT))) + ); + } + + private boolean isDevModeEnabled() { + return System.getProperty(DEV_MODE_PROPERTY) != null; + } + private ImmutableCbsClientConfiguration getFallbackConfiguration() { LOGGER.info("Falling back to use default CBS client configuration"); - return createCbsClientConfiguration(defaultProtocol, defaultHostname, defaultAppName, defaultPort); + return createCbsClientConfiguration(DEFAULT_PROTOCOL, DEFAULT_HOSTNAME, DEFAULT_APP_NAME, DEFAULT_PORT); } private ImmutableCbsClientConfiguration createCbsClientConfiguration(String protocol, String hostname, @@ -57,4 +82,4 @@ class CbsClientConfigurationResolver { .appName(appName) .build(); } -}
\ No newline at end of file +} diff --git a/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolver.java b/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolver.java deleted file mode 100644 index 09a96985..00000000 --- a/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolver.java +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * org.onap.dcaegen2.collectors.ves - * ================================================================================ - * Copyright (C) 2020 Nokia. 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.dcae.configuration.cbs; - -import com.google.gson.JsonObject; -import io.vavr.control.Option; -import org.json.JSONObject; -import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsClientFactory; -import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsRequests; -import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.CbsClientConfiguration; -import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.CbsRequest; -import org.onap.dcaegen2.services.sdk.rest.services.model.logging.RequestDiagnosticContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - - -public class CbsConfigResolver { - - private static final Logger log = LoggerFactory.getLogger(CbsConfigResolver.class); - - private final CbsClientConfigurationResolver cbsClientConfigurationResolver; - private final RequestDiagnosticContext diagnosticContext = RequestDiagnosticContext.create(); - private final CbsRequest cbsConfigurationRequest = CbsRequests.getConfiguration(diagnosticContext); - - CbsConfigResolver(CbsClientConfigurationResolver cbsClientConfigurationResolver) { - this.cbsClientConfigurationResolver = cbsClientConfigurationResolver; - } - - public Option<JSONObject> getAppConfig() { - JsonObject emptyJson = new JsonObject(); - CbsClientConfiguration cbsClientConfiguration = cbsClientConfigurationResolver.resolveCbsClientConfiguration(); - JsonObject jsonObject = CbsClientFactory.createCbsClient(cbsClientConfiguration) - .flatMap(cbsClient -> cbsClient.get(cbsConfigurationRequest)) - .doOnError(error -> log.warn("Failed to fetch configuration from CBS " + error.getMessage())) - .onErrorReturn(emptyJson) - .block(); - - return emptyJson.equals(jsonObject) ? Option.none() : Option.of(new JSONObject(jsonObject.toString())); - } -}
\ No newline at end of file diff --git a/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolverFactory.java b/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolverFactory.java deleted file mode 100644 index 5e42d9ec..00000000 --- a/src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolverFactory.java +++ /dev/null @@ -1,28 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * org.onap.dcaegen2.collectors.ves - * ================================================================================ - * Copyright (C) 2020 Nokia. 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.dcae.configuration.cbs; - -public class CbsConfigResolverFactory { - - public CbsConfigResolver create() { - CbsClientConfigurationResolver resolver = new CbsClientConfigurationResolver(); - return new CbsConfigResolver(resolver); - } -}
\ No newline at end of file |