in config/root_config.go [131:206]
func (rc *RootConfig) Init() error {
registerPOJO()
if err := rc.Logger.Init(); err != nil { // init default logger
return err
}
if err := rc.ConfigCenter.Init(rc); err != nil {
logger.Infof("[Config Center] Config center doesn't start")
logger.Debugf("config center doesn't start because %s", err)
} else {
if err = rc.Logger.Init(); err != nil { // init logger using config from config center again
return err
}
}
if err := rc.Application.Init(); err != nil {
return err
}
// init user define
if err := rc.Custom.Init(); err != nil {
return err
}
// init protocol
protocols := rc.Protocols
if len(protocols) <= 0 {
protocol := &ProtocolConfig{}
protocols = make(map[string]*ProtocolConfig, 1)
protocols[constant.Dubbo] = protocol
rc.Protocols = protocols
}
for _, protocol := range protocols {
if err := protocol.Init(); err != nil {
return err
}
}
// init registry
registries := rc.Registries
if registries != nil {
for _, reg := range registries {
if err := reg.Init(); err != nil {
return err
}
}
}
if err := rc.MetadataReport.Init(rc); err != nil {
return err
}
if err := rc.Metric.Init(); err != nil {
return err
}
for _, t := range rc.Tracing {
if err := t.Init(); err != nil {
return err
}
}
if err := initRouterConfig(rc); err != nil {
return err
}
// provider、consumer must last init
if err := rc.Provider.Init(rc); err != nil {
return err
}
if err := rc.Consumer.Init(rc); err != nil {
return err
}
if err := rc.Shutdown.Init(); err != nil {
return err
}
SetRootConfig(*rc)
// todo if we can remove this from Init in the future?
rc.Start()
return nil
}