mirror of
https://github.com/eolinker/apinto
synced 2025-09-26 21:01:19 +08:00
全局插件初始化封装
This commit is contained in:
@@ -27,6 +27,15 @@ type PluginManager struct {
|
|||||||
plugins Plugins
|
plugins Plugins
|
||||||
pluginObjs eosc.Untyped[string, *PluginObj]
|
pluginObjs eosc.Untyped[string, *PluginObj]
|
||||||
workers eosc.IWorkers
|
workers eosc.IWorkers
|
||||||
|
|
||||||
|
global eocontext.IChainPro
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *PluginManager) Global() eocontext.IChainPro {
|
||||||
|
if p.global == nil {
|
||||||
|
p.global = p.createChain("global", map[string]*plugin.Config{})
|
||||||
|
}
|
||||||
|
return p.global
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PluginManager) Check(cfg interface{}) (profession, name, driver, desc string, err error) {
|
func (p *PluginManager) Check(cfg interface{}) (profession, name, driver, desc string, err error) {
|
||||||
|
@@ -38,8 +38,7 @@ func init() {
|
|||||||
|
|
||||||
bean.AddInitializingBeanFunc(func() {
|
bean.AddInitializingBeanFunc(func() {
|
||||||
log.Debug("init router manager")
|
log.Debug("init router manager")
|
||||||
chainProxy = pluginManager.CreateRequest("global", map[string]*plugin.Config{})
|
chainProxy = pluginManager.Global()
|
||||||
manager.SetGlobalFilters(&chainProxy)
|
manager.SetGlobalFilters(&chainProxy)
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@@ -40,7 +40,7 @@ func init() {
|
|||||||
bean.Injection(&m)
|
bean.Injection(&m)
|
||||||
bean.AddInitializingBeanFunc(func() {
|
bean.AddInitializingBeanFunc(func() {
|
||||||
log.Debug("init grpc router manager")
|
log.Debug("init grpc router manager")
|
||||||
chainProxy = pluginManager.CreateRequest("global", map[string]*plugin.Config{})
|
chainProxy = pluginManager.Global()
|
||||||
routerManager.SetGlobalFilters(&chainProxy)
|
routerManager.SetGlobalFilters(&chainProxy)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@@ -37,7 +37,7 @@ func init() {
|
|||||||
bean.Injection(&m)
|
bean.Injection(&m)
|
||||||
bean.AddInitializingBeanFunc(func() {
|
bean.AddInitializingBeanFunc(func() {
|
||||||
log.Debug("init router manager")
|
log.Debug("init router manager")
|
||||||
chainProxy = pluginManager.CreateRequest("global", map[string]*plugin.Config{})
|
chainProxy = pluginManager.Global()
|
||||||
routerManager.SetGlobalFilters(&chainProxy)
|
routerManager.SetGlobalFilters(&chainProxy)
|
||||||
|
|
||||||
})
|
})
|
||||||
|
@@ -5,7 +5,7 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
)
|
)
|
||||||
|
|
||||||
//Config 普通插件配置,在router、service、upstream的插件格式
|
// Config 普通插件配置,在router、service、upstream的插件格式
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Disable bool `json:"disable"`
|
Disable bool `json:"disable"`
|
||||||
Config interface{} `json:"config"`
|
Config interface{} `json:"config"`
|
||||||
@@ -13,6 +13,7 @@ type Config struct {
|
|||||||
|
|
||||||
type IPluginManager interface {
|
type IPluginManager interface {
|
||||||
CreateRequest(id string, conf map[string]*Config) eocontext.IChainPro
|
CreateRequest(id string, conf map[string]*Config) eocontext.IChainPro
|
||||||
|
Global() eocontext.IChainPro
|
||||||
GetConfigType(name string) (reflect.Type, bool)
|
GetConfigType(name string) (reflect.Type, bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user