29
29
import com .optimizely .ab .event .internal .payload .EventBatch ;
30
30
import com .optimizely .ab .notification .*;
31
31
import com .optimizely .ab .optimizelyconfig .OptimizelyConfig ;
32
+ import com .optimizely .ab .optimizelyconfig .OptimizelyConfigManager ;
32
33
import com .optimizely .ab .optimizelyconfig .OptimizelyConfigService ;
33
34
import org .slf4j .Logger ;
34
35
import org .slf4j .LoggerFactory ;
@@ -87,6 +88,8 @@ public class Optimizely implements AutoCloseable {
87
88
88
89
private final ProjectConfigManager projectConfigManager ;
89
90
91
+ private OptimizelyConfigManager optimizelyConfigManager ;
92
+
90
93
// TODO should be private
91
94
public final NotificationCenter notificationCenter ;
92
95
@@ -107,6 +110,9 @@ private Optimizely(@Nonnull EventHandler eventHandler,
107
110
this .decisionService = decisionService ;
108
111
this .userProfileService = userProfileService ;
109
112
this .projectConfigManager = projectConfigManager ;
113
+ if (projectConfigManager instanceof OptimizelyConfigManager ) {
114
+ this .optimizelyConfigManager = (OptimizelyConfigManager )projectConfigManager ;
115
+ }
110
116
this .notificationCenter = notificationCenter ;
111
117
}
112
118
@@ -884,20 +890,6 @@ public Variation getForcedVariation(@Nonnull String experimentKey,
884
890
return decisionService .getForcedVariation (experiment , userId );
885
891
}
886
892
887
- /**
888
- * Get {@link OptimizelyConfig} containing experiments and features map
889
- *
890
- * @return {@link OptimizelyConfig}
891
- */
892
- public OptimizelyConfig getOptimizelyConfig () {
893
- ProjectConfig projectConfig = getProjectConfig ();
894
- if (projectConfig == null ) {
895
- logger .error ("Optimizely instance is not valid, failing getOptimizelyConfig call." );
896
- return null ;
897
- }
898
- return new OptimizelyConfigService (projectConfig ).getConfig ();
899
- }
900
-
901
893
/**
902
894
* @return the current {@link ProjectConfig} instance.
903
895
*/
@@ -928,6 +920,23 @@ private boolean validateUserId(String userId) {
928
920
return true ;
929
921
}
930
922
923
+ /**
924
+ * Get {@link OptimizelyConfig} containing experiments and features map
925
+ *
926
+ * @return {@link OptimizelyConfig}
927
+ */
928
+ public OptimizelyConfig getOptimizelyConfig () {
929
+ ProjectConfig projectConfig = getProjectConfig ();
930
+ if (projectConfig == null ) {
931
+ logger .error ("Optimizely instance is not valid, failing getOptimizelyConfig call." );
932
+ return null ;
933
+ }
934
+ if (optimizelyConfigManager != null ) {
935
+ return optimizelyConfigManager .getOptimizelyConfig ();
936
+ }
937
+ return new OptimizelyConfigService (projectConfig ).getConfig ();
938
+ }
939
+
931
940
/**
932
941
* Helper method which makes separate copy of attributesMap variable and returns it
933
942
*
0 commit comments