2929import com .optimizely .ab .event .internal .payload .EventBatch ;
3030import com .optimizely .ab .notification .*;
3131import com .optimizely .ab .optimizelyconfig .OptimizelyConfig ;
32+ import com .optimizely .ab .optimizelyconfig .OptimizelyConfigManager ;
3233import com .optimizely .ab .optimizelyconfig .OptimizelyConfigService ;
3334import org .slf4j .Logger ;
3435import org .slf4j .LoggerFactory ;
@@ -87,6 +88,8 @@ public class Optimizely implements AutoCloseable {
8788
8889 private final ProjectConfigManager projectConfigManager ;
8990
91+ private OptimizelyConfigManager optimizelyConfigManager ;
92+
9093 // TODO should be private
9194 public final NotificationCenter notificationCenter ;
9295
@@ -107,6 +110,9 @@ private Optimizely(@Nonnull EventHandler eventHandler,
107110 this .decisionService = decisionService ;
108111 this .userProfileService = userProfileService ;
109112 this .projectConfigManager = projectConfigManager ;
113+ if (projectConfigManager instanceof OptimizelyConfigManager ) {
114+ this .optimizelyConfigManager = (OptimizelyConfigManager )projectConfigManager ;
115+ }
110116 this .notificationCenter = notificationCenter ;
111117 }
112118
@@ -884,20 +890,6 @@ public Variation getForcedVariation(@Nonnull String experimentKey,
884890 return decisionService .getForcedVariation (experiment , userId );
885891 }
886892
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-
901893 /**
902894 * @return the current {@link ProjectConfig} instance.
903895 */
@@ -928,6 +920,23 @@ private boolean validateUserId(String userId) {
928920 return true ;
929921 }
930922
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+
931940 /**
932941 * Helper method which makes separate copy of attributesMap variable and returns it
933942 *
0 commit comments