From 57b75a428f29b88adca40191f9703509e3d91353 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Tue, 29 Nov 2022 21:06:58 +0000 Subject: [PATCH 1/6] feat: degrade logging level to trace --- .../generator/spring/utils/LoggerUtils.java | 2 +- .../EchoSpringAutoConfigurationFull.golden | 103 ++++++++--------- .../EchoSpringAutoConfigurationGrpc.golden | 103 ++++++++--------- ...EchoSpringAutoConfigurationGrpcRest.golden | 105 +++++++++--------- 4 files changed, 158 insertions(+), 155 deletions(-) diff --git a/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java b/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java index ac888768a2..a5ea4209a0 100644 --- a/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java +++ b/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java @@ -75,7 +75,7 @@ public static ExprStatement createLoggerStatement(Expr value, Map Date: Tue, 29 Nov 2022 22:06:43 +0000 Subject: [PATCH 2/6] feat: wrap logging with `isTraceEnabled()` --- .../SpringAutoConfigClassComposer.java | 4 +- .../generator/spring/utils/LoggerUtils.java | 15 +- .../EchoSpringAutoConfigurationFull.golden | 328 +++++++++++------ .../EchoSpringAutoConfigurationGrpc.golden | 328 +++++++++++------ ...EchoSpringAutoConfigurationGrpcRest.golden | 332 ++++++++++++------ 5 files changed, 681 insertions(+), 326 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 2b67625693..581a1025ac 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 @@ -643,7 +643,7 @@ private static MethodDefinition createClientBeanMethod( .setArguments(getQuotaProjectId) .build(); - ExprStatement projectIdLoggerStatement = + IfStatement projectIdLoggerStatement = LoggerUtils.createLoggerStatement( LoggerUtils.concatManyWithExprs( ValueExpr.withValue(StringObjectValue.withValue("Quota project id set to ")), @@ -714,7 +714,7 @@ private static MethodDefinition createClientBeanMethod( .setArguments(executorProviderVarExpr) .build(); - ExprStatement backgroundExecutorLoggerStatement = + IfStatement backgroundExecutorLoggerStatement = LoggerUtils.createLoggerStatement( ArithmeticOperationExpr.concatWithExprs( ValueExpr.withValue( diff --git a/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java b/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java index a5ea4209a0..721359d3bc 100644 --- a/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java +++ b/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java @@ -19,6 +19,7 @@ import com.google.api.generator.engine.ast.ConcreteReference; import com.google.api.generator.engine.ast.Expr; import com.google.api.generator.engine.ast.ExprStatement; +import com.google.api.generator.engine.ast.IfStatement; import com.google.api.generator.engine.ast.MethodInvocationExpr; import com.google.api.generator.engine.ast.ScopeNode; import com.google.api.generator.engine.ast.Statement; @@ -69,7 +70,7 @@ public static Statement getLoggerDeclarationExpr(String className, Map types) { + public static IfStatement createLoggerStatement(Expr value, Map types) { Variable loggerVariable = Variable.builder().setName("LOGGER").setType(STATIC_TYPES.get("Log")).build(); MethodInvocationExpr loggerCallExpr = @@ -78,7 +79,17 @@ public static ExprStatement createLoggerStatement(Expr value, Map Date: Tue, 29 Nov 2022 22:30:19 +0000 Subject: [PATCH 3/6] feat: credential usage logging --- .../SpringAutoConfigClassComposer.java | 29 +++++++++---------- .../EchoSpringAutoConfigurationFull.golden | 6 ++++ .../EchoSpringAutoConfigurationGrpc.golden | 6 ++++ ...EchoSpringAutoConfigurationGrpcRest.golden | 6 ++++ 4 files changed, 32 insertions(+), 15 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 581a1025ac..7b1992b9ed 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 @@ -386,24 +386,23 @@ private static MethodDefinition createCredentialsProviderBeanMethod( .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(clientCredentialsReturnExpr), null); + clientPropertiesCredentialsHasKey, + Arrays.asList(logClientCredentials, clientCredentialsReturnExpr), + null); bodyStatements.add(clientCredentialsIfStatement); - - // @ConditionalOnMissingBean(name = "[serviceName]ServiceCredentials") - AnnotationNode conditionalOnMissingBeanExpr = - AnnotationNode.builder() - .setType(STATIC_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(); - + bodyStatements.add( + LoggerUtils.createLoggerStatement( + ValueExpr.withValue( + StringObjectValue.withValue("Using credentials from global configuration")), + types)); return MethodDefinition.builder() .setName(methodName) .setHeaderCommentStatements( 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 47206c66f4..f742818547 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 @@ -82,8 +82,14 @@ public class EchoSpringAutoConfiguration { @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"); + } 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 1dbcf7ba86..70a77bff70 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 @@ -62,8 +62,14 @@ public class EchoSpringAutoConfiguration { @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"); + } 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 4b99155848..a710b16903 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 @@ -63,8 +63,14 @@ public class EchoSpringAutoConfiguration { @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"); + } return ((CredentialsProvider) new DefaultCredentialsProvider(this.globalProperties)); } From b804c9a4747b9d28ff4a7fa20b15c0f9341ddf47 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Tue, 29 Nov 2022 22:34:20 +0000 Subject: [PATCH 4/6] fix: use Statement for logging variables --- .../spring/composer/SpringAutoConfigClassComposer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 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 7b1992b9ed..368c4ff01c 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 @@ -642,7 +642,7 @@ private static MethodDefinition createClientBeanMethod( .setArguments(getQuotaProjectId) .build(); - IfStatement projectIdLoggerStatement = + Statement projectIdLoggerStatement = LoggerUtils.createLoggerStatement( LoggerUtils.concatManyWithExprs( ValueExpr.withValue(StringObjectValue.withValue("Quota project id set to ")), @@ -713,7 +713,7 @@ private static MethodDefinition createClientBeanMethod( .setArguments(executorProviderVarExpr) .build(); - IfStatement backgroundExecutorLoggerStatement = + Statement backgroundExecutorLoggerStatement = LoggerUtils.createLoggerStatement( ArithmeticOperationExpr.concatWithExprs( ValueExpr.withValue( From a9dc05b1fd880946c2aa02b2ee60c895dd839e68 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Tue, 29 Nov 2022 23:05:30 +0000 Subject: [PATCH 5/6] fix: use Statement return type in createLoggerStatement() --- .../java/com/google/api/generator/spring/utils/LoggerUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java b/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java index 721359d3bc..fa76175c56 100644 --- a/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java +++ b/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java @@ -70,7 +70,7 @@ public static Statement getLoggerDeclarationExpr(String className, Map types) { + public static Statement createLoggerStatement(Expr value, Map types) { Variable loggerVariable = Variable.builder().setName("LOGGER").setType(STATIC_TYPES.get("Log")).build(); MethodInvocationExpr loggerCallExpr = From 1be7064206bc941a4abfd4092428115119fc81f4 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Wed, 30 Nov 2022 16:23:49 +0000 Subject: [PATCH 6/6] fix: unnecessary variable creation --- .../generator/spring/utils/LoggerUtils.java | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java b/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java index fa76175c56..1a92319f5a 100644 --- a/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java +++ b/src/main/java/com/google/api/generator/spring/utils/LoggerUtils.java @@ -79,17 +79,15 @@ public static Statement createLoggerStatement(Expr value, Map .setMethodName("trace") .setArguments(value) .build(); - IfStatement loggerStatement = - IfStatement.builder() - .setConditionExpr( - MethodInvocationExpr.builder() - .setExprReferenceExpr(VariableExpr.withVariable(loggerVariable)) - .setMethodName("isTraceEnabled") - .setReturnType(TypeNode.BOOLEAN) - .build()) - .setBody(Arrays.asList(ExprStatement.withExpr(loggerCallExpr))) - .build(); - return loggerStatement; + return IfStatement.builder() + .setConditionExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr(VariableExpr.withVariable(loggerVariable)) + .setMethodName("isTraceEnabled") + .setReturnType(TypeNode.BOOLEAN) + .build()) + .setBody(Arrays.asList(ExprStatement.withExpr(loggerCallExpr))) + .build(); } public static Expr concatManyWithExprs(Expr... exprs) {