You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2024/01/14 04:41:56 UTC

(dubbo-go) branch main updated: Fix:modify uppercase and lowercase issues (#2570)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 61933d065 Fix:modify uppercase and lowercase issues (#2570)
61933d065 is described below

commit 61933d065d074b5e36068c2e159f4a64aea1f910
Author: finalt <fi...@163.com>
AuthorDate: Sun Jan 14 12:41:51 2024 +0800

    Fix:modify uppercase and lowercase issues (#2570)
---
 .../gen/generator/genTriple.go                     |  7 +--
 .../gen/generator/tripleTpl.go                     | 62 +++++++++-------------
 cmd/protoc-gen-go-triple/util/strings.go           | 36 +++++++++++++
 3 files changed, 66 insertions(+), 39 deletions(-)

diff --git a/cmd/protoc-gen-go-triple/gen/generator/genTriple.go b/cmd/protoc-gen-go-triple/gen/generator/genTriple.go
index 60ba84ad3..c69ca0a86 100644
--- a/cmd/protoc-gen-go-triple/gen/generator/genTriple.go
+++ b/cmd/protoc-gen-go-triple/gen/generator/genTriple.go
@@ -69,9 +69,9 @@ func ProcessProtoFile(file *descriptor.FileDescriptorProto) (TripleGo, error) {
 		for _, method := range service.GetMethod() {
 			serviceMethods = append(serviceMethods, Method{
 				MethodName:     method.GetName(),
-				RequestType:    strings.Split(method.GetInputType(), ".")[len(strings.Split(method.GetInputType(), "."))-1],
+				RequestType:    util.ToUpper(strings.Split(method.GetInputType(), ".")[len(strings.Split(method.GetInputType(), "."))-1]),
 				StreamsRequest: method.GetClientStreaming(),
-				ReturnType:     strings.Split(method.GetOutputType(), ".")[len(strings.Split(method.GetOutputType(), "."))-1],
+				ReturnType:     util.ToUpper(strings.Split(method.GetOutputType(), ".")[len(strings.Split(method.GetOutputType(), "."))-1]),
 				StreamsReturn:  method.GetServerStreaming(),
 			})
 			if method.GetClientStreaming() || method.GetServerStreaming() {
@@ -100,7 +100,8 @@ func ProcessProtoFile(file *descriptor.FileDescriptorProto) (TripleGo, error) {
 	} else {
 		tripleGo.Path = goPkg
 	}
-	tripleGo.FileName = strings.Split(file.GetName(), ".")[0]
+	_, fileName := filepath.Split(file.GetName())
+	tripleGo.FileName = strings.Split(fileName, ".")[0]
 	return tripleGo, nil
 }
 
diff --git a/cmd/protoc-gen-go-triple/gen/generator/tripleTpl.go b/cmd/protoc-gen-go-triple/gen/generator/tripleTpl.go
index 4e21e1082..65ae1681a 100644
--- a/cmd/protoc-gen-go-triple/gen/generator/tripleTpl.go
+++ b/cmd/protoc-gen-go-triple/gen/generator/tripleTpl.go
@@ -23,6 +23,10 @@ import (
 	"strings"
 )
 
+import (
+	"dubbo.apache.org/dubbo-go/v3/cmd/protoc-gen-go-triple/util"
+)
+
 var (
 	Tpls                   []*template.Template
 	TplPreamble            *template.Template
@@ -65,28 +69,21 @@ func init() {
 	if err != nil {
 		log.Fatal(err)
 	}
-	TplClientInterface, err = template.New("clientInterface").Parse(InterfaceTpl)
+	TplClientInterface, err = template.New("clientInterface").Funcs(template.FuncMap{
+		"upper": util.ToUpper,
+	}).Parse(InterfaceTpl)
 	if err != nil {
 		log.Fatal(err)
 	}
 	TplClientInterfaceImpl, err = template.New("clientInterfaceImpl").Funcs(template.FuncMap{
-		"lower": func(s string) string {
-			if s == "" {
-				return ""
-			}
-			return strings.ToLower(s[:1]) + s[1:]
-		},
+		"lower": util.ToLower,
+		"upper": util.ToUpper,
 	}).Parse(InterfaceImplTpl)
 	if err != nil {
 		log.Fatal(err)
 	}
 	TplClientImpl, err = template.New("clientImpl").Funcs(template.FuncMap{
-		"lower": func(s string) string {
-			if s == "" {
-				return ""
-			}
-			return strings.ToLower(s[:1]) + s[1:]
-		},
+		"lower": util.ToLower,
 	}).Parse(ClientImplTpl)
 	if err != nil {
 		log.Fatal(err)
@@ -99,28 +96,21 @@ func init() {
 	if err != nil {
 		log.Fatal(err)
 	}
-	TplHandler, err = template.New("handler").Parse(HandlerTpl)
+	TplHandler, err = template.New("handler").Funcs(template.FuncMap{
+		"upper": util.ToUpper,
+	}).Parse(HandlerTpl)
 	if err != nil {
 		log.Fatal(err)
 	}
 	TplServerImpl, err = template.New("serverImpl").Funcs(template.FuncMap{
-		"lower": func(s string) string {
-			if s == "" {
-				return ""
-			}
-			return strings.ToLower(s[:1]) + s[1:]
-		},
+		"lower": util.ToLower,
 	}).Parse(ServerImplTpl)
 	if err != nil {
 		log.Fatal(err)
 	}
 	TplServerInfo, err = template.New("serverInfo").Funcs(template.FuncMap{
-		"lower": func(s string) string {
-			if s == "" {
-				return ""
-			}
-			return strings.ToLower(s[:1]) + s[1:]
-		},
+		"lower": util.ToLower,
+		"upper": util.ToUpper,
 	}).Parse(ServiceInfoTpl)
 	if err != nil {
 		log.Fatal(err)
@@ -202,7 +192,7 @@ const TypeCheckTpl = `var ({{$t := .}}{{range $s := .Services}}
 
 const InterfaceTpl = `// {{$t := .}}{{range $s := .Services}}{{.ServiceName}} is a client for the {{$t.ProtoPackage}}.{{$s.ServiceName}} service.
 type {{$s.ServiceName}} interface { {{- range $s.Methods}}
-	{{.MethodName}}(ctx context.Context{{if .StreamsRequest}}{{else}}, req *{{.RequestType}}{{end}}, opts ...client.CallOption) {{if or .StreamsReturn .StreamsRequest}}({{$s.ServiceName}}_{{.MethodName}}Client, error){{else}}(*{{.ReturnType}}, error){{end}}{{end}}
+	{{upper .MethodName}}(ctx context.Context{{if .StreamsRequest}}{{else}}, req *{{.RequestType}}{{end}}, opts ...client.CallOption) {{if or .StreamsReturn .StreamsRequest}}({{$s.ServiceName}}_{{.MethodName}}Client, error){{else}}(*{{.ReturnType}}, error){{end}}{{end}}
 }{{end}}
 
 `
@@ -227,7 +217,7 @@ type {{.ServiceName}}Impl struct {
 	conn *client.Connection
 }
 {{range .Methods}}{{if .StreamsRequest}}{{if .StreamsReturn}}
-func (c *{{$s.ServiceName}}Impl) {{.MethodName}}(ctx context.Context, opts ...client.CallOption) ({{$s.ServiceName}}_{{.MethodName}}Client, error) {
+func (c *{{$s.ServiceName}}Impl) {{upper .MethodName}}(ctx context.Context, opts ...client.CallOption) ({{$s.ServiceName}}_{{.MethodName}}Client, error) {
 	stream, err := c.conn.CallBidiStream(ctx, "{{.MethodName}}", opts...)
 	if err != nil {
 		return nil, err
@@ -236,7 +226,7 @@ func (c *{{$s.ServiceName}}Impl) {{.MethodName}}(ctx context.Context, opts ...cl
 	return &{{$s.ServiceName}}{{.MethodName}}Client{rawStream}, nil
 }
 {{else}}
-func (c *{{$s.ServiceName}}Impl) {{.MethodName}}(ctx context.Context, opts ...client.CallOption) ({{$s.ServiceName}}_{{.MethodName}}Client, error) {
+func (c *{{$s.ServiceName}}Impl) {{upper .MethodName}}(ctx context.Context, opts ...client.CallOption) ({{$s.ServiceName}}_{{.MethodName}}Client, error) {
 	stream, err := c.conn.CallClientStream(ctx, "{{.MethodName}}", opts...)
 	if err != nil {
 		return nil, err
@@ -245,7 +235,7 @@ func (c *{{$s.ServiceName}}Impl) {{.MethodName}}(ctx context.Context, opts ...cl
 	return &{{$s.ServiceName}}{{.MethodName}}Client{rawStream}, nil
 }
 {{end}}{{else}}{{if .StreamsReturn}}
-func (c *{{$s.ServiceName}}Impl) {{.MethodName}}(ctx context.Context, req *{{.RequestType}}, opts ...client.CallOption) ({{$s.ServiceName}}_{{.MethodName}}Client, error) {
+func (c *{{$s.ServiceName}}Impl) {{upper .MethodName}}(ctx context.Context, req *{{.RequestType}}, opts ...client.CallOption) ({{$s.ServiceName}}_{{.MethodName}}Client, error) {
 	stream, err := c.conn.CallServerStream(ctx, req, "{{.MethodName}}", opts...)
 	if err != nil {
 		return nil, err
@@ -254,7 +244,7 @@ func (c *{{$s.ServiceName}}Impl) {{.MethodName}}(ctx context.Context, req *{{.Re
 	return &{{$s.ServiceName}}{{.MethodName}}Client{rawStream}, nil
 }
 {{else}}
-func (c *{{$s.ServiceName}}Impl) {{.MethodName}}(ctx context.Context, req *{{.RequestType}}, opts ...client.CallOption) (*{{.ReturnType}}, error) {
+func (c *{{$s.ServiceName}}Impl) {{upper .MethodName}}(ctx context.Context, req *{{.RequestType}}, opts ...client.CallOption) (*{{.ReturnType}}, error) {
 	resp := new({{.ReturnType}})
 	if err := c.conn.CallUnary(ctx, []interface{}{req}, resp, "{{.MethodName}}", opts...); err != nil {
 		return nil, err
@@ -369,7 +359,7 @@ const MethodInfoTpl = `{{$t := .}}{{range $i, $s := .Services}}var {{.ServiceNam
 
 const HandlerTpl = `{{$t := .}}{{range $s := .Services}}// {{.ServiceName}}Handler is an implementation of the {{$t.ProtoPackage}}.{{.ServiceName}} service.
 type {{.ServiceName}}Handler interface { {{- range $s.Methods}}
-	{{.MethodName}}(context.Context, {{if .StreamsRequest}}{{$s.ServiceName}}_{{.MethodName}}Server{{else}}*{{.RequestType}}{{if .StreamsReturn}}, {{$s.ServiceName}}_{{.MethodName}}Server{{end}}{{end}}) {{if .StreamsReturn}}error{{else}}(*{{.ReturnType}}, error){{end}}{{end}}
+	{{upper .MethodName}}(context.Context, {{if .StreamsRequest}}{{$s.ServiceName}}_{{.MethodName}}Server{{else}}*{{.RequestType}}{{if .StreamsReturn}}, {{$s.ServiceName}}_{{.MethodName}}Server{{end}}{{end}}) {{if .StreamsReturn}}error{{else}}(*{{.ReturnType}}, error){{end}}{{end}}
 }
 
 func Register{{.ServiceName}}Handler(srv *server.Server, hdlr {{.ServiceName}}Handler, opts ...server.ServiceOption) error {
@@ -465,7 +455,7 @@ const ServiceInfoTpl = `{{$t := .}}{{range $s := .Services}}var {{.ServiceName}}
 			},
 			MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
 				stream := args[0].({{$s.ServiceName}}_{{.MethodName}}Server)
-				if err := handler.({{$s.ServiceName}}Handler).{{.MethodName}}(ctx, stream); err != nil {
+				if err := handler.({{$s.ServiceName}}Handler).{{upper .MethodName}}(ctx, stream); err != nil {
 					return nil, err
 				}
 				return nil, nil
@@ -479,7 +469,7 @@ const ServiceInfoTpl = `{{$t := .}}{{range $s := .Services}}var {{.ServiceName}}
 			},
 			MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
 				stream := args[0].({{$s.ServiceName}}_{{.MethodName}}Server)
-				res, err := handler.({{$s.ServiceName}}Handler).{{.MethodName}}(ctx, stream)
+				res, err := handler.({{$s.ServiceName}}Handler).{{upper .MethodName}}(ctx, stream)
 				if err != nil {
 					return nil, err
 				}
@@ -498,7 +488,7 @@ const ServiceInfoTpl = `{{$t := .}}{{range $s := .Services}}var {{.ServiceName}}
 			MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
 				req := args[0].(*{{.RequestType}})
 				stream := args[1].({{$s.ServiceName}}_{{.MethodName}}Server)
-				if err := handler.({{$s.ServiceName}}Handler).{{.MethodName}}(ctx, req, stream); err != nil {
+				if err := handler.({{$s.ServiceName}}Handler).{{upper .MethodName}}(ctx, req, stream); err != nil {
 					return nil, err
 				}
 				return nil, nil
@@ -512,7 +502,7 @@ const ServiceInfoTpl = `{{$t := .}}{{range $s := .Services}}var {{.ServiceName}}
 			},
 			MethodFunc: func(ctx context.Context, args []interface{}, handler interface{}) (interface{}, error) {
 				req := args[0].(*{{.RequestType}})
-				res, err := handler.({{$s.ServiceName}}Handler).{{.MethodName}}(ctx, req)
+				res, err := handler.({{$s.ServiceName}}Handler).{{upper .MethodName}}(ctx, req)
 				if err != nil {
 					return nil, err
 				}
diff --git a/cmd/protoc-gen-go-triple/util/strings.go b/cmd/protoc-gen-go-triple/util/strings.go
new file mode 100644
index 000000000..f42e062d4
--- /dev/null
+++ b/cmd/protoc-gen-go-triple/util/strings.go
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+package util
+
+import "strings"
+
+// ToUpper will capitalize the first character
+func ToUpper(s string) string {
+	if s == "" {
+		return ""
+	}
+	return strings.ToUpper(s[:1]) + s[1:]
+}
+
+// ToLower will lowercase the first character
+func ToLower(s string) string {
+	if s == "" {
+		return ""
+	}
+	return strings.ToLower(s[:1]) + s[1:]
+}