Skip to content

Commit 973644b

Browse files
author
Mike Davis
authored
Revert signature changes to PollingProjectConfigManager. (#209)
1 parent 8e03c12 commit 973644b

File tree

3 files changed

+27
-25
lines changed

3 files changed

+27
-25
lines changed

pkg/client/factory.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func (f OptimizelyFactory) Client(clientOptions ...OptionFunc) (*OptimizelyClien
103103

104104
// Initialize the default services with the execution context
105105
if pollingConfigManager, ok := appClient.ConfigManager.(*config.PollingProjectConfigManager); ok {
106-
pollingConfigManager.Start(f.SDKKey, appClient.executionCtx)
106+
pollingConfigManager.Start(appClient.executionCtx)
107107
}
108108

109109
if batchProcessor, ok := appClient.EventProcessor.(*event.BatchEventProcessor); ok {

pkg/config/polling_manager.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,13 @@ var cmLogger = logging.GetLogger("PollingConfigManager")
5050
// PollingProjectConfigManager maintains a dynamic copy of the project config by continuously polling for the datafile
5151
// from the Optimizely CDN at a given (configurable) interval.
5252
type PollingProjectConfigManager struct {
53-
requester utils.Requester
54-
pollingInterval time.Duration
55-
notificationCenter notification.Center
53+
datafileURLTemplate string
5654
initDatafile []byte
5755
lastModified string
58-
datafileURLTemplate string
56+
notificationCenter notification.Center
57+
pollingInterval time.Duration
58+
requester utils.Requester
59+
sdkKey string
5960

6061
configLock sync.RWMutex
6162
err error
@@ -94,7 +95,7 @@ func WithInitialDatafile(datafile []byte) OptionFunc {
9495
}
9596

9697
// SyncConfig gets current datafile and updates projectConfig
97-
func (cm *PollingProjectConfigManager) SyncConfig(sdkKey string, datafile []byte) {
98+
func (cm *PollingProjectConfigManager) SyncConfig(datafile []byte) {
9899
var e error
99100
var code int
100101
var respHeaders http.Header
@@ -104,7 +105,7 @@ func (cm *PollingProjectConfigManager) SyncConfig(sdkKey string, datafile []byte
104105
cm.configLock.Unlock()
105106
}
106107

107-
url := fmt.Sprintf(cm.datafileURLTemplate, sdkKey)
108+
url := fmt.Sprintf(cm.datafileURLTemplate, cm.sdkKey)
108109
if len(datafile) == 0 {
109110
if cm.lastModified != "" {
110111
lastModifiedHeader := utils.Header{Name: ModifiedSince, Value: cm.lastModified}
@@ -170,14 +171,14 @@ func (cm *PollingProjectConfigManager) SyncConfig(sdkKey string, datafile []byte
170171
}
171172

172173
// Start starts the polling
173-
func (cm *PollingProjectConfigManager) Start(sdkKey string, exeCtx utils.ExecutionCtx) {
174+
func (cm *PollingProjectConfigManager) Start(exeCtx utils.ExecutionCtx) {
174175
go func() {
175176
cmLogger.Debug("Polling Config Manager Initiated")
176177
t := time.NewTicker(cm.pollingInterval)
177178
for {
178179
select {
179180
case <-t.C:
180-
cm.SyncConfig(sdkKey, []byte{})
181+
cm.SyncConfig([]byte{})
181182
case <-exeCtx.GetContext().Done():
182183
cmLogger.Debug("Polling Config Manager Stopped")
183184
return
@@ -194,14 +195,15 @@ func NewPollingProjectConfigManager(sdkKey string, pollingMangerOptions ...Optio
194195
pollingInterval: DefaultPollingInterval,
195196
requester: utils.NewHTTPRequester(),
196197
datafileURLTemplate: DatafileURLTemplate,
198+
sdkKey: sdkKey,
197199
}
198200

199201
for _, opt := range pollingMangerOptions {
200202
opt(&pollingProjectConfigManager)
201203
}
202204

203205
initDatafile := pollingProjectConfigManager.initDatafile
204-
pollingProjectConfigManager.SyncConfig(sdkKey, initDatafile) // initial poll
206+
pollingProjectConfigManager.SyncConfig(initDatafile) // initial poll
205207
return &pollingProjectConfigManager
206208
}
207209

pkg/config/polling_manager_test.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func TestNewPollingProjectConfigManagerWithOptions(t *testing.T) {
5151

5252
exeCtx := utils.NewCancelableExecutionCtx()
5353
configManager := NewPollingProjectConfigManager(sdkKey, WithRequester(mockRequester))
54-
configManager.Start(sdkKey, exeCtx)
54+
configManager.Start(exeCtx)
5555
mockRequester.AssertExpectations(t)
5656

5757
actual, err := configManager.GetConfig()
@@ -72,7 +72,7 @@ func TestNewPollingProjectConfigManagerWithNull(t *testing.T) {
7272

7373
exeCtx := utils.NewCancelableExecutionCtx()
7474
configManager := NewPollingProjectConfigManager(sdkKey, WithRequester(mockRequester))
75-
configManager.Start(sdkKey, exeCtx)
75+
configManager.Start(exeCtx)
7676
mockRequester.AssertExpectations(t)
7777

7878
_, err := configManager.GetConfig()
@@ -90,15 +90,15 @@ func TestNewPollingProjectConfigManagerWithSimilarDatafileRevisions(t *testing.T
9090

9191
exeCtx := utils.NewCancelableExecutionCtx()
9292
configManager := NewPollingProjectConfigManager(sdkKey, WithRequester(mockRequester))
93-
configManager.Start(sdkKey, exeCtx)
93+
configManager.Start(exeCtx)
9494
mockRequester.AssertExpectations(t)
9595

9696
actual, err := configManager.GetConfig()
9797
assert.Nil(t, err)
9898
assert.NotNil(t, actual)
9999
assert.Equal(t, projectConfig1, actual)
100100

101-
configManager.SyncConfig(sdkKey, mockDatafile2)
101+
configManager.SyncConfig(mockDatafile2)
102102
actual, err = configManager.GetConfig()
103103
assert.Equal(t, projectConfig1, actual)
104104
}
@@ -118,7 +118,7 @@ func TestNewPollingProjectConfigManagerWithLastModifiedDates(t *testing.T) {
118118

119119
exeCtx := utils.NewCancelableExecutionCtx()
120120
configManager := NewPollingProjectConfigManager(sdkKey, WithRequester(mockRequester))
121-
configManager.Start(sdkKey, exeCtx)
121+
configManager.Start(exeCtx)
122122

123123
// Fetch valid config
124124
actual, err := configManager.GetConfig()
@@ -127,7 +127,7 @@ func TestNewPollingProjectConfigManagerWithLastModifiedDates(t *testing.T) {
127127
assert.Equal(t, projectConfig1, actual)
128128

129129
// Sync and check no changes were made to the previous config because of 304 error code
130-
configManager.SyncConfig(sdkKey, []byte{})
130+
configManager.SyncConfig([]byte{})
131131
actual, err = configManager.GetConfig()
132132
assert.Nil(t, err)
133133
assert.NotNil(t, actual)
@@ -148,15 +148,15 @@ func TestNewPollingProjectConfigManagerWithDifferentDatafileRevisions(t *testing
148148

149149
exeCtx := utils.NewCancelableExecutionCtx()
150150
configManager := NewPollingProjectConfigManager(sdkKey, WithRequester(mockRequester))
151-
configManager.Start(sdkKey, exeCtx)
151+
configManager.Start(exeCtx)
152152
mockRequester.AssertExpectations(t)
153153

154154
actual, err := configManager.GetConfig()
155155
assert.Nil(t, err)
156156
assert.NotNil(t, actual)
157157
assert.Equal(t, projectConfig1, actual)
158158

159-
configManager.SyncConfig(sdkKey, mockDatafile2)
159+
configManager.SyncConfig(mockDatafile2)
160160
actual, err = configManager.GetConfig()
161161
assert.Equal(t, projectConfig2, actual)
162162
}
@@ -175,20 +175,20 @@ func TestNewPollingProjectConfigManagerWithErrorHandling(t *testing.T) {
175175

176176
exeCtx := utils.NewCancelableExecutionCtx()
177177
configManager := NewPollingProjectConfigManager(sdkKey, WithRequester(mockRequester))
178-
configManager.Start(sdkKey, exeCtx)
178+
configManager.Start(exeCtx)
179179
mockRequester.AssertExpectations(t)
180180

181181
actual, err := configManager.GetConfig() // polling for bad file
182182
assert.NotNil(t, err)
183183
assert.Nil(t, actual)
184184
assert.Nil(t, projectConfig1)
185185

186-
configManager.SyncConfig(sdkKey, mockDatafile2) // polling for good file
186+
configManager.SyncConfig(mockDatafile2) // polling for good file
187187
actual, err = configManager.GetConfig()
188188
assert.Nil(t, err)
189189
assert.Equal(t, projectConfig2, actual)
190190

191-
configManager.SyncConfig(sdkKey, mockDatafile1) // polling for bad file, error not null but good project
191+
configManager.SyncConfig(mockDatafile1) // polling for bad file, error not null but good project
192192
actual, err = configManager.GetConfig()
193193
assert.Nil(t, err)
194194
assert.Equal(t, projectConfig2, actual)
@@ -206,7 +206,7 @@ func TestNewPollingProjectConfigManagerOnDecision(t *testing.T) {
206206

207207
exeCtx := utils.NewCancelableExecutionCtx()
208208
configManager := NewPollingProjectConfigManager(sdkKey, WithRequester(mockRequester))
209-
configManager.Start(sdkKey, exeCtx)
209+
configManager.Start(exeCtx)
210210

211211
var numberOfCalls = 0
212212
callback := func(notification notification.ProjectConfigUpdateNotification) {
@@ -219,7 +219,7 @@ func TestNewPollingProjectConfigManagerOnDecision(t *testing.T) {
219219
assert.Nil(t, err)
220220
assert.NotNil(t, actual)
221221

222-
configManager.SyncConfig(sdkKey, mockDatafile2)
222+
configManager.SyncConfig(mockDatafile2)
223223
actual, err = configManager.GetConfig()
224224
assert.Nil(t, err)
225225
assert.NotNil(t, actual)
@@ -240,7 +240,7 @@ func TestPollingInterval(t *testing.T) {
240240

241241
exeCtx := utils.NewCancelableExecutionCtx()
242242
configManager := NewPollingProjectConfigManager(sdkKey, WithPollingInterval(5*time.Second))
243-
configManager.Start(sdkKey, exeCtx)
243+
configManager.Start(exeCtx)
244244

245245
assert.Equal(t, configManager.pollingInterval, 5*time.Second)
246246
}
@@ -250,7 +250,7 @@ func TestInitialDatafile(t *testing.T) {
250250
sdkKey := "test_sdk_key"
251251
exeCtx := utils.NewCancelableExecutionCtx()
252252
configManager := NewPollingProjectConfigManager(sdkKey, WithInitialDatafile([]byte("test")))
253-
configManager.Start(sdkKey, exeCtx)
253+
configManager.Start(exeCtx)
254254

255255
assert.Equal(t, configManager.initDatafile, []byte("test"))
256256
}

0 commit comments

Comments
 (0)