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:]
+}