From 04095aca1a12f52efe46668bc3690fd10baa7c46 Mon Sep 17 00:00:00 2001 From: summerji Date: Wed, 2 Dec 2020 13:55:01 -0800 Subject: [PATCH 1/5] Flattern the createVariableExpr wrapper --- .../ServiceClientSampleCodeComposer.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientSampleCodeComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientSampleCodeComposer.java index c4a2e5f4f8..98d66d3148 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientSampleCodeComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientSampleCodeComposer.java @@ -44,7 +44,9 @@ public static String composeClassHeaderCredentialsSampleCode( .setName("myCredentials") .setPakkage(clientType.reference().pakkage()) .build()); - VariableExpr settingsVarExpr = createVariableExpr(settingsName, settingsType); + VariableExpr settingsVarExpr = + VariableExpr.withVariable( + Variable.builder().setName(settingsName).setType(settingsType).build()); MethodInvocationExpr newBuilderMethodExpr = MethodInvocationExpr.builder() .setStaticReferenceType(settingsType) @@ -52,10 +54,13 @@ public static String composeClassHeaderCredentialsSampleCode( .build(); TypeNode fixedCredentialProvideType = TypeNode.withReference(ConcreteReference.withClazz(FixedCredentialsProvider.class)); + VariableExpr myCredentialVarExpr = + VariableExpr.withVariable( + Variable.builder().setName("myCredentials").setType(myCredentialsType).build()); MethodInvocationExpr credentialArgExpr = MethodInvocationExpr.builder() .setStaticReferenceType(fixedCredentialProvideType) - .setArguments(createVariableExpr("myCredentials", myCredentialsType)) + .setArguments(myCredentialVarExpr) .setMethodName("create") .build(); MethodInvocationExpr credentialsMethodExpr = @@ -78,7 +83,9 @@ public static String composeClassHeaderCredentialsSampleCode( // Initialized client with create() method. // e.g. EchoClient echoClient = EchoClient.create(echoSettings); - VariableExpr clientVarExpr = createVariableExpr(clientName, clientType); + VariableExpr clientVarExpr = + VariableExpr.withVariable( + Variable.builder().setName(clientName).setType(clientType).build()); MethodInvocationExpr createMethodExpr = MethodInvocationExpr.builder() .setStaticReferenceType(clientType) @@ -109,16 +116,21 @@ public static String composeClassHeaderEndpointSampleCode( .setName("myEndpoint") .setPakkage(clientType.reference().pakkage()) .build()); - VariableExpr settingsVarExpr = createVariableExpr(settingsName, settingsType); + VariableExpr settingsVarExpr = + VariableExpr.withVariable( + Variable.builder().setName(settingsName).setType(settingsType).build()); MethodInvocationExpr newBuilderMethodExpr = MethodInvocationExpr.builder() .setStaticReferenceType(settingsType) .setMethodName("newBuilder") .build(); + VariableExpr myEndpointVarExpr = + VariableExpr.withVariable( + Variable.builder().setName("myEndpoint").setType(myEndpointType).build()); MethodInvocationExpr credentialsMethodExpr = MethodInvocationExpr.builder() .setExprReferenceExpr(newBuilderMethodExpr) - .setArguments(createVariableExpr("myEndpoint", myEndpointType)) + .setArguments(myEndpointVarExpr) .setMethodName("setEndpoint") .build(); MethodInvocationExpr buildMethodExpr = @@ -136,7 +148,9 @@ public static String composeClassHeaderEndpointSampleCode( // Initialize client with create() method. // e.g. EchoClient echoClient = EchoClient.create(echoSettings); - VariableExpr clientVarExpr = createVariableExpr(clientName, clientType); + VariableExpr clientVarExpr = + VariableExpr.withVariable( + Variable.builder().setName(clientName).setType(clientType).build()); MethodInvocationExpr createMethodExpr = MethodInvocationExpr.builder() .setStaticReferenceType(clientType) @@ -155,11 +169,4 @@ public static String composeClassHeaderEndpointSampleCode( ExprStatement.withExpr(initSettingsVarExpr), ExprStatement.withExpr(initClientVarExpr))); } - - // ======================================== Helpers ==========================================// - - private static VariableExpr createVariableExpr(String variableName, TypeNode type) { - return VariableExpr.withVariable( - Variable.builder().setName(variableName).setType(type).build()); - } } From 4bec878c6770d0e12524b3d87558d890c037a8d2 Mon Sep 17 00:00:00 2001 From: summerji Date: Wed, 25 Nov 2020 13:32:59 -0800 Subject: [PATCH 2/5] Add resource name into ClassComposer interface --- .../gapic/composer/ClassComposer.java | 6 +++- .../generator/gapic/composer/Composer.java | 31 ++++++++++++------- ...pcServiceCallableFactoryClassComposer.java | 4 ++- .../GrpcServiceStubClassComposer.java | 4 ++- .../composer/MockServiceClassComposer.java | 4 ++- .../MockServiceImplClassComposer.java | 4 ++- .../composer/ServiceClientClassComposer.java | 4 ++- .../ServiceSettingsClassComposer.java | 4 ++- .../composer/ServiceStubClassComposer.java | 4 ++- ...rviceCallableFactoryClassComposerTest.java | 3 +- .../GrpcServiceStubClassComposerTest.java | 9 ++++-- .../MockServiceClassComposerTest.java | 3 +- .../MockServiceImplClassComposerTest.java | 3 +- .../ServiceClientClassComposerTest.java | 6 ++-- .../ServiceSettingsClassComposerTest.java | 3 +- .../ServiceStubClassComposerTest.java | 3 +- 16 files changed, 66 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/google/api/generator/gapic/composer/ClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ClassComposer.java index 131020c562..de7a1cccc8 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ClassComposer.java @@ -16,9 +16,13 @@ import com.google.api.generator.gapic.model.GapicClass; import com.google.api.generator.gapic.model.Message; +import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import java.util.Map; public interface ClassComposer { - GapicClass generate(Service service, Map messageTypes); + // TODO(b/174257081): Clean up the hierarchy to avoid pass another parameter (resourceNames is + // only used for composing sample code). + GapicClass generate( + Service service, Map messageTypes, Map resourceNames); } diff --git a/src/main/java/com/google/api/generator/gapic/composer/Composer.java b/src/main/java/com/google/api/generator/gapic/composer/Composer.java index 02e1dc9bcc..733a50c860 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/Composer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/Composer.java @@ -60,8 +60,8 @@ public static List generateServiceClasses( @Nonnull Map resourceNames, @Nonnull Map messageTypes) { List clazzes = new ArrayList<>(); - clazzes.addAll(generateStubClasses(service, serviceConfig, messageTypes)); - clazzes.addAll(generateClientSettingsClasses(service, messageTypes)); + clazzes.addAll(generateStubClasses(service, serviceConfig, messageTypes, resourceNames)); + clazzes.addAll(generateClientSettingsClasses(service, messageTypes, resourceNames)); clazzes.addAll(generateMocksAndTestClasses(service, resourceNames, messageTypes)); // TODO(miraleung): Generate test classes. return clazzes; @@ -76,29 +76,38 @@ public static List generateResourceNameHelperClasses( } public static List generateStubClasses( - Service service, GapicServiceConfig serviceConfig, Map messageTypes) { + Service service, + GapicServiceConfig serviceConfig, + Map messageTypes, + Map resourceNames) { List clazzes = new ArrayList<>(); - clazzes.add(ServiceStubClassComposer.instance().generate(service, messageTypes)); + clazzes.add(ServiceStubClassComposer.instance().generate(service, messageTypes, resourceNames)); clazzes.add( ServiceStubSettingsClassComposer.instance().generate(service, serviceConfig, messageTypes)); - clazzes.add(GrpcServiceCallableFactoryClassComposer.instance().generate(service, messageTypes)); - clazzes.add(GrpcServiceStubClassComposer.instance().generate(service, messageTypes)); + clazzes.add( + GrpcServiceCallableFactoryClassComposer.instance() + .generate(service, messageTypes, resourceNames)); + clazzes.add( + GrpcServiceStubClassComposer.instance().generate(service, messageTypes, resourceNames)); return clazzes; } public static List generateClientSettingsClasses( - Service service, Map messageTypes) { + Service service, Map messageTypes, Map resourceNames) { List clazzes = new ArrayList<>(); - clazzes.add(ServiceClientClassComposer.instance().generate(service, messageTypes)); - clazzes.add(ServiceSettingsClassComposer.instance().generate(service, messageTypes)); + clazzes.add( + ServiceClientClassComposer.instance().generate(service, messageTypes, resourceNames)); + clazzes.add( + ServiceSettingsClassComposer.instance().generate(service, messageTypes, resourceNames)); return clazzes; } public static List generateMocksAndTestClasses( Service service, Map resourceNames, Map messageTypes) { List clazzes = new ArrayList<>(); - clazzes.add(MockServiceClassComposer.instance().generate(service, messageTypes)); - clazzes.add(MockServiceImplClassComposer.instance().generate(service, messageTypes)); + clazzes.add(MockServiceClassComposer.instance().generate(service, messageTypes, resourceNames)); + clazzes.add( + MockServiceImplClassComposer.instance().generate(service, messageTypes, resourceNames)); clazzes.add( ServiceClientTestClassComposer.instance().generate(service, resourceNames, messageTypes)); return clazzes; diff --git a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java index 5d1f054e2f..49a5e19cfb 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java @@ -42,6 +42,7 @@ import com.google.api.generator.gapic.model.GapicClass; import com.google.api.generator.gapic.model.GapicClass.Kind; import com.google.api.generator.gapic.model.Message; +import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.common.base.Preconditions; import com.google.longrunning.Operation; @@ -64,7 +65,8 @@ public static GrpcServiceCallableFactoryClassComposer instance() { } @Override - public GapicClass generate(Service service, Map ignore) { + public GapicClass generate( + Service service, Map ignore, Map resourceNames) { Map types = createTypes(service); String className = String.format("Grpc%sCallableFactory", service.name()); GapicClass.Kind kind = Kind.STUB; diff --git a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java index a8628a4131..68bd03360a 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java @@ -51,6 +51,7 @@ import com.google.api.generator.gapic.model.GapicClass.Kind; import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; +import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.common.base.Preconditions; @@ -112,7 +113,8 @@ public static GrpcServiceStubClassComposer instance() { } @Override - public GapicClass generate(Service service, Map ignore) { + public GapicClass generate( + Service service, Map ignore, Map resourceNames) { String pakkage = service.pakkage() + ".stub"; Map types = createDynamicTypes(service, pakkage); String className = getThisClassName(service.name()); diff --git a/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java index 5e1a5057f5..b1883b3719 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java @@ -33,6 +33,7 @@ import com.google.api.generator.gapic.model.GapicClass; import com.google.api.generator.gapic.model.GapicClass.Kind; import com.google.api.generator.gapic.model.Message; +import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.protobuf.AbstractMessage; import io.grpc.ServerServiceDefinition; @@ -55,7 +56,8 @@ public static MockServiceClassComposer instance() { } @Override - public GapicClass generate(Service service, Map ignore) { + public GapicClass generate( + Service service, Map ignore, Map resourceNames) { Map types = createTypes(service); String className = String.format(MOCK_SERVICE_NAME_PATTERN, service.name()); GapicClass.Kind kind = Kind.TEST; diff --git a/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java index 3b74d03478..a60e0d2b07 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java @@ -42,6 +42,7 @@ import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; import com.google.api.generator.gapic.model.Method.Stream; +import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.longrunning.Operation; @@ -94,7 +95,8 @@ public static MockServiceImplClassComposer instance() { } @Override - public GapicClass generate(Service service, Map ignore) { + public GapicClass generate( + Service service, Map ignore, Map resourceNames) { Map types = createDynamicTypes(service); String className = String.format(MOCK_SERVICE_IMPL_NAME_PATTERN, service.name()); GapicClass.Kind kind = Kind.TEST; diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java index 5f6a00f4d8..da83ca90d6 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java @@ -62,6 +62,7 @@ import com.google.api.generator.gapic.model.Method; import com.google.api.generator.gapic.model.Method.Stream; import com.google.api.generator.gapic.model.MethodArgument; +import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.common.annotations.VisibleForTesting; @@ -109,7 +110,8 @@ public static ServiceClientClassComposer instance() { } @Override - public GapicClass generate(Service service, Map messageTypes) { + public GapicClass generate( + Service service, Map messageTypes, Map resourceNames) { Map types = createTypes(service, messageTypes); String className = getClientClassName(service); GapicClass.Kind kind = Kind.MAIN; diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java index 9bdfe9e40f..b847a06a80 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java @@ -55,6 +55,7 @@ import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; import com.google.api.generator.gapic.model.Method.Stream; +import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.common.base.Preconditions; @@ -93,7 +94,8 @@ public static ServiceSettingsClassComposer instance() { } @Override - public GapicClass generate(Service service, Map ignore) { + public GapicClass generate( + Service service, Map ignore, Map resourceNames) { String pakkage = service.pakkage(); Map types = createDynamicTypes(service); String className = getThisClassName(service); diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java index fd6fb17e34..2127f2499e 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java @@ -35,6 +35,7 @@ import com.google.api.generator.gapic.model.GapicClass.Kind; import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; +import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.longrunning.Operation; @@ -57,7 +58,8 @@ public static ServiceStubClassComposer instance() { } @Override - public GapicClass generate(Service service, Map messageTypes) { + public GapicClass generate( + Service service, Map messageTypes, Map resourceNames) { Map types = createTypes(service, messageTypes); String className = String.format("%sStub", service.name()); GapicClass.Kind kind = Kind.STUB; diff --git a/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposerTest.java index bc1f8d0c09..a243f298d4 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposerTest.java @@ -59,7 +59,8 @@ public void generateServiceClasses() { Service echoProtoService = services.get(0); GapicClass clazz = - GrpcServiceCallableFactoryClassComposer.instance().generate(echoProtoService, messageTypes); + GrpcServiceCallableFactoryClassComposer.instance() + .generate(echoProtoService, messageTypes, resourceNames); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposerTest.java index 47c7767d45..20f3e7bb1b 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposerTest.java @@ -55,7 +55,8 @@ public void generateGrpcServiceStubClass_simple() { echoFileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames); Service echoProtoService = services.get(0); GapicClass clazz = - GrpcServiceStubClassComposer.instance().generate(echoProtoService, messageTypes); + GrpcServiceStubClassComposer.instance() + .generate(echoProtoService, messageTypes, resourceNames); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); @@ -82,7 +83,8 @@ public void generateGrpcServiceStubClass_httpBindings() { outputResourceNames); Service testingProtoService = services.get(0); GapicClass clazz = - GrpcServiceStubClassComposer.instance().generate(testingProtoService, messageTypes); + GrpcServiceStubClassComposer.instance() + .generate(testingProtoService, messageTypes, resourceNames); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); @@ -115,7 +117,8 @@ public void generateGrpcServiceStubClass_httpBindingsWithSubMessageFields() { outputResourceNames); Service service = services.get(0); - GapicClass clazz = GrpcServiceStubClassComposer.instance().generate(service, messageTypes); + GapicClass clazz = + GrpcServiceStubClassComposer.instance().generate(service, messageTypes, resourceNames); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/MockServiceClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/MockServiceClassComposerTest.java index 61785acb7b..f1c8688b15 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/MockServiceClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/MockServiceClassComposerTest.java @@ -58,7 +58,8 @@ public void generateServiceClasses() { echoFileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames); Service echoProtoService = services.get(0); - GapicClass clazz = MockServiceClassComposer.instance().generate(echoProtoService, messageTypes); + GapicClass clazz = + MockServiceClassComposer.instance().generate(echoProtoService, messageTypes, resourceNames); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposerTest.java index 624126bb96..b624f54c99 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposerTest.java @@ -59,7 +59,8 @@ public void generateServiceClasses() { Service echoProtoService = services.get(0); GapicClass clazz = - MockServiceImplClassComposer.instance().generate(echoProtoService, messageTypes); + MockServiceImplClassComposer.instance() + .generate(echoProtoService, messageTypes, resourceNames); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/ServiceClientClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/ServiceClientClassComposerTest.java index 1a882a6a30..a45784aaa2 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/ServiceClientClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/ServiceClientClassComposerTest.java @@ -53,7 +53,8 @@ public void generateServiceClasses() { Service echoProtoService = services.get(0); GapicClass clazz = - ServiceClientClassComposer.instance().generate(echoProtoService, messageTypes); + ServiceClientClassComposer.instance() + .generate(echoProtoService, messageTypes, resourceNames); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); @@ -76,7 +77,8 @@ public void generateServiceClasses_methodSignatureHasNestedFields() { fileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames); Service protoService = services.get(0); - GapicClass clazz = ServiceClientClassComposer.instance().generate(protoService, messageTypes); + GapicClass clazz = + ServiceClientClassComposer.instance().generate(protoService, messageTypes, resourceNames); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposerTest.java index bd7b41eb16..e87d2fffc1 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposerTest.java @@ -59,7 +59,8 @@ public void generateServiceClasses() { Service echoProtoService = services.get(0); GapicClass clazz = - ServiceSettingsClassComposer.instance().generate(echoProtoService, messageTypes); + ServiceSettingsClassComposer.instance() + .generate(echoProtoService, messageTypes, resourceNames); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/ServiceStubClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/ServiceStubClassComposerTest.java index 2e7a390b0b..81ed0da6d8 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/ServiceStubClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/ServiceStubClassComposerTest.java @@ -58,7 +58,8 @@ public void generateServiceClasses() { echoFileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames); Service echoProtoService = services.get(0); - GapicClass clazz = ServiceStubClassComposer.instance().generate(echoProtoService, messageTypes); + GapicClass clazz = + ServiceStubClassComposer.instance().generate(echoProtoService, messageTypes, resourceNames); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); From bd2bbe0a7bdd37746bea3b4441e897992ef4a4af Mon Sep 17 00:00:00 2001 From: summerji Date: Wed, 25 Nov 2020 15:14:38 -0800 Subject: [PATCH 3/5] Remove resource name from class composer interface --- .../generator/gapic/composer/ClassComposer.java | 6 +----- .../api/generator/gapic/composer/Composer.java | 17 ++++++----------- ...GrpcServiceCallableFactoryClassComposer.java | 4 +--- .../composer/GrpcServiceStubClassComposer.java | 4 +--- .../composer/MockServiceClassComposer.java | 4 +--- .../composer/MockServiceImplClassComposer.java | 4 +--- .../composer/ServiceClientClassComposer.java | 5 +++-- .../composer/ServiceSettingsClassComposer.java | 4 +--- .../composer/ServiceStubClassComposer.java | 4 +--- ...ServiceCallableFactoryClassComposerTest.java | 3 +-- .../GrpcServiceStubClassComposerTest.java | 9 +++------ .../composer/MockServiceClassComposerTest.java | 3 +-- .../MockServiceImplClassComposerTest.java | 3 +-- .../ServiceSettingsClassComposerTest.java | 3 +-- .../composer/ServiceStubClassComposerTest.java | 3 +-- 15 files changed, 24 insertions(+), 52 deletions(-) diff --git a/src/main/java/com/google/api/generator/gapic/composer/ClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ClassComposer.java index de7a1cccc8..131020c562 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ClassComposer.java @@ -16,13 +16,9 @@ import com.google.api.generator.gapic.model.GapicClass; import com.google.api.generator.gapic.model.Message; -import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import java.util.Map; public interface ClassComposer { - // TODO(b/174257081): Clean up the hierarchy to avoid pass another parameter (resourceNames is - // only used for composing sample code). - GapicClass generate( - Service service, Map messageTypes, Map resourceNames); + GapicClass generate(Service service, Map messageTypes); } diff --git a/src/main/java/com/google/api/generator/gapic/composer/Composer.java b/src/main/java/com/google/api/generator/gapic/composer/Composer.java index 733a50c860..adf5f03432 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/Composer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/Composer.java @@ -81,14 +81,11 @@ public static List generateStubClasses( Map messageTypes, Map resourceNames) { List clazzes = new ArrayList<>(); - clazzes.add(ServiceStubClassComposer.instance().generate(service, messageTypes, resourceNames)); + clazzes.add(ServiceStubClassComposer.instance().generate(service, messageTypes)); clazzes.add( ServiceStubSettingsClassComposer.instance().generate(service, serviceConfig, messageTypes)); - clazzes.add( - GrpcServiceCallableFactoryClassComposer.instance() - .generate(service, messageTypes, resourceNames)); - clazzes.add( - GrpcServiceStubClassComposer.instance().generate(service, messageTypes, resourceNames)); + clazzes.add(GrpcServiceCallableFactoryClassComposer.instance().generate(service, messageTypes)); + clazzes.add(GrpcServiceStubClassComposer.instance().generate(service, messageTypes)); return clazzes; } @@ -97,17 +94,15 @@ public static List generateClientSettingsClasses( List clazzes = new ArrayList<>(); clazzes.add( ServiceClientClassComposer.instance().generate(service, messageTypes, resourceNames)); - clazzes.add( - ServiceSettingsClassComposer.instance().generate(service, messageTypes, resourceNames)); + clazzes.add(ServiceSettingsClassComposer.instance().generate(service, messageTypes)); return clazzes; } public static List generateMocksAndTestClasses( Service service, Map resourceNames, Map messageTypes) { List clazzes = new ArrayList<>(); - clazzes.add(MockServiceClassComposer.instance().generate(service, messageTypes, resourceNames)); - clazzes.add( - MockServiceImplClassComposer.instance().generate(service, messageTypes, resourceNames)); + clazzes.add(MockServiceClassComposer.instance().generate(service, messageTypes)); + clazzes.add(MockServiceImplClassComposer.instance().generate(service, messageTypes)); clazzes.add( ServiceClientTestClassComposer.instance().generate(service, resourceNames, messageTypes)); return clazzes; diff --git a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java index 49a5e19cfb..5d1f054e2f 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java @@ -42,7 +42,6 @@ import com.google.api.generator.gapic.model.GapicClass; import com.google.api.generator.gapic.model.GapicClass.Kind; import com.google.api.generator.gapic.model.Message; -import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.common.base.Preconditions; import com.google.longrunning.Operation; @@ -65,8 +64,7 @@ public static GrpcServiceCallableFactoryClassComposer instance() { } @Override - public GapicClass generate( - Service service, Map ignore, Map resourceNames) { + public GapicClass generate(Service service, Map ignore) { Map types = createTypes(service); String className = String.format("Grpc%sCallableFactory", service.name()); GapicClass.Kind kind = Kind.STUB; diff --git a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java index 68bd03360a..a8628a4131 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java @@ -51,7 +51,6 @@ import com.google.api.generator.gapic.model.GapicClass.Kind; import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; -import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.common.base.Preconditions; @@ -113,8 +112,7 @@ public static GrpcServiceStubClassComposer instance() { } @Override - public GapicClass generate( - Service service, Map ignore, Map resourceNames) { + public GapicClass generate(Service service, Map ignore) { String pakkage = service.pakkage() + ".stub"; Map types = createDynamicTypes(service, pakkage); String className = getThisClassName(service.name()); diff --git a/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java index b1883b3719..5e1a5057f5 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java @@ -33,7 +33,6 @@ import com.google.api.generator.gapic.model.GapicClass; import com.google.api.generator.gapic.model.GapicClass.Kind; import com.google.api.generator.gapic.model.Message; -import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.protobuf.AbstractMessage; import io.grpc.ServerServiceDefinition; @@ -56,8 +55,7 @@ public static MockServiceClassComposer instance() { } @Override - public GapicClass generate( - Service service, Map ignore, Map resourceNames) { + public GapicClass generate(Service service, Map ignore) { Map types = createTypes(service); String className = String.format(MOCK_SERVICE_NAME_PATTERN, service.name()); GapicClass.Kind kind = Kind.TEST; diff --git a/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java index a60e0d2b07..3b74d03478 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java @@ -42,7 +42,6 @@ import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; import com.google.api.generator.gapic.model.Method.Stream; -import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.longrunning.Operation; @@ -95,8 +94,7 @@ public static MockServiceImplClassComposer instance() { } @Override - public GapicClass generate( - Service service, Map ignore, Map resourceNames) { + public GapicClass generate(Service service, Map ignore) { Map types = createDynamicTypes(service); String className = String.format(MOCK_SERVICE_IMPL_NAME_PATTERN, service.name()); GapicClass.Kind kind = Kind.TEST; diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java index da83ca90d6..73d2ddcb26 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java @@ -85,7 +85,7 @@ import java.util.stream.Collectors; import javax.annotation.Generated; -public class ServiceClientClassComposer implements ClassComposer { +public class ServiceClientClassComposer { private static final ServiceClientClassComposer INSTANCE = new ServiceClientClassComposer(); private static final String PAGED_RESPONSE_TYPE_NAME_PATTERN = "%sPagedResponse"; private static final String CALLABLE_NAME_PATTERN = "%sCallable"; @@ -109,9 +109,10 @@ public static ServiceClientClassComposer instance() { return INSTANCE; } - @Override public GapicClass generate( Service service, Map messageTypes, Map resourceNames) { + // TODO(miraleung): Clean up the hierarchy to avoid pass another parameter (resourceNames is + // only used for composing sample code). See b/174257081. Map types = createTypes(service, messageTypes); String className = getClientClassName(service); GapicClass.Kind kind = Kind.MAIN; diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java index b847a06a80..9bdfe9e40f 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java @@ -55,7 +55,6 @@ import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; import com.google.api.generator.gapic.model.Method.Stream; -import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.common.base.Preconditions; @@ -94,8 +93,7 @@ public static ServiceSettingsClassComposer instance() { } @Override - public GapicClass generate( - Service service, Map ignore, Map resourceNames) { + public GapicClass generate(Service service, Map ignore) { String pakkage = service.pakkage(); Map types = createDynamicTypes(service); String className = getThisClassName(service); diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java index 2127f2499e..fd6fb17e34 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java @@ -35,7 +35,6 @@ import com.google.api.generator.gapic.model.GapicClass.Kind; import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; -import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.longrunning.Operation; @@ -58,8 +57,7 @@ public static ServiceStubClassComposer instance() { } @Override - public GapicClass generate( - Service service, Map messageTypes, Map resourceNames) { + public GapicClass generate(Service service, Map messageTypes) { Map types = createTypes(service, messageTypes); String className = String.format("%sStub", service.name()); GapicClass.Kind kind = Kind.STUB; diff --git a/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposerTest.java index a243f298d4..bc1f8d0c09 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposerTest.java @@ -59,8 +59,7 @@ public void generateServiceClasses() { Service echoProtoService = services.get(0); GapicClass clazz = - GrpcServiceCallableFactoryClassComposer.instance() - .generate(echoProtoService, messageTypes, resourceNames); + GrpcServiceCallableFactoryClassComposer.instance().generate(echoProtoService, messageTypes); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposerTest.java index 20f3e7bb1b..47c7767d45 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposerTest.java @@ -55,8 +55,7 @@ public void generateGrpcServiceStubClass_simple() { echoFileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames); Service echoProtoService = services.get(0); GapicClass clazz = - GrpcServiceStubClassComposer.instance() - .generate(echoProtoService, messageTypes, resourceNames); + GrpcServiceStubClassComposer.instance().generate(echoProtoService, messageTypes); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); @@ -83,8 +82,7 @@ public void generateGrpcServiceStubClass_httpBindings() { outputResourceNames); Service testingProtoService = services.get(0); GapicClass clazz = - GrpcServiceStubClassComposer.instance() - .generate(testingProtoService, messageTypes, resourceNames); + GrpcServiceStubClassComposer.instance().generate(testingProtoService, messageTypes); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); @@ -117,8 +115,7 @@ public void generateGrpcServiceStubClass_httpBindingsWithSubMessageFields() { outputResourceNames); Service service = services.get(0); - GapicClass clazz = - GrpcServiceStubClassComposer.instance().generate(service, messageTypes, resourceNames); + GapicClass clazz = GrpcServiceStubClassComposer.instance().generate(service, messageTypes); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/MockServiceClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/MockServiceClassComposerTest.java index f1c8688b15..61785acb7b 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/MockServiceClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/MockServiceClassComposerTest.java @@ -58,8 +58,7 @@ public void generateServiceClasses() { echoFileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames); Service echoProtoService = services.get(0); - GapicClass clazz = - MockServiceClassComposer.instance().generate(echoProtoService, messageTypes, resourceNames); + GapicClass clazz = MockServiceClassComposer.instance().generate(echoProtoService, messageTypes); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposerTest.java index b624f54c99..624126bb96 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposerTest.java @@ -59,8 +59,7 @@ public void generateServiceClasses() { Service echoProtoService = services.get(0); GapicClass clazz = - MockServiceImplClassComposer.instance() - .generate(echoProtoService, messageTypes, resourceNames); + MockServiceImplClassComposer.instance().generate(echoProtoService, messageTypes); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposerTest.java index e87d2fffc1..bd7b41eb16 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposerTest.java @@ -59,8 +59,7 @@ public void generateServiceClasses() { Service echoProtoService = services.get(0); GapicClass clazz = - ServiceSettingsClassComposer.instance() - .generate(echoProtoService, messageTypes, resourceNames); + ServiceSettingsClassComposer.instance().generate(echoProtoService, messageTypes); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/ServiceStubClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/ServiceStubClassComposerTest.java index 81ed0da6d8..2e7a390b0b 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/ServiceStubClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/ServiceStubClassComposerTest.java @@ -58,8 +58,7 @@ public void generateServiceClasses() { echoFileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames); Service echoProtoService = services.get(0); - GapicClass clazz = - ServiceStubClassComposer.instance().generate(echoProtoService, messageTypes, resourceNames); + GapicClass clazz = ServiceStubClassComposer.instance().generate(echoProtoService, messageTypes); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); From b27edf3d42b24d86ffb4f72d5dbaa03d8b3adfc8 Mon Sep 17 00:00:00 2001 From: summerji Date: Wed, 25 Nov 2020 17:32:30 -0800 Subject: [PATCH 4/5] Remove bug ticket --- .../generator/gapic/composer/ServiceClientClassComposer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java index 73d2ddcb26..c5aacb18cc 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java @@ -112,7 +112,7 @@ public static ServiceClientClassComposer instance() { public GapicClass generate( Service service, Map messageTypes, Map resourceNames) { // TODO(miraleung): Clean up the hierarchy to avoid pass another parameter (resourceNames is - // only used for composing sample code). See b/174257081. + // only used for composing sample code). Map types = createTypes(service, messageTypes); String className = getClientClassName(service); GapicClass.Kind kind = Kind.MAIN; From a14fb047211abe55cae4b4fd5b4a3503d39ea50b Mon Sep 17 00:00:00 2001 From: summerji Date: Wed, 2 Dec 2020 09:48:30 -0800 Subject: [PATCH 5/5] move todo --- .../generator/gapic/composer/ServiceClientClassComposer.java | 2 -- .../java/com/google/api/generator/gapic/model/GapicClass.java | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java index c5aacb18cc..7979dc74ed 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java @@ -111,8 +111,6 @@ public static ServiceClientClassComposer instance() { public GapicClass generate( Service service, Map messageTypes, Map resourceNames) { - // TODO(miraleung): Clean up the hierarchy to avoid pass another parameter (resourceNames is - // only used for composing sample code). Map types = createTypes(service, messageTypes); String className = getClientClassName(service); GapicClass.Kind kind = Kind.MAIN; diff --git a/src/main/java/com/google/api/generator/gapic/model/GapicClass.java b/src/main/java/com/google/api/generator/gapic/model/GapicClass.java index 8ae0376efc..55d538ae60 100644 --- a/src/main/java/com/google/api/generator/gapic/model/GapicClass.java +++ b/src/main/java/com/google/api/generator/gapic/model/GapicClass.java @@ -19,6 +19,8 @@ @AutoValue public abstract class GapicClass { + // TODO(miraleung): Clean up the hierarchy to avoid pass another parameter (resourceNames is + // only used for composing sample code). // TODO(miraleung): Add enum for resource name classes. public enum Kind { MAIN,