adding update about mounted certificates in rst file
[vid.git] / vid-automation / src / main / java / vid / automation / test / infra / FeaturesTogglingConfiguration.java
1 package vid.automation.test.infra;
2
3
4 import org.apache.commons.io.FileUtils;
5 import org.togglz.core.context.StaticFeatureManagerProvider;
6 import org.togglz.core.manager.FeatureManager;
7 import org.togglz.core.manager.FeatureManagerBuilder;
8 import org.togglz.core.repository.StateRepository;
9 import org.togglz.core.repository.file.FileBasedStateRepository;
10
11 import java.io.File;
12 import java.io.IOException;
13 import java.net.URL;
14
15 import static org.apache.commons.codec.Charsets.UTF_8;
16
17
18 public class FeaturesTogglingConfiguration {
19
20     private static FeatureManager createFeatureManager() {
21         return new FeatureManagerBuilder()
22                 .featureEnum(Features.class)
23                 .stateRepository(getStateRepository())
24                 .build();
25     }
26
27     public static void initializeFeatureManager(){
28         StaticFeatureManagerProvider.setFeatureManager(createFeatureManager());
29         for (Features feature : Features.values()) {
30             System.out.println("FeaturesTogglingConfiguration: " + feature.name() + ": " + feature.isActive());
31         }
32     }
33
34     private static StateRepository getStateRepository() {
35
36         final URL propertiesAsResource = FeaturesTogglingConfiguration.class.getClassLoader().getResource("features.properties");
37
38         final String featuresFile =
39                 System.getProperty(
40                         "FEATURES_FILE",
41                         propertiesAsResource != null ? propertiesAsResource.getFile() : null
42                 );
43
44         System.out.println("features file: " + featuresFile);
45         try {
46             System.out.println(FileUtils.readFileToString(new File(featuresFile), UTF_8));
47         } catch (IOException e) {
48             // YOLO
49         }
50         return new FileBasedStateRepository(new File(featuresFile));
51     }
52 }