Skip to content

Commit 125346f

Browse files
author
Michael Ng
authored
refac(config): Move config interfaces back into config package (#213)
1 parent 461a6b2 commit 125346f

File tree

17 files changed

+49
-51
lines changed

17 files changed

+49
-51
lines changed

examples/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,6 @@ func main() {
7373
client.WithPollingConfigManager(time.Second, nil),
7474
client.WithBatchEventProcessor(event.DefaultBatchSize, event.DefaultEventQueueSize, event.DefaultEventFlushInterval),
7575
)
76+
7677
optimizelyClient.Close()
7778
}

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ go 1.12
55
require (
66
github.com/google/uuid v1.1.1
77
github.com/json-iterator/go v1.1.7
8+
github.com/pkg/errors v0.8.1
89
github.com/pkg/profile v1.3.0
910
github.com/stretchr/testify v1.4.0
1011
github.com/twmb/murmur3 v1.0.0

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ
2424
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg=
2525
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
2626
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
27+
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
28+
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
2729
github.com/pkg/profile v1.3.0 h1:OQIvuDgm00gWVWGTf4m4mCt6W1/0YqU7Ntg0mySWgaI=
2830
github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
2931
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=

pkg/client/client.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"runtime/debug"
2424
"strconv"
2525

26-
"github.com/optimizely/go-sdk/pkg"
26+
"github.com/optimizely/go-sdk/pkg/config"
2727
"github.com/optimizely/go-sdk/pkg/decision"
2828
"github.com/optimizely/go-sdk/pkg/entities"
2929
"github.com/optimizely/go-sdk/pkg/event"
@@ -36,7 +36,7 @@ var logger = logging.GetLogger("Client")
3636

3737
// OptimizelyClient is the entry point to the Optimizely SDK
3838
type OptimizelyClient struct {
39-
ConfigManager pkg.ProjectConfigManager
39+
ConfigManager config.ProjectConfigManager
4040
DecisionService decision.Service
4141
EventProcessor event.Processor
4242
notificationCenter notification.Center
@@ -476,7 +476,7 @@ func (o *OptimizelyClient) RemoveOnTrack(id int) error {
476476
}
477477

478478
// GetProjectConfig returns the current ProjectConfig or nil if the instance is not valid.
479-
func (o *OptimizelyClient) GetProjectConfig() (projectConfig pkg.ProjectConfig, err error) {
479+
func (o *OptimizelyClient) GetProjectConfig() (projectConfig config.ProjectConfig, err error) {
480480

481481
projectConfig, err = o.ConfigManager.GetConfig()
482482
if err != nil {

pkg/client/client_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"sync"
2424
"testing"
2525

26-
"github.com/optimizely/go-sdk/pkg"
26+
"github.com/optimizely/go-sdk/pkg/config"
2727
"github.com/optimizely/go-sdk/pkg/decision"
2828
"github.com/optimizely/go-sdk/pkg/entities"
2929
"github.com/optimizely/go-sdk/pkg/event"
@@ -103,7 +103,7 @@ func (m *MockNotificationCenter) Send(notificationType notification.Type, notifi
103103
}
104104

105105
type TestConfig struct {
106-
pkg.ProjectConfig
106+
config.ProjectConfig
107107
}
108108

109109
func (TestConfig) GetEventByKey(key string) (entities.Event, error) {

pkg/client/factory.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"errors"
2222
"time"
2323

24-
"github.com/optimizely/go-sdk/pkg"
2524
"github.com/optimizely/go-sdk/pkg/config"
2625
"github.com/optimizely/go-sdk/pkg/decision"
2726
"github.com/optimizely/go-sdk/pkg/event"
@@ -34,7 +33,7 @@ type OptimizelyFactory struct {
3433
SDKKey string
3534
Datafile []byte
3635

37-
configManager pkg.ProjectConfigManager
36+
configManager config.ProjectConfigManager
3837
decisionService decision.Service
3938
eventDispatcher event.Dispatcher
4039
eventProcessor event.Processor
@@ -123,7 +122,7 @@ func WithPollingConfigManager(pollingInterval time.Duration, initDataFile []byte
123122
}
124123

125124
// WithConfigManager sets polling config manager on a client.
126-
func WithConfigManager(configManager pkg.ProjectConfigManager) OptionFunc {
125+
func WithConfigManager(configManager config.ProjectConfigManager) OptionFunc {
127126
return func(f *OptimizelyFactory) {
128127
f.configManager = configManager
129128
}
@@ -181,7 +180,7 @@ func WithExecutionContext(executionContext utils.ExecutionCtx) OptionFunc {
181180

182181
// StaticClient returns a client initialized with a static project config.
183182
func (f OptimizelyFactory) StaticClient() (*OptimizelyClient, error) {
184-
var configManager pkg.ProjectConfigManager
183+
var configManager config.ProjectConfigManager
185184

186185
if f.SDKKey != "" {
187186
staticConfigManager, err := config.NewStaticProjectConfigManagerFromURL(f.SDKKey)

pkg/client/fixtures_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ package client
2020
import (
2121
"fmt"
2222

23-
"github.com/optimizely/go-sdk/pkg"
23+
"github.com/optimizely/go-sdk/pkg/config"
2424
"github.com/optimizely/go-sdk/pkg/decision"
2525
"github.com/optimizely/go-sdk/pkg/entities"
2626
"github.com/optimizely/go-sdk/pkg/event"
@@ -33,7 +33,7 @@ import (
3333
*/
3434

3535
type MockProjectConfig struct {
36-
pkg.ProjectConfig
36+
config.ProjectConfig
3737
mock.Mock
3838
}
3939

@@ -79,17 +79,17 @@ func (c *MockProjectConfig) GetBotFiltering() bool {
7979
}
8080

8181
type MockProjectConfigManager struct {
82-
projectConfig pkg.ProjectConfig
82+
projectConfig config.ProjectConfig
8383
mock.Mock
8484
}
8585

86-
func (p *MockProjectConfigManager) GetConfig() (pkg.ProjectConfig, error) {
86+
func (p *MockProjectConfigManager) GetConfig() (config.ProjectConfig, error) {
8787
if p.projectConfig != nil {
8888
return p.projectConfig, nil
8989
}
9090

9191
args := p.Called()
92-
return args.Get(0).(pkg.ProjectConfig), args.Error(1)
92+
return args.Get(0).(config.ProjectConfig), args.Error(1)
9393
}
9494

9595
func (p *MockProjectConfigManager) OnProjectConfigUpdate(callback func(notification.ProjectConfigUpdateNotification)) (int, error) {
@@ -126,10 +126,10 @@ func (m *MockEventProcessor) ProcessEvent(event event.UserEvent) bool {
126126
}
127127

128128
type PanickingConfigManager struct {
129-
pkg.ProjectConfigManager
129+
config.ProjectConfigManager
130130
}
131131

132-
func (m *PanickingConfigManager) GetConfig() (pkg.ProjectConfig, error) {
132+
func (m *PanickingConfigManager) GetConfig() (config.ProjectConfig, error) {
133133
panic("I'm panicking")
134134
}
135135

pkg/interface.go renamed to pkg/config/interface.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
* limitations under the License. *
1515
***************************************************************************/
1616

17-
// Package pkg //
18-
package pkg
17+
// Package config //
18+
package config
1919

2020
import (
2121
"github.com/optimizely/go-sdk/pkg/entities"

pkg/config/polling_manager.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"sync"
2424
"time"
2525

26-
"github.com/optimizely/go-sdk/pkg"
2726
"github.com/optimizely/go-sdk/pkg/config/datafileprojectconfig"
2827
"github.com/optimizely/go-sdk/pkg/logging"
2928
"github.com/optimizely/go-sdk/pkg/notification"
@@ -60,7 +59,7 @@ type PollingProjectConfigManager struct {
6059

6160
configLock sync.RWMutex
6261
err error
63-
projectConfig pkg.ProjectConfig
62+
projectConfig ProjectConfig
6463
}
6564

6665
// OptionFunc is used to provide custom configuration to the PollingProjectConfigManager.
@@ -208,7 +207,7 @@ func NewPollingProjectConfigManager(sdkKey string, pollingMangerOptions ...Optio
208207
}
209208

210209
// GetConfig returns the project config
211-
func (cm *PollingProjectConfigManager) GetConfig() (pkg.ProjectConfig, error) {
210+
func (cm *PollingProjectConfigManager) GetConfig() (ProjectConfig, error) {
212211
cm.configLock.RLock()
213212
defer cm.configLock.RUnlock()
214213
if cm.projectConfig == nil {

pkg/config/static_manager.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,14 @@ import (
2222
"fmt"
2323
"sync"
2424

25-
"github.com/optimizely/go-sdk/pkg"
2625
"github.com/optimizely/go-sdk/pkg/config/datafileprojectconfig"
2726
"github.com/optimizely/go-sdk/pkg/notification"
2827
"github.com/optimizely/go-sdk/pkg/utils"
2928
)
3029

3130
// StaticProjectConfigManager maintains a static copy of the project config
3231
type StaticProjectConfigManager struct {
33-
projectConfig pkg.ProjectConfig
32+
projectConfig ProjectConfig
3433
configLock sync.Mutex
3534
}
3635

@@ -61,14 +60,14 @@ func NewStaticProjectConfigManagerFromPayload(payload []byte) (*StaticProjectCon
6160
}
6261

6362
// NewStaticProjectConfigManager creates a new instance of the manager with the given project config
64-
func NewStaticProjectConfigManager(config pkg.ProjectConfig) *StaticProjectConfigManager {
63+
func NewStaticProjectConfigManager(config ProjectConfig) *StaticProjectConfigManager {
6564
return &StaticProjectConfigManager{
6665
projectConfig: config,
6766
}
6867
}
6968

7069
// GetConfig returns the project config
71-
func (cm *StaticProjectConfigManager) GetConfig() (pkg.ProjectConfig, error) {
70+
func (cm *StaticProjectConfigManager) GetConfig() (ProjectConfig, error) {
7271
cm.configLock.Lock()
7372
defer cm.configLock.Unlock()
7473
return cm.projectConfig, nil

0 commit comments

Comments
 (0)