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) --- .../properties/FeaturesTogglingConfiguration.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) 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/FeaturesTogglingConfiguration.java') 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 000000000..ef28ea400 --- /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(); + } +} -- cgit 1.2.3-korg