This is an automated email from the ASF dual-hosted git repository.

alexstocks pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new 72c00a4  refine grpc code (#1261)
72c00a4 is described below

commit 72c00a480b145eb41fdeac7014cea32cc562b972
Author: gaoxinge <[email protected]>
AuthorDate: Thu Jun 17 13:36:14 2021 +0800

    refine grpc code (#1261)
    
    * remove grpc plugin dependency on grpc protocol
    
    * move pb and pb.go to internal
---
 .../examples => internal}/Makefile                 |   0
 protocol/grpc/internal/README.md                   |   8 +
 protocol/grpc/internal/doc.go                      |   1 -
 protocol/grpc/internal/helloworld.pb.go            | 165 ++++++++----
 .../examples => internal}/helloworld.proto         |   2 +-
 .../protoc-gen-dubbo/examples/helloworld.pb.go     | 300 ---------------------
 .../grpc/protoc-gen-dubbo/plugin/dubbo/dubbo.go    |  17 +-
 7 files changed, 143 insertions(+), 350 deletions(-)

diff --git a/protocol/grpc/protoc-gen-dubbo/examples/Makefile 
b/protocol/grpc/internal/Makefile
similarity index 100%
rename from protocol/grpc/protoc-gen-dubbo/examples/Makefile
rename to protocol/grpc/internal/Makefile
diff --git a/protocol/grpc/internal/README.md b/protocol/grpc/internal/README.md
new file mode 100644
index 0000000..8151b34
--- /dev/null
+++ b/protocol/grpc/internal/README.md
@@ -0,0 +1,8 @@
+# internal
+
+This internal package is for test. So don't use internal in production.
+
+## require
+
+- protoc
+- protoc-gen-go: github.com/golang/protobuf/[email protected]
diff --git a/protocol/grpc/internal/doc.go b/protocol/grpc/internal/doc.go
index b70fc24..dbd12ff 100644
--- a/protocol/grpc/internal/doc.go
+++ b/protocol/grpc/internal/doc.go
@@ -15,5 +15,4 @@
  * limitations under the License.
  */
 
-// just for test, never use internal for production.
 package internal
diff --git a/protocol/grpc/internal/helloworld.pb.go 
b/protocol/grpc/internal/helloworld.pb.go
index 2ea04fd..12376db 100644
--- a/protocol/grpc/internal/helloworld.pb.go
+++ b/protocol/grpc/internal/helloworld.pb.go
@@ -21,23 +21,25 @@
 package internal
 
 import (
-       "context"
-       "fmt"
-       "math"
-
-       "github.com/golang/protobuf/proto"
-       "google.golang.org/grpc"
-       "google.golang.org/grpc/codes"
-       "google.golang.org/grpc/status"
+       context "context"
+       fmt "fmt"
+       proto "github.com/golang/protobuf/proto"
+       grpc "google.golang.org/grpc"
+       codes "google.golang.org/grpc/codes"
+       status "google.golang.org/grpc/status"
+       math "math"
 )
 
-// Reference imports to suppress errors if they are not otherwise used.
-var (
-       _ = proto.Marshal
-       _ = fmt.Errorf
-       _ = math.Inf
+import (
+       "dubbo.apache.org/dubbo-go/v3/protocol"
+       "dubbo.apache.org/dubbo-go/v3/protocol/invocation"
 )
 
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the proto package it is being compiled against.
 // A compilation error at this line likely means your copy of the
@@ -62,19 +64,15 @@ func (*HelloRequest) Descriptor() ([]byte, []int) {
 func (m *HelloRequest) XXX_Unmarshal(b []byte) error {
        return xxx_messageInfo_HelloRequest.Unmarshal(m, b)
 }
-
 func (m *HelloRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, 
error) {
        return xxx_messageInfo_HelloRequest.Marshal(b, m, deterministic)
 }
-
 func (m *HelloRequest) XXX_Merge(src proto.Message) {
        xxx_messageInfo_HelloRequest.Merge(m, src)
 }
-
 func (m *HelloRequest) XXX_Size() int {
        return xxx_messageInfo_HelloRequest.Size(m)
 }
-
 func (m *HelloRequest) XXX_DiscardUnknown() {
        xxx_messageInfo_HelloRequest.DiscardUnknown(m)
 }
@@ -106,19 +104,15 @@ func (*HelloReply) Descriptor() ([]byte, []int) {
 func (m *HelloReply) XXX_Unmarshal(b []byte) error {
        return xxx_messageInfo_HelloReply.Unmarshal(m, b)
 }
-
 func (m *HelloReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) 
{
        return xxx_messageInfo_HelloReply.Marshal(b, m, deterministic)
 }
-
 func (m *HelloReply) XXX_Merge(src proto.Message) {
        xxx_messageInfo_HelloReply.Merge(m, src)
 }
-
 func (m *HelloReply) XXX_Size() int {
        return xxx_messageInfo_HelloReply.Size(m)
 }
-
 func (m *HelloReply) XXX_DiscardUnknown() {
        xxx_messageInfo_HelloReply.DiscardUnknown(m)
 }
@@ -133,36 +127,35 @@ func (m *HelloReply) GetMessage() string {
 }
 
 func init() {
-       proto.RegisterType((*HelloRequest)(nil), "helloworld.HelloRequest")
-       proto.RegisterType((*HelloReply)(nil), "helloworld.HelloReply")
+       proto.RegisterType((*HelloRequest)(nil), "internal.HelloRequest")
+       proto.RegisterType((*HelloReply)(nil), "internal.HelloReply")
 }
 
 func init() { proto.RegisterFile("helloworld.proto", 
fileDescriptor_17b8c58d586b62f2) }
 
 var fileDescriptor_17b8c58d586b62f2 = []byte{
-       // 175 bytes of a gzipped FileDescriptorProto
+       // 189 bytes of a gzipped FileDescriptorProto
        0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 
0xc8, 0x48, 0xcd, 0xc9,
-       0xc9, 0x2f, 0xcf, 0x2f, 0xca, 0x49, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 
0x17, 0xe2, 0x42, 0x88,
-       0x28, 0x29, 0x71, 0xf1, 0x78, 0x80, 0x78, 0x41, 0xa9, 0x85, 0xa5, 0xa9, 
0xc5, 0x25, 0x42, 0x42,
-       0x5c, 0x2c, 0x79, 0x89, 0xb9, 0xa9, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0x9c, 
0x41, 0x60, 0xb6, 0x92,
-       0x1a, 0x17, 0x17, 0x54, 0x4d, 0x41, 0x4e, 0xa5, 0x90, 0x04, 0x17, 0x7b, 
0x6e, 0x6a, 0x71, 0x71,
-       0x62, 0x3a, 0x4c, 0x11, 0x8c, 0x6b, 0xe4, 0xc9, 0xc5, 0xee, 0x5e, 0x94, 
0x9a, 0x5a, 0x92, 0x5a,
-       0x24, 0x64, 0xc7, 0xc5, 0x11, 0x9c, 0x58, 0x09, 0xd6, 0x25, 0x24, 0xa1, 
0x87, 0xe4, 0x02, 0x64,
-       0xcb, 0xa4, 0xc4, 0xb0, 0xc8, 0x14, 0xe4, 0x54, 0x2a, 0x31, 0x38, 0x19, 
0x70, 0x49, 0x67, 0xe6,
-       0xeb, 0xa5, 0x17, 0x15, 0x24, 0xeb, 0xa5, 0x56, 0x24, 0xe6, 0x16, 0xe4, 
0xa4, 0x16, 0x23, 0xa9,
-       0x75, 0xe2, 0x07, 0x2b, 0x0e, 0x07, 0xb1, 0x03, 0x40, 0x5e, 0x0a, 0x60, 
0x4c, 0x62, 0x03, 0xfb,
-       0xcd, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x0f, 0xb7, 0xcd, 0xf2, 0xef, 
0x00, 0x00, 0x00,
+       0xc9, 0x2f, 0xcf, 0x2f, 0xca, 0x49, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 
0x17, 0xe2, 0xc8, 0xcc,
+       0x2b, 0x49, 0x2d, 0xca, 0x4b, 0xcc, 0x51, 0x52, 0xe2, 0xe2, 0xf1, 0x00, 
0xc9, 0x06, 0xa5, 0x16,
+       0x96, 0xa6, 0x16, 0x97, 0x08, 0x09, 0x71, 0xb1, 0xe4, 0x25, 0xe6, 0xa6, 
0x4a, 0x30, 0x2a, 0x30,
+       0x6a, 0x70, 0x06, 0x81, 0xd9, 0x4a, 0x6a, 0x5c, 0x5c, 0x50, 0x35, 0x05, 
0x39, 0x95, 0x42, 0x12,
+       0x5c, 0xec, 0xb9, 0xa9, 0xc5, 0xc5, 0x89, 0xe9, 0x30, 0x45, 0x30, 0xae, 
0x91, 0x2b, 0x17, 0xbb,
+       0x7b, 0x51, 0x6a, 0x6a, 0x49, 0x6a, 0x91, 0x90, 0x15, 0x17, 0x47, 0x70, 
0x62, 0x25, 0x58, 0x97,
+       0x90, 0x98, 0x1e, 0xcc, 0x36, 0x3d, 0x64, 0xab, 0xa4, 0x44, 0x30, 0xc4, 
0x0b, 0x72, 0x2a, 0x95,
+       0x18, 0x9c, 0xcc, 0xb8, 0xa4, 0x33, 0xf3, 0xf5, 0xd2, 0x8b, 0x0a, 0x92, 
0xf5, 0x52, 0x2b, 0x12,
+       0x73, 0x0b, 0x72, 0x52, 0x8b, 0xf5, 0x10, 0x3e, 0x70, 0xe2, 0x07, 0x2b, 
0x0e, 0x07, 0xb1, 0x03,
+       0x40, 0x9e, 0x09, 0x60, 0x5c, 0xc4, 0xc4, 0xec, 0xe1, 0x13, 0x9e, 0xc4, 
0x06, 0xf6, 0x9b, 0x31,
+       0x20, 0x00, 0x00, 0xff, 0xff, 0xc4, 0x20, 0xe8, 0xd3, 0xef, 0x00, 0x00, 
0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
-var (
-       _ context.Context
-       _ grpc.ClientConn
-)
+var _ context.Context
+var _ grpc.ClientConnInterface
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion4
+const _ = grpc.SupportPackageIsVersion6
 
 // GreeterClient is the client API for Greeter service.
 //
@@ -173,16 +166,16 @@ type GreeterClient interface {
 }
 
 type greeterClient struct {
-       cc *grpc.ClientConn
+       cc grpc.ClientConnInterface
 }
 
-func NewGreeterClient(cc *grpc.ClientConn) GreeterClient {
+func NewGreeterClient(cc grpc.ClientConnInterface) GreeterClient {
        return &greeterClient{cc}
 }
 
 func (c *greeterClient) SayHello(ctx context.Context, in *HelloRequest, opts 
...grpc.CallOption) (*HelloReply, error) {
        out := new(HelloReply)
-       err := c.cc.Invoke(ctx, "/helloworld.Greeter/SayHello", in, out, 
opts...)
+       err := c.cc.Invoke(ctx, "/internal.Greeter/SayHello", in, out, opts...)
        if err != nil {
                return nil, err
        }
@@ -196,7 +189,8 @@ type GreeterServer interface {
 }
 
 // UnimplementedGreeterServer can be embedded to have forward compatible 
implementations.
-type UnimplementedGreeterServer struct{}
+type UnimplementedGreeterServer struct {
+}
 
 func (*UnimplementedGreeterServer) SayHello(ctx context.Context, req 
*HelloRequest) (*HelloReply, error) {
        return nil, status.Errorf(codes.Unimplemented, "method SayHello not 
implemented")
@@ -216,7 +210,7 @@ func _Greeter_SayHello_Handler(srv interface{}, ctx 
context.Context, dec func(in
        }
        info := &grpc.UnaryServerInfo{
                Server:     srv,
-               FullMethod: "/helloworld.Greeter/SayHello",
+               FullMethod: "/internal.Greeter/SayHello",
        }
        handler := func(ctx context.Context, req interface{}) (interface{}, 
error) {
                return srv.(GreeterServer).SayHello(ctx, req.(*HelloRequest))
@@ -225,7 +219,7 @@ func _Greeter_SayHello_Handler(srv interface{}, ctx 
context.Context, dec func(in
 }
 
 var _Greeter_serviceDesc = grpc.ServiceDesc{
-       ServiceName: "helloworld.Greeter",
+       ServiceName: "internal.Greeter",
        HandlerType: (*GreeterServer)(nil),
        Methods: []grpc.MethodDesc{
                {
@@ -236,3 +230,84 @@ var _Greeter_serviceDesc = grpc.ServiceDesc{
        Streams:  []grpc.StreamDesc{},
        Metadata: "helloworld.proto",
 }
+
+// GreeterClientImpl is the client API for Greeter service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please 
refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type GreeterClientImpl struct {
+       // Sends a greeting
+       SayHello func(ctx context.Context, in *HelloRequest, out *HelloReply) 
error
+}
+
+func (c *GreeterClientImpl) Reference() string {
+       return "greeterImpl"
+}
+
+func (c *GreeterClientImpl) GetDubboStub(cc *grpc.ClientConn) GreeterClient {
+       return NewGreeterClient(cc)
+}
+
+// DubboGrpcService is gRPC service
+type DubboGrpcService interface {
+       // SetProxyImpl sets proxy.
+       SetProxyImpl(impl protocol.Invoker)
+       // GetProxyImpl gets proxy.
+       GetProxyImpl() protocol.Invoker
+       // ServiceDesc gets an RPC service's specification.
+       ServiceDesc() *grpc.ServiceDesc
+}
+
+type GreeterProviderBase struct {
+       proxyImpl protocol.Invoker
+}
+
+func (s *GreeterProviderBase) SetProxyImpl(impl protocol.Invoker) {
+       s.proxyImpl = impl
+}
+
+func (s *GreeterProviderBase) GetProxyImpl() protocol.Invoker {
+       return s.proxyImpl
+}
+
+func (c *GreeterProviderBase) Reference() string {
+       return "greeterImpl"
+}
+
+func _DUBBO_Greeter_SayHello_Handler(srv interface{}, ctx context.Context, dec 
func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, 
error) {
+       in := new(HelloRequest)
+       if err := dec(in); err != nil {
+               return nil, err
+       }
+       base := srv.(DubboGrpcService)
+       args := []interface{}{}
+       args = append(args, in)
+       invo := invocation.NewRPCInvocation("SayHello", args, nil)
+       if interceptor == nil {
+               result := base.GetProxyImpl().Invoke(ctx, invo)
+               return result.Result(), result.Error()
+       }
+       info := &grpc.UnaryServerInfo{
+               Server:     srv,
+               FullMethod: "/internal.Greeter/SayHello",
+       }
+       handler := func(ctx context.Context, req interface{}) (interface{}, 
error) {
+               result := base.GetProxyImpl().Invoke(ctx, invo)
+               return result.Result(), result.Error()
+       }
+       return interceptor(ctx, in, info, handler)
+}
+
+func (s *GreeterProviderBase) ServiceDesc() *grpc.ServiceDesc {
+       return &grpc.ServiceDesc{
+               ServiceName: "internal.Greeter",
+               HandlerType: (*GreeterServer)(nil),
+               Methods: []grpc.MethodDesc{
+                       {
+                               MethodName: "SayHello",
+                               Handler:    _DUBBO_Greeter_SayHello_Handler,
+                       },
+               },
+               Streams:  []grpc.StreamDesc{},
+               Metadata: "helloworld.proto",
+       }
+}
diff --git a/protocol/grpc/protoc-gen-dubbo/examples/helloworld.proto 
b/protocol/grpc/internal/helloworld.proto
similarity index 95%
rename from protocol/grpc/protoc-gen-dubbo/examples/helloworld.proto
rename to protocol/grpc/internal/helloworld.proto
index 87e5e2c..102b143 100644
--- a/protocol/grpc/protoc-gen-dubbo/examples/helloworld.proto
+++ b/protocol/grpc/internal/helloworld.proto
@@ -21,7 +21,7 @@ option java_package = "io.grpc.examples.helloworld";
 option java_outer_classname = "HelloWorldProto";
 option objc_class_prefix = "HLW";
 
-package main;
+package internal;
 
 // The greeting service definition.
 service Greeter {
diff --git a/protocol/grpc/protoc-gen-dubbo/examples/helloworld.pb.go 
b/protocol/grpc/protoc-gen-dubbo/examples/helloworld.pb.go
deleted file mode 100644
index 2f2b3df..0000000
--- a/protocol/grpc/protoc-gen-dubbo/examples/helloworld.pb.go
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// source: helloworld.proto
-
-package main
-
-import (
-       context "context"
-       fmt "fmt"
-       proto "github.com/golang/protobuf/proto"
-       grpc "google.golang.org/grpc"
-       codes "google.golang.org/grpc/codes"
-       status "google.golang.org/grpc/status"
-       math "math"
-)
-
-import (
-       "dubbo.apache.org/dubbo-go/v3/protocol"
-       dgrpc "dubbo.apache.org/dubbo-go/v3/protocol/grpc"
-       "dubbo.apache.org/dubbo-go/v3/protocol/invocation"
-)
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
-
-// The request message containing the user's name.
-type HelloRequest struct {
-       Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" 
json:"name,omitempty"`
-       XXX_NoUnkeyedLiteral struct{} `json:"-"`
-       XXX_unrecognized     []byte   `json:"-"`
-       XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *HelloRequest) Reset()         { *m = HelloRequest{} }
-func (m *HelloRequest) String() string { return proto.CompactTextString(m) }
-func (*HelloRequest) ProtoMessage()    {}
-func (*HelloRequest) Descriptor() ([]byte, []int) {
-       return fileDescriptor_17b8c58d586b62f2, []int{0}
-}
-
-func (m *HelloRequest) XXX_Unmarshal(b []byte) error {
-       return xxx_messageInfo_HelloRequest.Unmarshal(m, b)
-}
-func (m *HelloRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, 
error) {
-       return xxx_messageInfo_HelloRequest.Marshal(b, m, deterministic)
-}
-func (m *HelloRequest) XXX_Merge(src proto.Message) {
-       xxx_messageInfo_HelloRequest.Merge(m, src)
-}
-func (m *HelloRequest) XXX_Size() int {
-       return xxx_messageInfo_HelloRequest.Size(m)
-}
-func (m *HelloRequest) XXX_DiscardUnknown() {
-       xxx_messageInfo_HelloRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_HelloRequest proto.InternalMessageInfo
-
-func (m *HelloRequest) GetName() string {
-       if m != nil {
-               return m.Name
-       }
-       return ""
-}
-
-// The response message containing the greetings
-type HelloReply struct {
-       Message              string   
`protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
-       XXX_NoUnkeyedLiteral struct{} `json:"-"`
-       XXX_unrecognized     []byte   `json:"-"`
-       XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *HelloReply) Reset()         { *m = HelloReply{} }
-func (m *HelloReply) String() string { return proto.CompactTextString(m) }
-func (*HelloReply) ProtoMessage()    {}
-func (*HelloReply) Descriptor() ([]byte, []int) {
-       return fileDescriptor_17b8c58d586b62f2, []int{1}
-}
-
-func (m *HelloReply) XXX_Unmarshal(b []byte) error {
-       return xxx_messageInfo_HelloReply.Unmarshal(m, b)
-}
-func (m *HelloReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) 
{
-       return xxx_messageInfo_HelloReply.Marshal(b, m, deterministic)
-}
-func (m *HelloReply) XXX_Merge(src proto.Message) {
-       xxx_messageInfo_HelloReply.Merge(m, src)
-}
-func (m *HelloReply) XXX_Size() int {
-       return xxx_messageInfo_HelloReply.Size(m)
-}
-func (m *HelloReply) XXX_DiscardUnknown() {
-       xxx_messageInfo_HelloReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_HelloReply proto.InternalMessageInfo
-
-func (m *HelloReply) GetMessage() string {
-       if m != nil {
-               return m.Message
-       }
-       return ""
-}
-
-func init() {
-       proto.RegisterType((*HelloRequest)(nil), "main.HelloRequest")
-       proto.RegisterType((*HelloReply)(nil), "main.HelloReply")
-}
-
-func init() { proto.RegisterFile("helloworld.proto", 
fileDescriptor_17b8c58d586b62f2) }
-
-var fileDescriptor_17b8c58d586b62f2 = []byte{
-       // 185 bytes of a gzipped FileDescriptorProto
-       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 
0xc8, 0x48, 0xcd, 0xc9,
-       0xc9, 0x2f, 0xcf, 0x2f, 0xca, 0x49, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 
0x17, 0x62, 0xc9, 0x4d,
-       0xcc, 0xcc, 0x53, 0x52, 0xe2, 0xe2, 0xf1, 0x00, 0xc9, 0x04, 0xa5, 0x16, 
0x96, 0xa6, 0x16, 0x97,
-       0x08, 0x09, 0x71, 0xb1, 0xe4, 0x25, 0xe6, 0xa6, 0x4a, 0x30, 0x2a, 0x30, 
0x6a, 0x70, 0x06, 0x81,
-       0xd9, 0x4a, 0x6a, 0x5c, 0x5c, 0x50, 0x35, 0x05, 0x39, 0x95, 0x42, 0x12, 
0x5c, 0xec, 0xb9, 0xa9,
-       0xc5, 0xc5, 0x89, 0xe9, 0x30, 0x45, 0x30, 0xae, 0x91, 0x2d, 0x17, 0xbb, 
0x7b, 0x51, 0x6a, 0x6a,
-       0x49, 0x6a, 0x91, 0x90, 0x11, 0x17, 0x47, 0x70, 0x62, 0x25, 0x58, 0x97, 
0x90, 0x90, 0x1e, 0xc8,
-       0x26, 0x3d, 0x64, 0x6b, 0xa4, 0x04, 0x50, 0xc4, 0x0a, 0x72, 0x2a, 0x95, 
0x18, 0x9c, 0xcc, 0xb8,
-       0xa4, 0x33, 0xf3, 0xf5, 0xd2, 0x8b, 0x0a, 0x92, 0xf5, 0x52, 0x2b, 0x12, 
0x73, 0x0b, 0x72, 0x52,
-       0x8b, 0xf5, 0x10, 0xae, 0x76, 0xe2, 0x07, 0x2b, 0x0e, 0x07, 0xb1, 0x03, 
0x40, 0x1e, 0x08, 0x60,
-       0x5c, 0xc4, 0xc4, 0xec, 0xe1, 0x13, 0x9e, 0xc4, 0x06, 0xf6, 0x8f, 0x31, 
0x20, 0x00, 0x00, 0xff,
-       0xff, 0xd2, 0x16, 0x5f, 0x34, 0xe3, 0x00, 0x00, 0x00,
-}
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConnInterface
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion6
-
-// GreeterClient is the client API for Greeter service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please 
refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type GreeterClient interface {
-       // Sends a greeting
-       SayHello(ctx context.Context, in *HelloRequest, opts 
...grpc.CallOption) (*HelloReply, error)
-}
-
-type greeterClient struct {
-       cc grpc.ClientConnInterface
-}
-
-func NewGreeterClient(cc grpc.ClientConnInterface) GreeterClient {
-       return &greeterClient{cc}
-}
-
-func (c *greeterClient) SayHello(ctx context.Context, in *HelloRequest, opts 
...grpc.CallOption) (*HelloReply, error) {
-       out := new(HelloReply)
-       err := c.cc.Invoke(ctx, "/main.Greeter/SayHello", in, out, opts...)
-       if err != nil {
-               return nil, err
-       }
-       return out, nil
-}
-
-// GreeterServer is the server API for Greeter service.
-type GreeterServer interface {
-       // Sends a greeting
-       SayHello(context.Context, *HelloRequest) (*HelloReply, error)
-}
-
-// UnimplementedGreeterServer can be embedded to have forward compatible 
implementations.
-type UnimplementedGreeterServer struct {
-}
-
-func (*UnimplementedGreeterServer) SayHello(ctx context.Context, req 
*HelloRequest) (*HelloReply, error) {
-       return nil, status.Errorf(codes.Unimplemented, "method SayHello not 
implemented")
-}
-
-func RegisterGreeterServer(s *grpc.Server, srv GreeterServer) {
-       s.RegisterService(&_Greeter_serviceDesc, srv)
-}
-
-func _Greeter_SayHello_Handler(srv interface{}, ctx context.Context, dec 
func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, 
error) {
-       in := new(HelloRequest)
-       if err := dec(in); err != nil {
-               return nil, err
-       }
-       if interceptor == nil {
-               return srv.(GreeterServer).SayHello(ctx, in)
-       }
-       info := &grpc.UnaryServerInfo{
-               Server:     srv,
-               FullMethod: "/main.Greeter/SayHello",
-       }
-       handler := func(ctx context.Context, req interface{}) (interface{}, 
error) {
-               return srv.(GreeterServer).SayHello(ctx, req.(*HelloRequest))
-       }
-       return interceptor(ctx, in, info, handler)
-}
-
-var _Greeter_serviceDesc = grpc.ServiceDesc{
-       ServiceName: "main.Greeter",
-       HandlerType: (*GreeterServer)(nil),
-       Methods: []grpc.MethodDesc{
-               {
-                       MethodName: "SayHello",
-                       Handler:    _Greeter_SayHello_Handler,
-               },
-       },
-       Streams:  []grpc.StreamDesc{},
-       Metadata: "helloworld.proto",
-}
-
-// GreeterClientImpl is the client API for Greeter service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please 
refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type GreeterClientImpl struct {
-       // Sends a greeting
-       SayHello func(ctx context.Context, in *HelloRequest, out *HelloReply) 
error
-}
-
-func (c *GreeterClientImpl) Reference() string {
-       return "greeterImpl"
-}
-
-func (c *GreeterClientImpl) GetDubboStub(cc *grpc.ClientConn) GreeterClient {
-       return NewGreeterClient(cc)
-}
-
-type GreeterProviderBase struct {
-       proxyImpl protocol.Invoker
-}
-
-func (s *GreeterProviderBase) SetProxyImpl(impl protocol.Invoker) {
-       s.proxyImpl = impl
-}
-
-func (s *GreeterProviderBase) GetProxyImpl() protocol.Invoker {
-       return s.proxyImpl
-}
-
-func _DUBBO_Greeter_SayHello_Handler(srv interface{}, ctx context.Context, dec 
func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, 
error) {
-       in := new(HelloRequest)
-       if err := dec(in); err != nil {
-               return nil, err
-       }
-       base := srv.(dgrpc.DubboGrpcService)
-       args := []interface{}{}
-       args = append(args, in)
-       invo := invocation.NewRPCInvocation("SayHello", args, nil)
-       if interceptor == nil {
-               result := base.GetProxyImpl().Invoke(ctx, invo)
-               return result.Result(), result.Error()
-       }
-       info := &grpc.UnaryServerInfo{
-               Server:     srv,
-               FullMethod: "/main.Greeter/SayHello",
-       }
-       handler := func(ctx context.Context, req interface{}) (interface{}, 
error) {
-               result := base.GetProxyImpl().Invoke(ctx, invo)
-               return result.Result(), result.Error()
-       }
-       return interceptor(ctx, in, info, handler)
-}
-
-func (s *GreeterProviderBase) ServiceDesc() *grpc.ServiceDesc {
-       return &grpc.ServiceDesc{
-               ServiceName: "main.Greeter",
-               HandlerType: (*GreeterServer)(nil),
-               Methods: []grpc.MethodDesc{
-                       {
-                               MethodName: "SayHello",
-                               Handler:    _DUBBO_Greeter_SayHello_Handler,
-                       },
-               },
-               Streams:  []grpc.StreamDesc{},
-               Metadata: "helloworld.proto",
-       }
-}
diff --git a/protocol/grpc/protoc-gen-dubbo/plugin/dubbo/dubbo.go 
b/protocol/grpc/protoc-gen-dubbo/plugin/dubbo/dubbo.go
index 45de3a3..1a92ab1 100644
--- a/protocol/grpc/protoc-gen-dubbo/plugin/dubbo/dubbo.go
+++ b/protocol/grpc/protoc-gen-dubbo/plugin/dubbo/dubbo.go
@@ -96,7 +96,6 @@ func (g *dubboGrpc) Generate(file *generator.FileDescriptor) {
 // GenerateImports generates the import declaration for this file.
 func (g *dubboGrpc) GenerateImports(file *generator.FileDescriptor) {
        g.P("import (")
-       g.P(`dgrpc "dubbo.apache.org/dubbo-go/v3/protocol/grpc"`)
        g.P(`"dubbo.apache.org/dubbo-go/v3/protocol/invocation"`)
        g.P(`"dubbo.apache.org/dubbo-go/v3/protocol"`)
        g.P(` ) `)
@@ -166,6 +165,18 @@ func (g *dubboGrpc) generateService(file 
*generator.FileDescriptor, service *pb.
        g.P("}")
        g.P()
 
+       g.P(`
+// DubboGrpcService is gRPC service
+type DubboGrpcService interface {
+       // SetProxyImpl sets proxy.
+       SetProxyImpl(impl protocol.Invoker)
+       // GetProxyImpl gets proxy.
+       GetProxyImpl() protocol.Invoker
+       // ServiceDesc gets an RPC service's specification.
+       ServiceDesc() *grpc.ServiceDesc
+}
+`)
+
        // Server interface.
        serverType := servName + "ProviderBase"
        g.P("type ", serverType, " struct {")
@@ -273,7 +284,7 @@ func (g *dubboGrpc) generateServerMethod(servName, 
fullServName string, method *
                g.P("in := new(", inType, ")")
                g.P("if err := dec(in); err != nil { return nil, err }")
 
-               g.P("base := srv.(dgrpc.DubboGrpcService)")
+               g.P("base := srv.(DubboGrpcService)")
                g.P("args := []interface{}{}")
                g.P("args = append(args, in)")
                g.P(`invo := invocation.NewRPCInvocation("`, methName, `", 
args, nil)`)
@@ -300,7 +311,7 @@ func (g *dubboGrpc) generateServerMethod(servName, 
fullServName string, method *
        }
        streamType := unexport(servName) + methName + "Server"
        g.P("func ", hname, "(srv interface{}, stream ", grpcPkg, 
".ServerStream) error {")
-       g.P("_, ok := srv.(dgrpc.DubboGrpcService)")
+       g.P("_, ok := srv.(DubboGrpcService)")
        g.P(`invo := invocation.NewRPCInvocation("`, methName, `", nil, nil)`)
        g.P("if !ok {")
        g.P("fmt.Println(invo)")

Reply via email to