Skip to content

Commit f85f13e

Browse files
mx-psiBogdan Drutu
andauthored
Move MapProvider to config package (open-telemetry#4178)
* Move MapProvider and Watchable interfaces to config package * Rename `Watchable` to `WatchableMapProvider` * Add CHANGELOG entry * Update CHANGELOG.md Co-authored-by: Bogdan Drutu <lazy@splunk.com>
1 parent d0a09e8 commit f85f13e

File tree

11 files changed

+33
-29
lines changed

11 files changed

+33
-29
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
## Unreleased
44

5+
## 🛑 Breaking changes 🛑
6+
7+
- Rename `parserprovider.MapProvider` as `config.MapProvider` (#4178)
8+
- Rename `parserprovider.Watchable` as `config.WatchableMapProvider` (#4178)
9+
510
## v0.37.0 Beta
611

712
## 🛑 Breaking changes 🛑
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,27 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package parserprovider // import "go.opentelemetry.io/collector/service/parserprovider"
15+
package config // import "go.opentelemetry.io/collector/config"
1616

1717
import (
1818
"context"
19-
20-
"go.opentelemetry.io/collector/config"
2119
)
2220

2321
// MapProvider is an interface that helps providing configuration's parser.
2422
// Implementations may load the parser from a file, a database or any other source.
2523
type MapProvider interface {
26-
// Get returns the config.Map if succeed or error otherwise.
27-
Get(ctx context.Context) (*config.Map, error)
24+
// Get returns the Map if succeed or error otherwise.
25+
Get(ctx context.Context) (*Map, error)
2826

2927
// Close signals that the configuration for which it was used to retrieve values is no longer in use
3028
// and the object should close and release any watchers that it may have created.
3129
// This method must be called when the service ends, either in case of success or error.
3230
Close(ctx context.Context) error
3331
}
3432

35-
// Watchable is an extension for MapProvider that is implemented if the given provider
33+
// WatchableMapProvider is an extension for MapProvider that is implemented if the given provider
3634
// supports monitoring of configuration updates.
37-
type Watchable interface {
35+
type WatchableMapProvider interface {
3836
// WatchForUpdate waits for updates on any of the values retrieved from config sources.
3937
// It blocks until configuration updates are received and can
4038
// return an error if anything fails. WatchForUpdate is used once during the

service/collector.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@ import (
3434
"go.uber.org/zap"
3535

3636
"go.opentelemetry.io/collector/component"
37+
"go.opentelemetry.io/collector/config"
3738
"go.opentelemetry.io/collector/config/configunmarshaler"
3839
"go.opentelemetry.io/collector/config/experimental/configsource"
3940
"go.opentelemetry.io/collector/extension/ballastextension"
4041
"go.opentelemetry.io/collector/service/internal"
4142
"go.opentelemetry.io/collector/service/internal/telemetrylogs"
42-
"go.opentelemetry.io/collector/service/parserprovider"
4343
)
4444

4545
// State defines Collector's state.
@@ -194,7 +194,7 @@ func (col *Collector) setupConfigurationComponents(ctx context.Context) error {
194194
}
195195

196196
// If provider is watchable start a goroutine watching for updates.
197-
if watchable, ok := col.set.ConfigMapProvider.(parserprovider.Watchable); ok {
197+
if watchable, ok := col.set.ConfigMapProvider.(config.WatchableMapProvider); ok {
198198
go col.watchForConfigUpdates(watchable)
199199
}
200200

@@ -285,7 +285,7 @@ func (col *Collector) reloadService(ctx context.Context) error {
285285
return nil
286286
}
287287

288-
func (col *Collector) watchForConfigUpdates(watchable parserprovider.Watchable) {
288+
func (col *Collector) watchForConfigUpdates(watchable config.WatchableMapProvider) {
289289
err := watchable.WatchForUpdate()
290290
if errors.Is(err, configsource.ErrSessionClosed) {
291291
// This is the case of shutdown of the whole collector server, nothing to do.

service/collector_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ func TestCollector_reloadService(t *testing.T) {
282282

283283
tests := []struct {
284284
name string
285-
parserProvider parserprovider.MapProvider
285+
parserProvider config.MapProvider
286286
service *service
287287
}{
288288
{

service/parserprovider/default.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414

1515
package parserprovider // import "go.opentelemetry.io/collector/service/parserprovider"
1616

17-
// NewDefaultMapProvider returns the default MapProvider, and it creates configuration from a file
17+
import "go.opentelemetry.io/collector/config"
18+
19+
// NewDefaultMapProvider returns the default config.MapProvider, and it creates configuration from a file
1820
// defined by the given configFile and overwrites fields using properties.
19-
func NewDefaultMapProvider(configFileName string, properties []string) MapProvider {
21+
func NewDefaultMapProvider(configFileName string, properties []string) config.MapProvider {
2022
return NewExpandMapProvider(
2123
NewMergeMapProvider(
2224
NewFileMapProvider(configFileName),

service/parserprovider/expand.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ import (
2222
)
2323

2424
type expandMapProvider struct {
25-
base MapProvider
25+
base config.MapProvider
2626
}
2727

28-
// NewExpandMapProvider returns a MapProvider, that expands all environment variables for a
29-
// config.Map provided by the given MapProvider.
30-
func NewExpandMapProvider(base MapProvider) MapProvider {
28+
// NewExpandMapProvider returns a config.MapProvider, that expands all environment variables for a
29+
// config.Map provided by the given config.MapProvider.
30+
func NewExpandMapProvider(base config.MapProvider) config.MapProvider {
3131
return &expandMapProvider{
3232
base: base,
3333
}

service/parserprovider/file.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ type fileMapProvider struct {
2626
fileName string
2727
}
2828

29-
// NewFileMapProvider returns a new MapProvider that reads the configuration from the given file.
30-
func NewFileMapProvider(fileName string) MapProvider {
29+
// NewFileMapProvider returns a new config.MapProvider that reads the configuration from the given file.
30+
func NewFileMapProvider(fileName string) config.MapProvider {
3131
return &fileMapProvider{
3232
fileName: fileName,
3333
}

service/parserprovider/inmemory.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ type inMemoryMapProvider struct {
2525
buf io.Reader
2626
}
2727

28-
// NewInMemoryMapProvider returns a new MapProvider that reads the configuration, from the provided buffer, as YAML.
29-
func NewInMemoryMapProvider(buf io.Reader) MapProvider {
28+
// NewInMemoryMapProvider returns a new config.MapProvider that reads the configuration, from the provided buffer, as YAML.
29+
func NewInMemoryMapProvider(buf io.Reader) config.MapProvider {
3030
return &inMemoryMapProvider{buf: buf}
3131
}
3232

service/parserprovider/merge.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ import (
2525
// TODO: Add support to "merge" watchable interface.
2626

2727
type mergeMapProvider struct {
28-
providers []MapProvider
28+
providers []config.MapProvider
2929
}
3030

31-
// NewMergeMapProvider returns a config.MapProvider, that merges the result from multiple MapProvider.
31+
// NewMergeMapProvider returns a config.MapProvider, that merges the result from multiple config.MapProvider.
3232
//
3333
// The ConfigMaps are merged in the given order, by merging all of them in order into an initial empty map.
34-
func NewMergeMapProvider(ps ...MapProvider) MapProvider {
34+
func NewMergeMapProvider(ps ...config.MapProvider) config.MapProvider {
3535
return &mergeMapProvider{providers: ps}
3636
}
3737

service/parserprovider/properties.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ type propertiesMapProvider struct {
2929
properties []string
3030
}
3131

32-
// NewPropertiesMapProvider returns a MapProvider, that provides a config.Map from the given properties.
32+
// NewPropertiesMapProvider returns a config.MapProvider, that provides a config.Map from the given properties.
3333
//
3434
// Properties must follow the Java properties format, key-value list separated by equal sign with a "."
3535
// as key delimiter.
3636
// ["processors.batch.timeout=2s", "processors.batch/foo.timeout=3s"]
37-
func NewPropertiesMapProvider(properties []string) MapProvider {
37+
func NewPropertiesMapProvider(properties []string) config.MapProvider {
3838
return &propertiesMapProvider{
3939
properties: properties,
4040
}

0 commit comments

Comments
 (0)