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