From d30f14b8e7a7181a3aa87776a91f74e761622814 Mon Sep 17 00:00:00 2001 From: Michael Brewer Date: Mon, 31 Aug 2020 09:30:25 -0700 Subject: [PATCH 1/3] fix(general): clean up typos and code Changes: * Fix some of the markdown used * Removed unused imports * LambdaHandlerProcessor - Make null check easier to read * LambdaJsonLayout - Remove unused objectMapper * Fix typos --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- docs/content/core/tracing.mdx | 2 +- .../core/internal/LambdaHandlerProcessor.java | 2 +- .../log4j/core/layout/LambdaJsonLayout.java | 25 ++++++++----------- .../powertools/logging/PowertoolsLogging.java | 2 +- .../sqs/handlers/LambdaHandlerApiGateway.java | 1 - .../powertools/tracing/PowertoolsTracing.java | 2 +- 7 files changed, 15 insertions(+), 21 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index ee0949e9a..c1b7490eb 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -41,6 +41,6 @@ assignees: '' > [How to enable debug mode](https://awslabs.github.io/aws-lambda-powertools-java/#debug-mode)** -```java +```text # paste logs here ``` diff --git a/docs/content/core/tracing.mdx b/docs/content/core/tracing.mdx index 6363329f3..a8a108e77 100644 --- a/docs/content/core/tracing.mdx +++ b/docs/content/core/tracing.mdx @@ -138,7 +138,7 @@ public class App implements RequestHandler withEntitySubsegment("inlineLog", traceEntity, subsegment -> { - // Business logic in sperate thread + // Business logic in separate thread })); } } diff --git a/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java b/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java index 99eccea4a..31650b1a9 100644 --- a/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java +++ b/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java @@ -22,7 +22,7 @@ import org.aspectj.lang.ProceedingJoinPoint; public final class LambdaHandlerProcessor { - private static String SERVICE_NAME = null != System.getenv("POWERTOOLS_SERVICE_NAME") + private static String SERVICE_NAME = System.getenv("POWERTOOLS_SERVICE_NAME") != null ? System.getenv("POWERTOOLS_SERVICE_NAME") : "service_undefined"; private static Boolean IS_COLD_START = null; diff --git a/powertools-logging/src/main/java/org/apache/logging/log4j/core/layout/LambdaJsonLayout.java b/powertools-logging/src/main/java/org/apache/logging/log4j/core/layout/LambdaJsonLayout.java index 557a65745..49e233456 100644 --- a/powertools-logging/src/main/java/org/apache/logging/log4j/core/layout/LambdaJsonLayout.java +++ b/powertools-logging/src/main/java/org/apache/logging/log4j/core/layout/LambdaJsonLayout.java @@ -13,21 +13,10 @@ */ package org.apache.logging.log4j.core.layout; -import java.io.IOException; -import java.io.Writer; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; - import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonGetter; import com.fasterxml.jackson.annotation.JsonRootName; import com.fasterxml.jackson.annotation.JsonUnwrapped; -import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.config.Configuration; @@ -36,11 +25,20 @@ import org.apache.logging.log4j.core.config.plugins.Plugin; import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; -import org.apache.logging.log4j.core.jackson.Log4jJsonObjectMapper; import org.apache.logging.log4j.core.jackson.XmlConstants; import org.apache.logging.log4j.core.util.KeyValuePair; import org.apache.logging.log4j.util.Strings; +import java.io.IOException; +import java.io.Writer; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + import static java.time.Instant.ofEpochMilli; import static java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME; @@ -52,8 +50,6 @@ public class LambdaJsonLayout extends AbstractJacksonLayout { static final String CONTENT_TYPE = "application/json"; - private final ObjectMapper objectMapper; - public static class Builder> extends AbstractJacksonLayout.Builder implements org.apache.logging.log4j.core.util.Builder { @@ -113,7 +109,6 @@ private LambdaJsonLayout(final Configuration config, final boolean locationInfo, PatternLayout.newSerializerBuilder().setConfiguration(config).setPattern(footerPattern).setDefaultPattern(DEFAULT_FOOTER).build(), includeNullDelimiter, additionalFields); - this.objectMapper = new Log4jJsonObjectMapper(encodeThreadContextAsList, includeStacktrace, stacktraceAsString, objectMessageAsJsonObject); } /** diff --git a/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowertoolsLogging.java b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowertoolsLogging.java index a4fae6c9c..eb62a4ece 100644 --- a/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowertoolsLogging.java +++ b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowertoolsLogging.java @@ -55,7 +55,7 @@ *

By default {@code PowertoolsLogging} will not log the event which has trigger the invoke of the Lambda function. * This can be enabled using {@code @PowertoolsLogging(logEvent = true)}.

* - *

By default {@code PowertoolsLogging} all debug loggs will follow log4j2 configuration unless configured via + *

By default {@code PowertoolsLogging} all debug logs will follow log4j2 configuration unless configured via * POWERTOOLS_LOGGER_SAMPLE_RATE environment variable {@code @PowertoolsLogging(samplingRate = <0.0-1.0>)}.

* *

To append additional keys to each log entry you can use {@link PowertoolsLogger#appendKey(String, String)}

diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/LambdaHandlerApiGateway.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/LambdaHandlerApiGateway.java index 0bf8260a4..39f216c0a 100644 --- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/LambdaHandlerApiGateway.java +++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/LambdaHandlerApiGateway.java @@ -3,7 +3,6 @@ import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent; -import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent; import software.amazon.lambda.powertools.sqs.LargeMessageHandler; public class LambdaHandlerApiGateway implements RequestHandler { diff --git a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowertoolsTracing.java b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowertoolsTracing.java index c79ef38d6..82b6169e7 100644 --- a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowertoolsTracing.java +++ b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowertoolsTracing.java @@ -33,7 +33,7 @@ *

By default {@code PowertoolsTracing} will capture responses and add them * to a sub segment named after the method.

* - *

To disable this functionality you can specify {@code @PowertoolsTracing( captureRespones = false)}

+ *

To disable this functionality you can specify {@code @PowertoolsTracing( captureResponse = false)}

* *

By default {@code PowertoolsTracing} will capture errors and add them * to a sub segment named after the method.

From a187340c2c871205ab2e9c9063ef0deff4fd5036 Mon Sep 17 00:00:00 2001 From: Michael Brewer Date: Mon, 31 Aug 2020 17:25:47 -0700 Subject: [PATCH 2/3] fix: use Optional to simplify null handling --- .../core/internal/LambdaHandlerProcessor.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java b/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java index 31650b1a9..12d454fd3 100644 --- a/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java +++ b/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java @@ -13,19 +13,23 @@ */ package software.amazon.lambda.powertools.core.internal; -import java.io.InputStream; -import java.io.OutputStream; - import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.RequestStreamHandler; import org.aspectj.lang.ProceedingJoinPoint; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Optional; + public final class LambdaHandlerProcessor { - private static String SERVICE_NAME = System.getenv("POWERTOOLS_SERVICE_NAME") != null - ? System.getenv("POWERTOOLS_SERVICE_NAME") : "service_undefined"; + private static String SERVICE_NAME = Optional.ofNullable(System.getenv("POWERTOOLS_SERVICE_NAME")).orElse("service_undefined"); private static Boolean IS_COLD_START = null; + private LambdaHandlerProcessor() { + // Hide default constructor + } + public static boolean isHandlerMethod(ProceedingJoinPoint pjp) { return "handleRequest".equals(pjp.getSignature().getName()); } From c6d522709f74e13c1f899023b7850a4a5054da81 Mon Sep 17 00:00:00 2001 From: Michael Brewer Date: Mon, 31 Aug 2020 22:48:35 -0700 Subject: [PATCH 3/3] refactor: revert null check code. --- .../core/internal/LambdaHandlerProcessor.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java b/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java index 12d454fd3..e061e8edf 100644 --- a/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java +++ b/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java @@ -20,27 +20,27 @@ import java.io.InputStream; import java.io.OutputStream; -import java.util.Optional; public final class LambdaHandlerProcessor { - private static String SERVICE_NAME = Optional.ofNullable(System.getenv("POWERTOOLS_SERVICE_NAME")).orElse("service_undefined"); + private static String SERVICE_NAME = null != System.getenv("POWERTOOLS_SERVICE_NAME") + ? System.getenv("POWERTOOLS_SERVICE_NAME") : "service_undefined"; private static Boolean IS_COLD_START = null; private LambdaHandlerProcessor() { // Hide default constructor } - public static boolean isHandlerMethod(ProceedingJoinPoint pjp) { + public static boolean isHandlerMethod(final ProceedingJoinPoint pjp) { return "handleRequest".equals(pjp.getSignature().getName()); } - public static boolean placedOnRequestHandler(ProceedingJoinPoint pjp) { + public static boolean placedOnRequestHandler(final ProceedingJoinPoint pjp) { return RequestHandler.class.isAssignableFrom(pjp.getSignature().getDeclaringType()) && pjp.getArgs().length == 2 && pjp.getArgs()[1] instanceof Context; } - public static boolean placedOnStreamHandler(ProceedingJoinPoint pjp) { + public static boolean placedOnStreamHandler(final ProceedingJoinPoint pjp) { return RequestStreamHandler.class.isAssignableFrom(pjp.getSignature().getDeclaringType()) && pjp.getArgs().length == 3 && pjp.getArgs()[0] instanceof InputStream