Skip to content

Commit ad63201

Browse files
update: integrate CMAB service into OptimizelyFactory
1 parent 26e6393 commit ad63201

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

core-httpclient-impl/src/main/java/com/optimizely/ab/OptimizelyFactory.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,29 @@
1616
*/
1717
package com.optimizely.ab;
1818

19+
import java.util.concurrent.TimeUnit;
20+
21+
import org.apache.http.impl.client.CloseableHttpClient;
22+
import org.slf4j.Logger;
23+
import org.slf4j.LoggerFactory;
24+
25+
import com.optimizely.ab.cmab.DefaultCmabClient;
26+
import com.optimizely.ab.cmab.client.CmabClientConfig;
27+
import com.optimizely.ab.cmab.service.CmabCacheValue;
28+
import com.optimizely.ab.cmab.service.CmabServiceOptions;
29+
import com.optimizely.ab.cmab.service.DefaultCmabService;
1930
import com.optimizely.ab.config.HttpProjectConfigManager;
2031
import com.optimizely.ab.config.ProjectConfig;
2132
import com.optimizely.ab.config.ProjectConfigManager;
2233
import com.optimizely.ab.event.AsyncEventHandler;
2334
import com.optimizely.ab.event.BatchEventProcessor;
2435
import com.optimizely.ab.event.EventHandler;
36+
import com.optimizely.ab.internal.DefaultLRUCache;
2537
import com.optimizely.ab.internal.PropertyUtils;
2638
import com.optimizely.ab.notification.NotificationCenter;
2739
import com.optimizely.ab.odp.DefaultODPApiManager;
2840
import com.optimizely.ab.odp.ODPApiManager;
2941
import com.optimizely.ab.odp.ODPManager;
30-
import org.apache.http.impl.client.CloseableHttpClient;
31-
import org.slf4j.Logger;
32-
import org.slf4j.LoggerFactory;
33-
34-
import java.util.concurrent.TimeUnit;
3542

3643
/**
3744
* OptimizelyFactory is a utility class to instantiate an {@link Optimizely} client with a minimal
@@ -369,11 +376,19 @@ public static Optimizely newDefaultInstance(ProjectConfigManager configManager,
369376
.withApiManager(odpApiManager != null ? odpApiManager : new DefaultODPApiManager())
370377
.build();
371378

379+
DefaultCmabClient defaultCmabClient = new DefaultCmabClient(CmabClientConfig.withDefaultRetry());
380+
int DEFAULT_MAX_SIZE = 1000;
381+
int DEFAULT_CMAB_CACHE_TIMEOUT = 30 * 60 * 1000;
382+
DefaultLRUCache<CmabCacheValue> cmabCache = new DefaultLRUCache<>(DEFAULT_MAX_SIZE, DEFAULT_CMAB_CACHE_TIMEOUT);
383+
CmabServiceOptions cmabServiceOptions = new CmabServiceOptions(logger, cmabCache, defaultCmabClient);
384+
DefaultCmabService cmabService = new DefaultCmabService(cmabServiceOptions);
385+
372386
return Optimizely.builder()
373387
.withEventProcessor(eventProcessor)
374388
.withConfigManager(configManager)
375389
.withNotificationCenter(notificationCenter)
376390
.withODPManager(odpManager)
391+
.withCmabService(cmabService)
377392
.build();
378393
}
379394
}

0 commit comments

Comments
 (0)