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 3949012f27..32f64df80a 100644 --- a/src/main/java/com/google/api/generator/spring/SpringWriter.java +++ b/src/main/java/com/google/api/generator/spring/SpringWriter.java @@ -246,7 +246,7 @@ static String buildPomString(GapicContext context) { + "\n" + " \n" + " com.google.cloud\n" - + " spring-cloud-gcp-core\n" + + " spring-cloud-gcp-autoconfigure\n" + " \n" + "\n" + "\n" 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 6f89728788..6ec422a5e9 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 @@ -22,7 +22,6 @@ 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; @@ -36,7 +35,6 @@ 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; @@ -55,7 +53,7 @@ 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.ComposerUtils; import com.google.api.generator.spring.utils.LoggerUtils; import com.google.api.generator.spring.utils.Utils; import com.google.cloud.spring.core.Credentials; @@ -123,13 +121,10 @@ public GapicClass generate(GapicContext context, Service service) { .setMethods( Arrays.asList( createConstructor(service, className, dynamicTypes, thisExpr), - createCredentialsProviderBeanMethod( - service, className, credentialsProviderName, dynamicTypes, thisExpr), createTransportChannelProviderBeanMethod( transportChannelProviderName, dynamicTypes), createSettingsBeanMethod( service, - credentialsProviderName, transportChannelProviderName, dynamicTypes, gapicServiceConfig, @@ -150,29 +145,22 @@ private static List createMemberVariables( Map types, GapicServiceConfig serviceConfig) { - String serviceName = service.name(); - // private final LanguageProperties clientProperties; - Variable clientPropertiesVar = - Variable.builder() - .setName("clientProperties") - .setType(types.get(Utils.getServicePropertiesClassName(service))) - .build(); - VariableExpr clientPropertiesVarExpr = - VariableExpr.builder() - .setVariable(clientPropertiesVar) - .setScope(ScopeNode.PRIVATE) - .setIsFinal(true) - .setIsDecl(true) - .build(); - ExprStatement clientPropertiesStatement = ExprStatement.withExpr(clientPropertiesVarExpr); + ExprStatement clientPropertiesStatement = + ComposerUtils.createMemberVarStatement( + "clientProperties", + types.get(Utils.getServicePropertiesClassName(service)), + true, + null, + null); + Statement credentialProvider = + ComposerUtils.createMemberVarStatement( + "credentialsProvider", STATIC_TYPES.get("CredentialsProvider"), true, null, null); Statement loggerStatement = LoggerUtils.getLoggerDeclarationExpr( Utils.getServiceAutoConfigurationClassName(service), types); - Statement globalPropertiesStatement = - GlobalPropertiesUtils.getGlobalPropertiesDeclaration(types); - return Arrays.asList(clientPropertiesStatement, globalPropertiesStatement, loggerStatement); + return Arrays.asList(clientPropertiesStatement, credentialProvider, loggerStatement); } private static MethodDefinition createConstructor( @@ -183,58 +171,92 @@ private static MethodDefinition createConstructor( .setName("clientProperties") .setType(types.get(Utils.getServicePropertiesClassName(service))) .build()); - VariableExpr globalPropertiesVarExpr = + VariableExpr credentialsProviderVarExpr = VariableExpr.withVariable( Variable.builder() - .setName("globalProperties") - .setType(types.get("GlobalProperties")) + .setName("credentialsProvider") + .setType(STATIC_TYPES.get("CredentialsProvider")) .build()); - Variable clientPropertiesVar = - Variable.builder() - .setName("clientProperties") - .setType(types.get(Utils.getServicePropertiesClassName(service))) - .build(); - Variable globalPropertiesVar = - Variable.builder() - .setName("globalProperties") - .setType(types.get("GlobalProperties")) - .build(); // this.clientProperties = clientProperties; AssignmentExpr thisClientPropertiesAssignmentExpr = AssignmentExpr.builder() .setVariableExpr( - VariableExpr.withVariable(clientPropertiesVar) - .toBuilder() - .setExprReferenceExpr(thisExpr) - .build()) + clientPropertiesVarExpr.toBuilder().setExprReferenceExpr(thisExpr).build()) .setValueExpr(clientPropertiesVarExpr) .build(); ExprStatement thisClientPropertiesAssignmentStatement = ExprStatement.withExpr(thisClientPropertiesAssignmentExpr); - AssignmentExpr thisGlobalPropertiesAssignmentExpr = + // if (this.clientProperties.getCredentials().hasKey()) { + // this.credentialsProvider = new DefaultCredentialsProvider(this.clientProperties); + // } else { + // this.credentialsProvider = credentialsProvider; + // } + VariableExpr thisClientProperties = + clientPropertiesVarExpr.toBuilder().setExprReferenceExpr(thisExpr).build(); + AssignmentExpr.Builder thisCredentialsProviderAssignmentExprBuilder = AssignmentExpr.builder() .setVariableExpr( - VariableExpr.withVariable(globalPropertiesVar) - .toBuilder() - .setExprReferenceExpr(thisExpr) + credentialsProviderVarExpr.toBuilder().setExprReferenceExpr(thisExpr).build()); + ExprStatement thisCredentialsProviderToGlobalAssignmentStatement = + ExprStatement.withExpr( + thisCredentialsProviderAssignmentExprBuilder + .setValueExpr(credentialsProviderVarExpr) + .build()); + + CastExpr newCredentialsProviderExpr = + CastExpr.builder() + .setExpr( + NewObjectExpr.builder() + .setType(STATIC_TYPES.get("DefaultCredentialsProvider")) + .setArguments(thisClientProperties) .build()) - .setValueExpr(globalPropertiesVarExpr) + .setType(STATIC_TYPES.get("CredentialsProvider")) .build(); - ExprStatement thisGlobalPropertiesAssignmentStatement = - ExprStatement.withExpr(thisGlobalPropertiesAssignmentExpr); + ExprStatement thisCredentialsProviderAssignmentExprNewStatement = + ExprStatement.withExpr( + thisCredentialsProviderAssignmentExprBuilder + .setValueExpr(newCredentialsProviderExpr) + .build()); + + Expr clientPropertiesGetCredentials = + MethodInvocationExpr.builder() + .setExprReferenceExpr(thisClientProperties) + .setMethodName("getCredentials") + .setReturnType(STATIC_TYPES.get("Credentials")) + .build(); + Expr clientPropertiesCredentialsHasKey = + MethodInvocationExpr.builder() + .setExprReferenceExpr(clientPropertiesGetCredentials) + .setMethodName("hasKey") + .setReturnType(TypeNode.BOOLEAN) + .build(); + + Statement logClientCredentials = + LoggerUtils.createLoggerStatement( + ValueExpr.withValue( + StringObjectValue.withValue( + "Using credentials from " + service.name() + "-specific configuration")), + types); + IfStatement thisCredentialsProviderAssignmentStatement = + createIfStatement( + clientPropertiesCredentialsHasKey, + Arrays.asList(logClientCredentials, thisCredentialsProviderAssignmentExprNewStatement), + Arrays.asList(thisCredentialsProviderToGlobalAssignmentStatement)); return MethodDefinition.constructorBuilder() .setScope(ScopeNode.PROTECTED) + .setThrowsExceptions(Arrays.asList(TypeNode.withExceptionClazz(IOException.class))) .setReturnType(types.get(className)) .setArguments( Arrays.asList( clientPropertiesVarExpr.toBuilder().setIsDecl(true).build(), - globalPropertiesVarExpr.toBuilder().setIsDecl(true).build())) + credentialsProviderVarExpr.toBuilder().setIsDecl(true).build())) .setBody( Arrays.asList( - thisClientPropertiesAssignmentStatement, thisGlobalPropertiesAssignmentStatement)) + thisClientPropertiesAssignmentStatement, + thisCredentialsProviderAssignmentStatement)) .build(); } @@ -289,27 +311,10 @@ private static List createClassAnnotations( AnnotationNode.builder() .setType(STATIC_TYPES.get("EnableConfigurationProperties")) .setDescription( - ArrayExpr.builder() - .setType(TypeNode.createArrayTypeOf(TypeNode.CLASS_OBJECT)) - .addExpr( - VariableExpr.builder() - .setVariable( - Variable.builder() - .setType(TypeNode.CLASS_OBJECT) - .setName("class") - .build()) - .setStaticReferenceType( - types.get(Utils.getServicePropertiesClassName(service))) - .build()) - .addExpr( - VariableExpr.builder() - .setVariable( - Variable.builder() - .setType(TypeNode.CLASS_OBJECT) - .setName("class") - .build()) - .setStaticReferenceType(types.get("GlobalProperties")) - .build()) + VariableExpr.builder() + .setVariable( + Variable.builder().setType(TypeNode.CLASS_OBJECT).setName("class").build()) + .setStaticReferenceType(types.get(Utils.getServicePropertiesClassName(service))) .build()) .build(); @@ -320,107 +325,6 @@ private static List createClassAnnotations( enableConfigurationPropertiesNode); } - private static MethodDefinition createCredentialsProviderBeanMethod( - Service service, - String className, - String methodName, - Map types, - Expr thisExpr) { - // @Bean - // @ConditionalOnMissingBean(name = "[serviceName]ServiceCredentials") - // public CredentialsProvider languageServiceCredentials() throws IOException { - // if (this.clientProperties.getCredentials().hasKey()) { - // return new DefaultCredentialsProvider(this.clientProperties); - // } - // return new DefaultCredentialsProvider(this.globalProperties); - // } - List bodyStatements = new ArrayList<>(); - Variable globalPropertiesVar = - Variable.builder() - .setName("globalProperties") - .setType(types.get("GlobalProperties")) - .build(); - Variable clientPropertiesVar = - Variable.builder() - .setName("clientProperties") - .setType(types.get(Utils.getServicePropertiesClassName(service))) - .build(); - - VariableExpr thisClientProperties = - VariableExpr.withVariable(clientPropertiesVar) - .toBuilder() - .setExprReferenceExpr(thisExpr) - .build(); - VariableExpr thisGlobalProperties = - VariableExpr.withVariable(globalPropertiesVar) - .toBuilder() - .setExprReferenceExpr(thisExpr) - .build(); - CastExpr clientCastExpr = - CastExpr.builder() - .setExpr( - NewObjectExpr.builder() - .setType(STATIC_TYPES.get("DefaultCredentialsProvider")) - .setArguments(thisClientProperties) - .build()) - .setType(STATIC_TYPES.get("CredentialsProvider")) - .build(); - CastExpr globalCredentialsCastExpr = - CastExpr.builder() - .setExpr( - NewObjectExpr.builder() - .setType(STATIC_TYPES.get("DefaultCredentialsProvider")) - .setArguments(thisGlobalProperties) - .build()) - .setType(STATIC_TYPES.get("CredentialsProvider")) - .build(); - ExprStatement clientCredentialsReturnExpr = - ExprStatement.withExpr(ReturnExpr.withExpr(clientCastExpr)); - Expr clientPropertiesGetCredentials = - MethodInvocationExpr.builder() - .setExprReferenceExpr(thisClientProperties) - .setMethodName("getCredentials") - .setReturnType(STATIC_TYPES.get("Credentials")) - .build(); - Expr clientPropertiesCredentialsHasKey = - MethodInvocationExpr.builder() - .setExprReferenceExpr(clientPropertiesGetCredentials) - .setMethodName("hasKey") - .setReturnType(TypeNode.BOOLEAN) - .build(); - Statement logClientCredentials = - LoggerUtils.createLoggerStatement( - ValueExpr.withValue( - StringObjectValue.withValue( - "Using credentials from " + service.name() + "-specific configuration")), - types); - IfStatement clientCredentialsIfStatement = - createIfStatement( - clientPropertiesCredentialsHasKey, - Arrays.asList(logClientCredentials, clientCredentialsReturnExpr), - null); - bodyStatements.add(clientCredentialsIfStatement); - bodyStatements.add( - LoggerUtils.createLoggerStatement( - ValueExpr.withValue( - StringObjectValue.withValue("Using credentials from global configuration")), - types)); - return MethodDefinition.builder() - .setName(methodName) - .setHeaderCommentStatements( - SpringAutoconfigCommentComposer.createCredentialsProviderBeanComment()) - .setScope(ScopeNode.PUBLIC) - .setReturnType(STATIC_TYPES.get("CredentialsProvider")) - .setAnnotations( - Arrays.asList( - AnnotationNode.withType(STATIC_TYPES.get("Bean")), - AnnotationNode.withType(STATIC_TYPES.get("ConditionalOnMissingBean")))) - .setThrowsExceptions(Arrays.asList(TypeNode.withExceptionClazz(IOException.class))) - .setBody(bodyStatements) - .setReturnExpr(globalCredentialsCastExpr) - .build(); - } - private static MethodDefinition createTransportChannelProviderBeanMethod( String methodName, Map types) { @@ -534,7 +438,6 @@ private static Statement setRetrySettingsForMethod( private static MethodDefinition createSettingsBeanMethod( Service service, - String credentialsProviderName, String transportChannelProviderName, Map types, GapicServiceConfig gapicServiceConfig, @@ -575,11 +478,20 @@ private static MethodDefinition createSettingsBeanMethod( .setMethodName("newBuilder") .build(); + VariableExpr thisCredentialsProvider = + VariableExpr.withVariable( + Variable.builder() + .setName("credentialsProvider") + .setType(STATIC_TYPES.get("CredentialsProvider")) + .build()) + .toBuilder() + .setExprReferenceExpr(thisExpr) + .build(); settingsBuilderExpr = MethodInvocationExpr.builder() .setExprReferenceExpr(settingsBuilderExpr) .setMethodName("setCredentialsProvider") - .setArguments(credentialsProviderVariableExpr) + .setArguments(thisCredentialsProvider) .build(); // .setTransportChannelProvider(defaultTransportChannelProvider) settingsBuilderExpr = @@ -858,16 +770,6 @@ private static MethodDefinition createSettingsBeanMethod( .build(); List argumentsVariableExprs = Arrays.asList( - credentialsProviderVariableExpr - .toBuilder() - .setIsDecl(true) - .setAnnotations( - Arrays.asList( - AnnotationNode.builder() - .setType(STATIC_TYPES.get("Qualifier")) - .setDescription(credentialsProviderName) - .build())) - .build(), transportChannelProviderVariableExpr .toBuilder() .setIsDecl(true) @@ -1082,7 +984,6 @@ private static Map createDynamicTypes(Service service, String typeMap.put("ServiceClient", serviceClient); typeMap.put("ServiceSettings", serviceSettings); typeMap.put("ServiceSettingsBuilder", serviceSettingsBuilder); - typeMap.put("GlobalProperties", GlobalPropertiesUtils.getGlobalPropertiesType()); return typeMap; } diff --git a/src/main/java/com/google/api/generator/spring/composer/SpringPropertiesClassComposer.java b/src/main/java/com/google/api/generator/spring/composer/SpringPropertiesClassComposer.java index ea072bc9e1..679a0e16d9 100644 --- a/src/main/java/com/google/api/generator/spring/composer/SpringPropertiesClassComposer.java +++ b/src/main/java/com/google/api/generator/spring/composer/SpringPropertiesClassComposer.java @@ -43,6 +43,7 @@ import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.model.Transport; import com.google.api.generator.spring.composer.comment.SpringPropertiesCommentComposer; +import com.google.api.generator.spring.utils.ComposerUtils; import com.google.api.generator.spring.utils.Utils; import com.google.cloud.spring.core.Credentials; import com.google.cloud.spring.core.CredentialsSupplier; @@ -106,35 +107,6 @@ public GapicClass generate(GapicContext context, Service service) { // return null; } - private static ExprStatement createMemberVarStatement( - String varName, - TypeNode varType, - boolean isFinal, - Expr defaultVal, - List annotationNodes) { - Variable memberVar = Variable.builder().setName(varName).setType(varType).build(); - VariableExpr memberVarExpr = - VariableExpr.builder() - .setVariable(memberVar) - .setScope(ScopeNode.PRIVATE) - .setAnnotations(annotationNodes == null ? Collections.emptyList() : annotationNodes) - .setIsDecl(true) - .setIsFinal(isFinal) - .build(); - - if (defaultVal == null) { - return ExprStatement.withExpr(memberVarExpr); - } - AssignmentExpr assignmentExpr = - AssignmentExpr.builder() - .setVariableExpr(memberVarExpr.toBuilder().setIsDecl(true).build()) - .setValueExpr(defaultVal) - .build(); - ExprStatement memberVarStatement = ExprStatement.withExpr(assignmentExpr); - - return memberVarStatement; - } - private static List createMemberVariables( Service service, String packageName, @@ -161,7 +133,7 @@ private static List createMemberVariables( List credentialsAnnotations = Arrays.asList(AnnotationNode.withType(STATIC_TYPES.get("NestedConfigurationProperty"))); ExprStatement credentialsStatement = - createMemberVarStatement( + ComposerUtils.createMemberVarStatement( "credentials", STATIC_TYPES.get("Credentials"), true, @@ -170,15 +142,17 @@ private static List createMemberVariables( statements.add(credentialsStatement); // private String quotaProjectId; ExprStatement quotaProjectIdVarStatement = - createMemberVarStatement("quotaProjectId", TypeNode.STRING, false, null, null); + ComposerUtils.createMemberVarStatement( + "quotaProjectId", TypeNode.STRING, false, null, null); statements.add(quotaProjectIdVarStatement); // private Integer executorThreadCount; ExprStatement executorThreadCountVarStatement = - createMemberVarStatement("executorThreadCount", TypeNode.INT_OBJECT, false, null, null); + ComposerUtils.createMemberVarStatement( + "executorThreadCount", TypeNode.INT_OBJECT, false, null, null); statements.add(executorThreadCountVarStatement); if (hasRestOption) { ExprStatement useRestVarStatement = - createMemberVarStatement( + ComposerUtils.createMemberVarStatement( "useRest", TypeNode.BOOLEAN, false, @@ -207,7 +181,8 @@ private static List createMemberVariables( } String propertyName = Joiner.on("").join(methodAndPropertyName); ExprStatement retrySettingsStatement = - createMemberVarStatement(propertyName, propertyType, false, null, null); + ComposerUtils.createMemberVarStatement( + propertyName, propertyType, false, null, null); getterAndSetter.add(retrySettingsStatement); return getterAndSetter; }, diff --git a/src/main/java/com/google/api/generator/spring/utils/ComposerUtils.java b/src/main/java/com/google/api/generator/spring/utils/ComposerUtils.java new file mode 100644 index 0000000000..bf0fb07f55 --- /dev/null +++ b/src/main/java/com/google/api/generator/spring/utils/ComposerUtils.java @@ -0,0 +1,57 @@ +// 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.AnnotationNode; +import com.google.api.generator.engine.ast.AssignmentExpr; +import com.google.api.generator.engine.ast.Expr; +import com.google.api.generator.engine.ast.ExprStatement; +import com.google.api.generator.engine.ast.ScopeNode; +import com.google.api.generator.engine.ast.TypeNode; +import com.google.api.generator.engine.ast.Variable; +import com.google.api.generator.engine.ast.VariableExpr; +import java.util.Collections; +import java.util.List; + +public class ComposerUtils { + + public static ExprStatement createMemberVarStatement( + String varName, + TypeNode varType, + boolean isFinal, + Expr defaultVal, + List annotationNodes) { + Variable memberVar = Variable.builder().setName(varName).setType(varType).build(); + VariableExpr memberVarExpr = + VariableExpr.builder() + .setVariable(memberVar) + .setScope(ScopeNode.PRIVATE) + .setAnnotations(annotationNodes == null ? Collections.emptyList() : annotationNodes) + .setIsDecl(true) + .setIsFinal(isFinal) + .build(); + + if (defaultVal == null) { + return ExprStatement.withExpr(memberVarExpr); + } + AssignmentExpr assignmentExpr = + AssignmentExpr.builder() + .setVariableExpr(memberVarExpr.toBuilder().setIsDecl(true).build()) + .setValueExpr(defaultVal) + .build(); + + return ExprStatement.withExpr(assignmentExpr); + } +} 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 deleted file mode 100644 index 7ddde96bed..0000000000 --- a/src/main/java/com/google/api/generator/spring/utils/GlobalPropertiesUtils.java +++ /dev/null @@ -1,55 +0,0 @@ -// 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 GlobalPropertiesUtils { - public static final String GLOBAL_PROPERTIES_CLAZZ_NAME = "GlobalProperties"; - public static final String GLOBAL_PROPERTIES_PAKKAGE_NAME = "com.google.cloud.spring.global"; - - public static TypeNode getGlobalPropertiesType() { - TypeNode loggerType = - TypeNode.withReference( - VaporReference.builder() - .setName(GLOBAL_PROPERTIES_CLAZZ_NAME) - .setPakkage(GLOBAL_PROPERTIES_PAKKAGE_NAME) - .build()); - return loggerType; - } - - 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 5f0dc4e559..140fa88fef 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 @@ -24,7 +24,6 @@ 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.global.GlobalProperties; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; @@ -62,35 +61,25 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = true) -@EnableConfigurationProperties({EchoSpringProperties.class, GlobalProperties.class}) +@EnableConfigurationProperties(EchoSpringProperties.class) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; - private final GlobalProperties globalProperties; + private final CredentialsProvider credentialsProvider; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfiguration.class); protected EchoSpringAutoConfiguration( - EchoSpringProperties clientProperties, GlobalProperties globalProperties) { + EchoSpringProperties clientProperties, CredentialsProvider credentialsProvider) + throws IOException { this.clientProperties = clientProperties; - this.globalProperties = globalProperties; - } - - /** - * Obtains the default credentials provider. The used key will be obtained from Spring Boot - * configuration data files. - */ - @Bean - @ConditionalOnMissingBean - public CredentialsProvider echoCredentials() throws IOException { if (this.clientProperties.getCredentials().hasKey()) { if (LOGGER.isTraceEnabled()) { LOGGER.trace("Using credentials from Echo-specific configuration"); } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); - } - if (LOGGER.isTraceEnabled()) { - LOGGER.trace("Using credentials from global configuration"); + this.credentialsProvider = + ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + } else { + this.credentialsProvider = credentialsProvider; } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.globalProperties)); } /** @@ -116,13 +105,12 @@ public class EchoSpringAutoConfiguration { @Bean @ConditionalOnMissingBean public EchoSettings echoSettings( - @Qualifier("echoCredentials") CredentialsProvider credentialsProvider, @Qualifier("defaultEchoTransportChannelProvider") TransportChannelProvider defaultTransportChannelProvider) throws IOException { EchoSettings.Builder clientSettingsBuilder = EchoSettings.newBuilder() - .setCredentialsProvider(credentialsProvider) + .setCredentialsProvider(this.credentialsProvider) .setTransportChannelProvider(defaultTransportChannelProvider) .setHeaderProvider(this.userAgentHeaderProvider()); if (this.clientProperties.getQuotaProjectId() != null) { 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 5b0a54395b..5d44db05f2 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 @@ -7,7 +7,6 @@ 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.global.GlobalProperties; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; @@ -42,35 +41,25 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = true) -@EnableConfigurationProperties({EchoSpringProperties.class, GlobalProperties.class}) +@EnableConfigurationProperties(EchoSpringProperties.class) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; - private final GlobalProperties globalProperties; + private final CredentialsProvider credentialsProvider; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfiguration.class); protected EchoSpringAutoConfiguration( - EchoSpringProperties clientProperties, GlobalProperties globalProperties) { + EchoSpringProperties clientProperties, CredentialsProvider credentialsProvider) + throws IOException { this.clientProperties = clientProperties; - this.globalProperties = globalProperties; - } - - /** - * Obtains the default credentials provider. The used key will be obtained from Spring Boot - * configuration data files. - */ - @Bean - @ConditionalOnMissingBean - public CredentialsProvider echoCredentials() throws IOException { if (this.clientProperties.getCredentials().hasKey()) { if (LOGGER.isTraceEnabled()) { LOGGER.trace("Using credentials from Echo-specific configuration"); } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); - } - if (LOGGER.isTraceEnabled()) { - LOGGER.trace("Using credentials from global configuration"); + this.credentialsProvider = + ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + } else { + this.credentialsProvider = credentialsProvider; } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.globalProperties)); } /** @@ -96,13 +85,12 @@ public class EchoSpringAutoConfiguration { @Bean @ConditionalOnMissingBean public EchoSettings echoSettings( - @Qualifier("echoCredentials") CredentialsProvider credentialsProvider, @Qualifier("defaultEchoTransportChannelProvider") TransportChannelProvider defaultTransportChannelProvider) throws IOException { EchoSettings.Builder clientSettingsBuilder = EchoSettings.newBuilder() - .setCredentialsProvider(credentialsProvider) + .setCredentialsProvider(this.credentialsProvider) .setTransportChannelProvider(defaultTransportChannelProvider) .setHeaderProvider(this.userAgentHeaderProvider()); if (this.clientProperties.getQuotaProjectId() != null) { 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 e432d7220e..55f0c76f5e 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 @@ -8,7 +8,6 @@ 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.global.GlobalProperties; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoSettings; import java.io.IOException; @@ -43,35 +42,25 @@ import org.threeten.bp.Duration; @ConditionalOnProperty( value = "com.google.showcase.v1beta1.spring.auto.echo.enabled", matchIfMissing = true) -@EnableConfigurationProperties({EchoSpringProperties.class, GlobalProperties.class}) +@EnableConfigurationProperties(EchoSpringProperties.class) public class EchoSpringAutoConfiguration { private final EchoSpringProperties clientProperties; - private final GlobalProperties globalProperties; + private final CredentialsProvider credentialsProvider; private static final Log LOGGER = LogFactory.getLog(EchoSpringAutoConfiguration.class); protected EchoSpringAutoConfiguration( - EchoSpringProperties clientProperties, GlobalProperties globalProperties) { + EchoSpringProperties clientProperties, CredentialsProvider credentialsProvider) + throws IOException { this.clientProperties = clientProperties; - this.globalProperties = globalProperties; - } - - /** - * Obtains the default credentials provider. The used key will be obtained from Spring Boot - * configuration data files. - */ - @Bean - @ConditionalOnMissingBean - public CredentialsProvider echoCredentials() throws IOException { if (this.clientProperties.getCredentials().hasKey()) { if (LOGGER.isTraceEnabled()) { LOGGER.trace("Using credentials from Echo-specific configuration"); } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); - } - if (LOGGER.isTraceEnabled()) { - LOGGER.trace("Using credentials from global configuration"); + this.credentialsProvider = + ((CredentialsProvider) new DefaultCredentialsProvider(this.clientProperties)); + } else { + this.credentialsProvider = credentialsProvider; } - return ((CredentialsProvider) new DefaultCredentialsProvider(this.globalProperties)); } /** @@ -97,13 +86,12 @@ public class EchoSpringAutoConfiguration { @Bean @ConditionalOnMissingBean public EchoSettings echoSettings( - @Qualifier("echoCredentials") CredentialsProvider credentialsProvider, @Qualifier("defaultEchoTransportChannelProvider") TransportChannelProvider defaultTransportChannelProvider) throws IOException { EchoSettings.Builder clientSettingsBuilder = EchoSettings.newBuilder() - .setCredentialsProvider(credentialsProvider) + .setCredentialsProvider(this.credentialsProvider) .setTransportChannelProvider(defaultTransportChannelProvider) .setHeaderProvider(this.userAgentHeaderProvider()); if (this.clientProperties.getQuotaProjectId() != null) { 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 02e3b5b848..06756fce50 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 @@ -27,7 +27,7 @@ com.google.cloud - spring-cloud-gcp-core + spring-cloud-gcp-autoconfigure