From 9cfd436f486409dd86bb48b8a268e0ed6bc40d9d Mon Sep 17 00:00:00 2001 From: msailes Date: Fri, 21 Aug 2020 08:52:09 +0100 Subject: [PATCH 01/10] feat: Moving the codebase into separate modules to handle future project growth. --- .java-version | 1 + README.md | 7 + powertools-core/pom.xml | 267 ++++++++++++++ .../internal/LambdaHandlerProcessor.java | 15 +- powertools-logging/pom.xml | 274 +++++++++++++++ .../log4j/core/layout/LambdaJsonLayout.java | 0 .../powertools/logging/PowerLogger.java | 10 + .../logging/PowerToolsLogging.java | 17 +- .../logging/internal/DefaultLambdaFields.java | 15 +- .../logging/internal/LambdaLoggingAspect.java | 29 +- .../core/layout/LambdaJsonLayoutTest.java | 3 +- .../powertools/logging/PowerLoggerTest.java | 26 ++ .../logging/handlers/PowerLogToolEnabled.java | 23 ++ .../PowerLogToolEnabledForStream.java | 17 + .../logging/handlers/PowerToolDisabled.java | 12 + .../handlers/PowerToolDisabledForStream.java | 15 + .../handlers/PowerToolLogEventEnabled.java | 14 + .../PowerToolLogEventEnabledForStream.java | 21 ++ .../internal/LambdaLoggingAspectTest.java | 74 ++-- .../src}/test/resources/log4j2.xml | 0 powertools-parent/pom.xml | 325 ++++++++++++++++++ pom.xml => powertools-tracing/pom.xml | 43 +-- .../powertools/tracing/PowerToolsTracing.java | 14 + .../powertools}/tracing/PowerTracer.java | 17 +- .../tracing/internal/LambdaTracingAspect.java | 29 +- .../powertools}/tracing/PowerTracerTest.java | 18 +- .../tracing/handlers/PowerToolDisabled.java | 12 + .../handlers/PowerToolDisabledForStream.java | 15 + .../handlers/PowerTracerToolEnabled.java | 14 + .../PowerTracerToolEnabledForStream.java | 17 + ...cerToolEnabledForStreamWithNoMetaData.java | 17 + .../PowerTracerToolEnabledWithException.java | 14 + .../PowerTracerToolEnabledWithNoMetaData.java | 14 + .../internal/LambdaTracingAspectTest.java | 31 +- .../src/test/resources/log4j2.xml | 16 + .../amazon/lambda/logging/PowerLogger.java | 35 -- .../lambda/tracing/PowerToolsTracing.java | 27 -- .../lambda/handlers/PowerLogToolEnabled.java | 36 -- .../PowerLogToolEnabledForStream.java | 30 -- .../lambda/handlers/PowerToolDisabled.java | 25 -- .../handlers/PowerToolDisabledForStream.java | 28 -- .../handlers/PowerToolLogEventEnabled.java | 27 -- .../PowerToolLogEventEnabledForStream.java | 34 -- .../handlers/PowerTracerToolEnabled.java | 27 -- .../PowerTracerToolEnabledForStream.java | 30 -- ...cerToolEnabledForStreamWithNoMetaData.java | 30 -- .../PowerTracerToolEnabledWithException.java | 27 -- .../PowerTracerToolEnabledWithNoMetaData.java | 27 -- .../lambda/logging/PowerLoggerTest.java | 38 -- 49 files changed, 1223 insertions(+), 634 deletions(-) create mode 100644 .java-version create mode 100644 powertools-core/pom.xml rename {src/main/java/software/amazon/lambda => powertools-core/src/main/java/software/amazon/lambda/powertools/core}/internal/LambdaHandlerProcessor.java (71%) create mode 100644 powertools-logging/pom.xml rename {src => powertools-logging/src}/main/java/org/apache/logging/log4j/core/layout/LambdaJsonLayout.java (100%) create mode 100644 powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerLogger.java rename {src/main/java/software/amazon/lambda => powertools-logging/src/main/java/software/amazon/lambda/powertools}/logging/PowerToolsLogging.java (72%) rename {src/main/java/software/amazon/lambda => powertools-logging/src/main/java/software/amazon/lambda/powertools}/logging/internal/DefaultLambdaFields.java (57%) rename {src/main/java/software/amazon/lambda => powertools-logging/src/main/java/software/amazon/lambda/powertools}/logging/internal/LambdaLoggingAspect.java (74%) rename {src => powertools-logging/src}/test/java/org/apache/logging/log4j/core/layout/LambdaJsonLayoutTest.java (97%) create mode 100644 powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/PowerLoggerTest.java create mode 100644 powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabled.java create mode 100644 powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabledForStream.java create mode 100644 powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabled.java create mode 100644 powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabledForStream.java create mode 100644 powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabled.java create mode 100644 powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabledForStream.java rename {src/test/java/software/amazon/lambda => powertools-logging/src/test/java/software/amazon/lambda/powertools}/logging/internal/LambdaLoggingAspectTest.java (65%) rename {src => powertools-logging/src}/test/resources/log4j2.xml (100%) create mode 100644 powertools-parent/pom.xml rename pom.xml => powertools-tracing/pom.xml (88%) create mode 100644 powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerToolsTracing.java rename {src/main/java/software/amazon/lambda => powertools-tracing/src/main/java/software/amazon/lambda/powertools}/tracing/PowerTracer.java (71%) rename {src/main/java/software/amazon/lambda => powertools-tracing/src/main/java/software/amazon/lambda/powertools}/tracing/internal/LambdaTracingAspect.java (63%) rename {src/test/java/software/amazon/lambda => powertools-tracing/src/test/java/software/amazon/lambda/powertools}/tracing/PowerTracerTest.java (89%) create mode 100644 powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabled.java create mode 100644 powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabledForStream.java create mode 100644 powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java create mode 100644 powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStream.java create mode 100644 powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java create mode 100644 powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithException.java create mode 100644 powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithNoMetaData.java rename {src/test/java/software/amazon/lambda => powertools-tracing/src/test/java/software/amazon/lambda/powertools}/tracing/internal/LambdaTracingAspectTest.java (82%) create mode 100644 powertools-tracing/src/test/resources/log4j2.xml delete mode 100644 src/main/java/software/amazon/lambda/logging/PowerLogger.java delete mode 100644 src/main/java/software/amazon/lambda/tracing/PowerToolsTracing.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerLogToolEnabled.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerLogToolEnabledForStream.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerToolDisabled.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerToolDisabledForStream.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerToolLogEventEnabled.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerToolLogEventEnabledForStream.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabled.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledForStream.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledWithException.java delete mode 100644 src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledWithNoMetaData.java delete mode 100644 src/test/java/software/amazon/lambda/logging/PowerLoggerTest.java diff --git a/.java-version b/.java-version new file mode 100644 index 000000000..625934097 --- /dev/null +++ b/.java-version @@ -0,0 +1 @@ +1.8 diff --git a/README.md b/README.md index 7972922b4..aa41a213d 100644 --- a/README.md +++ b/README.md @@ -86,3 +86,10 @@ Powertools extends the functionality of Log4J. Below is an example `log4j2.xml` ## License This library is licensed under the Apache License, Version 2.0. See the LICENSE file. + + + +Cold Start + +946.58 ms - original +943.96 ms - power tools \ No newline at end of file diff --git a/powertools-core/pom.xml b/powertools-core/pom.xml new file mode 100644 index 000000000..7e53a6890 --- /dev/null +++ b/powertools-core/pom.xml @@ -0,0 +1,267 @@ + + + 4.0.0 + + powertools-core + 0.1.0-SNAPSHOT + jar + + + powertools-parent + software.amazon.lambda + 0.1.0-SNAPSHOT + ../powertools-parent/pom.xml + + + AWS Lambda Powertools Java library Core + + A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. + + https://aws.amazon.com/lambda/ + + GitHub Issues + https://github.com/awslabs/aws-lambda-powertools-java/issues + + + + Apache License, Version 2.0 + https://aws.amazon.com/apache2.0 + repo + + + + https://github.com/awslabs/aws-lambda-powertools-java.git + + + + AWS Lambda Powertools team + Amazon Web Services + https://aws.amazon.com/ + + + + + 1.8 + 1.8 + 2.13.3 + 2.11.0 + 1.9.6 + 2.4.0 + UTF-8 + + + + + ossrh + https://aws.oss.sonatype.org/content/repositories/snapshots + + + + + + com.amazonaws + aws-lambda-java-core + + + org.aspectj + aspectjrt + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.apache.commons + commons-lang3 + test + + + org.mockito + mockito-core + test + + + org.aspectj + aspectjweaver + test + + + org.assertj + assertj-core + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + ${maven.compiler.source} + ${maven.compiler.target} + false + + + + + com.nickwongdev + aspectj-maven-plugin + 1.12.1 + + ${maven.compiler.source} + ${maven.compiler.target} + ${maven.compiler.target} + ignore + ${project.build.sourceEncoding} + + + + process-sources + + compile + test-compile + + + + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + org.jacoco + jacoco-maven-plugin + 0.8.5 + + + + prepare-agent + + + + + report + test + + report + + + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.7 + + + html + xml + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + true + + sonatype-nexus-staging + https://aws.oss.sonatype.org + true + + + + + + + + sign + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + + + + + + build-extras + + true + + + + + org.apache.maven.plugins + maven-source-plugin + 2.4 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.3 + + -Xdoclint:none + false + + + + attach-javadocs + + jar + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/software/amazon/lambda/internal/LambdaHandlerProcessor.java b/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java similarity index 71% rename from src/main/java/software/amazon/lambda/internal/LambdaHandlerProcessor.java rename to powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java index c265e67ec..faed272d4 100644 --- a/src/main/java/software/amazon/lambda/internal/LambdaHandlerProcessor.java +++ b/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java @@ -1,17 +1,4 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.internal; +package software.amazon.lambda.powertools.core.internal; import java.io.InputStream; import java.io.OutputStream; diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml new file mode 100644 index 000000000..4d1adff2e --- /dev/null +++ b/powertools-logging/pom.xml @@ -0,0 +1,274 @@ + + + 4.0.0 + + powertools-logging + 0.1.0-SNAPSHOT + jar + + + powertools-parent + software.amazon.lambda + 0.1.0-SNAPSHOT + ../powertools-parent/pom.xml + + + AWS Lambda Powertools Java library Logging + + A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. + + https://aws.amazon.com/lambda/ + + GitHub Issues + https://github.com/awslabs/aws-lambda-powertools-java/issues + + + + Apache License, Version 2.0 + https://aws.amazon.com/apache2.0 + repo + + + + https://github.com/awslabs/aws-lambda-powertools-java.git + + + + AWS Lambda Powertools team + Amazon Web Services + https://aws.amazon.com/ + + + + + + ossrh + https://aws.oss.sonatype.org/content/repositories/snapshots + + + + + + software.amazon.lambda + powertools-core + + + com.amazonaws + aws-lambda-java-core + + + com.fasterxml.jackson.core + jackson-databind + + + + org.apache.logging.log4j + log4j-core + + + org.apache.logging.log4j + log4j-api + + + org.aspectj + aspectjrt + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.apache.commons + commons-lang3 + test + + + org.mockito + mockito-core + test + + + org.aspectj + aspectjweaver + test + + + org.assertj + assertj-core + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + ${maven.compiler.source} + ${maven.compiler.target} + false + + + + + com.nickwongdev + aspectj-maven-plugin + 1.12.1 + + ${maven.compiler.source} + ${maven.compiler.target} + ${maven.compiler.target} + ignore + ${project.build.sourceEncoding} + + + + process-sources + + compile + test-compile + + + + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + org.jacoco + jacoco-maven-plugin + 0.8.5 + + + + prepare-agent + + + + + report + test + + report + + + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.7 + + + html + xml + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + true + + sonatype-nexus-staging + https://aws.oss.sonatype.org + true + + + + + + + + sign + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + + + + + + build-extras + + true + + + + + org.apache.maven.plugins + maven-source-plugin + 2.4 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.3 + + -Xdoclint:none + false + + + + attach-javadocs + + jar + + + + + + + + + + \ No newline at end of file diff --git a/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 similarity index 100% rename from src/main/java/org/apache/logging/log4j/core/layout/LambdaJsonLayout.java rename to powertools-logging/src/main/java/org/apache/logging/log4j/core/layout/LambdaJsonLayout.java diff --git a/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerLogger.java b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerLogger.java new file mode 100644 index 000000000..87c92f0aa --- /dev/null +++ b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerLogger.java @@ -0,0 +1,10 @@ +package software.amazon.lambda.powertools.logging; + +import org.apache.logging.log4j.ThreadContext; + +public class PowerLogger { + + public static void customKey(String key, String value) { + ThreadContext.put(key, value); + } +} diff --git a/src/main/java/software/amazon/lambda/logging/PowerToolsLogging.java b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerToolsLogging.java similarity index 72% rename from src/main/java/software/amazon/lambda/logging/PowerToolsLogging.java rename to powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerToolsLogging.java index 8ff0d3752..21e9570e8 100644 --- a/src/main/java/software/amazon/lambda/logging/PowerToolsLogging.java +++ b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerToolsLogging.java @@ -1,17 +1,4 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.logging; +package software.amazon.lambda.powertools.logging; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -53,7 +40,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)}.

* - *

To append additional keys to each log entry you can use {@link software.amazon.lambda.logging.PowerLogger#appendKey(String, String)}

+ *

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

*/ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) diff --git a/src/main/java/software/amazon/lambda/logging/internal/DefaultLambdaFields.java b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/DefaultLambdaFields.java similarity index 57% rename from src/main/java/software/amazon/lambda/logging/internal/DefaultLambdaFields.java rename to powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/DefaultLambdaFields.java index bf1a6e135..4aabd6950 100644 --- a/src/main/java/software/amazon/lambda/logging/internal/DefaultLambdaFields.java +++ b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/DefaultLambdaFields.java @@ -1,17 +1,4 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.logging.internal; +package software.amazon.lambda.powertools.logging.internal; import com.amazonaws.services.lambda.runtime.Context; diff --git a/src/main/java/software/amazon/lambda/logging/internal/LambdaLoggingAspect.java b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspect.java similarity index 74% rename from src/main/java/software/amazon/lambda/logging/internal/LambdaLoggingAspect.java rename to powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspect.java index 55363646d..2a0811ea5 100644 --- a/src/main/java/software/amazon/lambda/logging/internal/LambdaLoggingAspect.java +++ b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspect.java @@ -1,17 +1,4 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.logging.internal; +package software.amazon.lambda.powertools.logging.internal; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -32,16 +19,16 @@ import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; -import software.amazon.lambda.logging.PowerToolsLogging; +import software.amazon.lambda.powertools.logging.PowerToolsLogging; import static java.util.Optional.empty; import static java.util.Optional.of; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.coldStartDone; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.isColdStart; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.isHandlerMethod; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.placedOnRequestHandler; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.placedOnStreamHandler; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.serviceName; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.coldStartDone; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.isColdStart; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.isHandlerMethod; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.placedOnRequestHandler; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.placedOnStreamHandler; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.serviceName; @Aspect public final class LambdaLoggingAspect { diff --git a/src/test/java/org/apache/logging/log4j/core/layout/LambdaJsonLayoutTest.java b/powertools-logging/src/test/java/org/apache/logging/log4j/core/layout/LambdaJsonLayoutTest.java similarity index 97% rename from src/test/java/org/apache/logging/log4j/core/layout/LambdaJsonLayoutTest.java rename to powertools-logging/src/test/java/org/apache/logging/log4j/core/layout/LambdaJsonLayoutTest.java index fc98bfc6c..4823bce75 100644 --- a/src/test/java/org/apache/logging/log4j/core/layout/LambdaJsonLayoutTest.java +++ b/powertools-logging/src/test/java/org/apache/logging/log4j/core/layout/LambdaJsonLayoutTest.java @@ -19,7 +19,6 @@ import java.nio.file.Paths; import java.nio.file.StandardOpenOption; import java.util.Map; -import java.util.stream.Stream; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; @@ -28,7 +27,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; -import software.amazon.lambda.handlers.PowerLogToolEnabled; +import software.amazon.lambda.powertools.logging.handlers.PowerLogToolEnabled; import static java.util.Collections.emptyMap; import static org.assertj.core.api.Assertions.assertThat; diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/PowerLoggerTest.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/PowerLoggerTest.java new file mode 100644 index 000000000..4332b13c0 --- /dev/null +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/PowerLoggerTest.java @@ -0,0 +1,26 @@ +package software.amazon.lambda.powertools.logging; + +import org.apache.logging.log4j.ThreadContext; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import software.amazon.lambda.powertools.logging.PowerLogger; + +import static org.assertj.core.api.Assertions.assertThat; + + +class PowerLoggerTest { + + @BeforeEach + void setUp() { + ThreadContext.clearAll(); + } + + @Test + void shouldSetCustomKeyOnThreadContext() { + PowerLogger.customKey("test", "value"); + + assertThat(ThreadContext.getImmutableContext()) + .hasSize(1) + .containsEntry("test", "value"); + } +} \ No newline at end of file diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabled.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabled.java new file mode 100644 index 000000000..378721d9e --- /dev/null +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabled.java @@ -0,0 +1,23 @@ +package software.amazon.lambda.powertools.logging.handlers; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestHandler; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import software.amazon.lambda.powertools.logging.PowerToolsLogging; + +public class PowerLogToolEnabled implements RequestHandler { + private final Logger LOG = LogManager.getLogger(PowerToolLogEventEnabled.class); + + @Override + @PowerToolsLogging + public Object handleRequest(Object input, Context context) { + LOG.info("Test event"); + return null; + } + + @PowerToolsLogging + public void anotherMethod() { + System.out.println("test"); + } +} diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabledForStream.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabledForStream.java new file mode 100644 index 000000000..2e6906f60 --- /dev/null +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabledForStream.java @@ -0,0 +1,17 @@ +package software.amazon.lambda.powertools.logging.handlers; + +import java.io.InputStream; +import java.io.OutputStream; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestStreamHandler; +import software.amazon.lambda.powertools.logging.PowerToolsLogging; + +public class PowerLogToolEnabledForStream implements RequestStreamHandler { + + @PowerToolsLogging + @Override + public void handleRequest(InputStream input, OutputStream output, Context context) { + + } +} diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabled.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabled.java new file mode 100644 index 000000000..4d60a1f52 --- /dev/null +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabled.java @@ -0,0 +1,12 @@ +package software.amazon.lambda.powertools.logging.handlers; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestHandler; + +public class PowerToolDisabled implements RequestHandler { + + @Override + public Object handleRequest(Object input, Context context) { + return null; + } +} diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabledForStream.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabledForStream.java new file mode 100644 index 000000000..db6610fe2 --- /dev/null +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabledForStream.java @@ -0,0 +1,15 @@ +package software.amazon.lambda.powertools.logging.handlers; + +import java.io.InputStream; +import java.io.OutputStream; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestStreamHandler; + +public class PowerToolDisabledForStream implements RequestStreamHandler { + + @Override + public void handleRequest(InputStream input, OutputStream output, Context context) { + + } +} diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabled.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabled.java new file mode 100644 index 000000000..71e0ac2d6 --- /dev/null +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabled.java @@ -0,0 +1,14 @@ +package software.amazon.lambda.powertools.logging.handlers; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestHandler; +import software.amazon.lambda.powertools.logging.PowerToolsLogging; + +public class PowerToolLogEventEnabled implements RequestHandler { + + @PowerToolsLogging(logEvent = true) + @Override + public Object handleRequest(Object input, Context context) { + return null; + } +} diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabledForStream.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabledForStream.java new file mode 100644 index 000000000..2c995fd7d --- /dev/null +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabledForStream.java @@ -0,0 +1,21 @@ +package software.amazon.lambda.powertools.logging.handlers; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Map; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestStreamHandler; +import com.fasterxml.jackson.databind.ObjectMapper; +import software.amazon.lambda.powertools.logging.PowerToolsLogging; + +public class PowerToolLogEventEnabledForStream implements RequestStreamHandler { + + @PowerToolsLogging(logEvent = true) + @Override + public void handleRequest(InputStream input, OutputStream output, Context context) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + mapper.writeValue(output, mapper.readValue(input, Map.class)); + } +} diff --git a/src/test/java/software/amazon/lambda/logging/internal/LambdaLoggingAspectTest.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspectTest.java similarity index 65% rename from src/test/java/software/amazon/lambda/logging/internal/LambdaLoggingAspectTest.java rename to powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspectTest.java index 06599f407..3900392b4 100644 --- a/src/test/java/software/amazon/lambda/logging/internal/LambdaLoggingAspectTest.java +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspectTest.java @@ -1,17 +1,4 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.logging.internal; +package software.amazon.lambda.powertools.logging.internal; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -24,22 +11,21 @@ import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.RequestStreamHandler; import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.logging.log4j.ThreadContext; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; -import software.amazon.lambda.handlers.PowerLogToolEnabled; -import software.amazon.lambda.handlers.PowerLogToolEnabledForStream; -import software.amazon.lambda.handlers.PowerToolDisabled; -import software.amazon.lambda.handlers.PowerToolDisabledForStream; -import software.amazon.lambda.handlers.PowerToolLogEventEnabled; -import software.amazon.lambda.handlers.PowerToolLogEventEnabledForStream; -import software.amazon.lambda.internal.LambdaHandlerProcessor; - -import static org.apache.commons.lang3.reflect.FieldUtils.writeStaticField; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.when; -import static org.mockito.MockitoAnnotations.initMocks; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor; +import software.amazon.lambda.powertools.logging.handlers.PowerLogToolEnabled; +import software.amazon.lambda.powertools.logging.handlers.PowerLogToolEnabledForStream; +import software.amazon.lambda.powertools.logging.handlers.PowerToolDisabled; +import software.amazon.lambda.powertools.logging.handlers.PowerToolDisabledForStream; +import software.amazon.lambda.powertools.logging.handlers.PowerToolLogEventEnabled; +import software.amazon.lambda.powertools.logging.handlers.PowerToolLogEventEnabledForStream; class LambdaLoggingAspectTest { @@ -52,9 +38,9 @@ class LambdaLoggingAspectTest { @BeforeEach void setUp() throws IllegalAccessException { - initMocks(this); + MockitoAnnotations.initMocks(this); ThreadContext.clearAll(); - writeStaticField(LambdaHandlerProcessor.class, "IS_COLD_START", null, true); + FieldUtils.writeStaticField(LambdaHandlerProcessor.class, "IS_COLD_START", null, true); setupContext(); requestHandler = new PowerLogToolEnabled(); requestStreamHandler = new PowerLogToolEnabledForStream(); @@ -64,7 +50,7 @@ void setUp() throws IllegalAccessException { void shouldSetLambdaContextWhenEnabled() { requestHandler.handleRequest(new Object(), context); - assertThat(ThreadContext.getImmutableContext()) + Assertions.assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE) .containsEntry(DefaultLambdaFields.FUNCTION_ARN.getName(), "testArn") .containsEntry(DefaultLambdaFields.FUNCTION_MEMORY_SIZE.getName(), "10") @@ -80,7 +66,7 @@ void shouldSetLambdaContextForStreamHandlerWhenEnabled() throws IOException { requestStreamHandler.handleRequest(new ByteArrayInputStream(new byte[]{}), new ByteArrayOutputStream(), context); - assertThat(ThreadContext.getImmutableContext()) + Assertions.assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE) .containsEntry(DefaultLambdaFields.FUNCTION_ARN.getName(), "testArn") .containsEntry(DefaultLambdaFields.FUNCTION_MEMORY_SIZE.getName(), "10") @@ -94,13 +80,13 @@ void shouldSetLambdaContextForStreamHandlerWhenEnabled() throws IOException { void shouldSetColdStartFlag() throws IOException { requestStreamHandler.handleRequest(new ByteArrayInputStream(new byte[]{}), new ByteArrayOutputStream(), context); - assertThat(ThreadContext.getImmutableContext()) + Assertions.assertThat(ThreadContext.getImmutableContext()) .hasSize(6) .containsEntry("coldStart", "true"); requestStreamHandler.handleRequest(new ByteArrayInputStream(new byte[]{}), new ByteArrayOutputStream(), context); - assertThat(ThreadContext.getImmutableContext()) + Assertions.assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE) .containsEntry("coldStart", "false"); } @@ -111,7 +97,7 @@ void shouldNotSetLambdaContextWhenDisabled() { requestHandler.handleRequest(new Object(), context); - assertThat(ThreadContext.getImmutableContext()) + Assertions.assertThat(ThreadContext.getImmutableContext()) .isEmpty(); } @@ -121,7 +107,7 @@ void shouldNotSetLambdaContextForStreamHandlerWhenDisabled() throws IOException requestStreamHandler.handleRequest(null, null, context); - assertThat(ThreadContext.getImmutableContext()) + Assertions.assertThat(ThreadContext.getImmutableContext()) .isEmpty(); } @@ -131,7 +117,7 @@ void shouldHaveNoEffectIfNotUsedOnLambdaHandler() { handler.anotherMethod(); - assertThat(ThreadContext.getImmutableContext()) + Assertions.assertThat(ThreadContext.getImmutableContext()) .isEmpty(); } @@ -141,7 +127,7 @@ void shouldLogEventForHandler() { requestHandler.handleRequest(new Object(), context); - assertThat(ThreadContext.getImmutableContext()) + Assertions.assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE); } @@ -155,27 +141,27 @@ void shouldLogEventForStreamAndLambdaStreamIsValid() throws IOException { requestStreamHandler.handleRequest(new ByteArrayInputStream(new ObjectMapper().writeValueAsBytes(testPayload)), output, context); - assertThat(new String(output.toByteArray(), StandardCharsets.UTF_8)) + Assertions.assertThat(new String(output.toByteArray(), StandardCharsets.UTF_8)) .isEqualTo("{\"test\":\"payload\"}"); - assertThat(ThreadContext.getImmutableContext()) + Assertions.assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE); } @Test void shouldLogServiceNameWhenEnvVarSet() throws IllegalAccessException { - writeStaticField(LambdaHandlerProcessor.class, "SERVICE_NAME", "testService", true); + FieldUtils.writeStaticField(LambdaHandlerProcessor.class, "SERVICE_NAME", "testService", true); requestHandler.handleRequest(new Object(), context); - assertThat(ThreadContext.getImmutableContext()) + Assertions.assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE) .containsEntry("service", "testService"); } private void setupContext() { - when(context.getFunctionName()).thenReturn("testFunction"); - when(context.getInvokedFunctionArn()).thenReturn("testArn"); - when(context.getFunctionVersion()).thenReturn("1"); - when(context.getMemoryLimitInMB()).thenReturn(10); + Mockito.when(context.getFunctionName()).thenReturn("testFunction"); + Mockito.when(context.getInvokedFunctionArn()).thenReturn("testArn"); + Mockito.when(context.getFunctionVersion()).thenReturn("1"); + Mockito.when(context.getMemoryLimitInMB()).thenReturn(10); } } \ No newline at end of file diff --git a/src/test/resources/log4j2.xml b/powertools-logging/src/test/resources/log4j2.xml similarity index 100% rename from src/test/resources/log4j2.xml rename to powertools-logging/src/test/resources/log4j2.xml diff --git a/powertools-parent/pom.xml b/powertools-parent/pom.xml new file mode 100644 index 000000000..221522cc7 --- /dev/null +++ b/powertools-parent/pom.xml @@ -0,0 +1,325 @@ + + + 4.0.0 + + software.amazon.lambda + powertools-parent + 0.1.0-SNAPSHOT + pom + + AWS Lambda Powertools Java library Parent + + A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. + + https://aws.amazon.com/lambda/ + + GitHub Issues + https://github.com/awslabs/aws-lambda-powertools-java/issues + + + + Apache License, Version 2.0 + https://aws.amazon.com/apache2.0 + repo + + + + + ../powertools-core + ../powertools-logging + ../powertools-tracing + + + + https://github.com/awslabs/aws-lambda-powertools-java.git + + + + + AWS Lambda Powertools team + Amazon Web Services + https://aws.amazon.com/ + + + + + 1.8 + 1.8 + 2.13.3 + 2.11.0 + 1.9.6 + 2.4.0 + UTF-8 + 1.2.1 + + + + + ossrh + https://aws.oss.sonatype.org/content/repositories/snapshots + + + + + + + software.amazon.lambda + powertools-core + 0.1.0-SNAPSHOT + + + com.amazonaws + aws-lambda-java-core + ${lambda.core.version} + + + org.aspectj + aspectjrt + ${aspectj.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + + + com.amazonaws + aws-xray-recorder-sdk-core + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-instrumentor + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-v2 + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-v2-instrumentor + ${aws.xray.recorder.version} + + + + + org.junit.jupiter + junit-jupiter-api + 5.6.2 + test + + + org.junit.jupiter + junit-jupiter-engine + 5.6.2 + test + + + org.apache.commons + commons-lang3 + 3.11 + test + + + org.mockito + mockito-core + 3.3.3 + test + + + org.aspectj + aspectjweaver + ${aspectj.version} + test + + + org.assertj + assertj-core + 3.9.1 + test + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + ${maven.compiler.source} + ${maven.compiler.target} + false + + + + + com.nickwongdev + aspectj-maven-plugin + 1.12.1 + + ${maven.compiler.source} + ${maven.compiler.target} + ${maven.compiler.target} + ignore + ${project.build.sourceEncoding} + + + + process-sources + + compile + test-compile + + + + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + org.jacoco + jacoco-maven-plugin + 0.8.5 + + + + prepare-agent + + + + + report + test + + report + + + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.7 + + + html + xml + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + true + + sonatype-nexus-staging + https://aws.oss.sonatype.org + true + + + + + + + + sign + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + + + + + + build-extras + + true + + + + + org.apache.maven.plugins + maven-source-plugin + 2.4 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.3 + + -Xdoclint:none + false + + + + attach-javadocs + + jar + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/powertools-tracing/pom.xml similarity index 88% rename from pom.xml rename to powertools-tracing/pom.xml index cb13dc888..74c8dfb4b 100644 --- a/pom.xml +++ b/powertools-tracing/pom.xml @@ -4,12 +4,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - software.amazon.lambda - aws-lambda-powertools-java + powertools-tracing 0.1.0-SNAPSHOT jar - AWS Lambda Powertools Java library + + powertools-parent + software.amazon.lambda + 0.1.0-SNAPSHOT + ../powertools-parent/pom.xml + + + AWS Lambda Powertools Java library Tracing A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. @@ -36,16 +42,6 @@ - - 1.8 - 1.8 - 2.13.3 - 2.11.0 - 1.9.6 - 2.4.0 - UTF-8 - - ossrh @@ -54,93 +50,80 @@ + + software.amazon.lambda + powertools-core + com.amazonaws aws-lambda-java-core - 1.2.1 com.fasterxml.jackson.core jackson-databind - ${jackson.version} - org.apache.logging.log4j log4j-core - ${log4j.version} org.apache.logging.log4j log4j-api - ${log4j.version} org.aspectj aspectjrt - ${aspectj.version} com.amazonaws aws-xray-recorder-sdk-core - ${aws.xray.recorder.version} com.amazonaws aws-xray-recorder-sdk-aws-sdk - ${aws.xray.recorder.version} com.amazonaws aws-xray-recorder-sdk-aws-sdk-instrumentor - ${aws.xray.recorder.version} com.amazonaws aws-xray-recorder-sdk-aws-sdk-v2 - ${aws.xray.recorder.version} com.amazonaws aws-xray-recorder-sdk-aws-sdk-v2-instrumentor - ${aws.xray.recorder.version} org.junit.jupiter junit-jupiter-api - 5.6.2 test org.junit.jupiter junit-jupiter-engine - 5.6.2 test org.apache.commons commons-lang3 - 3.11 test org.mockito mockito-core - 3.3.3 test org.aspectj aspectjweaver - ${aspectj.version} test org.assertj assertj-core - 3.9.1 test 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 new file mode 100644 index 000000000..f02a7830b --- /dev/null +++ b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerToolsTracing.java @@ -0,0 +1,14 @@ +package software.amazon.lambda.powertools.tracing; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface PowerToolsTracing { + String namespace() default ""; + boolean captureResponse() default true; + boolean captureError() default true; +} diff --git a/src/main/java/software/amazon/lambda/tracing/PowerTracer.java b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerTracer.java similarity index 71% rename from src/main/java/software/amazon/lambda/tracing/PowerTracer.java rename to powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerTracer.java index 3269f1a02..08dcee84d 100644 --- a/src/main/java/software/amazon/lambda/tracing/PowerTracer.java +++ b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerTracer.java @@ -1,17 +1,4 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.tracing; +package software.amazon.lambda.powertools.tracing; import java.util.function.Consumer; @@ -19,7 +6,7 @@ import com.amazonaws.xray.entities.Entity; import com.amazonaws.xray.entities.Subsegment; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.serviceName; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.serviceName; public final class PowerTracer { diff --git a/src/main/java/software/amazon/lambda/tracing/internal/LambdaTracingAspect.java b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java similarity index 63% rename from src/main/java/software/amazon/lambda/tracing/internal/LambdaTracingAspect.java rename to powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java index bb894ca54..59a0dbdf5 100644 --- a/src/main/java/software/amazon/lambda/tracing/internal/LambdaTracingAspect.java +++ b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java @@ -1,17 +1,4 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.tracing.internal; +package software.amazon.lambda.powertools.tracing.internal; import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Subsegment; @@ -19,14 +6,14 @@ import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; -import software.amazon.lambda.tracing.PowerToolsTracing; +import software.amazon.lambda.powertools.tracing.PowerToolsTracing; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.coldStartDone; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.isColdStart; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.isHandlerMethod; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.placedOnRequestHandler; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.placedOnStreamHandler; -import static software.amazon.lambda.internal.LambdaHandlerProcessor.serviceName; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.coldStartDone; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.isColdStart; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.isHandlerMethod; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.placedOnRequestHandler; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.placedOnStreamHandler; +import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.serviceName; @Aspect public final class LambdaTracingAspect { diff --git a/src/test/java/software/amazon/lambda/tracing/PowerTracerTest.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/PowerTracerTest.java similarity index 89% rename from src/test/java/software/amazon/lambda/tracing/PowerTracerTest.java rename to powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/PowerTracerTest.java index 8dc86439f..6cc6c5a5c 100644 --- a/src/test/java/software/amazon/lambda/tracing/PowerTracerTest.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/PowerTracerTest.java @@ -1,17 +1,4 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.tracing; +package software.amazon.lambda.powertools.tracing; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.xray.AWSXRay; @@ -19,11 +6,12 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import software.amazon.lambda.powertools.tracing.PowerTracer; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import static software.amazon.lambda.tracing.PowerTracer.withEntitySubsegment; +import static software.amazon.lambda.powertools.tracing.PowerTracer.withEntitySubsegment; class PowerTracerTest { diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabled.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabled.java new file mode 100644 index 000000000..d6f06f172 --- /dev/null +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabled.java @@ -0,0 +1,12 @@ +package software.amazon.lambda.powertools.tracing.handlers; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestHandler; + +public class PowerToolDisabled implements RequestHandler { + + @Override + public Object handleRequest(Object input, Context context) { + return null; + } +} diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabledForStream.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabledForStream.java new file mode 100644 index 000000000..268a5290e --- /dev/null +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabledForStream.java @@ -0,0 +1,15 @@ +package software.amazon.lambda.powertools.tracing.handlers; + +import java.io.InputStream; +import java.io.OutputStream; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestStreamHandler; + +public class PowerToolDisabledForStream implements RequestStreamHandler { + + @Override + public void handleRequest(InputStream input, OutputStream output, Context context) { + + } +} diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java new file mode 100644 index 000000000..30a1d6aa2 --- /dev/null +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java @@ -0,0 +1,14 @@ +package software.amazon.lambda.powertools.tracing.handlers; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestHandler; +import software.amazon.lambda.powertools.tracing.PowerToolsTracing; + +public class PowerTracerToolEnabled implements RequestHandler { + + @Override + @PowerToolsTracing(namespace = "lambdaHandler") + public Object handleRequest(Object input, Context context) { + return null; + } +} diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStream.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStream.java new file mode 100644 index 000000000..c635c54ba --- /dev/null +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStream.java @@ -0,0 +1,17 @@ +package software.amazon.lambda.powertools.tracing.handlers; + +import java.io.InputStream; +import java.io.OutputStream; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestStreamHandler; +import software.amazon.lambda.powertools.tracing.PowerToolsTracing; + +public class PowerTracerToolEnabledForStream implements RequestStreamHandler { + + @Override + @PowerToolsTracing(namespace = "streamHandler") + public void handleRequest(InputStream input, OutputStream output, Context context) { + + } +} diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java new file mode 100644 index 000000000..4044d6140 --- /dev/null +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java @@ -0,0 +1,17 @@ +package software.amazon.lambda.powertools.tracing.handlers; + +import java.io.InputStream; +import java.io.OutputStream; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestStreamHandler; +import software.amazon.lambda.powertools.tracing.PowerToolsTracing; + +public class PowerTracerToolEnabledForStreamWithNoMetaData implements RequestStreamHandler { + + @Override + @PowerToolsTracing(captureResponse = false, captureError = false) + public void handleRequest(InputStream input, OutputStream output, Context context) { + + } +} diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithException.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithException.java new file mode 100644 index 000000000..6eb302c17 --- /dev/null +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithException.java @@ -0,0 +1,14 @@ +package software.amazon.lambda.powertools.tracing.handlers; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestHandler; +import software.amazon.lambda.powertools.tracing.PowerToolsTracing; + +public class PowerTracerToolEnabledWithException implements RequestHandler { + + @Override + @PowerToolsTracing(namespace = "lambdaHandler") + public Object handleRequest(Object input, Context context) { + throw new RuntimeException("I am failing!"); + } +} diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithNoMetaData.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithNoMetaData.java new file mode 100644 index 000000000..dde446f3f --- /dev/null +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithNoMetaData.java @@ -0,0 +1,14 @@ +package software.amazon.lambda.powertools.tracing.handlers; + +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestHandler; +import software.amazon.lambda.powertools.tracing.PowerToolsTracing; + +public class PowerTracerToolEnabledWithNoMetaData implements RequestHandler { + + @Override + @PowerToolsTracing(captureResponse = false, captureError = false) + public Object handleRequest(Object input, Context context) { + return null; + } +} diff --git a/src/test/java/software/amazon/lambda/tracing/internal/LambdaTracingAspectTest.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspectTest.java similarity index 82% rename from src/test/java/software/amazon/lambda/tracing/internal/LambdaTracingAspectTest.java rename to powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspectTest.java index fadb737e9..5ba682c4b 100644 --- a/src/test/java/software/amazon/lambda/tracing/internal/LambdaTracingAspectTest.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspectTest.java @@ -1,17 +1,4 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.tracing.internal; +package software.amazon.lambda.powertools.tracing.internal; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -25,14 +12,14 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; -import software.amazon.lambda.handlers.PowerToolDisabled; -import software.amazon.lambda.handlers.PowerToolDisabledForStream; -import software.amazon.lambda.handlers.PowerTracerToolEnabled; -import software.amazon.lambda.handlers.PowerTracerToolEnabledForStream; -import software.amazon.lambda.handlers.PowerTracerToolEnabledForStreamWithNoMetaData; -import software.amazon.lambda.handlers.PowerTracerToolEnabledWithException; -import software.amazon.lambda.handlers.PowerTracerToolEnabledWithNoMetaData; -import software.amazon.lambda.internal.LambdaHandlerProcessor; +import software.amazon.lambda.powertools.tracing.handlers.PowerToolDisabled; +import software.amazon.lambda.powertools.tracing.handlers.PowerToolDisabledForStream; +import software.amazon.lambda.powertools.tracing.handlers.PowerTracerToolEnabled; +import software.amazon.lambda.powertools.tracing.handlers.PowerTracerToolEnabledForStream; +import software.amazon.lambda.powertools.tracing.handlers.PowerTracerToolEnabledForStreamWithNoMetaData; +import software.amazon.lambda.powertools.tracing.handlers.PowerTracerToolEnabledWithException; +import software.amazon.lambda.powertools.tracing.handlers.PowerTracerToolEnabledWithNoMetaData; +import software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor; import static org.apache.commons.lang3.reflect.FieldUtils.writeStaticField; import static org.assertj.core.api.Assertions.assertThat; diff --git a/powertools-tracing/src/test/resources/log4j2.xml b/powertools-tracing/src/test/resources/log4j2.xml new file mode 100644 index 000000000..108e32b75 --- /dev/null +++ b/powertools-tracing/src/test/resources/log4j2.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/software/amazon/lambda/logging/PowerLogger.java b/src/main/java/software/amazon/lambda/logging/PowerLogger.java deleted file mode 100644 index d52d8e6e8..000000000 --- a/src/main/java/software/amazon/lambda/logging/PowerLogger.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.logging; - -import org.apache.logging.log4j.ThreadContext; - -/** - * A class of helper functions to add additional functionality to PowerToolsLogging. - * - * {@see PowerToolsLogging} - */ -public class PowerLogger { - - /** - * Appends an additional key and value to each log entry made. Duplicate values - * for the same key will be replaced with the latest. - * - * @param key The name of the key to be logged - * @param value The value to be logged - */ - public static void appendKey(String key, String value) { - ThreadContext.put(key, value); - } -} diff --git a/src/main/java/software/amazon/lambda/tracing/PowerToolsTracing.java b/src/main/java/software/amazon/lambda/tracing/PowerToolsTracing.java deleted file mode 100644 index 2aee6d061..000000000 --- a/src/main/java/software/amazon/lambda/tracing/PowerToolsTracing.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.tracing; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.METHOD) -public @interface PowerToolsTracing { - String namespace() default ""; - boolean captureResponse() default true; - boolean captureError() default true; -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerLogToolEnabled.java b/src/test/java/software/amazon/lambda/handlers/PowerLogToolEnabled.java deleted file mode 100644 index c1fd75fd9..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerLogToolEnabled.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import software.amazon.lambda.logging.PowerToolsLogging; - -public class PowerLogToolEnabled implements RequestHandler { - private final Logger LOG = LogManager.getLogger(PowerToolLogEventEnabled.class); - - @Override - @PowerToolsLogging - public Object handleRequest(Object input, Context context) { - LOG.info("Test event"); - return null; - } - - @PowerToolsLogging - public void anotherMethod() { - System.out.println("test"); - } -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerLogToolEnabledForStream.java b/src/test/java/software/amazon/lambda/handlers/PowerLogToolEnabledForStream.java deleted file mode 100644 index 73895914f..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerLogToolEnabledForStream.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import java.io.InputStream; -import java.io.OutputStream; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestStreamHandler; -import software.amazon.lambda.logging.PowerToolsLogging; - -public class PowerLogToolEnabledForStream implements RequestStreamHandler { - - @PowerToolsLogging - @Override - public void handleRequest(InputStream input, OutputStream output, Context context) { - - } -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerToolDisabled.java b/src/test/java/software/amazon/lambda/handlers/PowerToolDisabled.java deleted file mode 100644 index bff24cedc..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerToolDisabled.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; - -public class PowerToolDisabled implements RequestHandler { - - @Override - public Object handleRequest(Object input, Context context) { - return null; - } -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerToolDisabledForStream.java b/src/test/java/software/amazon/lambda/handlers/PowerToolDisabledForStream.java deleted file mode 100644 index e7b24135e..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerToolDisabledForStream.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import java.io.InputStream; -import java.io.OutputStream; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestStreamHandler; - -public class PowerToolDisabledForStream implements RequestStreamHandler { - - @Override - public void handleRequest(InputStream input, OutputStream output, Context context) { - - } -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerToolLogEventEnabled.java b/src/test/java/software/amazon/lambda/handlers/PowerToolLogEventEnabled.java deleted file mode 100644 index 471d92e58..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerToolLogEventEnabled.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import software.amazon.lambda.logging.PowerToolsLogging; - -public class PowerToolLogEventEnabled implements RequestHandler { - - @PowerToolsLogging(logEvent = true) - @Override - public Object handleRequest(Object input, Context context) { - return null; - } -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerToolLogEventEnabledForStream.java b/src/test/java/software/amazon/lambda/handlers/PowerToolLogEventEnabledForStream.java deleted file mode 100644 index eed467e09..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerToolLogEventEnabledForStream.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.Map; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestStreamHandler; -import com.fasterxml.jackson.databind.ObjectMapper; -import software.amazon.lambda.logging.PowerToolsLogging; - -public class PowerToolLogEventEnabledForStream implements RequestStreamHandler { - - @PowerToolsLogging(logEvent = true) - @Override - public void handleRequest(InputStream input, OutputStream output, Context context) throws IOException { - ObjectMapper mapper = new ObjectMapper(); - mapper.writeValue(output, mapper.readValue(input, Map.class)); - } -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabled.java b/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabled.java deleted file mode 100644 index 8bd2ba820..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabled.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import software.amazon.lambda.tracing.PowerToolsTracing; - -public class PowerTracerToolEnabled implements RequestHandler { - - @Override - @PowerToolsTracing(namespace = "lambdaHandler") - public Object handleRequest(Object input, Context context) { - return null; - } -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledForStream.java b/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledForStream.java deleted file mode 100644 index dec58a1f7..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledForStream.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import java.io.InputStream; -import java.io.OutputStream; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestStreamHandler; -import software.amazon.lambda.tracing.PowerToolsTracing; - -public class PowerTracerToolEnabledForStream implements RequestStreamHandler { - - @Override - @PowerToolsTracing(namespace = "streamHandler") - public void handleRequest(InputStream input, OutputStream output, Context context) { - - } -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java b/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java deleted file mode 100644 index 73fc02f37..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import java.io.InputStream; -import java.io.OutputStream; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestStreamHandler; -import software.amazon.lambda.tracing.PowerToolsTracing; - -public class PowerTracerToolEnabledForStreamWithNoMetaData implements RequestStreamHandler { - - @Override - @PowerToolsTracing(captureResponse = false, captureError = false) - public void handleRequest(InputStream input, OutputStream output, Context context) { - - } -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledWithException.java b/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledWithException.java deleted file mode 100644 index 1b27cdc7a..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledWithException.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import software.amazon.lambda.tracing.PowerToolsTracing; - -public class PowerTracerToolEnabledWithException implements RequestHandler { - - @Override - @PowerToolsTracing(namespace = "lambdaHandler") - public Object handleRequest(Object input, Context context) { - throw new RuntimeException("I am failing!"); - } -} diff --git a/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledWithNoMetaData.java b/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledWithNoMetaData.java deleted file mode 100644 index 41054c37d..000000000 --- a/src/test/java/software/amazon/lambda/handlers/PowerTracerToolEnabledWithNoMetaData.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.handlers; - -import com.amazonaws.services.lambda.runtime.Context; -import com.amazonaws.services.lambda.runtime.RequestHandler; -import software.amazon.lambda.tracing.PowerToolsTracing; - -public class PowerTracerToolEnabledWithNoMetaData implements RequestHandler { - - @Override - @PowerToolsTracing(captureResponse = false, captureError = false) - public Object handleRequest(Object input, Context context) { - return null; - } -} diff --git a/src/test/java/software/amazon/lambda/logging/PowerLoggerTest.java b/src/test/java/software/amazon/lambda/logging/PowerLoggerTest.java deleted file mode 100644 index 553420c5c..000000000 --- a/src/test/java/software/amazon/lambda/logging/PowerLoggerTest.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. - * 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 software.amazon.lambda.logging; - -import org.apache.logging.log4j.ThreadContext; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.Assertions.assertThat; - - -class PowerLoggerTest { - - @BeforeEach - void setUp() { - ThreadContext.clearAll(); - } - - @Test - void shouldSetCustomKeyOnThreadContext() { - PowerLogger.appendKey("test", "value"); - - assertThat(ThreadContext.getImmutableContext()) - .hasSize(1) - .containsEntry("test", "value"); - } -} \ No newline at end of file From 808e0e4c2e30537269d18c14338f4978be345292 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steve=20Houe=CC=88l?= Date: Fri, 21 Aug 2020 11:50:31 +0200 Subject: [PATCH 02/10] refactor: refactor pom modules and plugins management --- pom.xml | 54 +++++++++ powertools-core/pom.xml | 9 -- powertools-logging/pom.xml | 9 -- powertools-parent/pom.xml | 229 +++++++++++-------------------------- powertools-tracing/pom.xml | 9 -- 5 files changed, 118 insertions(+), 192 deletions(-) create mode 100644 pom.xml diff --git a/pom.xml b/pom.xml new file mode 100644 index 000000000..d1c43037a --- /dev/null +++ b/pom.xml @@ -0,0 +1,54 @@ + + + 4.0.0 + + + powertools-parent + software.amazon.lambda + 0.1.0-SNAPSHOT + powertools-parent/pom.xml + + + powertools + 0.1.0-SNAPSHOT + pom + + AWS Lambda Powertools Java library Parent + + A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. + + https://aws.amazon.com/lambda/ + + GitHub Issues + https://github.com/awslabs/aws-lambda-powertools-java/issues + + + + Apache License, Version 2.0 + https://aws.amazon.com/apache2.0 + repo + + + + + powertools-parent + powertools-core + powertools-logging + powertools-tracing + + + + https://github.com/awslabs/aws-lambda-powertools-java.git + + + + + AWS Lambda Powertools team + Amazon Web Services + https://aws.amazon.com/ + + + + \ No newline at end of file diff --git a/powertools-core/pom.xml b/powertools-core/pom.xml index 7e53a6890..bdf590a11 100644 --- a/powertools-core/pom.xml +++ b/powertools-core/pom.xml @@ -107,7 +107,6 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 ${maven.compiler.source} ${maven.compiler.target} @@ -118,7 +117,6 @@ com.nickwongdev aspectj-maven-plugin - 1.12.1 ${maven.compiler.source} ${maven.compiler.target} @@ -146,12 +144,10 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 org.jacoco jacoco-maven-plugin - 0.8.5 @@ -171,7 +167,6 @@ org.codehaus.mojo cobertura-maven-plugin - 2.7 html @@ -183,7 +178,6 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.8 true sonatype-nexus-staging @@ -202,7 +196,6 @@ org.apache.maven.plugins maven-gpg-plugin - 1.6 sign-artifacts @@ -232,7 +225,6 @@ org.apache.maven.plugins maven-source-plugin - 2.4 attach-sources @@ -245,7 +237,6 @@ org.apache.maven.plugins maven-javadoc-plugin - 2.10.3 -Xdoclint:none false diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml index 4d1adff2e..8477910b7 100644 --- a/powertools-logging/pom.xml +++ b/powertools-logging/pom.xml @@ -114,7 +114,6 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 ${maven.compiler.source} ${maven.compiler.target} @@ -125,7 +124,6 @@ com.nickwongdev aspectj-maven-plugin - 1.12.1 ${maven.compiler.source} ${maven.compiler.target} @@ -153,12 +151,10 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 org.jacoco jacoco-maven-plugin - 0.8.5 @@ -178,7 +174,6 @@ org.codehaus.mojo cobertura-maven-plugin - 2.7 html @@ -190,7 +185,6 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.8 true sonatype-nexus-staging @@ -209,7 +203,6 @@ org.apache.maven.plugins maven-gpg-plugin - 1.6 sign-artifacts @@ -239,7 +232,6 @@ org.apache.maven.plugins maven-source-plugin - 2.4 attach-sources @@ -252,7 +244,6 @@ org.apache.maven.plugins maven-javadoc-plugin - 2.10.3 -Xdoclint:none false diff --git a/powertools-parent/pom.xml b/powertools-parent/pom.xml index 221522cc7..dd048606f 100644 --- a/powertools-parent/pom.xml +++ b/powertools-parent/pom.xml @@ -26,12 +26,6 @@ - - ../powertools-core - ../powertools-logging - ../powertools-tracing - - https://github.com/awslabs/aws-lambda-powertools-java.git @@ -53,6 +47,15 @@ 2.4.0 UTF-8 1.2.1 + 3.8.1 + 1.12.1 + 2.22.2 + 0.8.5 + 2.7 + 1.6.8 + 2.10.3 + 2.4 + 1.6 @@ -157,169 +160,65 @@ 3.9.1 test + + org.aspectj + aspectjtools + ${aspectj.version} + - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - ${maven.compiler.source} - ${maven.compiler.target} - false - - - - - com.nickwongdev - aspectj-maven-plugin - 1.12.1 - - ${maven.compiler.source} - ${maven.compiler.target} - ${maven.compiler.target} - ignore - ${project.build.sourceEncoding} - - - - process-sources - - compile - test-compile - - - - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.22.2 - - - org.jacoco - jacoco-maven-plugin - 0.8.5 - - - - prepare-agent - - - - - report - test - - report - - - - - - org.codehaus.mojo - cobertura-maven-plugin - 2.7 - - - html - xml - - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.8 - true - - sonatype-nexus-staging - https://aws.oss.sonatype.org - true - - - + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + com.nickwongdev + aspectj-maven-plugin + ${aspectj-maven-plugin.version} + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + org.jacoco + jacoco-maven-plugin + ${jacoco-maven-plugin.version} + + + org.codehaus.mojo + cobertura-maven-plugin + ${cobertura-maven-plugin.version} + + + org.sonatype.plugins + nexus-staging-maven-plugin + ${nexus-staging-maven-plugin.version} + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + - - - sign - - - - org.apache.maven.plugins - maven-gpg-plugin - 1.6 - - - sign-artifacts - verify - - sign - - - - --pinentry-mode - loopback - - - - - - - - - - build-extras - - true - - - - - org.apache.maven.plugins - maven-source-plugin - 2.4 - - - attach-sources - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.10.3 - - -Xdoclint:none - false - - - - attach-javadocs - - jar - - - - - - - - - \ No newline at end of file diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml index 74c8dfb4b..d0244d2cc 100644 --- a/powertools-tracing/pom.xml +++ b/powertools-tracing/pom.xml @@ -133,7 +133,6 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 ${maven.compiler.source} ${maven.compiler.target} @@ -144,7 +143,6 @@ com.nickwongdev aspectj-maven-plugin - 1.12.1 ${maven.compiler.source} ${maven.compiler.target} @@ -172,12 +170,10 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 org.jacoco jacoco-maven-plugin - 0.8.5 @@ -197,7 +193,6 @@ org.codehaus.mojo cobertura-maven-plugin - 2.7 html @@ -209,7 +204,6 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.8 true sonatype-nexus-staging @@ -228,7 +222,6 @@ org.apache.maven.plugins maven-gpg-plugin - 1.6 sign-artifacts @@ -258,7 +251,6 @@ org.apache.maven.plugins maven-source-plugin - 2.4 attach-sources @@ -271,7 +263,6 @@ org.apache.maven.plugins maven-javadoc-plugin - 2.10.3 -Xdoclint:none false From 5c36d90f7963f2bda1c88225352d7189a1805c0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steve=20Houe=CC=88l?= Date: Fri, 21 Aug 2020 11:55:49 +0200 Subject: [PATCH 03/10] refactor: improve parent pom file --- .github/workflows/build.yml | 2 +- powertools-parent/pom.xml | 67 +++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index edc5ae661..35bbce70b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,4 +27,4 @@ jobs: with: java-version: ${{ matrix.java }} - name: Build with Maven - run: mvn -B package -P !build-extras -Dmaven.javadoc.skip=true --file pom.xml + run: mvn -B package --file pom.xml diff --git a/powertools-parent/pom.xml b/powertools-parent/pom.xml index dd048606f..fd333f0c7 100644 --- a/powertools-parent/pom.xml +++ b/powertools-parent/pom.xml @@ -221,4 +221,71 @@ + + + sign + + + + org.apache.maven.plugins + maven-gpg-plugin + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + + + + + + build-extras + + true + + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + -Xdoclint:none + false + + + + attach-javadocs + + jar + + + + + + + + + \ No newline at end of file From 52c4cf7bf692528aa072f16dc5e8fb6315d85e29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steve=20Houe=CC=88l?= Date: Fri, 21 Aug 2020 13:21:01 +0200 Subject: [PATCH 04/10] refactor: using parent revision as basis for versioning --- .gitignore | 3 +- pom.xml | 224 ++++++++++++++++++++++++++-- powertools-core/pom.xml | 5 +- powertools-logging/pom.xml | 5 +- powertools-parent/pom.xml | 291 ------------------------------------- powertools-tracing/pom.xml | 5 +- 6 files changed, 222 insertions(+), 311 deletions(-) delete mode 100644 powertools-parent/pom.xml diff --git a/.gitignore b/.gitignore index 91664c90f..4060a7f85 100644 --- a/.gitignore +++ b/.gitignore @@ -97,4 +97,5 @@ docs/node_modules docs/.cache docs/public /example/.aws-sam/ -/example/HelloWorldFunction/.aws-sam/ \ No newline at end of file +/example/HelloWorldFunction/.aws-sam/ +.flattened-pom.xml diff --git a/pom.xml b/pom.xml index d1c43037a..97d10d27e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,15 +4,9 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - - powertools-parent - software.amazon.lambda - 0.1.0-SNAPSHOT - powertools-parent/pom.xml - - - powertools - 0.1.0-SNAPSHOT + software.amazon.lambda + powertools-parent + ${revision} pom AWS Lambda Powertools Java library Parent @@ -33,7 +27,6 @@ - powertools-parent powertools-core powertools-logging powertools-tracing @@ -51,4 +44,215 @@ + + 0.1.0-SNAPSHOT + 1.8 + 1.8 + 2.13.3 + 2.11.0 + 1.9.6 + 2.4.0 + UTF-8 + 1.2.1 + 3.8.1 + 1.12.1 + 2.22.2 + 0.8.5 + 2.7 + 1.6.8 + 2.10.3 + 2.4 + 1.6 + + + + + ossrh + https://aws.oss.sonatype.org/content/repositories/snapshots + + + + + + + software.amazon.lambda + powertools-core + ${project.version} + + + com.amazonaws + aws-lambda-java-core + ${lambda.core.version} + + + org.aspectj + aspectjrt + ${aspectj.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + + + com.amazonaws + aws-xray-recorder-sdk-core + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-instrumentor + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-v2 + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-v2-instrumentor + ${aws.xray.recorder.version} + + + + + org.junit.jupiter + junit-jupiter-api + 5.6.2 + test + + + org.junit.jupiter + junit-jupiter-engine + 5.6.2 + test + + + org.apache.commons + commons-lang3 + 3.11 + test + + + org.mockito + mockito-core + 3.3.3 + test + + + org.aspectj + aspectjweaver + ${aspectj.version} + test + + + org.assertj + assertj-core + 3.9.1 + test + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + com.nickwongdev + aspectj-maven-plugin + ${aspectj-maven-plugin.version} + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + org.jacoco + jacoco-maven-plugin + ${jacoco-maven-plugin.version} + + + org.codehaus.mojo + cobertura-maven-plugin + ${cobertura-maven-plugin.version} + + + org.sonatype.plugins + nexus-staging-maven-plugin + ${nexus-staging-maven-plugin.version} + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + + + + org.codehaus.mojo + flatten-maven-plugin + 1.1.0 + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + + \ No newline at end of file diff --git a/powertools-core/pom.xml b/powertools-core/pom.xml index bdf590a11..fc03177c8 100644 --- a/powertools-core/pom.xml +++ b/powertools-core/pom.xml @@ -5,14 +5,13 @@ 4.0.0 powertools-core - 0.1.0-SNAPSHOT jar powertools-parent software.amazon.lambda - 0.1.0-SNAPSHOT - ../powertools-parent/pom.xml + ${revision} + ../pom.xml AWS Lambda Powertools Java library Core diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml index 8477910b7..f3d734b6f 100644 --- a/powertools-logging/pom.xml +++ b/powertools-logging/pom.xml @@ -5,14 +5,13 @@ 4.0.0 powertools-logging - 0.1.0-SNAPSHOT jar powertools-parent software.amazon.lambda - 0.1.0-SNAPSHOT - ../powertools-parent/pom.xml + ${revision} + ../pom.xml AWS Lambda Powertools Java library Logging diff --git a/powertools-parent/pom.xml b/powertools-parent/pom.xml deleted file mode 100644 index fd333f0c7..000000000 --- a/powertools-parent/pom.xml +++ /dev/null @@ -1,291 +0,0 @@ - - - 4.0.0 - - software.amazon.lambda - powertools-parent - 0.1.0-SNAPSHOT - pom - - AWS Lambda Powertools Java library Parent - - A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. - - https://aws.amazon.com/lambda/ - - GitHub Issues - https://github.com/awslabs/aws-lambda-powertools-java/issues - - - - Apache License, Version 2.0 - https://aws.amazon.com/apache2.0 - repo - - - - - https://github.com/awslabs/aws-lambda-powertools-java.git - - - - - AWS Lambda Powertools team - Amazon Web Services - https://aws.amazon.com/ - - - - - 1.8 - 1.8 - 2.13.3 - 2.11.0 - 1.9.6 - 2.4.0 - UTF-8 - 1.2.1 - 3.8.1 - 1.12.1 - 2.22.2 - 0.8.5 - 2.7 - 1.6.8 - 2.10.3 - 2.4 - 1.6 - - - - - ossrh - https://aws.oss.sonatype.org/content/repositories/snapshots - - - - - - - software.amazon.lambda - powertools-core - 0.1.0-SNAPSHOT - - - com.amazonaws - aws-lambda-java-core - ${lambda.core.version} - - - org.aspectj - aspectjrt - ${aspectj.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - org.apache.logging.log4j - log4j-core - ${log4j.version} - - - org.apache.logging.log4j - log4j-api - ${log4j.version} - - - com.amazonaws - aws-xray-recorder-sdk-core - ${aws.xray.recorder.version} - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk - ${aws.xray.recorder.version} - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk-instrumentor - ${aws.xray.recorder.version} - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk-v2 - ${aws.xray.recorder.version} - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk-v2-instrumentor - ${aws.xray.recorder.version} - - - - - org.junit.jupiter - junit-jupiter-api - 5.6.2 - test - - - org.junit.jupiter - junit-jupiter-engine - 5.6.2 - test - - - org.apache.commons - commons-lang3 - 3.11 - test - - - org.mockito - mockito-core - 3.3.3 - test - - - org.aspectj - aspectjweaver - ${aspectj.version} - test - - - org.assertj - assertj-core - 3.9.1 - test - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - - - com.nickwongdev - aspectj-maven-plugin - ${aspectj-maven-plugin.version} - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - org.jacoco - jacoco-maven-plugin - ${jacoco-maven-plugin.version} - - - org.codehaus.mojo - cobertura-maven-plugin - ${cobertura-maven-plugin.version} - - - org.sonatype.plugins - nexus-staging-maven-plugin - ${nexus-staging-maven-plugin.version} - - - org.apache.maven.plugins - maven-source-plugin - ${maven-source-plugin.version} - - - org.apache.maven.plugins - maven-javadoc-plugin - ${maven-javadoc-plugin.version} - - - org.apache.maven.plugins - maven-gpg-plugin - ${maven-gpg-plugin.version} - - - - - - - - sign - - - - org.apache.maven.plugins - maven-gpg-plugin - - - sign-artifacts - verify - - sign - - - - --pinentry-mode - loopback - - - - - - - - - - build-extras - - true - - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - - -Xdoclint:none - false - - - - attach-javadocs - - jar - - - - - - - - - - \ No newline at end of file diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml index d0244d2cc..783a0dc05 100644 --- a/powertools-tracing/pom.xml +++ b/powertools-tracing/pom.xml @@ -5,14 +5,13 @@ 4.0.0 powertools-tracing - 0.1.0-SNAPSHOT jar powertools-parent software.amazon.lambda - 0.1.0-SNAPSHOT - ../powertools-parent/pom.xml + ${revision} + ../pom.xml AWS Lambda Powertools Java library Tracing From 9e68d990fc65747c9281cd23c2718b73adce137d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steve=20Houe=CC=88l?= Date: Sat, 22 Aug 2020 09:29:40 +0200 Subject: [PATCH 05/10] refactor: clean pom files --- .flattened-pom.xml | 383 ++++++++++++++++++++++++++ pom.xml | 148 ++++++++++ powertools-core/.flattened-pom.xml | 83 ++++++ powertools-core/pom.xml | 171 +----------- powertools-logging/.flattened-pom.xml | 99 +++++++ powertools-logging/pom.xml | 160 ----------- powertools-tracing/.flattened-pom.xml | 119 ++++++++ powertools-tracing/pom.xml | 161 +---------- 8 files changed, 834 insertions(+), 490 deletions(-) create mode 100644 .flattened-pom.xml create mode 100644 powertools-core/.flattened-pom.xml create mode 100644 powertools-logging/.flattened-pom.xml create mode 100644 powertools-tracing/.flattened-pom.xml diff --git a/.flattened-pom.xml b/.flattened-pom.xml new file mode 100644 index 000000000..880499bd5 --- /dev/null +++ b/.flattened-pom.xml @@ -0,0 +1,383 @@ + + + 4.0.0 + software.amazon.lambda + powertools-parent + 0.1.0-SNAPSHOT + pom + AWS Lambda Powertools Java library Parent + A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. + https://aws.amazon.com/lambda/ + + + Apache License, Version 2.0 + https://aws.amazon.com/apache2.0 + repo + + + + + AWS Lambda Powertools team + Amazon Web Services + https://aws.amazon.com/ + + + + powertools-core + powertools-logging + powertools-tracing + + + https://github.com/awslabs/aws-lambda-powertools-java.git + + + GitHub Issues + https://github.com/awslabs/aws-lambda-powertools-java/issues + + + + ossrh + https://aws.oss.sonatype.org/content/repositories/snapshots + + + + 2.7 + 2.4 + 1.6 + 1.2.1 + 2.11.0 + 2.10.3 + UTF-8 + 2.13.3 + 1.9.6 + 0.8.5 + 1.6.8 + 1.8 + 3.8.1 + 0.1.0-SNAPSHOT + 1.8 + 2.22.2 + 1.12.1 + 2.4.0 + + + + + software.amazon.lambda + powertools-core + ${project.version} + + + com.amazonaws + aws-lambda-java-core + ${lambda.core.version} + + + org.aspectj + aspectjrt + ${aspectj.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + + + com.amazonaws + aws-xray-recorder-sdk-core + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-instrumentor + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-v2 + ${aws.xray.recorder.version} + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-v2-instrumentor + ${aws.xray.recorder.version} + + + org.junit.jupiter + junit-jupiter-api + 5.6.2 + test + + + org.junit.jupiter + junit-jupiter-engine + 5.6.2 + test + + + org.apache.commons + commons-lang3 + 3.11 + test + + + org.mockito + mockito-core + 3.3.3 + test + + + org.aspectj + aspectjweaver + ${aspectj.version} + test + + + org.assertj + assertj-core + 3.9.1 + test + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + + + + + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + com.nickwongdev + aspectj-maven-plugin + ${aspectj-maven-plugin.version} + + + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + org.jacoco + jacoco-maven-plugin + ${jacoco-maven-plugin.version} + + + org.codehaus.mojo + cobertura-maven-plugin + ${cobertura-maven-plugin.version} + + + org.sonatype.plugins + nexus-staging-maven-plugin + ${nexus-staging-maven-plugin.version} + + + maven-source-plugin + ${maven-source-plugin.version} + + + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + + + + org.codehaus.mojo + flatten-maven-plugin + 1.1.0 + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + true + resolveCiFriendliesOnly + + + + maven-compiler-plugin + + ${maven.compiler.source} + ${maven.compiler.target} + false + + + + com.nickwongdev + aspectj-maven-plugin + + + process-sources + + compile + test-compile + + + + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + ${maven.compiler.source} + ${maven.compiler.target} + ${maven.compiler.target} + ignore + ${project.build.sourceEncoding} + + + + maven-surefire-plugin + + + org.jacoco + jacoco-maven-plugin + + + + prepare-agent + + + + report + test + + report + + + + + + org.codehaus.mojo + cobertura-maven-plugin + + + html + xml + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + true + + sonatype-nexus-staging + https://aws.oss.sonatype.org + true + + + + + + + sign + + + + maven-gpg-plugin + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + + + + + + build-extras + + true + + + + + maven-source-plugin + 2.4 + + + attach-sources + + jar-no-fork + + + + + + maven-javadoc-plugin + 2.10.3 + + + attach-javadocs + + jar + + + -Xdoclint:none + false + + + + + -Xdoclint:none + false + + + + + + + diff --git a/pom.xml b/pom.xml index 97d10d27e..7f364e4e9 100644 --- a/pom.xml +++ b/pom.xml @@ -252,7 +252,155 @@ + + org.apache.maven.plugins + maven-compiler-plugin + + ${maven.compiler.source} + ${maven.compiler.target} + false + + + + + com.nickwongdev + aspectj-maven-plugin + + ${maven.compiler.source} + ${maven.compiler.target} + ${maven.compiler.target} + ignore + ${project.build.sourceEncoding} + + + + process-sources + + compile + test-compile + + + + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + org.jacoco + jacoco-maven-plugin + + + + prepare-agent + + + + + report + test + + report + + + + + + org.codehaus.mojo + cobertura-maven-plugin + + + html + xml + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + true + + sonatype-nexus-staging + https://aws.oss.sonatype.org + true + + + + + sign + + + + org.apache.maven.plugins + maven-gpg-plugin + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + + + + + + build-extras + + true + + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + -Xdoclint:none + false + + + + attach-javadocs + + jar + + + + + + + + + \ No newline at end of file diff --git a/powertools-core/.flattened-pom.xml b/powertools-core/.flattened-pom.xml new file mode 100644 index 000000000..41099509e --- /dev/null +++ b/powertools-core/.flattened-pom.xml @@ -0,0 +1,83 @@ + + + 4.0.0 + + software.amazon.lambda + powertools-parent + 0.1.0-SNAPSHOT + + software.amazon.lambda + powertools-core + 0.1.0-SNAPSHOT + AWS Lambda Powertools Java library Core + A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. + https://aws.amazon.com/lambda/ + + + Apache License, Version 2.0 + https://aws.amazon.com/apache2.0 + repo + + + + + AWS Lambda Powertools team + Amazon Web Services + https://aws.amazon.com/ + + + + https://github.com/awslabs/aws-lambda-powertools-java.git + + + GitHub Issues + https://github.com/awslabs/aws-lambda-powertools-java/issues + + + + ossrh + https://aws.oss.sonatype.org/content/repositories/snapshots + + + + + com.amazonaws + aws-lambda-java-core + + + org.aspectj + aspectjrt + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.apache.commons + commons-lang3 + test + + + org.mockito + mockito-core + test + + + org.aspectj + aspectjweaver + test + + + org.assertj + assertj-core + test + + + diff --git a/powertools-core/pom.xml b/powertools-core/pom.xml index fc03177c8..59ae176cb 100644 --- a/powertools-core/pom.xml +++ b/powertools-core/pom.xml @@ -23,13 +23,7 @@ GitHub Issues https://github.com/awslabs/aws-lambda-powertools-java/issues - - - Apache License, Version 2.0 - https://aws.amazon.com/apache2.0 - repo - - + https://github.com/awslabs/aws-lambda-powertools-java.git @@ -41,16 +35,6 @@ - - 1.8 - 1.8 - 2.13.3 - 2.11.0 - 1.9.6 - 2.4.0 - UTF-8 - - ossrh @@ -101,157 +85,4 @@ - - - - org.apache.maven.plugins - maven-compiler-plugin - - ${maven.compiler.source} - ${maven.compiler.target} - false - - - - - com.nickwongdev - aspectj-maven-plugin - - ${maven.compiler.source} - ${maven.compiler.target} - ${maven.compiler.target} - ignore - ${project.build.sourceEncoding} - - - - process-sources - - compile - test-compile - - - - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - org.jacoco - jacoco-maven-plugin - - - - prepare-agent - - - - - report - test - - report - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - html - xml - - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - true - - sonatype-nexus-staging - https://aws.oss.sonatype.org - true - - - - - - - - sign - - - - org.apache.maven.plugins - maven-gpg-plugin - - - sign-artifacts - verify - - sign - - - - --pinentry-mode - loopback - - - - - - - - - - build-extras - - true - - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - - -Xdoclint:none - false - - - - attach-javadocs - - jar - - - - - - - - - \ No newline at end of file diff --git a/powertools-logging/.flattened-pom.xml b/powertools-logging/.flattened-pom.xml new file mode 100644 index 000000000..94dfdd1b7 --- /dev/null +++ b/powertools-logging/.flattened-pom.xml @@ -0,0 +1,99 @@ + + + 4.0.0 + + software.amazon.lambda + powertools-parent + 0.1.0-SNAPSHOT + + software.amazon.lambda + powertools-logging + 0.1.0-SNAPSHOT + AWS Lambda Powertools Java library Logging + A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. + https://aws.amazon.com/lambda/ + + + Apache License, Version 2.0 + https://aws.amazon.com/apache2.0 + repo + + + + + AWS Lambda Powertools team + Amazon Web Services + https://aws.amazon.com/ + + + + https://github.com/awslabs/aws-lambda-powertools-java.git + + + GitHub Issues + https://github.com/awslabs/aws-lambda-powertools-java/issues + + + + ossrh + https://aws.oss.sonatype.org/content/repositories/snapshots + + + + + software.amazon.lambda + powertools-core + + + com.amazonaws + aws-lambda-java-core + + + com.fasterxml.jackson.core + jackson-databind + + + org.apache.logging.log4j + log4j-core + + + org.apache.logging.log4j + log4j-api + + + org.aspectj + aspectjrt + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.apache.commons + commons-lang3 + test + + + org.mockito + mockito-core + test + + + org.aspectj + aspectjweaver + test + + + org.assertj + assertj-core + test + + + diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml index f3d734b6f..f66c9994a 100644 --- a/powertools-logging/pom.xml +++ b/powertools-logging/pom.xml @@ -23,13 +23,6 @@ GitHub Issues https://github.com/awslabs/aws-lambda-powertools-java/issues - - - Apache License, Version 2.0 - https://aws.amazon.com/apache2.0 - repo - - https://github.com/awslabs/aws-lambda-powertools-java.git @@ -108,157 +101,4 @@ - - - - org.apache.maven.plugins - maven-compiler-plugin - - ${maven.compiler.source} - ${maven.compiler.target} - false - - - - - com.nickwongdev - aspectj-maven-plugin - - ${maven.compiler.source} - ${maven.compiler.target} - ${maven.compiler.target} - ignore - ${project.build.sourceEncoding} - - - - process-sources - - compile - test-compile - - - - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - org.jacoco - jacoco-maven-plugin - - - - prepare-agent - - - - - report - test - - report - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - html - xml - - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - true - - sonatype-nexus-staging - https://aws.oss.sonatype.org - true - - - - - - - - sign - - - - org.apache.maven.plugins - maven-gpg-plugin - - - sign-artifacts - verify - - sign - - - - --pinentry-mode - loopback - - - - - - - - - - build-extras - - true - - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - - -Xdoclint:none - false - - - - attach-javadocs - - jar - - - - - - - - - \ No newline at end of file diff --git a/powertools-tracing/.flattened-pom.xml b/powertools-tracing/.flattened-pom.xml new file mode 100644 index 000000000..5a3284475 --- /dev/null +++ b/powertools-tracing/.flattened-pom.xml @@ -0,0 +1,119 @@ + + + 4.0.0 + + software.amazon.lambda + powertools-parent + 0.1.0-SNAPSHOT + + software.amazon.lambda + powertools-tracing + 0.1.0-SNAPSHOT + AWS Lambda Powertools Java library Tracing + A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. + https://aws.amazon.com/lambda/ + + + Apache License, Version 2.0 + https://aws.amazon.com/apache2.0 + repo + + + + + AWS Lambda Powertools team + Amazon Web Services + https://aws.amazon.com/ + + + + https://github.com/awslabs/aws-lambda-powertools-java.git + + + GitHub Issues + https://github.com/awslabs/aws-lambda-powertools-java/issues + + + + ossrh + https://aws.oss.sonatype.org/content/repositories/snapshots + + + + + software.amazon.lambda + powertools-core + + + com.amazonaws + aws-lambda-java-core + + + com.fasterxml.jackson.core + jackson-databind + + + org.apache.logging.log4j + log4j-core + + + org.apache.logging.log4j + log4j-api + + + org.aspectj + aspectjrt + + + com.amazonaws + aws-xray-recorder-sdk-core + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-instrumentor + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-v2 + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-v2-instrumentor + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.apache.commons + commons-lang3 + test + + + org.mockito + mockito-core + test + + + org.aspectj + aspectjweaver + test + + + org.assertj + assertj-core + test + + + diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml index 783a0dc05..ecf935e90 100644 --- a/powertools-tracing/pom.xml +++ b/powertools-tracing/pom.xml @@ -23,13 +23,7 @@ GitHub Issues https://github.com/awslabs/aws-lambda-powertools-java/issues - - - Apache License, Version 2.0 - https://aws.amazon.com/apache2.0 - repo - - + https://github.com/awslabs/aws-lambda-powertools-java.git @@ -127,157 +121,4 @@ - - - - org.apache.maven.plugins - maven-compiler-plugin - - ${maven.compiler.source} - ${maven.compiler.target} - false - - - - - com.nickwongdev - aspectj-maven-plugin - - ${maven.compiler.source} - ${maven.compiler.target} - ${maven.compiler.target} - ignore - ${project.build.sourceEncoding} - - - - process-sources - - compile - test-compile - - - - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - org.jacoco - jacoco-maven-plugin - - - - prepare-agent - - - - - report - test - - report - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - html - xml - - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - true - - sonatype-nexus-staging - https://aws.oss.sonatype.org - true - - - - - - - - sign - - - - org.apache.maven.plugins - maven-gpg-plugin - - - sign-artifacts - verify - - sign - - - - --pinentry-mode - loopback - - - - - - - - - - build-extras - - true - - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - - -Xdoclint:none - false - - - - attach-javadocs - - jar - - - - - - - - - \ No newline at end of file From 0d0fd9a216ff4cf9da20c7c86511135d3335e56e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steve=20Houe=CC=88l?= Date: Sat, 22 Aug 2020 09:35:04 +0200 Subject: [PATCH 06/10] docs: refactoring docs according to package split --- README.md | 13 +++++++++++-- docs/content/index.mdx | 15 ++++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index aa41a213d..48cd28d9a 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,12 @@ Powertools is available in Maven Central. You can use your favourite dependency ... software.amazon.lambda - aws-lambda-powertools-java + powertools-tracing + YOUR_REQUIRED_VERSION + + + software.amazon.lambda + powertools-logging YOUR_REQUIRED_VERSION ... @@ -40,7 +45,11 @@ And configure the aspectj-maven-plugin to compile-time weave (CTW) the aws-lambd software.amazon.lambda - aws-lambda-powertools-java + powertools-logging + + + software.amazon.lambda + powertools-tracing diff --git a/docs/content/index.mdx b/docs/content/index.mdx index b544f7fbd..56a95a8ed 100644 --- a/docs/content/index.mdx +++ b/docs/content/index.mdx @@ -7,7 +7,7 @@ Powertools is a suite of utilities for AWS Lambda Functions that makes tracing w ## Install -Powertools is available in Maven Central. You can use your favourite dependency management tool to install it +Powertools dependencies are available in Maven Central. You can use your favourite dependency management tool to install it * [maven](https://maven.apache.org/): ```xml @@ -15,7 +15,12 @@ Powertools is available in Maven Central. You can use your favourite dependency ... software.amazon.lambda - aws-lambda-powertools-java + powertools-tracing + YOUR_REQUIRED_VERSION + + + software.amazon.lambda + powertools-logging YOUR_REQUIRED_VERSION ... @@ -39,7 +44,11 @@ And configure the aspectj-maven-plugin to compile-time weave (CTW) the aws-lambd software.amazon.lambda - aws-lambda-powertools-java + powertools-tracing + + + software.amazon.lambda + powertools-logging From 5d44452c52780730a75d8673aed08655305854d4 Mon Sep 17 00:00:00 2001 From: msailes Date: Mon, 24 Aug 2020 09:27:49 +0100 Subject: [PATCH 07/10] removing the property for the version number. --- pom.xml | 3 +-- powertools-core/pom.xml | 2 +- powertools-logging/pom.xml | 2 +- powertools-tracing/pom.xml | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 7f364e4e9..d893ecb35 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ software.amazon.lambda powertools-parent - ${revision} + 0.1.0-SNAPSHOT pom AWS Lambda Powertools Java library Parent @@ -45,7 +45,6 @@ - 0.1.0-SNAPSHOT 1.8 1.8 2.13.3 diff --git a/powertools-core/pom.xml b/powertools-core/pom.xml index 59ae176cb..96d34aa6f 100644 --- a/powertools-core/pom.xml +++ b/powertools-core/pom.xml @@ -10,7 +10,7 @@ powertools-parent software.amazon.lambda - ${revision} + 0.1.0-SNAPSHOT ../pom.xml diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml index f66c9994a..e09ca481a 100644 --- a/powertools-logging/pom.xml +++ b/powertools-logging/pom.xml @@ -10,7 +10,7 @@ powertools-parent software.amazon.lambda - ${revision} + 0.1.0-SNAPSHOT ../pom.xml diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml index ecf935e90..fee887fbc 100644 --- a/powertools-tracing/pom.xml +++ b/powertools-tracing/pom.xml @@ -10,7 +10,7 @@ powertools-parent software.amazon.lambda - ${revision} + 0.1.0-SNAPSHOT ../pom.xml From 6797b155a8861f0dc4905a8b77169c5e722120bb Mon Sep 17 00:00:00 2001 From: Pankaj Agrawal Date: Mon, 24 Aug 2020 11:15:26 +0200 Subject: [PATCH 08/10] Resolve merge conflicts --- .flattened-pom.xml | 383 ------------------ .java-version | 1 - example/HelloWorldFunction/pom.xml | 13 +- .../src/main/java/helloworld/App.java | 12 +- .../src/main/java/helloworld/AppStream.java | 2 +- powertools-core/.flattened-pom.xml | 83 ---- .../core/internal/LambdaHandlerProcessor.java | 13 + powertools-logging/.flattened-pom.xml | 99 ----- .../powertools/logging/PowerLogger.java | 27 +- .../powertools/logging/PowerToolsLogging.java | 15 +- .../logging/internal/DefaultLambdaFields.java | 13 + .../logging/internal/LambdaLoggingAspect.java | 13 + .../powertools/logging/PowerLoggerTest.java | 16 +- .../logging/handlers/PowerLogToolEnabled.java | 13 + .../PowerLogToolEnabledForStream.java | 13 + .../logging/handlers/PowerToolDisabled.java | 13 + .../handlers/PowerToolDisabledForStream.java | 13 + .../handlers/PowerToolLogEventEnabled.java | 13 + .../PowerToolLogEventEnabledForStream.java | 13 + .../internal/LambdaLoggingAspectTest.java | 58 ++- powertools-tracing/.flattened-pom.xml | 119 ------ .../powertools/tracing/PowerToolsTracing.java | 13 + .../powertools/tracing/PowerTracer.java | 13 + .../tracing/internal/LambdaTracingAspect.java | 13 + .../powertools/tracing/PowerTracerTest.java | 13 + .../tracing/handlers/PowerToolDisabled.java | 13 + .../handlers/PowerToolDisabledForStream.java | 13 + .../handlers/PowerTracerToolEnabled.java | 13 + .../PowerTracerToolEnabledForStream.java | 13 + ...cerToolEnabledForStreamWithNoMetaData.java | 13 + .../PowerTracerToolEnabledWithException.java | 13 + .../PowerTracerToolEnabledWithNoMetaData.java | 13 + .../internal/LambdaTracingAspectTest.java | 13 + 33 files changed, 381 insertions(+), 720 deletions(-) delete mode 100644 .flattened-pom.xml delete mode 100644 .java-version delete mode 100644 powertools-core/.flattened-pom.xml delete mode 100644 powertools-logging/.flattened-pom.xml delete mode 100644 powertools-tracing/.flattened-pom.xml diff --git a/.flattened-pom.xml b/.flattened-pom.xml deleted file mode 100644 index 880499bd5..000000000 --- a/.flattened-pom.xml +++ /dev/null @@ -1,383 +0,0 @@ - - - 4.0.0 - software.amazon.lambda - powertools-parent - 0.1.0-SNAPSHOT - pom - AWS Lambda Powertools Java library Parent - A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. - https://aws.amazon.com/lambda/ - - - Apache License, Version 2.0 - https://aws.amazon.com/apache2.0 - repo - - - - - AWS Lambda Powertools team - Amazon Web Services - https://aws.amazon.com/ - - - - powertools-core - powertools-logging - powertools-tracing - - - https://github.com/awslabs/aws-lambda-powertools-java.git - - - GitHub Issues - https://github.com/awslabs/aws-lambda-powertools-java/issues - - - - ossrh - https://aws.oss.sonatype.org/content/repositories/snapshots - - - - 2.7 - 2.4 - 1.6 - 1.2.1 - 2.11.0 - 2.10.3 - UTF-8 - 2.13.3 - 1.9.6 - 0.8.5 - 1.6.8 - 1.8 - 3.8.1 - 0.1.0-SNAPSHOT - 1.8 - 2.22.2 - 1.12.1 - 2.4.0 - - - - - software.amazon.lambda - powertools-core - ${project.version} - - - com.amazonaws - aws-lambda-java-core - ${lambda.core.version} - - - org.aspectj - aspectjrt - ${aspectj.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - org.apache.logging.log4j - log4j-core - ${log4j.version} - - - org.apache.logging.log4j - log4j-api - ${log4j.version} - - - com.amazonaws - aws-xray-recorder-sdk-core - ${aws.xray.recorder.version} - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk - ${aws.xray.recorder.version} - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk-instrumentor - ${aws.xray.recorder.version} - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk-v2 - ${aws.xray.recorder.version} - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk-v2-instrumentor - ${aws.xray.recorder.version} - - - org.junit.jupiter - junit-jupiter-api - 5.6.2 - test - - - org.junit.jupiter - junit-jupiter-engine - 5.6.2 - test - - - org.apache.commons - commons-lang3 - 3.11 - test - - - org.mockito - mockito-core - 3.3.3 - test - - - org.aspectj - aspectjweaver - ${aspectj.version} - test - - - org.assertj - assertj-core - 3.9.1 - test - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - - - - - maven-compiler-plugin - ${maven-compiler-plugin.version} - - - com.nickwongdev - aspectj-maven-plugin - ${aspectj-maven-plugin.version} - - - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - org.jacoco - jacoco-maven-plugin - ${jacoco-maven-plugin.version} - - - org.codehaus.mojo - cobertura-maven-plugin - ${cobertura-maven-plugin.version} - - - org.sonatype.plugins - nexus-staging-maven-plugin - ${nexus-staging-maven-plugin.version} - - - maven-source-plugin - ${maven-source-plugin.version} - - - maven-javadoc-plugin - ${maven-javadoc-plugin.version} - - - maven-gpg-plugin - ${maven-gpg-plugin.version} - - - - - - org.codehaus.mojo - flatten-maven-plugin - 1.1.0 - - - flatten - process-resources - - flatten - - - - flatten.clean - clean - - clean - - - - - true - resolveCiFriendliesOnly - - - - maven-compiler-plugin - - ${maven.compiler.source} - ${maven.compiler.target} - false - - - - com.nickwongdev - aspectj-maven-plugin - - - process-sources - - compile - test-compile - - - - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - ${maven.compiler.source} - ${maven.compiler.target} - ${maven.compiler.target} - ignore - ${project.build.sourceEncoding} - - - - maven-surefire-plugin - - - org.jacoco - jacoco-maven-plugin - - - - prepare-agent - - - - report - test - - report - - - - - - org.codehaus.mojo - cobertura-maven-plugin - - - html - xml - - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - true - - sonatype-nexus-staging - https://aws.oss.sonatype.org - true - - - - - - - sign - - - - maven-gpg-plugin - - - sign-artifacts - verify - - sign - - - - --pinentry-mode - loopback - - - - - - - - - - build-extras - - true - - - - - maven-source-plugin - 2.4 - - - attach-sources - - jar-no-fork - - - - - - maven-javadoc-plugin - 2.10.3 - - - attach-javadocs - - jar - - - -Xdoclint:none - false - - - - - -Xdoclint:none - false - - - - - - - diff --git a/.java-version b/.java-version deleted file mode 100644 index 625934097..000000000 --- a/.java-version +++ /dev/null @@ -1 +0,0 @@ -1.8 diff --git a/example/HelloWorldFunction/pom.xml b/example/HelloWorldFunction/pom.xml index e24058662..e253b34ff 100644 --- a/example/HelloWorldFunction/pom.xml +++ b/example/HelloWorldFunction/pom.xml @@ -15,7 +15,12 @@ software.amazon.lambda - aws-lambda-powertools-java + powertools-tracing + 0.1.0-SNAPSHOT + + + software.amazon.lambda + powertools-logging 0.1.0-SNAPSHOT @@ -66,7 +71,11 @@ software.amazon.lambda - aws-lambda-powertools-java + powertools-tracing + + + software.amazon.lambda + powertools-logging diff --git a/example/HelloWorldFunction/src/main/java/helloworld/App.java b/example/HelloWorldFunction/src/main/java/helloworld/App.java index 5369ffa1c..ab44e5771 100644 --- a/example/HelloWorldFunction/src/main/java/helloworld/App.java +++ b/example/HelloWorldFunction/src/main/java/helloworld/App.java @@ -16,13 +16,13 @@ import com.amazonaws.xray.entities.Entity; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import software.amazon.lambda.logging.PowerLogger; -import software.amazon.lambda.logging.PowerToolsLogging; -import software.amazon.lambda.tracing.PowerToolsTracing; -import software.amazon.lambda.tracing.PowerTracer; +import software.amazon.lambda.powertools.logging.PowerLogger; +import software.amazon.lambda.powertools.logging.PowerToolsLogging; +import software.amazon.lambda.powertools.tracing.PowerToolsTracing; +import software.amazon.lambda.powertools.tracing.PowerTracer; -import static software.amazon.lambda.tracing.PowerTracer.putMetadata; -import static software.amazon.lambda.tracing.PowerTracer.withEntitySubsegment; +import static software.amazon.lambda.powertools.tracing.PowerTracer.putMetadata; +import static software.amazon.lambda.powertools.tracing.PowerTracer.withEntitySubsegment; /** * Handler for requests to Lambda function. diff --git a/example/HelloWorldFunction/src/main/java/helloworld/AppStream.java b/example/HelloWorldFunction/src/main/java/helloworld/AppStream.java index b752f0c05..e0f3bda9f 100644 --- a/example/HelloWorldFunction/src/main/java/helloworld/AppStream.java +++ b/example/HelloWorldFunction/src/main/java/helloworld/AppStream.java @@ -8,7 +8,7 @@ import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestStreamHandler; import com.fasterxml.jackson.databind.ObjectMapper; -import software.amazon.lambda.logging.PowerToolsLogging; +import software.amazon.lambda.powertools.logging.PowerToolsLogging; public class AppStream implements RequestStreamHandler { private static final ObjectMapper mapper = new ObjectMapper(); diff --git a/powertools-core/.flattened-pom.xml b/powertools-core/.flattened-pom.xml deleted file mode 100644 index 41099509e..000000000 --- a/powertools-core/.flattened-pom.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - 4.0.0 - - software.amazon.lambda - powertools-parent - 0.1.0-SNAPSHOT - - software.amazon.lambda - powertools-core - 0.1.0-SNAPSHOT - AWS Lambda Powertools Java library Core - A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. - https://aws.amazon.com/lambda/ - - - Apache License, Version 2.0 - https://aws.amazon.com/apache2.0 - repo - - - - - AWS Lambda Powertools team - Amazon Web Services - https://aws.amazon.com/ - - - - https://github.com/awslabs/aws-lambda-powertools-java.git - - - GitHub Issues - https://github.com/awslabs/aws-lambda-powertools-java/issues - - - - ossrh - https://aws.oss.sonatype.org/content/repositories/snapshots - - - - - com.amazonaws - aws-lambda-java-core - - - org.aspectj - aspectjrt - - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.apache.commons - commons-lang3 - test - - - org.mockito - mockito-core - test - - - org.aspectj - aspectjweaver - test - - - org.assertj - assertj-core - test - - - 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 faed272d4..99eccea4a 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 @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.core.internal; import java.io.InputStream; diff --git a/powertools-logging/.flattened-pom.xml b/powertools-logging/.flattened-pom.xml deleted file mode 100644 index 94dfdd1b7..000000000 --- a/powertools-logging/.flattened-pom.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - 4.0.0 - - software.amazon.lambda - powertools-parent - 0.1.0-SNAPSHOT - - software.amazon.lambda - powertools-logging - 0.1.0-SNAPSHOT - AWS Lambda Powertools Java library Logging - A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. - https://aws.amazon.com/lambda/ - - - Apache License, Version 2.0 - https://aws.amazon.com/apache2.0 - repo - - - - - AWS Lambda Powertools team - Amazon Web Services - https://aws.amazon.com/ - - - - https://github.com/awslabs/aws-lambda-powertools-java.git - - - GitHub Issues - https://github.com/awslabs/aws-lambda-powertools-java/issues - - - - ossrh - https://aws.oss.sonatype.org/content/repositories/snapshots - - - - - software.amazon.lambda - powertools-core - - - com.amazonaws - aws-lambda-java-core - - - com.fasterxml.jackson.core - jackson-databind - - - org.apache.logging.log4j - log4j-core - - - org.apache.logging.log4j - log4j-api - - - org.aspectj - aspectjrt - - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.apache.commons - commons-lang3 - test - - - org.mockito - mockito-core - test - - - org.aspectj - aspectjweaver - test - - - org.assertj - assertj-core - test - - - diff --git a/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerLogger.java b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerLogger.java index 87c92f0aa..a161c7b8e 100644 --- a/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerLogger.java +++ b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/PowerLogger.java @@ -1,10 +1,35 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging; import org.apache.logging.log4j.ThreadContext; +/** + * A class of helper functions to add additional functionality to PowerToolsLogging. + * + * {@see PowerToolsLogging} + */ public class PowerLogger { - public static void customKey(String key, String value) { + /** + * Appends an additional key and value to each log entry made. Duplicate values + * for the same key will be replaced with the latest. + * + * @param key The name of the key to be logged + * @param value The value to be logged + */ + public static void appendKey(String key, String value) { ThreadContext.put(key, value); } } 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 21e9570e8..ca6288d16 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 @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging; import java.lang.annotation.ElementType; @@ -40,7 +53,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)}.

* - *

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

+ *

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

*/ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) diff --git a/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/DefaultLambdaFields.java b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/DefaultLambdaFields.java index 4aabd6950..8a5d3a289 100644 --- a/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/DefaultLambdaFields.java +++ b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/DefaultLambdaFields.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging.internal; import com.amazonaws.services.lambda.runtime.Context; diff --git a/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspect.java b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspect.java index 2a0811ea5..643627d2d 100644 --- a/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspect.java +++ b/powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspect.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging.internal; import java.io.ByteArrayInputStream; diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/PowerLoggerTest.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/PowerLoggerTest.java index 4332b13c0..2a1b1c16f 100644 --- a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/PowerLoggerTest.java +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/PowerLoggerTest.java @@ -1,9 +1,21 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging; import org.apache.logging.log4j.ThreadContext; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import software.amazon.lambda.powertools.logging.PowerLogger; import static org.assertj.core.api.Assertions.assertThat; @@ -17,7 +29,7 @@ void setUp() { @Test void shouldSetCustomKeyOnThreadContext() { - PowerLogger.customKey("test", "value"); + PowerLogger.appendKey("test", "value"); assertThat(ThreadContext.getImmutableContext()) .hasSize(1) diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabled.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabled.java index 378721d9e..e9b1ed952 100644 --- a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabled.java +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabled.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging.handlers; import com.amazonaws.services.lambda.runtime.Context; diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabledForStream.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabledForStream.java index 2e6906f60..ccc5807a1 100644 --- a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabledForStream.java +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerLogToolEnabledForStream.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging.handlers; import java.io.InputStream; diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabled.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabled.java index 4d60a1f52..0391a5177 100644 --- a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabled.java +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabled.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging.handlers; import com.amazonaws.services.lambda.runtime.Context; diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabledForStream.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabledForStream.java index db6610fe2..f0f7f676e 100644 --- a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabledForStream.java +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolDisabledForStream.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging.handlers; import java.io.InputStream; diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabled.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabled.java index 71e0ac2d6..0a221e06b 100644 --- a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabled.java +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabled.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging.handlers; import com.amazonaws.services.lambda.runtime.Context; diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabledForStream.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabledForStream.java index 2c995fd7d..6750fd392 100644 --- a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabledForStream.java +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/handlers/PowerToolLogEventEnabledForStream.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging.handlers; import java.io.IOException; diff --git a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspectTest.java b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspectTest.java index 3900392b4..ecf1eeea5 100644 --- a/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspectTest.java +++ b/powertools-logging/src/test/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspectTest.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.logging.internal; import java.io.ByteArrayInputStream; @@ -11,14 +24,10 @@ import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.RequestStreamHandler; import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.logging.log4j.ThreadContext; -import org.assertj.core.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; import software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor; import software.amazon.lambda.powertools.logging.handlers.PowerLogToolEnabled; import software.amazon.lambda.powertools.logging.handlers.PowerLogToolEnabledForStream; @@ -27,6 +36,11 @@ import software.amazon.lambda.powertools.logging.handlers.PowerToolLogEventEnabled; import software.amazon.lambda.powertools.logging.handlers.PowerToolLogEventEnabledForStream; +import static org.apache.commons.lang3.reflect.FieldUtils.writeStaticField; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.when; +import static org.mockito.MockitoAnnotations.initMocks; + class LambdaLoggingAspectTest { private static final int EXPECTED_CONTEXT_SIZE = 6; @@ -38,9 +52,9 @@ class LambdaLoggingAspectTest { @BeforeEach void setUp() throws IllegalAccessException { - MockitoAnnotations.initMocks(this); + initMocks(this); ThreadContext.clearAll(); - FieldUtils.writeStaticField(LambdaHandlerProcessor.class, "IS_COLD_START", null, true); + writeStaticField(LambdaHandlerProcessor.class, "IS_COLD_START", null, true); setupContext(); requestHandler = new PowerLogToolEnabled(); requestStreamHandler = new PowerLogToolEnabledForStream(); @@ -50,7 +64,7 @@ void setUp() throws IllegalAccessException { void shouldSetLambdaContextWhenEnabled() { requestHandler.handleRequest(new Object(), context); - Assertions.assertThat(ThreadContext.getImmutableContext()) + assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE) .containsEntry(DefaultLambdaFields.FUNCTION_ARN.getName(), "testArn") .containsEntry(DefaultLambdaFields.FUNCTION_MEMORY_SIZE.getName(), "10") @@ -66,7 +80,7 @@ void shouldSetLambdaContextForStreamHandlerWhenEnabled() throws IOException { requestStreamHandler.handleRequest(new ByteArrayInputStream(new byte[]{}), new ByteArrayOutputStream(), context); - Assertions.assertThat(ThreadContext.getImmutableContext()) + assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE) .containsEntry(DefaultLambdaFields.FUNCTION_ARN.getName(), "testArn") .containsEntry(DefaultLambdaFields.FUNCTION_MEMORY_SIZE.getName(), "10") @@ -80,13 +94,13 @@ void shouldSetLambdaContextForStreamHandlerWhenEnabled() throws IOException { void shouldSetColdStartFlag() throws IOException { requestStreamHandler.handleRequest(new ByteArrayInputStream(new byte[]{}), new ByteArrayOutputStream(), context); - Assertions.assertThat(ThreadContext.getImmutableContext()) + assertThat(ThreadContext.getImmutableContext()) .hasSize(6) .containsEntry("coldStart", "true"); requestStreamHandler.handleRequest(new ByteArrayInputStream(new byte[]{}), new ByteArrayOutputStream(), context); - Assertions.assertThat(ThreadContext.getImmutableContext()) + assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE) .containsEntry("coldStart", "false"); } @@ -97,7 +111,7 @@ void shouldNotSetLambdaContextWhenDisabled() { requestHandler.handleRequest(new Object(), context); - Assertions.assertThat(ThreadContext.getImmutableContext()) + assertThat(ThreadContext.getImmutableContext()) .isEmpty(); } @@ -107,7 +121,7 @@ void shouldNotSetLambdaContextForStreamHandlerWhenDisabled() throws IOException requestStreamHandler.handleRequest(null, null, context); - Assertions.assertThat(ThreadContext.getImmutableContext()) + assertThat(ThreadContext.getImmutableContext()) .isEmpty(); } @@ -117,7 +131,7 @@ void shouldHaveNoEffectIfNotUsedOnLambdaHandler() { handler.anotherMethod(); - Assertions.assertThat(ThreadContext.getImmutableContext()) + assertThat(ThreadContext.getImmutableContext()) .isEmpty(); } @@ -127,7 +141,7 @@ void shouldLogEventForHandler() { requestHandler.handleRequest(new Object(), context); - Assertions.assertThat(ThreadContext.getImmutableContext()) + assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE); } @@ -141,27 +155,27 @@ void shouldLogEventForStreamAndLambdaStreamIsValid() throws IOException { requestStreamHandler.handleRequest(new ByteArrayInputStream(new ObjectMapper().writeValueAsBytes(testPayload)), output, context); - Assertions.assertThat(new String(output.toByteArray(), StandardCharsets.UTF_8)) + assertThat(new String(output.toByteArray(), StandardCharsets.UTF_8)) .isEqualTo("{\"test\":\"payload\"}"); - Assertions.assertThat(ThreadContext.getImmutableContext()) + assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE); } @Test void shouldLogServiceNameWhenEnvVarSet() throws IllegalAccessException { - FieldUtils.writeStaticField(LambdaHandlerProcessor.class, "SERVICE_NAME", "testService", true); + writeStaticField(LambdaHandlerProcessor.class, "SERVICE_NAME", "testService", true); requestHandler.handleRequest(new Object(), context); - Assertions.assertThat(ThreadContext.getImmutableContext()) + assertThat(ThreadContext.getImmutableContext()) .hasSize(EXPECTED_CONTEXT_SIZE) .containsEntry("service", "testService"); } private void setupContext() { - Mockito.when(context.getFunctionName()).thenReturn("testFunction"); - Mockito.when(context.getInvokedFunctionArn()).thenReturn("testArn"); - Mockito.when(context.getFunctionVersion()).thenReturn("1"); - Mockito.when(context.getMemoryLimitInMB()).thenReturn(10); + when(context.getFunctionName()).thenReturn("testFunction"); + when(context.getInvokedFunctionArn()).thenReturn("testArn"); + when(context.getFunctionVersion()).thenReturn("1"); + when(context.getMemoryLimitInMB()).thenReturn(10); } } \ No newline at end of file diff --git a/powertools-tracing/.flattened-pom.xml b/powertools-tracing/.flattened-pom.xml deleted file mode 100644 index 5a3284475..000000000 --- a/powertools-tracing/.flattened-pom.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - 4.0.0 - - software.amazon.lambda - powertools-parent - 0.1.0-SNAPSHOT - - software.amazon.lambda - powertools-tracing - 0.1.0-SNAPSHOT - AWS Lambda Powertools Java library Tracing - A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier. - https://aws.amazon.com/lambda/ - - - Apache License, Version 2.0 - https://aws.amazon.com/apache2.0 - repo - - - - - AWS Lambda Powertools team - Amazon Web Services - https://aws.amazon.com/ - - - - https://github.com/awslabs/aws-lambda-powertools-java.git - - - GitHub Issues - https://github.com/awslabs/aws-lambda-powertools-java/issues - - - - ossrh - https://aws.oss.sonatype.org/content/repositories/snapshots - - - - - software.amazon.lambda - powertools-core - - - com.amazonaws - aws-lambda-java-core - - - com.fasterxml.jackson.core - jackson-databind - - - org.apache.logging.log4j - log4j-core - - - org.apache.logging.log4j - log4j-api - - - org.aspectj - aspectjrt - - - com.amazonaws - aws-xray-recorder-sdk-core - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk-instrumentor - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk-v2 - - - com.amazonaws - aws-xray-recorder-sdk-aws-sdk-v2-instrumentor - - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.apache.commons - commons-lang3 - test - - - org.mockito - mockito-core - test - - - org.aspectj - aspectjweaver - test - - - org.assertj - assertj-core - test - - - 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 f02a7830b..c1b671e36 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 @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing; import java.lang.annotation.ElementType; diff --git a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerTracer.java b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerTracer.java index 08dcee84d..05587a045 100644 --- a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerTracer.java +++ b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/PowerTracer.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing; import java.util.function.Consumer; diff --git a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java index 59a0dbdf5..6e09f3305 100644 --- a/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java +++ b/powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing.internal; import com.amazonaws.xray.AWSXRay; diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/PowerTracerTest.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/PowerTracerTest.java index 6cc6c5a5c..1386b0a1d 100644 --- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/PowerTracerTest.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/PowerTracerTest.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing; import com.amazonaws.services.lambda.runtime.Context; diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabled.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabled.java index d6f06f172..78878ffe5 100644 --- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabled.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabled.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing.handlers; import com.amazonaws.services.lambda.runtime.Context; diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabledForStream.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabledForStream.java index 268a5290e..80f37b8b6 100644 --- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabledForStream.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerToolDisabledForStream.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing.handlers; import java.io.InputStream; diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java index 30a1d6aa2..6c24a2c1b 100644 --- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabled.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing.handlers; import com.amazonaws.services.lambda.runtime.Context; diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStream.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStream.java index c635c54ba..0f92a0fe9 100644 --- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStream.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStream.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing.handlers; import java.io.InputStream; diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java index 4044d6140..30924d782 100644 --- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledForStreamWithNoMetaData.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing.handlers; import java.io.InputStream; diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithException.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithException.java index 6eb302c17..ed4696dad 100644 --- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithException.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithException.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing.handlers; import com.amazonaws.services.lambda.runtime.Context; diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithNoMetaData.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithNoMetaData.java index dde446f3f..96e193438 100644 --- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithNoMetaData.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/handlers/PowerTracerToolEnabledWithNoMetaData.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing.handlers; import com.amazonaws.services.lambda.runtime.Context; diff --git a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspectTest.java b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspectTest.java index 5ba682c4b..477ceddb4 100644 --- a/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspectTest.java +++ b/powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspectTest.java @@ -1,3 +1,16 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. + * 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 software.amazon.lambda.powertools.tracing.internal; import java.io.ByteArrayInputStream; From 5506bf69455d6d57e0c8abde34434b94088a3630 Mon Sep 17 00:00:00 2001 From: Pankaj Agrawal Date: Mon, 24 Aug 2020 12:48:03 +0200 Subject: [PATCH 09/10] Remove explicit relative path as its same as default --- powertools-core/pom.xml | 1 - powertools-logging/pom.xml | 1 - powertools-tracing/pom.xml | 1 - 3 files changed, 3 deletions(-) diff --git a/powertools-core/pom.xml b/powertools-core/pom.xml index 96d34aa6f..ec6984a95 100644 --- a/powertools-core/pom.xml +++ b/powertools-core/pom.xml @@ -11,7 +11,6 @@ powertools-parent software.amazon.lambda 0.1.0-SNAPSHOT - ../pom.xml AWS Lambda Powertools Java library Core diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml index e09ca481a..a874571fa 100644 --- a/powertools-logging/pom.xml +++ b/powertools-logging/pom.xml @@ -11,7 +11,6 @@ powertools-parent software.amazon.lambda 0.1.0-SNAPSHOT - ../pom.xml AWS Lambda Powertools Java library Logging diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml index fee887fbc..4d7ea5627 100644 --- a/powertools-tracing/pom.xml +++ b/powertools-tracing/pom.xml @@ -11,7 +11,6 @@ powertools-parent software.amazon.lambda 0.1.0-SNAPSHOT - ../pom.xml AWS Lambda Powertools Java library Tracing From 0b7177ccc2377d45637c6db3ce42042fdb39bde0 Mon Sep 17 00:00:00 2001 From: msailes Date: Mon, 24 Aug 2020 11:49:21 +0100 Subject: [PATCH 10/10] removing the flatten plugin. --- .gitignore | 1 - pom.xml | 25 ------------------------- 2 files changed, 26 deletions(-) diff --git a/.gitignore b/.gitignore index 4060a7f85..01a12d57f 100644 --- a/.gitignore +++ b/.gitignore @@ -98,4 +98,3 @@ docs/.cache docs/public /example/.aws-sam/ /example/HelloWorldFunction/.aws-sam/ -.flattened-pom.xml diff --git a/pom.xml b/pom.xml index d893ecb35..1ae0030c8 100644 --- a/pom.xml +++ b/pom.xml @@ -226,31 +226,6 @@ - - org.codehaus.mojo - flatten-maven-plugin - 1.1.0 - - true - resolveCiFriendliesOnly - - - - flatten - process-resources - - flatten - - - - flatten.clean - clean - - clean - - - - org.apache.maven.plugins maven-compiler-plugin