Skip to content

Commit 57b513f

Browse files
djaglowskijaronoff97
authored andcommitted
Deprecate component.Factories in favor of service.Factories (open-telemetry#6723)
1 parent 5097a22 commit 57b513f

19 files changed

+109
-52
lines changed

.chloggen/refactories.yaml

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
2+
change_type: deprecation
3+
4+
# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
5+
component: component
6+
7+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
8+
note: Deprecate component.Factories in favor of service.Factories
9+
10+
# One or more tracking issues or pull requests related to the change
11+
issues: [6723]
12+
13+
# (Optional) One or more lines of additional information to render under the primary note.
14+
# These lines will be padded with 2 spaces and then inserted directly into the document.
15+
# Use pipe (|) for multiline entries.
16+
subtext:

component/componenttest/nop_factories.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222
"go.opentelemetry.io/collector/receiver"
2323
)
2424

25-
// NopFactories returns a component.Factories with all nop factories.
25+
// Deprecated: [v0.68.0] use servicetest.NopFactories.
2626
func NopFactories() (component.Factories, error) {
2727
var factories component.Factories
2828
var err error

component/factories.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ import (
1818
"fmt"
1919
)
2020

21-
// Factories struct holds in a single type all component factories that
22-
// can be handled by the Config.
21+
// Deprecated: [v0.68.0] use service.Factories.
2322
type Factories struct {
2423
// Receivers maps receiver type names in the config to the respective factory.
2524
Receivers map[Type]ReceiverFactory

otelcol/collector.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ func (s State) String() string {
5959

6060
// CollectorSettings holds configuration for creating a new Collector.
6161
type CollectorSettings struct {
62-
// Factories component factories.
63-
Factories component.Factories
62+
// Factories service factories.
63+
Factories service.Factories
6464

6565
// BuildInfo provides collector start information.
6666
BuildInfo component.BuildInfo

otelcol/collector_test.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
"github.com/stretchr/testify/require"
2929

3030
"go.opentelemetry.io/collector/component"
31-
"go.opentelemetry.io/collector/component/componenttest"
31+
"go.opentelemetry.io/collector/service/servicetest"
3232
)
3333

3434
func TestStateString(t *testing.T) {
@@ -40,7 +40,7 @@ func TestStateString(t *testing.T) {
4040
}
4141

4242
func TestCollectorStartAsGoRoutine(t *testing.T) {
43-
factories, err := componenttest.NopFactories()
43+
factories, err := servicetest.NopFactories()
4444
require.NoError(t, err)
4545

4646
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", "otelcol-nop.yaml")}))
@@ -67,7 +67,7 @@ func TestCollectorStartAsGoRoutine(t *testing.T) {
6767
}
6868

6969
func TestCollectorCancelContext(t *testing.T) {
70-
factories, err := componenttest.NopFactories()
70+
factories, err := servicetest.NopFactories()
7171
require.NoError(t, err)
7272

7373
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", "otelcol-nop.yaml")}))
@@ -103,7 +103,7 @@ func (p mockCfgProvider) Watch() <-chan error {
103103
}
104104

105105
func TestCollectorStateAfterConfigChange(t *testing.T) {
106-
factories, err := componenttest.NopFactories()
106+
factories, err := servicetest.NopFactories()
107107
require.NoError(t, err)
108108

109109
provider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", "otelcol-nop.yaml")}))
@@ -136,7 +136,7 @@ func TestCollectorStateAfterConfigChange(t *testing.T) {
136136
}
137137

138138
func TestCollectorReportError(t *testing.T) {
139-
factories, err := componenttest.NopFactories()
139+
factories, err := servicetest.NopFactories()
140140
require.NoError(t, err)
141141

142142
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", "otelcol-nop.yaml")}))
@@ -162,7 +162,7 @@ func TestCollectorReportError(t *testing.T) {
162162
}
163163

164164
func TestCollectorSendSignal(t *testing.T) {
165-
factories, err := componenttest.NopFactories()
165+
factories, err := servicetest.NopFactories()
166166
require.NoError(t, err)
167167

168168
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", "otelcol-nop.yaml")}))
@@ -195,7 +195,7 @@ func TestCollectorSendSignal(t *testing.T) {
195195

196196
func TestCollectorFailedShutdown(t *testing.T) {
197197
t.Skip("This test was using telemetry shutdown failure, switch to use a component that errors on shutdown.")
198-
factories, err := componenttest.NopFactories()
198+
factories, err := servicetest.NopFactories()
199199
require.NoError(t, err)
200200

201201
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", "otelcol-nop.yaml")}))
@@ -226,7 +226,7 @@ func TestCollectorFailedShutdown(t *testing.T) {
226226
}
227227

228228
func TestCollectorStartInvalidConfig(t *testing.T) {
229-
factories, err := componenttest.NopFactories()
229+
factories, err := servicetest.NopFactories()
230230
require.NoError(t, err)
231231

232232
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", "otelcol-invalid.yaml")}))
@@ -253,7 +253,7 @@ func TestCollectorStartWithTraceContextPropagation(t *testing.T) {
253253

254254
for _, tt := range tests {
255255
t.Run(tt.file, func(t *testing.T) {
256-
factories, err := componenttest.NopFactories()
256+
factories, err := servicetest.NopFactories()
257257
require.NoError(t, err)
258258

259259
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", tt.file)}))
@@ -291,7 +291,7 @@ func TestCollectorRun(t *testing.T) {
291291

292292
for _, tt := range tests {
293293
t.Run(tt.file, func(t *testing.T) {
294-
factories, err := componenttest.NopFactories()
294+
factories, err := servicetest.NopFactories()
295295
require.NoError(t, err)
296296

297297
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", tt.file)}))
@@ -315,7 +315,7 @@ func TestCollectorRun(t *testing.T) {
315315
}
316316

317317
func TestCollectorShutdownBeforeRun(t *testing.T) {
318-
factories, err := componenttest.NopFactories()
318+
factories, err := servicetest.NopFactories()
319319
require.NoError(t, err)
320320

321321
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", "otelcol-nop.yaml")}))
@@ -340,7 +340,7 @@ func TestCollectorShutdownBeforeRun(t *testing.T) {
340340
}
341341

342342
func TestCollectorClosedStateOnStartUpError(t *testing.T) {
343-
factories, err := componenttest.NopFactories()
343+
factories, err := servicetest.NopFactories()
344344
require.NoError(t, err)
345345

346346
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", "otelcol-invalid.yaml")}))

otelcol/collector_windows_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ import (
2727
"golang.org/x/sys/windows/svc"
2828

2929
"go.opentelemetry.io/collector/component"
30-
"go.opentelemetry.io/collector/component/componenttest"
30+
"go.opentelemetry.io/collector/service/servicetest"
3131
)
3232

3333
func TestNewSvcHandler(t *testing.T) {
3434
oldArgs := os.Args
3535
defer func() { os.Args = oldArgs }()
3636
os.Args = []string{"otelcol", "--config", filepath.Join("testdata", "otelcol-nop.yaml")}
3737

38-
factories, err := componenttest.NopFactories()
38+
factories, err := servicetest.NopFactories()
3939
require.NoError(t, err)
4040

4141
s := NewSvcHandler(CollectorSettings{BuildInfo: component.NewDefaultBuildInfo(), Factories: factories})

otelcol/command_components_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ import (
2525
"gopkg.in/yaml.v3"
2626

2727
"go.opentelemetry.io/collector/component"
28-
"go.opentelemetry.io/collector/component/componenttest"
28+
"go.opentelemetry.io/collector/service/servicetest"
2929
)
3030

3131
func TestNewBuildSubCommand(t *testing.T) {
32-
factories, err := componenttest.NopFactories()
32+
factories, err := servicetest.NopFactories()
3333
require.NoError(t, err)
3434

3535
cfgProvider, err := NewConfigProvider(newDefaultConfigProviderSettings([]string{filepath.Join("testdata", "otelcol-nop.yaml")}))

otelcol/command_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ import (
2222
"github.com/stretchr/testify/require"
2323

2424
"go.opentelemetry.io/collector/component"
25-
"go.opentelemetry.io/collector/component/componenttest"
2625
"go.opentelemetry.io/collector/confmap"
2726
"go.opentelemetry.io/collector/confmap/converter/expandconverter"
2827
"go.opentelemetry.io/collector/confmap/provider/fileprovider"
28+
"go.opentelemetry.io/collector/service/servicetest"
2929
)
3030

3131
func TestNewCommandVersion(t *testing.T) {
@@ -34,15 +34,15 @@ func TestNewCommandVersion(t *testing.T) {
3434
}
3535

3636
func TestNewCommandNoConfigURI(t *testing.T) {
37-
factories, err := componenttest.NopFactories()
37+
factories, err := servicetest.NopFactories()
3838
require.NoError(t, err)
3939

4040
cmd := NewCommand(CollectorSettings{Factories: factories})
4141
require.Error(t, cmd.Execute())
4242
}
4343

4444
func TestNewCommandInvalidComponent(t *testing.T) {
45-
factories, err := componenttest.NopFactories()
45+
factories, err := servicetest.NopFactories()
4646
require.NoError(t, err)
4747

4848
cfgProvider, err := NewConfigProvider(

otelcol/configprovider.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ import (
1818
"context"
1919
"fmt"
2020

21-
"go.opentelemetry.io/collector/component"
2221
"go.opentelemetry.io/collector/confmap"
2322
"go.opentelemetry.io/collector/confmap/converter/expandconverter"
2423
"go.opentelemetry.io/collector/confmap/provider/envprovider"
2524
"go.opentelemetry.io/collector/confmap/provider/fileprovider"
2625
"go.opentelemetry.io/collector/confmap/provider/httpprovider"
2726
"go.opentelemetry.io/collector/confmap/provider/yamlprovider"
27+
"go.opentelemetry.io/collector/service"
2828
)
2929

3030
// ConfigProvider provides the service configuration.
@@ -41,7 +41,7 @@ type ConfigProvider interface {
4141
// Get returns the service configuration, or error otherwise.
4242
//
4343
// Should never be called concurrently with itself, Watch or Shutdown.
44-
Get(ctx context.Context, factories component.Factories) (*Config, error)
44+
Get(ctx context.Context, factories service.Factories) (*Config, error)
4545

4646
// Watch blocks until any configuration change was detected or an unrecoverable error
4747
// happened during monitoring the configuration changes.
@@ -88,7 +88,7 @@ func NewConfigProvider(set ConfigProviderSettings) (ConfigProvider, error) {
8888
}, nil
8989
}
9090

91-
func (cm *configProvider) Get(ctx context.Context, factories component.Factories) (*Config, error) {
91+
func (cm *configProvider) Get(ctx context.Context, factories service.Factories) (*Config, error) {
9292
conf, err := cm.mapResolver.Resolve(ctx)
9393
if err != nil {
9494
return nil, fmt.Errorf("cannot resolve the configuration: %w", err)

otelcol/configprovider_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"go.uber.org/zap/zapcore"
2626

2727
"go.opentelemetry.io/collector/component"
28-
"go.opentelemetry.io/collector/component/componenttest"
2928
"go.opentelemetry.io/collector/config/configtelemetry"
3029
"go.opentelemetry.io/collector/confmap"
3130
"go.opentelemetry.io/collector/confmap/provider/fileprovider"
@@ -35,6 +34,7 @@ import (
3534
"go.opentelemetry.io/collector/processor/processortest"
3635
"go.opentelemetry.io/collector/receiver/receivertest"
3736
"go.opentelemetry.io/collector/service"
37+
"go.opentelemetry.io/collector/service/servicetest"
3838
"go.opentelemetry.io/collector/service/telemetry"
3939
)
4040

@@ -101,7 +101,7 @@ func TestConfigProviderYaml(t *testing.T) {
101101
cp, err := NewConfigProvider(set)
102102
require.NoError(t, err)
103103

104-
factories, err := componenttest.NopFactories()
104+
factories, err := servicetest.NopFactories()
105105
require.NoError(t, err)
106106

107107
cfg, err := cp.Get(context.Background(), factories)
@@ -122,7 +122,7 @@ func TestConfigProviderFile(t *testing.T) {
122122
cp, err := NewConfigProvider(set)
123123
require.NoError(t, err)
124124

125-
factories, err := componenttest.NopFactories()
125+
factories, err := servicetest.NopFactories()
126126
require.NoError(t, err)
127127

128128
cfg, err := cp.Get(context.Background(), factories)

otelcol/otelcoltest/config.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,18 @@ package otelcoltest // import "go.opentelemetry.io/collector/otelcol/otelcoltest
1717
import (
1818
"context"
1919

20-
"go.opentelemetry.io/collector/component"
2120
"go.opentelemetry.io/collector/confmap"
2221
"go.opentelemetry.io/collector/confmap/converter/expandconverter"
2322
"go.opentelemetry.io/collector/confmap/provider/envprovider"
2423
"go.opentelemetry.io/collector/confmap/provider/fileprovider"
2524
"go.opentelemetry.io/collector/confmap/provider/httpprovider"
2625
"go.opentelemetry.io/collector/confmap/provider/yamlprovider"
2726
"go.opentelemetry.io/collector/otelcol"
27+
"go.opentelemetry.io/collector/service"
2828
)
2929

3030
// LoadConfig loads a config.Config from file, and does NOT validate the configuration.
31-
func LoadConfig(fileName string, factories component.Factories) (*otelcol.Config, error) {
31+
func LoadConfig(fileName string, factories service.Factories) (*otelcol.Config, error) {
3232
// Read yaml config from file
3333
provider, err := otelcol.NewConfigProvider(otelcol.ConfigProviderSettings{
3434
ResolverSettings: confmap.ResolverSettings{
@@ -44,7 +44,7 @@ func LoadConfig(fileName string, factories component.Factories) (*otelcol.Config
4444
}
4545

4646
// LoadConfigAndValidate loads a config from the file, and validates the configuration.
47-
func LoadConfigAndValidate(fileName string, factories component.Factories) (*otelcol.Config, error) {
47+
func LoadConfigAndValidate(fileName string, factories service.Factories) (*otelcol.Config, error) {
4848
cfg, err := LoadConfig(fileName, factories)
4949
if err != nil {
5050
return nil, err

otelcol/otelcoltest/config_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ import (
2222
"github.com/stretchr/testify/require"
2323

2424
"go.opentelemetry.io/collector/component"
25-
"go.opentelemetry.io/collector/component/componenttest"
2625
"go.opentelemetry.io/collector/service"
26+
"go.opentelemetry.io/collector/service/servicetest"
2727
)
2828

2929
func TestLoadConfig(t *testing.T) {
30-
factories, err := componenttest.NopFactories()
30+
factories, err := servicetest.NopFactories()
3131
assert.NoError(t, err)
3232

3333
cfg, err := LoadConfig(filepath.Join("testdata", "config.yaml"), factories)
@@ -68,7 +68,7 @@ func TestLoadConfig(t *testing.T) {
6868
}
6969

7070
func TestLoadConfigAndValidate(t *testing.T) {
71-
factories, err := componenttest.NopFactories()
71+
factories, err := servicetest.NopFactories()
7272
assert.NoError(t, err)
7373

7474
cfgValidate, errValidate := LoadConfigAndValidate(filepath.Join("testdata", "config.yaml"), factories)

otelcol/unmarshaler.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ package otelcol // import "go.opentelemetry.io/collector/otelcol"
1717
import (
1818
"go.uber.org/zap/zapcore"
1919

20-
"go.opentelemetry.io/collector/component"
2120
"go.opentelemetry.io/collector/config/configtelemetry"
2221
"go.opentelemetry.io/collector/confmap"
2322
"go.opentelemetry.io/collector/otelcol/internal/configunmarshaler"
@@ -35,7 +34,7 @@ type configSettings struct {
3534

3635
// unmarshal the configSettings from a confmap.Conf.
3736
// After the config is unmarshalled, `Validate()` must be called to validate.
38-
func unmarshal(v *confmap.Conf, factories component.Factories) (*configSettings, error) {
37+
func unmarshal(v *confmap.Conf, factories service.Factories) (*configSettings, error) {
3938
// Unmarshal top level sections and validate.
4039
cfg := &configSettings{
4140
Receivers: configunmarshaler.NewReceivers(factories.Receivers),

otelcol/unmarshaler_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,22 @@ import (
2222
"go.uber.org/zap"
2323

2424
"go.opentelemetry.io/collector/component"
25-
"go.opentelemetry.io/collector/component/componenttest"
2625
"go.opentelemetry.io/collector/confmap"
2726
"go.opentelemetry.io/collector/service"
27+
"go.opentelemetry.io/collector/service/servicetest"
2828
"go.opentelemetry.io/collector/service/telemetry"
2929
)
3030

3131
func TestUnmarshalEmpty(t *testing.T) {
32-
factories, err := componenttest.NopFactories()
32+
factories, err := servicetest.NopFactories()
3333
assert.NoError(t, err)
3434

3535
_, err = unmarshal(confmap.New(), factories)
3636
assert.NoError(t, err)
3737
}
3838

3939
func TestUnmarshalEmptyAllSections(t *testing.T) {
40-
factories, err := componenttest.NopFactories()
40+
factories, err := servicetest.NopFactories()
4141
assert.NoError(t, err)
4242

4343
conf := confmap.NewFromStringMap(map[string]interface{}{
@@ -68,7 +68,7 @@ func TestUnmarshalEmptyAllSections(t *testing.T) {
6868
}
6969

7070
func TestUnmarshalUnknownTopLevel(t *testing.T) {
71-
factories, err := componenttest.NopFactories()
71+
factories, err := servicetest.NopFactories()
7272
assert.NoError(t, err)
7373

7474
conf := confmap.NewFromStringMap(map[string]interface{}{

0 commit comments

Comments
 (0)