From 2532e78a4cee6dda3e638d7d7606443b5ec26737 Mon Sep 17 00:00:00 2001 From: Min Zhu Date: Mon, 14 Nov 2022 10:15:19 -0500 Subject: [PATCH 1/9] fix(spring codegen): use client-library-artifact-id as pom artifactId prefix. (#1092) --- .../api/generator/spring/SpringWriter.java | 4 +- .../SpringAutoConfigClassComposer.java | 157 +++++++++++++++--- .../spring/utils/SharedPropertiesUtils.java | 53 ++++++ .../EchoSpringAutoConfigurationFull.golden | 16 +- .../EchoSpringAutoConfigurationGrpc.golden | 13 ++ ...EchoSpringAutoConfigurationGrpcRest.golden | 16 +- .../spring/goldens/SpringPackagePom.golden | 2 +- 7 files changed, 230 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/google/api/generator/spring/utils/SharedPropertiesUtils.java diff --git a/src/main/java/com/google/api/generator/spring/SpringWriter.java b/src/main/java/com/google/api/generator/spring/SpringWriter.java index 6b1280d3dc..77dc05989d 100644 --- a/src/main/java/com/google/api/generator/spring/SpringWriter.java +++ b/src/main/java/com/google/api/generator/spring/SpringWriter.java @@ -204,14 +204,12 @@ private static void writeSpringAdditionalMetadataJson(GapicContext context, JarO @VisibleForTesting static String buildPomString(GapicContext context) { - String pakkageName = Utils.getPackageName(context); - pakkageName = pakkageName.replace('.', '-'); String clientLibraryShortName = Utils.getLibName(context); String clientLibraryGroupId = "{{client-library-group-id}}"; String clientLibraryName = "{{client-library-artifact-id}}"; String clientLibraryVersion = "{{client-library-version}}"; - String springStarterArtifactId = pakkageName + "-spring-starter"; + String springStarterArtifactId = clientLibraryName + "-spring-starter"; String springStarterVersion = "{{starter-version}}"; String springStarterName = "Spring Boot Starter - " + clientLibraryShortName; diff --git a/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java b/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java index 1a97af96c7..83d2dd02b0 100644 --- a/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java +++ b/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java @@ -21,6 +21,7 @@ import com.google.api.gax.rpc.TransportChannelProvider; import com.google.api.generator.engine.ast.AnnotationNode; import com.google.api.generator.engine.ast.ArithmeticOperationExpr; +import com.google.api.generator.engine.ast.ArrayExpr; import com.google.api.generator.engine.ast.AssignmentExpr; import com.google.api.generator.engine.ast.CastExpr; import com.google.api.generator.engine.ast.ClassDefinition; @@ -34,6 +35,7 @@ import com.google.api.generator.engine.ast.NewObjectExpr; import com.google.api.generator.engine.ast.PrimitiveValue; import com.google.api.generator.engine.ast.RelationalOperationExpr; +import com.google.api.generator.engine.ast.ReturnExpr; import com.google.api.generator.engine.ast.ScopeNode; import com.google.api.generator.engine.ast.Statement; import com.google.api.generator.engine.ast.StringObjectValue; @@ -53,9 +55,12 @@ import com.google.api.generator.gapic.model.Transport; import com.google.api.generator.spring.composer.comment.SpringAutoconfigCommentComposer; import com.google.api.generator.spring.utils.LoggerUtils; +import com.google.api.generator.spring.utils.SharedPropertiesUtils; import com.google.api.generator.spring.utils.Utils; import com.google.common.base.CaseFormat; import com.google.common.base.Joiner; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -63,6 +68,8 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import javax.annotation.Generated; +import javax.management.StringValueExp; public class SpringAutoConfigClassComposer implements ClassComposer { private static final String CLASS_NAME_PATTERN = "%sSpringAutoConfiguration"; @@ -155,41 +162,91 @@ private static List createMemberVariables( Statement loggerStatement = LoggerUtils.getLoggerDeclarationExpr(serviceName + "AutoConfig", types); - return Arrays.asList(clientPropertiesStatement, loggerStatement); + Statement sharedPropertiesStatement = SharedPropertiesUtils.getSharedPropertiesDeclaration(types); + return Arrays.asList(clientPropertiesStatement, sharedPropertiesStatement, loggerStatement); } private static MethodDefinition createConstructor( String serviceName, String className, Map types, Expr thisExpr) { - VariableExpr propertiesVarExpr = + /// constructor + // VariableExpr credentialsProviderBuilderVarExpr = + // VariableExpr.withVariable( + // Variable.builder() + // .setName("coreCredentialsProvider") + // .setType(types.get("CredentialsProvider")) + // .build()); + // + // VariableExpr coreProjectIdProviderVarExpr = + // VariableExpr.withVariable( + // Variable.builder() + // .setName("coreProjectIdProvider") + // .setType(types.get("GcpProjectIdProvider")) + // .build()); + + VariableExpr clientPropertiesVarExpr = VariableExpr.withVariable( Variable.builder() .setName("clientProperties") .setType(types.get(serviceName + "Properties")) .build()); + VariableExpr sharedPropertiesVarExpr = + VariableExpr.withVariable( + Variable.builder() + .setName("sharedProperties") + .setType(types.get("SharedProperties")) + .build()); + // Variable projectIdProviderVar = + // Variable.builder() + // .setName("projectIdProvider") + // .setType(types.get("GcpProjectIdProvider")) + // .build(); Variable clientPropertiesVar = Variable.builder() .setName("clientProperties") .setType(types.get(serviceName + "Properties")) .build(); + Variable sharedPropertiesVar = + Variable.builder() + .setName("sharedProperties") + .setType(types.get("SharedProperties")) + .build(); // this.clientProperties = clientProperties; - AssignmentExpr thisPropertiesAssignmentExpr = + AssignmentExpr thisClientPropertiesAssignmentExpr = AssignmentExpr.builder() .setVariableExpr( VariableExpr.withVariable(clientPropertiesVar) .toBuilder() .setExprReferenceExpr(thisExpr) .build()) - .setValueExpr(propertiesVarExpr) + .setValueExpr(clientPropertiesVarExpr) + .build(); + ExprStatement thisClientPropertiesAssignmentStatement = + ExprStatement.withExpr(thisClientPropertiesAssignmentExpr); + + AssignmentExpr thisSharedPropertiesAssignmentExpr = + AssignmentExpr.builder() + .setVariableExpr( + VariableExpr.withVariable(sharedPropertiesVar) + .toBuilder() + .setExprReferenceExpr(thisExpr) + .build()) + .setValueExpr(sharedPropertiesVarExpr) .build(); - ExprStatement thisPropertiesAssignmentStatement = - ExprStatement.withExpr(thisPropertiesAssignmentExpr); + ExprStatement thisSharedPropertiesAssignmentStatement = + ExprStatement.withExpr(thisSharedPropertiesAssignmentExpr); return MethodDefinition.constructorBuilder() .setScope(ScopeNode.PROTECTED) .setReturnType(types.get(className)) - .setArguments(Arrays.asList(propertiesVarExpr.toBuilder().setIsDecl(true).build())) - .setBody(Arrays.asList(thisPropertiesAssignmentStatement)) + .setArguments(Arrays.asList( + clientPropertiesVarExpr.toBuilder().setIsDecl(true).build(), + sharedPropertiesVarExpr.toBuilder().setIsDecl(true).build() + )) + .setBody(Arrays.asList( + thisClientPropertiesAssignmentStatement, + thisSharedPropertiesAssignmentStatement + )) .build(); } @@ -244,11 +301,20 @@ private static List createClassAnnotations( AnnotationNode.builder() .setType(types.get("EnableConfigurationProperties")) .setDescription( - VariableExpr.builder() - .setVariable( - Variable.builder().setType(TypeNode.CLASS_OBJECT).setName("class").build()) - .setStaticReferenceType(types.get(service.name() + "Properties")) - .build()) + ArrayExpr.builder() + .addExpr(VariableExpr.builder() + .setVariable( + Variable.builder().setType(TypeNode.CLASS_OBJECT).setName("class").build()) + .setStaticReferenceType(types.get(service.name() + "Properties")) + .build()) + .addExpr(VariableExpr.builder() + .setVariable( + Variable.builder().setType(TypeNode.CLASS_OBJECT).setName("class").build()) + .setStaticReferenceType(types.get("SharedProperties")) + .build()) + .build() + + ) .build(); return Arrays.asList( @@ -265,11 +331,19 @@ private static MethodDefinition createCredentialsProviderBeanMethod( Map types, Expr thisExpr) { // @Bean - // @ConditionalOnMissingBean + // @ConditionalOnMissingBean(name = "[serviceName]ServiceCredentials") // public CredentialsProvider languageServiceCredentials() throws IOException { - // return new DefaultCredentialsProvider(this.clientProperties); + // if (this.clientProperties.getCredentials().hasKey()) { + // return new DefaultCredentialsProvider(this.clientProperties); + // } + // return new DefaultCredentialsProvider(this.sharedProperties); // } - + List bodyStatements = new ArrayList<>(); + Variable sharedPropertiesVar = + Variable.builder() + .setName("sharedProperties") + .setType(types.get("SharedProperties")) + .build(); Variable clientPropertiesVar = Variable.builder() .setName("clientProperties") @@ -281,7 +355,12 @@ private static MethodDefinition createCredentialsProviderBeanMethod( .toBuilder() .setExprReferenceExpr(thisExpr) .build(); - CastExpr castExpr = + VariableExpr thisSharedProperties = + VariableExpr.withVariable(sharedPropertiesVar) + .toBuilder() + .setExprReferenceExpr(thisExpr) + .build(); + CastExpr clientCastExpr = CastExpr.builder() .setExpr( NewObjectExpr.builder() @@ -290,6 +369,42 @@ private static MethodDefinition createCredentialsProviderBeanMethod( .build()) .setType(types.get("CredentialsProvider")) .build(); + CastExpr sharedCredentialsCastExpr = + CastExpr.builder() + .setExpr( + NewObjectExpr.builder() + .setType(types.get("DefaultCredentialsProvider")) + .setArguments(thisSharedProperties) + .build()) + .setType(types.get("CredentialsProvider")) + .build(); + ExprStatement clientCredentialsReturnExpr = ExprStatement.withExpr(ReturnExpr.withExpr(clientCastExpr)); + Expr clientPropertiesGetCredentials = MethodInvocationExpr.builder() + .setExprReferenceExpr(thisClientProperties) + .setMethodName("getCredentials") + .setReturnType(types.get("Credentials")) + .build(); + Expr clientPropertiesCredentialsHasKey = MethodInvocationExpr.builder() + .setExprReferenceExpr(clientPropertiesGetCredentials) + .setMethodName("hasKey") + .setReturnType(TypeNode.BOOLEAN) + .build(); + IfStatement clientCredentialsIfStatement = createIfStatement(clientPropertiesCredentialsHasKey, + Arrays.asList(clientCredentialsReturnExpr), null); + bodyStatements.add(clientCredentialsIfStatement); + + // @ConditionalOnMissingBean(name = "[serviceName]ServiceCredentials") + AnnotationNode conditionalOnMissingBeanExpr = AnnotationNode.builder() + .setType(types.get("ConditionalOnMissingBean")) + .addDescription(AssignmentExpr.builder() + .setVariableExpr(VariableExpr.withVariable( + Variable.builder() + .setName("name") + .setType(TypeNode.STRING) + .build())) + .setValueExpr(ValueExpr.withValue(StringObjectValue.withValue(methodName))) + .build()) + .build(); return MethodDefinition.builder() .setName(methodName) @@ -300,9 +415,12 @@ private static MethodDefinition createCredentialsProviderBeanMethod( .setAnnotations( Arrays.asList( AnnotationNode.withType(types.get("Bean")), - AnnotationNode.withType(types.get("ConditionalOnMissingBean")))) + conditionalOnMissingBeanExpr + ) + ) .setThrowsExceptions(Arrays.asList(TypeNode.withExceptionClazz(IOException.class))) - .setReturnExpr(castExpr) + .setBody(bodyStatements) + .setReturnExpr(sharedCredentialsCastExpr) .build(); } @@ -1038,6 +1156,7 @@ private static Map createDynamicTypes(Service service, String typeMap.put("Qualifier", qualifier); typeMap.put("Log", LoggerUtils.getLoggerType()); typeMap.put("LogFactory", LoggerUtils.getLoggerFactoryType()); + typeMap.put("SharedProperties", SharedPropertiesUtils.getSharedPropertiesType()); return typeMap; } diff --git a/src/main/java/com/google/api/generator/spring/utils/SharedPropertiesUtils.java b/src/main/java/com/google/api/generator/spring/utils/SharedPropertiesUtils.java new file mode 100644 index 0000000000..d915241dc4 --- /dev/null +++ b/src/main/java/com/google/api/generator/spring/utils/SharedPropertiesUtils.java @@ -0,0 +1,53 @@ +// Copyright 2022 Google LLC +// +// Licensed 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 com.google.api.generator.spring.utils; + +import com.google.api.generator.engine.ast.ExprStatement; +import com.google.api.generator.engine.ast.ScopeNode; +import com.google.api.generator.engine.ast.Statement; +import com.google.api.generator.engine.ast.TypeNode; +import com.google.api.generator.engine.ast.VaporReference; +import com.google.api.generator.engine.ast.Variable; +import com.google.api.generator.engine.ast.VariableExpr; +import java.util.Map; + +public class SharedPropertiesUtils { + public static final String SHARED_PROPERTIES_CLAZZ_NAME = "SharedProperties"; + public static final String SHARED_PROPERTIES_PAKKAGE_NAME = "com.google.cloud.spring.shared"; + + public static TypeNode getSharedPropertiesType() { + TypeNode loggerType = + TypeNode.withReference( + VaporReference.builder() + .setName(SHARED_PROPERTIES_CLAZZ_NAME) + .setPakkage(SHARED_PROPERTIES_PAKKAGE_NAME) + .build()); + return loggerType; + } + + public static Statement getSharedPropertiesDeclaration(Map types) { + Variable sharedPropertiesVar = Variable.builder() + .setName("sharedProperties") + .setType(types.get("SharedProperties")) + .build(); + return ExprStatement.withExpr(VariableExpr.builder() + .setVariable(sharedPropertiesVar) + .setScope(ScopeNode.PRIVATE) + .setIsStatic(false) + .setIsFinal(true) + .setIsDecl(true) + .build()); + } +} diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden index f26048224e..6bf6e5b6c9 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden @@ -22,7 +22,9 @@ import com.google.api.gax.core.ExecutorProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.HeaderProvider; import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; +import com.google.cloud.spring.shared.SharedProperties; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; @@ -60,13 +62,16 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = false) -@EnableConfigurationProperties(EchoSpringProperties.class) +@EnableConfigurationProperties({EchoSpringProperties.class, SharedProperties.class}) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; + private final SharedProperties sharedProperties; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfig.class); - protected EchoSpringAutoConfiguration(EchoSpringProperties clientProperties) { + protected EchoSpringAutoConfiguration( + EchoSpringProperties clientProperties, SharedProperties sharedProperties) { this.clientProperties = clientProperties; + this.sharedProperties = sharedProperties; } /** @@ -74,9 +79,12 @@ public class EchoSpringAutoConfiguration { * configuration data files. */ @Bean - @ConditionalOnMissingBean + @ConditionalOnMissingBean(name = "echoCredentials") public CredentialsProvider echoCredentials() throws IOException { - return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + if (this.clientProperties.getCredentials().hasKey()) { + return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + } + return ((CredentialsProvider) new DefaultCredentialsProvider(this.sharedProperties)); } /** diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden index ce5f3e5509..e5adcb78f4 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden @@ -3,13 +3,19 @@ package com.google.showcase.v1beta1.spring; import com.google.api.gax.core.CredentialsProvider; import com.google.api.gax.core.ExecutorProvider; import com.google.api.gax.retrying.RetrySettings; +<<<<<<< HEAD import com.google.api.gax.rpc.HeaderProvider; +======= +>>>>>>> c0b0937c (fix(Spring CodeGen): To only include options to set to rest transport when supported (#1078)) import com.google.api.gax.rpc.TransportChannelProvider; import com.google.cloud.spring.core.DefaultCredentialsProvider; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; +<<<<<<< HEAD import java.util.Collections; +======= +>>>>>>> c0b0937c (fix(Spring CodeGen): To only include options to set to rest transport when supported (#1078)) import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Qualifier; @@ -90,7 +96,11 @@ public class EchoSpringAutoConfiguration { EchoSettings.newBuilder() .setCredentialsProvider(credentialsProvider) .setTransportChannelProvider(defaultTransportChannelProvider) +<<<<<<< HEAD .setHeaderProvider(this.userAgentHeaderProvider()); +======= + .setHeaderProvider(); +>>>>>>> c0b0937c (fix(Spring CodeGen): To only include options to set to rest transport when supported (#1078)) if (this.clientProperties.getQuotaProjectId() != null) { clientSettingsBuilder.setQuotaProjectId(this.clientProperties.getQuotaProjectId()); LOGGER.info( @@ -429,10 +439,13 @@ public class EchoSpringAutoConfiguration { .setRetrySettings(collideNameRetrySettingBuilder.build()); return EchoClient.create(clientSettingsBuilder.build()); } +<<<<<<< HEAD private HeaderProvider userAgentHeaderProvider() { String springLibrary = "spring-autogen-echo"; String version = this.getClass().getPackage().getImplementationVersion(); return () -> Collections.singletonMap("user-agent", springLibrary + "/" + version); } +======= +>>>>>>> c0b0937c (fix(Spring CodeGen): To only include options to set to rest transport when supported (#1078)) } diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden index a8c3faa1a5..727ef23084 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden @@ -6,7 +6,9 @@ import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.HeaderProvider; import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; +import com.google.cloud.spring.shared.SharedProperties; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; @@ -41,13 +43,16 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = false) -@EnableConfigurationProperties(EchoSpringProperties.class) +@EnableConfigurationProperties({EchoSpringProperties.class, SharedProperties.class}) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; + private final SharedProperties sharedProperties; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfig.class); - protected EchoSpringAutoConfiguration(EchoSpringProperties clientProperties) { + protected EchoSpringAutoConfiguration( + EchoSpringProperties clientProperties, SharedProperties sharedProperties) { this.clientProperties = clientProperties; + this.sharedProperties = sharedProperties; } /** @@ -55,9 +60,12 @@ public class EchoSpringAutoConfiguration { * configuration data files. */ @Bean - @ConditionalOnMissingBean + @ConditionalOnMissingBean(name = "echoCredentials") public CredentialsProvider echoCredentials() throws IOException { - return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + if (this.clientProperties.getCredentials().hasKey()) { + return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + } + return ((CredentialsProvider) new DefaultCredentialsProvider(this.sharedProperties)); } /** diff --git a/src/test/java/com/google/api/generator/spring/goldens/SpringPackagePom.golden b/src/test/java/com/google/api/generator/spring/goldens/SpringPackagePom.golden index e772bef703..b6b2632c24 100644 --- a/src/test/java/com/google/api/generator/spring/goldens/SpringPackagePom.golden +++ b/src/test/java/com/google/api/generator/spring/goldens/SpringPackagePom.golden @@ -4,7 +4,7 @@ 4.0.0 com.google.cloud - com-google-showcase-v1beta1-spring-starter + {{client-library-artifact-id}}-spring-starter {{starter-version}} Spring Boot Starter - localhost:7469 Spring Boot Starter with AutoConfiguration for localhost:7469 From a8886c22a5b95495665bf202ddaf7682374553ab Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Mon, 14 Nov 2022 21:24:34 +0000 Subject: [PATCH 2/9] rename to global properties --- .../SpringAutoConfigClassComposer.java | 158 +++++++++--------- ...sUtils.java => GlobalPropertiesUtils.java} | 38 +++-- .../EchoSpringAutoConfigurationFull.golden | 12 +- .../EchoSpringAutoConfigurationGrpc.golden | 16 +- ...EchoSpringAutoConfigurationGrpcRest.golden | 12 +- 5 files changed, 125 insertions(+), 111 deletions(-) rename src/main/java/com/google/api/generator/spring/utils/{SharedPropertiesUtils.java => GlobalPropertiesUtils.java} (58%) diff --git a/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java b/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java index 83d2dd02b0..720066b1a5 100644 --- a/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java +++ b/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java @@ -54,12 +54,11 @@ import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.model.Transport; import com.google.api.generator.spring.composer.comment.SpringAutoconfigCommentComposer; +import com.google.api.generator.spring.utils.GlobalPropertiesUtils; import com.google.api.generator.spring.utils.LoggerUtils; -import com.google.api.generator.spring.utils.SharedPropertiesUtils; import com.google.api.generator.spring.utils.Utils; import com.google.common.base.CaseFormat; import com.google.common.base.Joiner; -import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import java.io.IOException; import java.util.ArrayList; @@ -68,8 +67,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import javax.annotation.Generated; -import javax.management.StringValueExp; public class SpringAutoConfigClassComposer implements ClassComposer { private static final String CLASS_NAME_PATTERN = "%sSpringAutoConfiguration"; @@ -162,8 +159,9 @@ private static List createMemberVariables( Statement loggerStatement = LoggerUtils.getLoggerDeclarationExpr(serviceName + "AutoConfig", types); - Statement sharedPropertiesStatement = SharedPropertiesUtils.getSharedPropertiesDeclaration(types); - return Arrays.asList(clientPropertiesStatement, sharedPropertiesStatement, loggerStatement); + Statement globalPropertiesStatement = + GlobalPropertiesUtils.getGlobalPropertiesDeclaration(types); + return Arrays.asList(clientPropertiesStatement, globalPropertiesStatement, loggerStatement); } private static MethodDefinition createConstructor( @@ -189,11 +187,11 @@ private static MethodDefinition createConstructor( .setName("clientProperties") .setType(types.get(serviceName + "Properties")) .build()); - VariableExpr sharedPropertiesVarExpr = + VariableExpr globalPropertiesVarExpr = VariableExpr.withVariable( Variable.builder() - .setName("sharedProperties") - .setType(types.get("SharedProperties")) + .setName("globalProperties") + .setType(types.get("GlobalProperties")) .build()); // Variable projectIdProviderVar = // Variable.builder() @@ -205,10 +203,10 @@ private static MethodDefinition createConstructor( .setName("clientProperties") .setType(types.get(serviceName + "Properties")) .build(); - Variable sharedPropertiesVar = + Variable globalPropertiesVar = Variable.builder() - .setName("sharedProperties") - .setType(types.get("SharedProperties")) + .setName("globalProperties") + .setType(types.get("GlobalProperties")) .build(); // this.clientProperties = clientProperties; @@ -224,29 +222,28 @@ private static MethodDefinition createConstructor( ExprStatement thisClientPropertiesAssignmentStatement = ExprStatement.withExpr(thisClientPropertiesAssignmentExpr); - AssignmentExpr thisSharedPropertiesAssignmentExpr = + AssignmentExpr thisGlobalPropertiesAssignmentExpr = AssignmentExpr.builder() .setVariableExpr( - VariableExpr.withVariable(sharedPropertiesVar) + VariableExpr.withVariable(globalPropertiesVar) .toBuilder() .setExprReferenceExpr(thisExpr) .build()) - .setValueExpr(sharedPropertiesVarExpr) + .setValueExpr(globalPropertiesVarExpr) .build(); - ExprStatement thisSharedPropertiesAssignmentStatement = - ExprStatement.withExpr(thisSharedPropertiesAssignmentExpr); + ExprStatement thisGlobalPropertiesAssignmentStatement = + ExprStatement.withExpr(thisGlobalPropertiesAssignmentExpr); return MethodDefinition.constructorBuilder() .setScope(ScopeNode.PROTECTED) .setReturnType(types.get(className)) - .setArguments(Arrays.asList( - clientPropertiesVarExpr.toBuilder().setIsDecl(true).build(), - sharedPropertiesVarExpr.toBuilder().setIsDecl(true).build() - )) - .setBody(Arrays.asList( - thisClientPropertiesAssignmentStatement, - thisSharedPropertiesAssignmentStatement - )) + .setArguments( + Arrays.asList( + clientPropertiesVarExpr.toBuilder().setIsDecl(true).build(), + globalPropertiesVarExpr.toBuilder().setIsDecl(true).build())) + .setBody( + Arrays.asList( + thisClientPropertiesAssignmentStatement, thisGlobalPropertiesAssignmentStatement)) .build(); } @@ -302,19 +299,26 @@ private static List createClassAnnotations( .setType(types.get("EnableConfigurationProperties")) .setDescription( ArrayExpr.builder() - .addExpr(VariableExpr.builder() - .setVariable( - Variable.builder().setType(TypeNode.CLASS_OBJECT).setName("class").build()) - .setStaticReferenceType(types.get(service.name() + "Properties")) - .build()) - .addExpr(VariableExpr.builder() - .setVariable( - Variable.builder().setType(TypeNode.CLASS_OBJECT).setName("class").build()) - .setStaticReferenceType(types.get("SharedProperties")) - .build()) - .build() - - ) + .setType(TypeNode.createArrayTypeOf(TypeNode.CLASS_OBJECT)) + .addExpr( + VariableExpr.builder() + .setVariable( + Variable.builder() + .setType(TypeNode.CLASS_OBJECT) + .setName("class") + .build()) + .setStaticReferenceType(types.get(service.name() + "Properties")) + .build()) + .addExpr( + VariableExpr.builder() + .setVariable( + Variable.builder() + .setType(TypeNode.CLASS_OBJECT) + .setName("class") + .build()) + .setStaticReferenceType(types.get("GlobalProperties")) + .build()) + .build()) .build(); return Arrays.asList( @@ -336,13 +340,13 @@ private static MethodDefinition createCredentialsProviderBeanMethod( // if (this.clientProperties.getCredentials().hasKey()) { // return new DefaultCredentialsProvider(this.clientProperties); // } - // return new DefaultCredentialsProvider(this.sharedProperties); + // return new DefaultCredentialsProvider(this.globalProperties); // } List bodyStatements = new ArrayList<>(); - Variable sharedPropertiesVar = + Variable globalPropertiesVar = Variable.builder() - .setName("sharedProperties") - .setType(types.get("SharedProperties")) + .setName("GlobalProperties") + .setType(types.get("GlobalProperties")) .build(); Variable clientPropertiesVar = Variable.builder() @@ -355,8 +359,8 @@ private static MethodDefinition createCredentialsProviderBeanMethod( .toBuilder() .setExprReferenceExpr(thisExpr) .build(); - VariableExpr thisSharedProperties = - VariableExpr.withVariable(sharedPropertiesVar) + VariableExpr thisGlobalProperties = + VariableExpr.withVariable(globalPropertiesVar) .toBuilder() .setExprReferenceExpr(thisExpr) .build(); @@ -369,42 +373,46 @@ private static MethodDefinition createCredentialsProviderBeanMethod( .build()) .setType(types.get("CredentialsProvider")) .build(); - CastExpr sharedCredentialsCastExpr = + CastExpr globalCredentialsCastExpr = CastExpr.builder() .setExpr( NewObjectExpr.builder() .setType(types.get("DefaultCredentialsProvider")) - .setArguments(thisSharedProperties) + .setArguments(thisGlobalProperties) .build()) .setType(types.get("CredentialsProvider")) .build(); - ExprStatement clientCredentialsReturnExpr = ExprStatement.withExpr(ReturnExpr.withExpr(clientCastExpr)); - Expr clientPropertiesGetCredentials = MethodInvocationExpr.builder() - .setExprReferenceExpr(thisClientProperties) - .setMethodName("getCredentials") - .setReturnType(types.get("Credentials")) - .build(); - Expr clientPropertiesCredentialsHasKey = MethodInvocationExpr.builder() - .setExprReferenceExpr(clientPropertiesGetCredentials) - .setMethodName("hasKey") - .setReturnType(TypeNode.BOOLEAN) - .build(); - IfStatement clientCredentialsIfStatement = createIfStatement(clientPropertiesCredentialsHasKey, - Arrays.asList(clientCredentialsReturnExpr), null); + ExprStatement clientCredentialsReturnExpr = + ExprStatement.withExpr(ReturnExpr.withExpr(clientCastExpr)); + Expr clientPropertiesGetCredentials = + MethodInvocationExpr.builder() + .setExprReferenceExpr(thisClientProperties) + .setMethodName("getCredentials") + .setReturnType(types.get("Credentials")) + .build(); + Expr clientPropertiesCredentialsHasKey = + MethodInvocationExpr.builder() + .setExprReferenceExpr(clientPropertiesGetCredentials) + .setMethodName("hasKey") + .setReturnType(TypeNode.BOOLEAN) + .build(); + IfStatement clientCredentialsIfStatement = + createIfStatement( + clientPropertiesCredentialsHasKey, Arrays.asList(clientCredentialsReturnExpr), null); bodyStatements.add(clientCredentialsIfStatement); // @ConditionalOnMissingBean(name = "[serviceName]ServiceCredentials") - AnnotationNode conditionalOnMissingBeanExpr = AnnotationNode.builder() - .setType(types.get("ConditionalOnMissingBean")) - .addDescription(AssignmentExpr.builder() - .setVariableExpr(VariableExpr.withVariable( - Variable.builder() - .setName("name") - .setType(TypeNode.STRING) - .build())) - .setValueExpr(ValueExpr.withValue(StringObjectValue.withValue(methodName))) - .build()) - .build(); + AnnotationNode conditionalOnMissingBeanExpr = + AnnotationNode.builder() + .setType(types.get("ConditionalOnMissingBean")) + .addDescription( + AssignmentExpr.builder() + .setVariableExpr( + VariableExpr.withVariable( + Variable.builder().setName("name").setType(TypeNode.STRING).build())) + .setValueExpr(ValueExpr.withValue(StringObjectValue.withValue(methodName))) + .build()) + .build(); return MethodDefinition.builder() .setName(methodName) @@ -413,14 +421,10 @@ private static MethodDefinition createCredentialsProviderBeanMethod( .setScope(ScopeNode.PUBLIC) .setReturnType(types.get("CredentialsProvider")) .setAnnotations( - Arrays.asList( - AnnotationNode.withType(types.get("Bean")), - conditionalOnMissingBeanExpr - ) - ) + Arrays.asList(AnnotationNode.withType(types.get("Bean")), conditionalOnMissingBeanExpr)) .setThrowsExceptions(Arrays.asList(TypeNode.withExceptionClazz(IOException.class))) .setBody(bodyStatements) - .setReturnExpr(sharedCredentialsCastExpr) + .setReturnExpr(globalCredentialsCastExpr) .build(); } @@ -1156,7 +1160,7 @@ private static Map createDynamicTypes(Service service, String typeMap.put("Qualifier", qualifier); typeMap.put("Log", LoggerUtils.getLoggerType()); typeMap.put("LogFactory", LoggerUtils.getLoggerFactoryType()); - typeMap.put("SharedProperties", SharedPropertiesUtils.getSharedPropertiesType()); + typeMap.put("GlobalProperties", GlobalPropertiesUtils.getGlobalPropertiesType()); return typeMap; } diff --git a/src/main/java/com/google/api/generator/spring/utils/SharedPropertiesUtils.java b/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java similarity index 58% rename from src/main/java/com/google/api/generator/spring/utils/SharedPropertiesUtils.java rename to src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java index d915241dc4..3c57a6c277 100644 --- a/src/main/java/com/google/api/generator/spring/utils/SharedPropertiesUtils.java +++ b/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java @@ -23,31 +23,33 @@ import com.google.api.generator.engine.ast.VariableExpr; import java.util.Map; -public class SharedPropertiesUtils { - public static final String SHARED_PROPERTIES_CLAZZ_NAME = "SharedProperties"; - public static final String SHARED_PROPERTIES_PAKKAGE_NAME = "com.google.cloud.spring.shared"; +public class GlobalPropertiesUtils { + public static final String GLOBAL_PROPERTIES_CLAZZ_NAME = "GLobalProperties"; + public static final String GLOBAL_PROPERTIES_PAKKAGE_NAME = "com.google.cloud.global"; - public static TypeNode getSharedPropertiesType() { + public static TypeNode getGlobalPropertiesType() { TypeNode loggerType = TypeNode.withReference( VaporReference.builder() - .setName(SHARED_PROPERTIES_CLAZZ_NAME) - .setPakkage(SHARED_PROPERTIES_PAKKAGE_NAME) + .setName(GLOBAL_PROPERTIES_CLAZZ_NAME) + .setPakkage(GLOBAL_PROPERTIES_PAKKAGE_NAME) .build()); return loggerType; } - public static Statement getSharedPropertiesDeclaration(Map types) { - Variable sharedPropertiesVar = Variable.builder() - .setName("sharedProperties") - .setType(types.get("SharedProperties")) - .build(); - return ExprStatement.withExpr(VariableExpr.builder() - .setVariable(sharedPropertiesVar) - .setScope(ScopeNode.PRIVATE) - .setIsStatic(false) - .setIsFinal(true) - .setIsDecl(true) - .build()); + public static Statement getGlobalPropertiesDeclaration(Map types) { + Variable globalPropertiesVar = + Variable.builder() + .setName("globalProperties") + .setType(types.get("GlobalProperties")) + .build(); + return ExprStatement.withExpr( + VariableExpr.builder() + .setVariable(globalPropertiesVar) + .setScope(ScopeNode.PRIVATE) + .setIsStatic(false) + .setIsFinal(true) + .setIsDecl(true) + .build()); } } diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden index 6bf6e5b6c9..f59e9a0781 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden @@ -22,9 +22,9 @@ import com.google.api.gax.core.ExecutorProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.HeaderProvider; import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.cloud.global.GLobalProperties; import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; -import com.google.cloud.spring.shared.SharedProperties; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; @@ -62,16 +62,16 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = false) -@EnableConfigurationProperties({EchoSpringProperties.class, SharedProperties.class}) +@EnableConfigurationProperties({EchoSpringProperties.class, GLobalProperties.class}) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; - private final SharedProperties sharedProperties; + private final GLobalProperties globalProperties; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfig.class); protected EchoSpringAutoConfiguration( - EchoSpringProperties clientProperties, SharedProperties sharedProperties) { + EchoSpringProperties clientProperties, GLobalProperties globalProperties) { this.clientProperties = clientProperties; - this.sharedProperties = sharedProperties; + this.globalProperties = globalProperties; } /** @@ -84,7 +84,7 @@ public class EchoSpringAutoConfiguration { if (this.clientProperties.getCredentials().hasKey()) { return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.sharedProperties)); + return ((CredentialsProvider) new DefaultCredentialsProvider(this.GlobalProperties)); } /** diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden index e5adcb78f4..7beb97e4e1 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden @@ -8,6 +8,8 @@ import com.google.api.gax.rpc.HeaderProvider; ======= >>>>>>> c0b0937c (fix(Spring CodeGen): To only include options to set to rest transport when supported (#1078)) import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.cloud.global.GLobalProperties; +import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; @@ -46,13 +48,16 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = false) -@EnableConfigurationProperties(EchoSpringProperties.class) +@EnableConfigurationProperties({EchoSpringProperties.class, GLobalProperties.class}) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; + private final GLobalProperties globalProperties; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfig.class); - protected EchoSpringAutoConfiguration(EchoSpringProperties clientProperties) { + protected EchoSpringAutoConfiguration( + EchoSpringProperties clientProperties, GLobalProperties globalProperties) { this.clientProperties = clientProperties; + this.globalProperties = globalProperties; } /** @@ -60,9 +65,12 @@ public class EchoSpringAutoConfiguration { * configuration data files. */ @Bean - @ConditionalOnMissingBean + @ConditionalOnMissingBean(name = "echoCredentials") public CredentialsProvider echoCredentials() throws IOException { - return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + if (this.clientProperties.getCredentials().hasKey()) { + return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + } + return ((CredentialsProvider) new DefaultCredentialsProvider(this.GlobalProperties)); } /** diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden index 727ef23084..202fcaa999 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden @@ -6,9 +6,9 @@ import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.HeaderProvider; import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.cloud.global.GLobalProperties; import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; -import com.google.cloud.spring.shared.SharedProperties; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; @@ -43,16 +43,16 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = false) -@EnableConfigurationProperties({EchoSpringProperties.class, SharedProperties.class}) +@EnableConfigurationProperties({EchoSpringProperties.class, GLobalProperties.class}) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; - private final SharedProperties sharedProperties; + private final GLobalProperties globalProperties; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfig.class); protected EchoSpringAutoConfiguration( - EchoSpringProperties clientProperties, SharedProperties sharedProperties) { + EchoSpringProperties clientProperties, GLobalProperties globalProperties) { this.clientProperties = clientProperties; - this.sharedProperties = sharedProperties; + this.globalProperties = globalProperties; } /** @@ -65,7 +65,7 @@ public class EchoSpringAutoConfiguration { if (this.clientProperties.getCredentials().hasKey()) { return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.sharedProperties)); + return ((CredentialsProvider) new DefaultCredentialsProvider(this.GlobalProperties)); } /** From 0b6d3bb82602d7cf7fc2bfaba81792171bc826d6 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Mon, 14 Nov 2022 21:35:18 +0000 Subject: [PATCH 3/9] fix(test): update goldens --- .../goldens/EchoSpringAutoConfigurationGrpc.golden | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden index 7beb97e4e1..4eb4ff28b1 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden @@ -3,10 +3,7 @@ package com.google.showcase.v1beta1.spring; import com.google.api.gax.core.CredentialsProvider; import com.google.api.gax.core.ExecutorProvider; import com.google.api.gax.retrying.RetrySettings; -<<<<<<< HEAD import com.google.api.gax.rpc.HeaderProvider; -======= ->>>>>>> c0b0937c (fix(Spring CodeGen): To only include options to set to rest transport when supported (#1078)) import com.google.api.gax.rpc.TransportChannelProvider; import com.google.cloud.global.GLobalProperties; import com.google.cloud.spring.core.Credentials; @@ -14,10 +11,7 @@ import com.google.cloud.spring.core.DefaultCredentialsProvider; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; -<<<<<<< HEAD import java.util.Collections; -======= ->>>>>>> c0b0937c (fix(Spring CodeGen): To only include options to set to rest transport when supported (#1078)) import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Qualifier; @@ -104,11 +98,7 @@ public class EchoSpringAutoConfiguration { EchoSettings.newBuilder() .setCredentialsProvider(credentialsProvider) .setTransportChannelProvider(defaultTransportChannelProvider) -<<<<<<< HEAD .setHeaderProvider(this.userAgentHeaderProvider()); -======= - .setHeaderProvider(); ->>>>>>> c0b0937c (fix(Spring CodeGen): To only include options to set to rest transport when supported (#1078)) if (this.clientProperties.getQuotaProjectId() != null) { clientSettingsBuilder.setQuotaProjectId(this.clientProperties.getQuotaProjectId()); LOGGER.info( @@ -447,13 +437,10 @@ public class EchoSpringAutoConfiguration { .setRetrySettings(collideNameRetrySettingBuilder.build()); return EchoClient.create(clientSettingsBuilder.build()); } -<<<<<<< HEAD private HeaderProvider userAgentHeaderProvider() { String springLibrary = "spring-autogen-echo"; String version = this.getClass().getPackage().getImplementationVersion(); return () -> Collections.singletonMap("user-agent", springLibrary + "/" + version); } -======= ->>>>>>> c0b0937c (fix(Spring CodeGen): To only include options to set to rest transport when supported (#1078)) } From 7ff44964fa366f13b6cb470ee02dda23164030cf Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Mon, 14 Nov 2022 21:37:42 +0000 Subject: [PATCH 4/9] fix: format --- .../generator/spring/composer/SpringAutoConfigClassComposer.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java b/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java index 720066b1a5..239182a057 100644 --- a/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java +++ b/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java @@ -59,7 +59,6 @@ import com.google.api.generator.spring.utils.Utils; import com.google.common.base.CaseFormat; import com.google.common.base.Joiner; -import com.google.common.collect.ImmutableMap; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; From 84caac0f078175bc80d0206b525e551e54233f7e Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Mon, 14 Nov 2022 21:40:04 +0000 Subject: [PATCH 5/9] fix: typo in GLobalProperties --- .../api/generator/spring/utils/GlobalPropertiesUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java b/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java index 3c57a6c277..b4ce174eba 100644 --- a/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java +++ b/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java @@ -24,7 +24,7 @@ import java.util.Map; public class GlobalPropertiesUtils { - public static final String GLOBAL_PROPERTIES_CLAZZ_NAME = "GLobalProperties"; + public static final String GLOBAL_PROPERTIES_CLAZZ_NAME = "GlobalProperties"; public static final String GLOBAL_PROPERTIES_PAKKAGE_NAME = "com.google.cloud.global"; public static TypeNode getGlobalPropertiesType() { From f4787577a0223732c95f148a70dbe9fa1de26605 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Mon, 14 Nov 2022 21:41:46 +0000 Subject: [PATCH 6/9] fix: typo in goldens --- .../goldens/EchoSpringAutoConfigurationFull.golden | 8 ++++---- .../goldens/EchoSpringAutoConfigurationGrpc.golden | 8 ++++---- .../goldens/EchoSpringAutoConfigurationGrpcRest.golden | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden index f59e9a0781..f7361f45c7 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden @@ -22,7 +22,7 @@ import com.google.api.gax.core.ExecutorProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.HeaderProvider; import com.google.api.gax.rpc.TransportChannelProvider; -import com.google.cloud.global.GLobalProperties; +import com.google.cloud.global.GlobalProperties; import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; import com.google.showcase.v1beta1.EchoClient; @@ -62,14 +62,14 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = false) -@EnableConfigurationProperties({EchoSpringProperties.class, GLobalProperties.class}) +@EnableConfigurationProperties({EchoSpringProperties.class, GlobalProperties.class}) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; - private final GLobalProperties globalProperties; + private final GlobalProperties globalProperties; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfig.class); protected EchoSpringAutoConfiguration( - EchoSpringProperties clientProperties, GLobalProperties globalProperties) { + EchoSpringProperties clientProperties, GlobalProperties globalProperties) { this.clientProperties = clientProperties; this.globalProperties = globalProperties; } diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden index 4eb4ff28b1..2907798a9a 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden @@ -5,7 +5,7 @@ import com.google.api.gax.core.ExecutorProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.HeaderProvider; import com.google.api.gax.rpc.TransportChannelProvider; -import com.google.cloud.global.GLobalProperties; +import com.google.cloud.global.GlobalProperties; import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; import com.google.showcase.v1beta1.EchoClient; @@ -42,14 +42,14 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = false) -@EnableConfigurationProperties({EchoSpringProperties.class, GLobalProperties.class}) +@EnableConfigurationProperties({EchoSpringProperties.class, GlobalProperties.class}) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; - private final GLobalProperties globalProperties; + private final GlobalProperties globalProperties; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfig.class); protected EchoSpringAutoConfiguration( - EchoSpringProperties clientProperties, GLobalProperties globalProperties) { + EchoSpringProperties clientProperties, GlobalProperties globalProperties) { this.clientProperties = clientProperties; this.globalProperties = globalProperties; } diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden index 202fcaa999..7900a4329e 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden @@ -6,7 +6,7 @@ import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.HeaderProvider; import com.google.api.gax.rpc.TransportChannelProvider; -import com.google.cloud.global.GLobalProperties; +import com.google.cloud.global.GlobalProperties; import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; import com.google.showcase.v1beta1.EchoClient; @@ -43,14 +43,14 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = false) -@EnableConfigurationProperties({EchoSpringProperties.class, GLobalProperties.class}) +@EnableConfigurationProperties({EchoSpringProperties.class, GlobalProperties.class}) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; - private final GLobalProperties globalProperties; + private final GlobalProperties globalProperties; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfig.class); protected EchoSpringAutoConfiguration( - EchoSpringProperties clientProperties, GLobalProperties globalProperties) { + EchoSpringProperties clientProperties, GlobalProperties globalProperties) { this.clientProperties = clientProperties; this.globalProperties = globalProperties; } From c463f635267c928ff83f5bead1545c2a0c181c55 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Tue, 15 Nov 2022 19:39:29 +0000 Subject: [PATCH 7/9] fix: remove unnecessary comments --- .../SpringAutoConfigClassComposer.java | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java b/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java index 239182a057..4f30f4b524 100644 --- a/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java +++ b/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java @@ -165,21 +165,6 @@ private static List createMemberVariables( private static MethodDefinition createConstructor( String serviceName, String className, Map types, Expr thisExpr) { - /// constructor - // VariableExpr credentialsProviderBuilderVarExpr = - // VariableExpr.withVariable( - // Variable.builder() - // .setName("coreCredentialsProvider") - // .setType(types.get("CredentialsProvider")) - // .build()); - // - // VariableExpr coreProjectIdProviderVarExpr = - // VariableExpr.withVariable( - // Variable.builder() - // .setName("coreProjectIdProvider") - // .setType(types.get("GcpProjectIdProvider")) - // .build()); - VariableExpr clientPropertiesVarExpr = VariableExpr.withVariable( Variable.builder() @@ -192,11 +177,6 @@ private static MethodDefinition createConstructor( .setName("globalProperties") .setType(types.get("GlobalProperties")) .build()); - // Variable projectIdProviderVar = - // Variable.builder() - // .setName("projectIdProvider") - // .setType(types.get("GcpProjectIdProvider")) - // .build(); Variable clientPropertiesVar = Variable.builder() .setName("clientProperties") From 63ea3d16e0a7b576c02062109867cf31fcc0c203 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Mon, 21 Nov 2022 22:39:37 +0000 Subject: [PATCH 8/9] fix: reference to com.google.cloud.spring.global --- .../api/generator/spring/utils/GlobalPropertiesUtils.java | 2 +- .../composer/goldens/EchoSpringAutoConfigurationFull.golden | 2 +- .../composer/goldens/EchoSpringAutoConfigurationGrpc.golden | 2 +- .../composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java b/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java index b4ce174eba..7ddde96bed 100644 --- a/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java +++ b/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java @@ -25,7 +25,7 @@ public class GlobalPropertiesUtils { public static final String GLOBAL_PROPERTIES_CLAZZ_NAME = "GlobalProperties"; - public static final String GLOBAL_PROPERTIES_PAKKAGE_NAME = "com.google.cloud.global"; + public static final String GLOBAL_PROPERTIES_PAKKAGE_NAME = "com.google.cloud.spring.global"; public static TypeNode getGlobalPropertiesType() { TypeNode loggerType = diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden index 6531d521fe..3d63acb14e 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden @@ -22,9 +22,9 @@ import com.google.api.gax.core.ExecutorProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.HeaderProvider; import com.google.api.gax.rpc.TransportChannelProvider; -import com.google.cloud.global.GlobalProperties; import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; +import com.google.cloud.spring.global.GlobalProperties; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden index 6915fb7e43..b5345c0bc3 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden @@ -5,9 +5,9 @@ import com.google.api.gax.core.ExecutorProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.HeaderProvider; import com.google.api.gax.rpc.TransportChannelProvider; -import com.google.cloud.global.GlobalProperties; import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; +import com.google.cloud.spring.global.GlobalProperties; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden index 3d85ec8129..8f6ead26c0 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden @@ -6,9 +6,9 @@ import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.HeaderProvider; import com.google.api.gax.rpc.TransportChannelProvider; -import com.google.cloud.global.GlobalProperties; import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.DefaultCredentialsProvider; +import com.google.cloud.spring.global.GlobalProperties; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; From b088d35dc32c5b172d9ac5e6c03b221fe7a28063 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Tue, 22 Nov 2022 23:44:56 +0000 Subject: [PATCH 9/9] fix: typo and static ref fix --- .../spring/composer/SpringAutoConfigClassComposer.java | 4 ++-- .../composer/goldens/EchoSpringAutoConfigurationFull.golden | 4 ++-- .../composer/goldens/EchoSpringAutoConfigurationGrpc.golden | 4 ++-- .../goldens/EchoSpringAutoConfigurationGrpcRest.golden | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java b/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java index cd8991cf72..2b67625693 100644 --- a/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java +++ b/src/main/java/com/google/api/generator/spring/composer/SpringAutoConfigClassComposer.java @@ -335,7 +335,7 @@ private static MethodDefinition createCredentialsProviderBeanMethod( List bodyStatements = new ArrayList<>(); Variable globalPropertiesVar = Variable.builder() - .setName("GlobalProperties") + .setName("globalProperties") .setType(types.get("GlobalProperties")) .build(); Variable clientPropertiesVar = @@ -432,7 +432,7 @@ private static MethodDefinition createTransportChannelProviderBeanMethod( MethodInvocationExpr returnExpr = MethodInvocationExpr.builder() .setMethodName("defaultTransportChannelProvider") - .setStaticReferenceType(STATIC_TYPES.get("ServiceSettings")) + .setStaticReferenceType(types.get("ServiceSettings")) .setReturnType(STATIC_TYPES.get("TransportChannelProvider")) .build(); diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden index 3d63acb14e..b973414fc1 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationFull.golden @@ -84,7 +84,7 @@ public class EchoSpringAutoConfiguration { if (this.clientProperties.getCredentials().hasKey()) { return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.GlobalProperties)); + return ((CredentialsProvider) new DefaultCredentialsProvider(this.globalProperties)); } /** @@ -94,7 +94,7 @@ public class EchoSpringAutoConfiguration { @Bean @ConditionalOnMissingBean public TransportChannelProvider defaultEchoTransportChannelProvider() { - return defaultTransportChannelProvider(); + return EchoSettings.defaultTransportChannelProvider(); } /** diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden index b5345c0bc3..4464a4ab01 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpc.golden @@ -64,7 +64,7 @@ public class EchoSpringAutoConfiguration { if (this.clientProperties.getCredentials().hasKey()) { return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.GlobalProperties)); + return ((CredentialsProvider) new DefaultCredentialsProvider(this.globalProperties)); } /** @@ -74,7 +74,7 @@ public class EchoSpringAutoConfiguration { @Bean @ConditionalOnMissingBean public TransportChannelProvider defaultEchoTransportChannelProvider() { - return defaultTransportChannelProvider(); + return EchoSettings.defaultTransportChannelProvider(); } /** diff --git a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden index 8f6ead26c0..9ce9e54996 100644 --- a/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden +++ b/src/test/java/com/google/api/generator/spring/composer/goldens/EchoSpringAutoConfigurationGrpcRest.golden @@ -65,7 +65,7 @@ public class EchoSpringAutoConfiguration { if (this.clientProperties.getCredentials().hasKey()) { return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.GlobalProperties)); + return ((CredentialsProvider) new DefaultCredentialsProvider(this.globalProperties)); } /** @@ -75,7 +75,7 @@ public class EchoSpringAutoConfiguration { @Bean @ConditionalOnMissingBean public TransportChannelProvider defaultEchoTransportChannelProvider() { - return defaultTransportChannelProvider(); + return EchoSettings.defaultTransportChannelProvider(); } /**