aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/dcae/configuration/cbs
diff options
context:
space:
mode:
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.java58
-rw-r--r--src/main/java/org/onap/dcae/configuration/cbs/CbsConfigResolverFactory.java28
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