Browse Source

support more than one type for a config

Shelikhoo 4 years ago
parent
commit
c89d629943
1 changed files with 7 additions and 1 deletions
  1. 7 1
      common/registry/registry.go

+ 7 - 1
common/registry/registry.go

@@ -19,7 +19,13 @@ type implementationRegistry struct {
 }
 
 func (i *implementationRegistry) RegisterImplementation(name string, opt *protoext.MessageOpt, loader CustomLoader) {
-	interfaceType := opt.GetType()[0]
+	interfaceType := opt.GetType()
+	for _, v := range interfaceType {
+		i.registerSingleImplementation(v, name, opt, loader)
+	}
+}
+
+func (i *implementationRegistry) registerSingleImplementation(interfaceType, name string, opt *protoext.MessageOpt, loader CustomLoader) {
 	implSet, found := i.implSet[interfaceType]
 	if !found {
 		implSet = newImplementationSet()