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)")