From c72d565bb58226b20625b2bce5f0019046bee649 Mon Sep 17 00:00:00 2001 From: "Sonsino, Ofir (os0695)" Date: Tue, 10 Jul 2018 14:20:54 +0300 Subject: Merge 1806 code of vid-common Change-Id: I75d52abed4a24dfe3827d79edc4a2938726aa87a Issue-ID: VID-208 Signed-off-by: Sonsino, Ofir (os0695) --- .../java/org/onap/vid/properties/Features.java | 31 +++++++++++++++++ .../properties/FeaturesTogglingConfiguration.java | 40 ++++++++++++++++++++++ .../org/onap/vid/properties/VidProperties.java | 6 +++- 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 vid-app-common/src/main/java/org/onap/vid/properties/Features.java create mode 100644 vid-app-common/src/main/java/org/onap/vid/properties/FeaturesTogglingConfiguration.java (limited to 'vid-app-common/src/main/java/org/onap/vid/properties') diff --git a/vid-app-common/src/main/java/org/onap/vid/properties/Features.java b/vid-app-common/src/main/java/org/onap/vid/properties/Features.java new file mode 100644 index 00000000..e08a92ea --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/properties/Features.java @@ -0,0 +1,31 @@ +package org.onap.vid.properties; + +import org.togglz.core.Feature; +import org.togglz.core.context.FeatureContext; + +public enum Features implements Feature { + + /******************************* + * Use /docs/feature-flags.md for details + */ + + FLAG_ASYNC_JOBS, + FLAG_REGION_ID_FROM_REMOTE, + CREATE_INSTANCE_TEST, + EMPTY_DRAWING_BOARD_TEST, + FLAG_ADVANCED_PORTS_FILTER, + FLAG_ADD_MSO_TESTAPI_FIELD, + FLAG_ASYNC_INSTANTIATION, + FLAG_SERVICE_MODEL_CACHE, + FLAG_UNASSIGN_SERVICE, + FLAG_NETWORK_TO_ASYNC_INSTANTIATION, + FLAG_COLLECTION_RESOURCE_SUPPORT, + FLAG_SHOW_ASSIGNMENTS, + FLAG_SHOW_VERIFY_SERVICE, + FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD; + + public boolean isActive() { + return FeatureContext.getFeatureManager().isActive(this); + } + +} diff --git a/vid-app-common/src/main/java/org/onap/vid/properties/FeaturesTogglingConfiguration.java b/vid-app-common/src/main/java/org/onap/vid/properties/FeaturesTogglingConfiguration.java new file mode 100644 index 00000000..ef28ea40 --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/properties/FeaturesTogglingConfiguration.java @@ -0,0 +1,40 @@ +package org.onap.vid.properties; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.context.ApplicationListener; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; +import org.togglz.core.manager.FeatureManager; +import org.togglz.core.manager.FeatureManagerBuilder; +import org.togglz.core.repository.file.FileBasedStateRepository; +import org.togglz.spring.listener.TogglzApplicationContextBinderApplicationListener; + +import javax.servlet.ServletContext; +import java.io.File; + +@Configuration +public class FeaturesTogglingConfiguration { + @Bean + public ApplicationListener getApplicationListener() { + return new TogglzApplicationContextBinderApplicationListener(); + } + + @Bean + public FeatureManager featureManager(ServletContext servletContext, Environment environment) { + final String defaultFilename = "features.properties"; + + String filename = environment.getProperty("featureFlags.filename"); + + if (StringUtils.isBlank(filename)) { + filename = defaultFilename; + } + + return new FeatureManagerBuilder() + .featureEnum(Features.class) + .stateRepository(new FileBasedStateRepository( + new File(servletContext.getRealPath("/WEB-INF/conf/" + filename)) + )) + .build(); + } +} diff --git a/vid-app-common/src/main/java/org/onap/vid/properties/VidProperties.java b/vid-app-common/src/main/java/org/onap/vid/properties/VidProperties.java index 7324fe9e..d670e978 100644 --- a/vid-app-common/src/main/java/org/onap/vid/properties/VidProperties.java +++ b/vid-app-common/src/main/java/org/onap/vid/properties/VidProperties.java @@ -33,7 +33,11 @@ import java.util.Date; public class VidProperties extends SystemProperties { //VID General Properties - + public static final String MSO_DISPLAY_TEST_API_ON_SCREEN="mso.displayTestAPIOnScreen"; + public static final String MSO_DEFAULT_TEST_API="mso.defaultTestAPI"; + public static final String MSO_MAX_OPENED_INSTANTIATION_REQUESTS="mso.maxOpenedInstantiationRequests"; + public static final String MSO_ASYNC_POLLING_INTERVAL_SECONDS="mso.asyncPollingIntervalSeconds"; + /** The Constant VID_TRUSTSTORE_FILENAME. */ public static final String VID_TRUSTSTORE_FILENAME = "vid.truststore.filename"; -- cgit 1.2.3-korg