mirror of
https://github.com/hanzoai/telemetry.git
synced 2026-10-30 20:01:49 +00:00
Add support for deprecated component type aliases to extensions, following the implementation started in #14349 The new `xextension.WithDeprecatedTypeAlias` factory option allows extension authors to register deprecated type aliases using: ```go xextension.NewFactory( newType, createDefaultConfig, createExtension, component.StabilityLevelAlpha, xextension.WithDeprecatedTypeAlias(oldType), )
61 lines
1.7 KiB
Go
61 lines
1.7 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package xextension
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"go.opentelemetry.io/collector/component"
|
|
"go.opentelemetry.io/collector/component/componenttest"
|
|
"go.opentelemetry.io/collector/extension"
|
|
)
|
|
|
|
type nopExtension struct {
|
|
component.StartFunc
|
|
component.ShutdownFunc
|
|
}
|
|
|
|
func TestWithDeprecatedTypeAlias(t *testing.T) {
|
|
originalType := component.MustNewType("original")
|
|
aliasType := component.MustNewType("alias")
|
|
nopExtensionInstance := new(nopExtension)
|
|
|
|
factory := NewFactory(
|
|
originalType,
|
|
func() component.Config { return &struct{}{} },
|
|
func(context.Context, extension.Settings, component.Config) (extension.Extension, error) {
|
|
return nopExtensionInstance, nil
|
|
},
|
|
component.StabilityLevelAlpha,
|
|
WithDeprecatedTypeAlias(aliasType),
|
|
)
|
|
|
|
assert.Equal(t, originalType, factory.Type())
|
|
|
|
ext, err := factory.Create(context.Background(), extension.Settings{
|
|
ID: component.NewID(originalType),
|
|
TelemetrySettings: componenttest.NewNopTelemetrySettings(),
|
|
}, factory.CreateDefaultConfig())
|
|
require.NoError(t, err)
|
|
require.NotNil(t, ext)
|
|
|
|
ext, err = factory.Create(context.Background(), extension.Settings{
|
|
ID: component.NewID(aliasType),
|
|
TelemetrySettings: componenttest.NewNopTelemetrySettings(),
|
|
}, factory.CreateDefaultConfig())
|
|
require.NoError(t, err)
|
|
require.NotNil(t, ext)
|
|
|
|
ext, err = factory.Create(context.Background(), extension.Settings{
|
|
ID: component.NewID(component.MustNewType("wrong")),
|
|
TelemetrySettings: componenttest.NewNopTelemetrySettings(),
|
|
}, factory.CreateDefaultConfig())
|
|
require.Error(t, err)
|
|
require.Nil(t, ext)
|
|
}
|