@@ -21,7 +21,6 @@ import (
2121 "context"
2222 "encoding/json"
2323 "errors"
24- "net/http"
2524 "regexp"
2625 "strings"
2726 "sync"
@@ -37,7 +36,7 @@ import (
3736 "github.com/optimizely/agent/plugins/userprofileservice"
3837 odpCachePkg "github.com/optimizely/go-sdk/v2/pkg/cache"
3938 "github.com/optimizely/go-sdk/v2/pkg/client"
40- cmab "github.com/optimizely/go-sdk/v2/pkg/cmab"
39+ "github.com/optimizely/go-sdk/v2/pkg/cmab"
4140 sdkconfig "github.com/optimizely/go-sdk/v2/pkg/config"
4241 "github.com/optimizely/go-sdk/v2/pkg/decision"
4342 "github.com/optimizely/go-sdk/v2/pkg/event"
@@ -316,8 +315,8 @@ func defaultLoader(
316315 clientOptions = append (clientOptions , client .WithOdpManager (odpManager ))
317316
318317 // Parse CMAB cache configuration
319- cacheSize := 1000 // default
320- cacheTTL := 30 * time . Minute // default
318+ cacheSize := cmab . DefaultCacheSize
319+ cacheTTL := cmab . DefaultCacheTTL
321320
322321 if cacheConfig , ok := clientConf .CMAB .Cache ["size" ].(int ); ok {
323322 cacheSize = cacheConfig
@@ -331,55 +330,42 @@ func defaultLoader(
331330 }
332331 }
333332
334- // Parse retry configuration
333+ // Create retry config
335334 retryConfig := & cmab.RetryConfig {
336- MaxRetries : 3 ,
337- InitialBackoff : 100 * time . Millisecond ,
338- MaxBackoff : 10 * time . Second ,
339- BackoffMultiplier : 2.0 ,
335+ MaxRetries : cmab . DefaultMaxRetries ,
336+ InitialBackoff : cmab . DefaultInitialBackoff ,
337+ MaxBackoff : cmab . DefaultMaxBackoff ,
338+ BackoffMultiplier : cmab . DefaultBackoffMultiplier ,
340339 }
341340
341+ // Parse retry configuration
342342 if maxRetries , ok := clientConf .CMAB .RetryConfig ["maxRetries" ].(int ); ok {
343343 retryConfig .MaxRetries = maxRetries
344344 }
345-
346345 if initialBackoffStr , ok := clientConf .CMAB .RetryConfig ["initialBackoff" ].(string ); ok {
347- if parsedBackoff , err := time .ParseDuration (initialBackoffStr ); err == nil {
348- retryConfig .InitialBackoff = parsedBackoff
346+ if backoff , err := time .ParseDuration (initialBackoffStr ); err == nil {
347+ retryConfig .InitialBackoff = backoff
349348 }
350349 }
351-
352350 if maxBackoffStr , ok := clientConf .CMAB .RetryConfig ["maxBackoff" ].(string ); ok {
353- if parsedBackoff , err := time .ParseDuration (maxBackoffStr ); err == nil {
354- retryConfig .MaxBackoff = parsedBackoff
351+ if backoff , err := time .ParseDuration (maxBackoffStr ); err == nil {
352+ retryConfig .MaxBackoff = backoff
355353 }
356354 }
357-
358355 if multiplier , ok := clientConf .CMAB .RetryConfig ["backoffMultiplier" ].(float64 ); ok {
359356 retryConfig .BackoffMultiplier = multiplier
360357 }
361358
362- // Set CMAB prediction endpoint if configured
363- if clientConf .CMAB .PredictionEndpoint != "" {
364- cmab .CMABPredictionEndpoint = clientConf .CMAB .PredictionEndpoint
365- }
366-
367- // Create CMAB client and service
368- cmabClient := cmab .NewDefaultCmabClient (cmab.ClientOptions {
369- HTTPClient : & http.Client {
370- Timeout : clientConf .CMAB .RequestTimeout ,
371- },
359+ // Create CMAB config (NO endpoint configuration - not configurable)
360+ cmabConfig := cmab.Config {
361+ CacheSize : cacheSize ,
362+ CacheTTL : cacheTTL ,
363+ HTTPTimeout : clientConf .CMAB .RequestTimeout ,
372364 RetryConfig : retryConfig ,
373- Logger : logging .GetLogger (sdkKey , "CmabClient" ),
374- })
375-
376- cmabService := cmab .NewDefaultCmabService (cmab.ServiceOptions {
377- Logger : logging .GetLogger (sdkKey , "CmabService" ),
378- CmabCache : odpCachePkg .NewLRUCache (cacheSize , cacheTTL ),
379- CmabClient : cmabClient ,
380- })
365+ }
381366
382- clientOptions = append (clientOptions , client .WithCmabService (cmabService ))
367+ // Add to client options
368+ clientOptions = append (clientOptions , client .WithCmabConfig (cmabConfig ))
383369
384370 optimizelyClient , err := optimizelyFactory .Client (
385371 clientOptions ... ,
0 commit comments