Skip to content

Commit e77a261

Browse files
committed
Merge main down
2 parents 8f176cc + 190ad0a commit e77a261

File tree

13 files changed

+199
-28
lines changed

13 files changed

+199
-28
lines changed

.github/workflows/pr_artifacts_size.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ on:
2727
jobs:
2828
codecheck:
2929
runs-on: ubuntu-latest
30+
permissions:
31+
pull-requests: write
32+
issues: read
3033
steps:
3134
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
3235
- name: Setup java JDK 11
@@ -62,4 +65,4 @@ jobs:
6265
comment-id: ${{ steps.find-comment.outputs.comment-id }}
6366
issue-number: ${{ github.event.pull_request.number }}
6467
body-path: 'report.md'
65-
edit-mode: replace
68+
edit-mode: replace

.github/workflows/pr_build.yml

+9-12
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ on:
44
pull_request:
55
branches:
66
- main
7-
- v2
87
paths:
98
- 'powertools-batch/**'
109
- 'powertools-cloudformation/**'
11-
- 'powertools-core/**' # not in v2
12-
- 'powertools-common/**' # v2 only
10+
- 'powertools-core/**'
1311
- 'powertools-e2e-tests/**'
1412
- 'powertools-idempotency/**'
1513
- 'powertools-large-messages/**'
1614
- 'powertools-logging/**'
1715
- 'powertools-metrics/**'
1816
- 'powertools-parameters/**'
1917
- 'powertools-serialization/**'
18+
- 'powertools-sqs/**'
19+
- 'powertools-test-suite/**'
2020
- 'powertools-tracing/**'
2121
- 'powertools-validation/**'
2222
- 'examples/**'
@@ -26,18 +26,19 @@ on:
2626
push:
2727
branches:
2828
- main
29-
- v2
3029
paths:
3130
- 'powertools-batch/**'
3231
- 'powertools-cloudformation/**'
3332
- 'powertools-core/**'
3433
- 'powertools-e2e-tests/**'
3534
- 'powertools-idempotency/**'
3635
- 'powertools-large-messages/**'
36+
- 'powertools-logging/**'
3737
- 'powertools-metrics/**'
3838
- 'powertools-parameters/**'
3939
- 'powertools-serialization/**'
4040
- 'powertools-sqs/**'
41+
- 'powertools-test-suite/**'
4142
- 'powertools-tracing/**'
4243
- 'powertools-validation/**'
4344
- 'examples/**'
@@ -67,18 +68,14 @@ jobs:
6768
java-version: ${{ matrix.java }}
6869
cache: 'maven'
6970
- name: Build with Maven
70-
if: ${{ matrix.java == '8' }} # If 8 exclude the examples directory
71-
run: mvn -B install --file pom.xml -pl '!software.amazon.lambda.examples:powertools-examples-idempotency,!software.amazon.lambda.examples:powertools-examples-batch,!software.amazon.lambda.examples:powertools-examples-cloudformation,!software.amazon.lambda.examples:powertools-examples-core-utilities-cdk,!software.amazon.lambda.examples:powertools-examples-core-utilities-sam,!software.amazon.lambda.examples:powertools-examples-core-utilities-serverless,!software.amazon.lambda.examples:powertools-examples-core-utilities-terraform,!software.amazon.lambda.examples:powertools-examples-parameters,!software.amazon.lambda.examples:powertools-examples-serialization,!software.amazon.lambda.examples:powertools-examples-validation,!software.amazon.lambda.examples:cdk,!software.amazon.lambda:powertools-examples'
72-
- name: Build with Maven
73-
if: ${{ matrix.java != '8' }} # If not 8 don't exclude the examples directory
7471
run: mvn -B install --file pom.xml
7572
- name: Build Gradle Example - Java
76-
if: ${{ matrix.java != '8' }}
77-
working-directory: examples/powertools-examples-core-utilities/gradle
73+
if: ${{ matrix.java == '8' }} # Gradle example can only be built on Java 8
74+
working-directory: examples/powertools-examples-core/gradle
7875
run: ./gradlew build
7976
- name: Build Gradle Example - Kotlin
80-
if: ${{ matrix.java != '8' }}
81-
working-directory: examples/powertools-examples-core-utilities/kotlin
77+
if: ${{ matrix.java == '8' }} # Gradle example can only be built on Java 8
78+
working-directory: examples/powertools-examples-core/kotlin
8279
run: ./gradlew build
8380
- name: Upload coverage to Codecov
8481
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1

.github/workflows/pr_build_v2.yml

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
name: Build
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- v2
7+
paths:
8+
- 'powertools-batch/**'
9+
- 'powertools-cloudformation/**'
10+
- 'powertools-common/**'
11+
- 'powertools-e2e-tests/**'
12+
- 'powertools-idempotency/**'
13+
- 'powertools-large-messages/**'
14+
- 'powertools-logging/**'
15+
- 'powertools-metrics/**'
16+
- 'powertools-parameters/**'
17+
- 'powertools-serialization/**'
18+
- 'powertools-tracing/**'
19+
- 'powertools-validation/**'
20+
- 'examples/**'
21+
- 'pom.xml'
22+
- 'examples/pom.xml'
23+
- '.github/workflows/**'
24+
push:
25+
branches:
26+
- v2
27+
paths:
28+
- 'powertools-batch/**'
29+
- 'powertools-cloudformation/**'
30+
- 'powertools-common/**'
31+
- 'powertools-e2e-tests/**'
32+
- 'powertools-idempotency/**'
33+
- 'powertools-large-messages/**'
34+
- 'powertools-logging/**'
35+
- 'powertools-metrics/**'
36+
- 'powertools-parameters/**'
37+
- 'powertools-serialization/**'
38+
- 'powertools-tracing/**'
39+
- 'powertools-validation/**'
40+
- 'examples/**'
41+
- 'pom.xml'
42+
- 'examples/pom.xml'
43+
- '.github/workflows/**'
44+
jobs:
45+
build-corretto:
46+
runs-on: ubuntu-latest
47+
strategy:
48+
max-parallel: 5
49+
matrix:
50+
java: [11, 17, 21]
51+
name: Java ${{ matrix.java }}
52+
env:
53+
JAVA: ${{ matrix.java }}
54+
AWS_REGION: eu-west-1
55+
permissions:
56+
id-token: write # needed to interact with GitHub's OIDC Token endpoint.
57+
contents: read
58+
steps:
59+
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
60+
- name: Setup java
61+
uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 # v3.11.0
62+
with:
63+
distribution: 'corretto'
64+
java-version: ${{ matrix.java }}
65+
cache: 'maven'
66+
- name: Build with Maven
67+
run: mvn -B install --file pom.xml
68+
- name: Build Gradle Example - Java
69+
working-directory: examples/powertools-examples-core/gradle
70+
run: ./gradlew build
71+
- name: Build Gradle Example - Kotlin
72+
working-directory: examples/powertools-examples-core/kotlin
73+
run: ./gradlew build
74+
- name: Upload coverage to Codecov
75+
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1
76+
if: ${{ matrix.java == '11' }} # publish results once
77+
with:
78+
files: ./powertools-cloudformation/target/site/jacoco/jacoco.xml,./powertools-core/target/site/jacoco/jacoco.xml,./powertools-idempotency/target/site/jacoco/jacoco.xml,./powertools-logging/target/site/jacoco/jacoco.xml,./powertools-metrics/target/site/jacoco/jacoco.xml,./powertools-parameters/target/site/jacoco/jacoco.xml,./powertools-serialization/target/site/jacoco/jacoco.xml,./powertools-sqs/target/site/jacoco/jacoco.xml,./powertools-tracing/target/site/jacoco/jacoco.xml,./powertools-validation/target/site/jacoco/jacoco.xml,./powertools-large-messages/target/site/jacoco/jacoco.xml,./powertools-batch/target/site/jacoco/jacoco.xml
79+
savepr:
80+
runs-on: ubuntu-latest
81+
name: Save PR number if running on PR by dependabot
82+
if: github.actor == 'dependabot[bot]'
83+
steps:
84+
- name: Create Directory and save issue
85+
run: |
86+
mkdir -p ./pr
87+
echo ${{ github.event.number }}
88+
echo ${{ github.event.number }} > ./pr/NR
89+
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
90+
name: Upload artifact
91+
with:
92+
name: pr
93+
path: pr/
+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Run end-to-end tests
2+
3+
on:
4+
workflow_dispatch:
5+
6+
push:
7+
branches:
8+
- v2
9+
paths: # add other modules when there are under e2e tests
10+
- 'powertools-e2e-tests/**'
11+
- 'powertools-batch/**'
12+
- 'powertools-core/**'
13+
- 'powertools-common/**'
14+
- 'powertools-idempotency/**'
15+
- 'powertools-large-message/**'
16+
- 'powertools-logging/**'
17+
- 'powertools-metrics/**'
18+
- 'powertools-parameters/**'
19+
- 'powertools-serialization/**'
20+
- 'powertools-tracing/**'
21+
- 'pom.xml'
22+
- '.github/workflows/**'
23+
24+
pull_request:
25+
branches:
26+
- v2
27+
paths:
28+
- 'powertools-e2e-tests/**'
29+
30+
jobs:
31+
e2e:
32+
runs-on: ubuntu-latest
33+
strategy:
34+
max-parallel: 4
35+
matrix:
36+
java: [ 11, 17, 21 ]
37+
name: End-to-end tests java${{ matrix.java }}
38+
env:
39+
AWS_DEFAULT_REGION: eu-west-1
40+
JAVA_VERSION: ${{ matrix.java }}
41+
permissions:
42+
id-token: write # needed to interact with GitHub's OIDC Token endpoint.
43+
contents: read
44+
steps:
45+
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
46+
- name: Setup java
47+
uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 # v3.11.0
48+
with:
49+
distribution: 'corretto'
50+
java-version: ${{ matrix.java }}
51+
cache: maven
52+
- name: Setup AWS credentials
53+
uses: aws-actions/configure-aws-credentials@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0
54+
with:
55+
role-to-assume: ${{ secrets.AWS_ROLE_ARN_TO_ASSUME }}
56+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
57+
- name: Run e2e test with Maven
58+
run: mvn -DskipTests install --file pom.xml && mvn -Pe2e -B verify --file powertools-e2e-tests/pom.xml

.github/workflows/run-e2e-tests.yml

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ on:
66
push:
77
branches:
88
- main
9-
- v2
109
paths: # add other modules when there are under e2e tests
1110
- 'powertools-e2e-tests/**'
1211
- 'powertools-batch/**'

examples/powertools-examples-batch/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
<plugin>
110110
<groupId>org.apache.maven.plugins</groupId>
111111
<artifactId>maven-shade-plugin</artifactId>
112-
<version>3.5.0</version>
112+
<version>3.5.2</version>
113113
<executions>
114114
<execution>
115115
<phase>package</phase>

examples/powertools-examples-core-utilities/cdk/infra/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<version>2.0.0-SNAPSHOT</version>
88
<properties>
99
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
10-
<cdk.version>2.100.0</cdk.version>
10+
<cdk.version>2.130.0</cdk.version>
1111
<constructs.version>[10.0.0,11.0.0)</constructs.version>
1212
<junit.version>5.10.0</junit.version>
1313
</properties>
@@ -25,7 +25,7 @@
2525
<plugin>
2626
<groupId>org.codehaus.mojo</groupId>
2727
<artifactId>exec-maven-plugin</artifactId>
28-
<version>3.1.0</version>
28+
<version>3.2.0</version>
2929
<configuration>
3030
<mainClass>cdk.CdkApp</mainClass>
3131
</configuration>

examples/powertools-examples-core-utilities/sam/src/main/java/helloworld/AppStream.java

+25-4
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,43 @@
1717
import com.amazonaws.services.lambda.runtime.Context;
1818
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
1919
import com.fasterxml.jackson.databind.ObjectMapper;
20+
2021
import java.io.IOException;
2122
import java.io.InputStream;
2223
import java.io.OutputStream;
23-
import java.util.Map;
24+
import java.nio.charset.StandardCharsets;
25+
26+
import org.apache.logging.log4j.LogManager;
27+
import org.apache.logging.log4j.Logger;
2428
import software.amazon.lambda.powertools.logging.Logging;
2529
import software.amazon.lambda.powertools.metrics.Metrics;
2630

31+
import java.io.InputStreamReader;
32+
import java.io.BufferedReader;
33+
import java.io.BufferedWriter;
34+
import java.io.OutputStreamWriter;
35+
import java.io.PrintWriter;
36+
2737
public class AppStream implements RequestStreamHandler {
2838
private static final ObjectMapper mapper = new ObjectMapper();
39+
private final static Logger log = LogManager.getLogger(AppStream.class);
2940

3041
@Override
3142
@Logging(logEvent = true)
3243
@Metrics(namespace = "ServerlessAirline", service = "payment", captureColdStart = true)
33-
public void handleRequest(InputStream input, OutputStream output, Context context) throws IOException {
34-
Map map = mapper.readValue(input, Map.class);
44+
// RequestStreamHandler can be used instead of RequestHandler for cases when you'd like to deserialize request body or serialize response body yourself, instead of allowing that to happen automatically
45+
// Note that you still need to return a proper JSON for API Gateway to handle
46+
// See Lambda Response format for examples: https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
47+
public void handleRequest(InputStream input, OutputStream output, Context context) {
48+
try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8));
49+
PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8)))) {
3550

36-
System.out.println(map.size());
51+
log.info("Received: " + mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapper.readTree(reader)));
52+
53+
writer.write("{\"body\": \"" + System.currentTimeMillis() + "\"} ");
54+
} catch (IOException e) {
55+
log.error("Something has gone wrong: ", e);
56+
}
3757
}
3858
}
59+

examples/powertools-examples-parameters/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<dependency>
3939
<groupId>com.amazonaws</groupId>
4040
<artifactId>aws-lambda-java-events</artifactId>
41-
<version>3.11.3</version>
41+
<version>3.11.4</version>
4242
</dependency>
4343
<dependency>
4444
<groupId>org.aspectj</groupId>
@@ -73,7 +73,7 @@
7373
<groupId>org.apache.maven.plugins</groupId>
7474
<artifactId>maven-surefire-plugin</artifactId>
7575
<!-- JUnit 5 requires Surefire version 3.1.0 or higher -->
76-
<version>3.1.2</version>
76+
<version>3.2.5</version>
7777
</plugin>
7878
<plugin>
7979
<groupId>dev.aspectj</groupId>

examples/powertools-examples-serialization/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<dependency>
3232
<groupId>com.amazonaws</groupId>
3333
<artifactId>aws-lambda-java-events</artifactId>
34-
<version>3.11.3</version>
34+
<version>3.11.4</version>
3535
</dependency>
3636
</dependencies>
3737

powertools-e2e-tests/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<maven.compiler.source>1.8</maven.compiler.source>
3232
<maven.compiler.target>1.8</maven.compiler.target>
3333
<constructs.version>10.3.0</constructs.version>
34-
<cdk.version>2.109.0</cdk.version>
34+
<cdk.version>2.130.0</cdk.version>
3535
</properties>
3636

3737
<dependencies>
@@ -159,7 +159,7 @@
159159
<dependency>
160160
<groupId>org.yaml</groupId>
161161
<artifactId>snakeyaml</artifactId>
162-
<version>2.1</version>
162+
<version>2.2</version>
163163
<scope>test</scope>
164164
</dependency>
165165
<dependency>

powertools-logging/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
<plugin>
109109
<groupId>org.apache.maven.plugins</groupId>
110110
<artifactId>maven-surefire-plugin</artifactId>
111-
<version>3.1.2</version>
111+
<version>3.2.5</version>
112112
<configuration>
113113
<environmentVariables>
114114
<AWS_LAMBDA_LOG_FORMAT>JSON</AWS_LAMBDA_LOG_FORMAT>

powertools-parameters/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
<plugins>
8181
<plugin>
8282
<artifactId>maven-surefire-plugin</artifactId>
83-
<version>3.1.2</version>
83+
<version>3.2.5</version>
8484
<configuration>
8585
<environmentVariables>
8686
<AWS_REGION>eu-central-1</AWS_REGION>

0 commit comments

Comments
 (0)