From d19a14b07561a7ac5a76b3a62f26951922b9fea5 Mon Sep 17 00:00:00 2001
From: pantianying <601666418@qq.com>
Date: Fri, 5 Jul 2019 15:37:51 +0800
Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E6=88=90=E5=92=8Cjava=E4=B8=80?=
 =?UTF-8?q?=E6=A0=B7=E7=9A=84=E4=BD=BF=E7=94=A8=E6=96=B9=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 config/generic_reference_config.go     | 54 ++++----------------------
 examples/dubbo/go-client/app/client.go |  8 ++--
 2 files changed, 11 insertions(+), 51 deletions(-)

diff --git a/config/generic_reference_config.go b/config/generic_reference_config.go
index 87ec0002c..aa73ed2ba 100644
--- a/config/generic_reference_config.go
+++ b/config/generic_reference_config.go
@@ -1,64 +1,24 @@
 package config
 
-import (
-	"context"
-	"errors"
-)
-
-const GenericReferKey = "GenericReferKey"
-
 type GenericService struct {
 	Invoke       func(req []interface{}) (interface{}, error) `dubbo:"$invoke"`
 	referenceStr string
 }
 
 func NewGenericService(referenceStr string) *GenericService {
-	return &GenericService{referenceStr: GenericReferKey}
+	return &GenericService{referenceStr: referenceStr}
 }
 
 func (u *GenericService) Reference() string {
 	return u.referenceStr
 }
 
-type GenericConsumerConfig struct {
-	ID             string
-	Protocol       string
-	Registry       string
-	Version        string
-	Group          string
-	InterfaceName  string
-	Cluster        string
-	Retries        int64
-	ref            *ReferenceConfig
-	genericService *GenericService
-}
-
-func (gConfig *GenericConsumerConfig) Load() (err error) {
-
-	gr := NewReferenceConfig(context.TODO())
+func (refconfig *ReferenceConfig) Load(id string) {
 	//gr.Filter = "genericConsumer" //todo: add genericConsumer filter
-	gr.Registry = gConfig.Registry
-	gr.Protocol = gConfig.Protocol
-	gr.Version = gConfig.Version
-	gr.Group = gConfig.Group
-	gr.InterfaceName = gConfig.InterfaceName
-	gr.Cluster = gConfig.Cluster
-	gr.Methods = append(gr.Methods, &MethodConfig{Name: "$invoke", Retries: gConfig.Retries})
-	gConfig.ref = gr
-	gConfig.genericService = NewGenericService(gConfig.ID)
-	SetConsumerService(gConfig.genericService)
-	rpcService := GetConsumerService(GenericReferKey)
-	if rpcService == nil {
-		err = errors.New("get rpcService err,GenericReferKey not Set ")
-		return
-	}
-
-	gConfig.ref.id = gConfig.ID
-	gConfig.ref.Refer()
-	gConfig.ref.Implement(rpcService)
+	genericService := NewGenericService(refconfig.id)
+	SetConsumerService(genericService)
+	refconfig.id = id
+	refconfig.Refer()
+	refconfig.Implement(genericService)
 	return
-
-}
-func (gConfig *GenericConsumerConfig) GetGenericService() *GenericService {
-	return gConfig.genericService
 }
diff --git a/examples/dubbo/go-client/app/client.go b/examples/dubbo/go-client/app/client.go
index d0694615a..186ef2612 100644
--- a/examples/dubbo/go-client/app/client.go
+++ b/examples/dubbo/go-client/app/client.go
@@ -290,18 +290,18 @@ func test2() {
 	println("error: %v", err)
 }
 func test3() {
-	var genericConfig = config.GenericConsumerConfig{
-		ID:            "UserProviderGer", //GetService鐨勫敮涓€鏍囪瘑涓嶅彲缂哄皯
+	var appName = "UserProviderGer"
+	var referenceConfig = config.ReferenceConfig{
 		InterfaceName: "com.ikurento.user.UserProvider",
 		Cluster:       "failover",
 		Registry:      "hangzhouzk",
 		Protocol:      dubbo.DUBBO,
 	}
-	genericConfig.Load()
+	referenceConfig.Load(appName) //appName鏄疓etService鐨勫敮涓€鏍囪瘑涓嶅彲缂哄皯
 
 	time.Sleep(3 * time.Second)
 	println("\n\n\nstart to generic invoke")
-	resp, err := genericConfig.GetGenericService().Invoke([]interface{}{"GetUser", []string{"java.lang.String"}, []hessian.Object{"A003"}})
+	resp, err := referenceConfig.GetRPCService().(*config.GenericService).Invoke([]interface{}{"GetUser", []string{"java.lang.String"}, []hessian.Object{"A003"}})
 	if err != nil {
 		panic(err)
 	}
-- 
GitLab