Skip to content

Commit a76712a

Browse files
committed
Updated code after suggested breakdown of PR's
1 parent 6391994 commit a76712a

File tree

3 files changed

+6
-33
lines changed

3 files changed

+6
-33
lines changed

core-api/src/main/java/com/optimizely/ab/Optimizely.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -908,7 +908,7 @@ public OptimizelyConfig getOptimizelyConfig() {
908908
logger.error("Optimizely instance is not valid, failing getOptimizelyConfig call.");
909909
return null;
910910
}
911-
return OptimizelyConfigService.getConfig(projectConfig);
911+
return new OptimizelyConfigService(projectConfig).getConfig();
912912
}
913913

914914
//======== Helper methods ========//

core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigService.java

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,11 @@ public class OptimizelyConfigService {
2626

2727
private ProjectConfig projectConfig;
2828
private OptimizelyConfig optimizelyConfig;
29-
private static OptimizelyConfigService serviceInstance;
3029

3130
// Map containing variables list for every feature key used for merging variation and feature variables.
3231
private Map<String, List<FeatureVariable>> featureKeyToVariablesMap;
3332

34-
private OptimizelyConfigService(ProjectConfig projectConfig) {
33+
public OptimizelyConfigService(ProjectConfig projectConfig) {
3534
this.projectConfig = projectConfig;
3635
this.featureKeyToVariablesMap = generateFeatureKeyToVariablesMap();
3736

@@ -44,29 +43,11 @@ private OptimizelyConfigService(ProjectConfig projectConfig) {
4443
}
4544

4645
/**
47-
* creates new instance if the revision is updated
48-
*
49-
* @param projectConfig project config provided
50-
* @return singleton object of {@link OptimizelyConfigService}
51-
*/
52-
@VisibleForTesting
53-
static OptimizelyConfigService getInstance(ProjectConfig projectConfig) {
54-
if (serviceInstance == null || !projectConfig.getRevision().equals(serviceInstance.getOptimizelyConfig().getRevision())) {
55-
serviceInstance = new OptimizelyConfigService(projectConfig);
56-
}
57-
return serviceInstance;
58-
}
59-
60-
public static OptimizelyConfig getConfig(ProjectConfig projectConfig) {
61-
return getInstance(projectConfig).getOptimizelyConfig();
62-
}
63-
64-
/**
65-
* create maps for experiment and features to be returned as one object
46+
* returns maps for experiment and features to be returned as one object
6647
*
6748
* @return {@link OptimizelyConfig} containing experiments and features
6849
*/
69-
public OptimizelyConfig getOptimizelyConfig() {
50+
public OptimizelyConfig getConfig() {
7051
return optimizelyConfig;
7152
}
7253

core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public class OptimizelyConfigServiceTest {
4040
@Before
4141
public void initialize() throws Exception {
4242
projectConfig = new DatafileProjectConfig.Builder().withDatafile(validConfigJsonV4()).build();
43-
optimizelyConfigService = OptimizelyConfigService.getInstance(projectConfig);
43+
optimizelyConfigService = new OptimizelyConfigService(projectConfig);
4444
}
4545

4646
@Test
@@ -96,7 +96,7 @@ public void testGetExperimentsMap() {
9696

9797
@Test
9898
public void testRevision() {
99-
String revision = optimizelyConfigService.getOptimizelyConfig().getRevision();
99+
String revision = optimizelyConfigService.getConfig().getRevision();
100100
assertEquals(revision, projectConfig.getRevision());
101101
}
102102

@@ -223,14 +223,6 @@ public void testGenerateFeatureKeyToVariablesMap() {
223223
});
224224
}
225225

226-
@Test
227-
public void testCachingOfOptimizelyConfig() throws Exception {
228-
OptimizelyConfigService mocked = mock(OptimizelyConfigService.class);
229-
when(mocked.getExperimentsMap()).thenReturn(optimizelyConfigService.getExperimentsMap());
230-
optimizelyConfigService = OptimizelyConfigService.getInstance(projectConfig);
231-
verify(mocked, times(0)).getExperimentsMap();
232-
}
233-
234226
private List<Experiment> getAllExperimentsFromDatafile() {
235227
List<Experiment> experiments = new ArrayList<>();
236228
projectConfig.getGroups().forEach(group ->

0 commit comments

Comments
 (0)