Files
Joshua MacDonaldandGitHub 593537a94c Add context.Context to HTTP middleware interface constructors (#14549)
#### Description

API change in extensionmiddleware, an unstable package to allow
middleware access to the start context.

HTTP only. gRPC is treated in #14536.

This is technically a breaking change in configmiddleware and for all
implementations of this extension. We believe no one is using this
feature outside of this repository, see memorylimiter is fixed here.

#### Link to tracking issue

Part of
https://github.com/open-telemetry/opentelemetry-collector/issues/14523

#### Documentation

N/A
2026-03-01 21:43:32 +00:00

51 lines
1.6 KiB
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package extensionmiddlewaretest // import "go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest"
import (
"context"
"google.golang.org/grpc"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/extension"
"go.opentelemetry.io/collector/extension/extensionmiddleware"
)
var (
_ extension.Extension = (*baseExtension)(nil)
_ extensionmiddleware.HTTPClient = (*baseExtension)(nil)
_ extensionmiddleware.GRPCClient = (*baseExtension)(nil)
_ extensionmiddleware.HTTPServer = (*baseExtension)(nil)
_ extensionmiddleware.GRPCServer = (*baseExtension)(nil)
)
type baseExtension struct {
component.StartFunc
component.ShutdownFunc
extensionmiddleware.GetHTTPHandlerFunc
extensionmiddleware.GetGRPCServerOptionsFunc
extensionmiddleware.GetHTTPRoundTripperFunc
extensionmiddleware.GetGRPCClientOptionsFunc
}
// NewErr returns a new [extension.Extension] that implements all
// extensionmiddleware interface and always returns an error.
func NewErr(err error) extension.Extension {
return &baseExtension{
GetHTTPRoundTripperFunc: func(context.Context) (extensionmiddleware.WrapHTTPRoundTripperFunc, error) {
return nil, err
},
GetGRPCClientOptionsFunc: func(context.Context) ([]grpc.DialOption, error) {
return nil, err
},
GetHTTPHandlerFunc: func(context.Context) (extensionmiddleware.WrapHTTPHandlerFunc, error) {
return nil, err
},
GetGRPCServerOptionsFunc: func(context.Context) ([]grpc.ServerOption, error) {
return nil, err
},
}
}