update and merged with latest master

This commit is contained in:
Manendra Pal Singh
2025-12-15 10:09:39 +05:30
25 changed files with 1009 additions and 107 deletions

View File

@@ -17,15 +17,19 @@ import (
"github.com/beckn-one/beckn-onix/core/module/handler"
"github.com/beckn-one/beckn-onix/pkg/log"
"github.com/beckn-one/beckn-onix/pkg/plugin"
"github.com/beckn-one/beckn-onix/pkg/plugin/implementation/otelsetup"
"github.com/beckn-one/beckn-onix/pkg/telemetry"
)
// ApplicationPlugins holds application-level plugin configurations.
type ApplicationPlugins struct {
OtelSetup *plugin.Config `yaml:"otelsetup,omitempty"`
}
// Config struct holds all configurations.
type Config struct {
AppName string `yaml:"appName"`
Log log.Config `yaml:"log"`
Telemetry *otelsetup.Config `yaml:"telemetry"`
Plugins ApplicationPlugins `yaml:"plugins,omitempty"`
PluginManager *plugin.ManagerConfig `yaml:"pluginManager"`
Modules []module.Config `yaml:"modules"`
HTTP httpConfig `yaml:"http"`
@@ -95,16 +99,14 @@ func validateConfig(cfg *Config) error {
}
// initPlugins initializes application-level plugins including telemetry.
func initPlugins(ctx context.Context, mgr *plugin.Manager, telemetryCfg *otelsetup.Config) (*telemetry.Provider, error) {
if telemetryCfg == nil {
func initPlugins(ctx context.Context, mgr *plugin.Manager, otelSetupCfg *plugin.Config) (*telemetry.Provider, error) {
if otelSetupCfg == nil {
log.Info(ctx, "Telemetry config not provided; skipping OpenTelemetry setup")
return nil, nil
}
log.Infof(ctx, "Initializing telemetry via plugin id=otelsetup")
pluginConfig := otelsetup.ToPluginConfig(telemetryCfg)
otelProvider, err := mgr.OtelSetup(ctx, pluginConfig)
log.Infof(ctx, "Initializing telemetry via plugin id=%s", otelSetupCfg.ID)
otelProvider, err := mgr.OtelSetup(ctx, otelSetupCfg)
if err != nil {
return nil, fmt.Errorf("failed to initialize telemetry plugin: %w", err)
}
@@ -152,7 +154,7 @@ func run(ctx context.Context, configPath string) error {
log.Debug(ctx, "Plugin manager loaded.")
// Initialize plugins including telemetry.
otelProvider, err := initPlugins(ctx, mgr, cfg.Telemetry)
otelProvider, err := initPlugins(ctx, mgr, cfg.Plugins.OtelSetup)
if err != nil {
return fmt.Errorf("failed to initialize plugins: %w", err)
}

View File

@@ -64,13 +64,18 @@ func (m *MockPluginManager) Cache(ctx context.Context, cfg *plugin.Config) (defi
return nil, nil
}
// Registry returns a mock implementation of the RegistryLookup interface.
func (m *MockPluginManager) Registry(ctx context.Context, cfg *plugin.Config) (definition.RegistryLookup, error) {
return nil, nil
}
// KeyManager returns a mock implementation of the KeyManager interface.
func (m *MockPluginManager) KeyManager(ctx context.Context, cache definition.Cache, rLookup definition.RegistryLookup, cfg *plugin.Config) (definition.KeyManager, error) {
return nil, nil
}
// Registry returns a mock implementation of the RegistryLookup interface.
func (m *MockPluginManager) Registry(ctx context.Context, cfg *plugin.Config) (definition.RegistryLookup, error) {
// TransportWrapper returns a mock implementation of the TransportWrapper interface.
func (m *MockPluginManager) TransportWrapper(ctx context.Context, cfg *plugin.Config) (definition.TransportWrapper, error) {
return nil, nil
}