config package rework (#9)
* change config interface * reuse codec * allow to modify next config based on values in current config via BeforeLoad Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
67
service.go
67
service.go
@@ -10,7 +10,6 @@ import (
|
||||
"github.com/unistack-org/micro/v3/client"
|
||||
"github.com/unistack-org/micro/v3/config"
|
||||
"github.com/unistack-org/micro/v3/logger"
|
||||
"github.com/unistack-org/micro/v3/network/transport"
|
||||
"github.com/unistack-org/micro/v3/registry"
|
||||
"github.com/unistack-org/micro/v3/router"
|
||||
"github.com/unistack-org/micro/v3/server"
|
||||
@@ -41,18 +40,6 @@ func (s *service) Init(opts ...Option) error {
|
||||
o(&s.opts)
|
||||
}
|
||||
|
||||
if s.opts.Cmd != nil {
|
||||
// set cmd name
|
||||
if len(s.opts.Cmd.App().Name) == 0 {
|
||||
s.opts.Cmd.App().Name = s.Server().Options().Name
|
||||
}
|
||||
|
||||
// Initialise the command options
|
||||
if err := s.opts.Cmd.Init(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if s.opts.Logger != nil {
|
||||
if err := s.opts.Logger.Init(
|
||||
logger.WithContext(s.opts.Context),
|
||||
@@ -61,6 +48,14 @@ func (s *service) Init(opts ...Option) error {
|
||||
}
|
||||
}
|
||||
|
||||
if s.opts.Configs != nil {
|
||||
for _, c := range s.opts.Configs {
|
||||
if err := c.Init(config.Context(s.opts.Context) ); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if s.opts.Registry != nil {
|
||||
if err := s.opts.Registry.Init(
|
||||
registry.Context(s.opts.Context),
|
||||
@@ -77,14 +72,6 @@ func (s *service) Init(opts ...Option) error {
|
||||
}
|
||||
}
|
||||
|
||||
if s.opts.Transport != nil {
|
||||
if err := s.opts.Transport.Init(
|
||||
transport.Context(s.opts.Context),
|
||||
); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if s.opts.Store != nil {
|
||||
if err := s.opts.Store.Init(
|
||||
store.Context(s.opts.Context),
|
||||
@@ -140,14 +127,6 @@ func (s *service) Logger() logger.Logger {
|
||||
return s.opts.Logger
|
||||
}
|
||||
|
||||
func (s *service) Transport() transport.Transport {
|
||||
return s.opts.Transport
|
||||
}
|
||||
|
||||
func (s *service) Config() config.Config {
|
||||
return s.opts.Config
|
||||
}
|
||||
|
||||
func (s *service) Auth() auth.Auth {
|
||||
return s.opts.Auth
|
||||
}
|
||||
@@ -172,11 +151,27 @@ func (s *service) Start() error {
|
||||
}
|
||||
|
||||
for _, fn := range s.opts.BeforeStart {
|
||||
if err = fn(); err != nil {
|
||||
if err = fn(s.opts.Context); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
for _, cfg := range s.opts.Configs {
|
||||
for _, fn := range cfg.Options().BeforeLoad {
|
||||
if err := fn(s.opts.Context, cfg); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if err := cfg.Load(s.opts.Context); err != nil {
|
||||
return err
|
||||
}
|
||||
for _, fn := range cfg.Options().AfterLoad {
|
||||
if err := fn(s.opts.Context, cfg); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if s.opts.Server == nil {
|
||||
return fmt.Errorf("cant start nil server")
|
||||
}
|
||||
@@ -204,7 +199,7 @@ func (s *service) Start() error {
|
||||
}
|
||||
|
||||
for _, fn := range s.opts.AfterStart {
|
||||
if err = fn(); err != nil {
|
||||
if err = fn(s.opts.Context); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -223,7 +218,7 @@ func (s *service) Stop() error {
|
||||
|
||||
var err error
|
||||
for _, fn := range s.opts.BeforeStop {
|
||||
if err = fn(); err != nil {
|
||||
if err = fn(s.opts.Context); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -233,7 +228,7 @@ func (s *service) Stop() error {
|
||||
}
|
||||
|
||||
for _, fn := range s.opts.AfterStop {
|
||||
if err = fn(); err != nil {
|
||||
if err = fn(s.opts.Context); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -273,12 +268,6 @@ func (s *service) Run() error {
|
||||
defer s.opts.Profile.Stop()
|
||||
}
|
||||
|
||||
if s.opts.Cmd != nil {
|
||||
if err := s.opts.Cmd.Run(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if err := s.Start(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user