Skip to content

Commit b62d708

Browse files
authored
feat(go-client): find descriptors by proto fullname (#123)
1 parent 79921c4 commit b62d708

File tree

4 files changed

+20
-1
lines changed

4 files changed

+20
-1
lines changed

clients/go/client_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,18 @@ func TestClient(t *testing.T) {
219219
field := msg.Fields().ByName("field_one")
220220
assert.NotNil(t, field)
221221
})
222+
t.Run("should get descriptor if package name is not defined", func(t *testing.T) {
223+
msg, err := client.GetDescriptor("Root")
224+
assert.Nil(t, err)
225+
field := msg.Fields().ByName("field_one")
226+
assert.NotNil(t, field)
227+
})
228+
t.Run("should get descriptor if proto package name is not defined but java package is defined", func(t *testing.T) {
229+
msg, err := client.GetDescriptor("test.stencil.Root")
230+
assert.Nil(t, err)
231+
field := msg.Fields().ByName("field_one")
232+
assert.NotNil(t, field)
233+
})
222234
})
223235
t.Run("Parse", func(t *testing.T) {
224236
data, err := getDescriptorData(t, true)

clients/go/protoutils.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ func defaultKeyFn(msg protoreflect.MessageDescriptor) string {
2727
pkg := getJavaPackage(file)
2828
if pkg == "" {
2929
return fullName
30+
} else if protoPackage == "" {
31+
return fmt.Sprintf("%s.%s", pkg, fullName)
3032
}
3133
return strings.Replace(fullName, protoPackage, pkg, 1)
3234
}

clients/go/resolver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type Resolver struct {
2020
func (r *Resolver) Get(className string) (protoreflect.MessageType, bool) {
2121
fullName, ok := r.javaToProtoName[className]
2222
if !ok {
23-
return nil, false
23+
fullName = className
2424
}
2525
msg, err := r.types.FindMessageByName(protoreflect.FullName(fullName))
2626
if err != nil {

clients/go/test_data/3.proto

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
syntax = "proto3";
2+
option java_package = "test.stencil";
3+
message Root {
4+
int64 field_one = 1;
5+
}

0 commit comments

Comments
 (0)