Skip to content

Commit e4c5d23

Browse files
Merge pull request #49 from eldritchideen/update-powertools
Updates for the latest version of Java Lambda PowerTools
2 parents 084c16a + fd79286 commit e4c5d23

File tree

12 files changed

+163
-91
lines changed

12 files changed

+163
-91
lines changed

unicorn_approvals/ApprovalsService/pom.xml

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
<project xmlns="http://maven.apache.org/POM/4.0.0"
2-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
34
<modelVersion>4.0.0</modelVersion>
45
<groupId>approval</groupId>
56
<artifactId>ApprovalsService</artifactId>
67
<version>1.0</version>
78
<packaging>jar</packaging>
89
<name>Unicorn Approvals Service module</name>
910
<properties>
10-
<maven.compiler.source>17</maven.compiler.source>
11-
<maven.compiler.target>17</maven.compiler.target>
11+
<maven.compiler.source>21</maven.compiler.source>
12+
<maven.compiler.target>21</maven.compiler.target>
1213
<aws.java.sdk.version>2.32.29</aws.java.sdk.version>
13-
<aws.java.powertool.version>1.20.2</aws.java.powertool.version>
14+
<aws.java.powertool.version>2.4.0</aws.java.powertool.version>
1415
<aws-lambda-java-events.version>3.16.1</aws-lambda-java-events.version>
1516
<mockito-core.version>5.18.0</mockito-core.version>
1617
<junit.version>4.13.2</junit.version>
@@ -35,6 +36,16 @@
3536
<artifactId>powertools-metrics</artifactId>
3637
<version>${aws.java.powertool.version}</version>
3738
</dependency>
39+
<dependency>
40+
<groupId>software.amazon.lambda</groupId>
41+
<artifactId>powertools-logging-log4j</artifactId>
42+
<version>${aws.java.powertool.version}</version>
43+
</dependency>
44+
<dependency>
45+
<groupId>org.aspectj</groupId>
46+
<artifactId>aspectjrt</artifactId>
47+
<version>1.9.22</version>
48+
</dependency>
3849

3950
<dependency>
4051
<groupId>com.amazonaws</groupId>
@@ -93,7 +104,7 @@
93104
<artifactId>jackson-annotations</artifactId>
94105
<version>2.18.4</version>
95106
</dependency>
96-
107+
97108
<!-- Log4j -->
98109
<dependency>
99110
<groupId>org.apache.logging.log4j</groupId>
@@ -137,6 +148,7 @@
137148
<environmentVariables>
138149
<LAMBDA_TASK_ROOT>handler</LAMBDA_TASK_ROOT>
139150
<CONTRACT_STATUS_TABLE>test-table</CONTRACT_STATUS_TABLE>
151+
<POWERTOOLS_METRICS_DISABLED>true</POWERTOOLS_METRICS_DISABLED>
140152
</environmentVariables>
141153
</configuration>
142154
<dependencies>
@@ -165,10 +177,11 @@
165177
<plugin>
166178
<groupId>dev.aspectj</groupId>
167179
<artifactId>aspectj-maven-plugin</artifactId>
168-
<version>1.14.1</version>
180+
<version>1.14</version>
169181
<configuration>
170-
<complianceLevel>17</complianceLevel>
171-
<release>17</release>
182+
<source>21</source>
183+
<target>21</target>
184+
<complianceLevel>21</complianceLevel>
172185
<aspectLibraries>
173186
<aspectLibrary>
174187
<groupId>software.amazon.lambda</groupId>
@@ -182,32 +195,37 @@
182195
<groupId>software.amazon.lambda</groupId>
183196
<artifactId>powertools-metrics</artifactId>
184197
</aspectLibrary>
198+
<aspectLibrary>
199+
<groupId>software.amazon.lambda</groupId>
200+
<artifactId>powertools-logging</artifactId>
201+
</aspectLibrary>
185202
</aspectLibraries>
186203
</configuration>
204+
<dependencies>
205+
<dependency>
206+
<groupId>org.aspectj</groupId>
207+
<artifactId>aspectjtools</artifactId>
208+
<!-- AspectJ compiler version, in sync with runtime -->
209+
<version>1.9.22</version>
210+
</dependency>
211+
</dependencies>
187212
<executions>
188213
<execution>
189214
<goals>
190215
<goal>compile</goal>
191216
</goals>
192217
</execution>
193218
</executions>
194-
<dependencies>
195-
<dependency>
196-
<groupId>org.aspectj</groupId>
197-
<artifactId>aspectjtools</artifactId>
198-
<version>1.9.24</version>
199-
</dependency>
200-
</dependencies>
201219
</plugin>
202220
<plugin>
203221
<groupId>org.apache.maven.plugins</groupId>
204222
<artifactId>maven-compiler-plugin</artifactId>
205223
<version>3.14.0</version>
206224
<configuration>
207-
<source>17</source>
208-
<target>17</target>
225+
<source>21</source>
226+
<target>21</target>
209227
</configuration>
210228
</plugin>
211229
</plugins>
212230
</build>
213-
</project>
231+
</project>

unicorn_approvals/ApprovalsService/src/main/java/approvals/ContractStatusChangedHandlerFunction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
1212
import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest;
1313
import software.amazon.lambda.powertools.logging.Logging;
14-
import software.amazon.lambda.powertools.metrics.Metrics;
1514
import software.amazon.lambda.powertools.tracing.Tracing;
15+
import software.amazon.lambda.powertools.metrics.FlushMetrics;
1616

1717
import java.io.IOException;
1818
import java.io.InputStream;
@@ -42,7 +42,7 @@ public class ContractStatusChangedHandlerFunction {
4242
* @throws IOException if there's an error processing the event
4343
*/
4444
@Tracing
45-
@Metrics(captureColdStart = true)
45+
@FlushMetrics(captureColdStart = true)
4646
@Logging(logEvent = true)
4747
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
4848
logger.info("TABLE_NAME environment variable: {}", TABLE_NAME);

unicorn_approvals/ApprovalsService/src/main/java/approvals/PropertiesApprovalSyncFunction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import software.amazon.awssdk.services.sfn.SfnAsyncClient;
1616
import software.amazon.awssdk.services.sfn.model.SendTaskSuccessRequest;
1717
import software.amazon.lambda.powertools.logging.Logging;
18-
import software.amazon.lambda.powertools.metrics.Metrics;
18+
import software.amazon.lambda.powertools.metrics.FlushMetrics;
1919
import software.amazon.lambda.powertools.tracing.Tracing;
2020

2121
import java.io.Serializable;
@@ -40,7 +40,7 @@ public class PropertiesApprovalSyncFunction implements RequestHandler<DynamodbEv
4040
.build();
4141

4242
@Tracing
43-
@Metrics(captureColdStart = true)
43+
@FlushMetrics(captureColdStart = true)
4444
@Logging(logEvent = true)
4545
public StreamsEventResponse handleRequest(DynamodbEvent input, Context context) {
4646
List<StreamsEventResponse.BatchItemFailure> batchItemFailures = new ArrayList<>();

unicorn_approvals/ApprovalsService/src/main/java/approvals/WaitForContractApprovalFunction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import software.amazon.awssdk.services.dynamodb.model.GetItemRequest;
1212
import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest;
1313
import software.amazon.lambda.powertools.logging.Logging;
14-
import software.amazon.lambda.powertools.metrics.Metrics;
14+
import software.amazon.lambda.powertools.metrics.FlushMetrics;
1515
import software.amazon.lambda.powertools.tracing.Tracing;
1616

1717
import java.io.IOException;
@@ -38,7 +38,7 @@ public class WaitForContractApprovalFunction {
3838
.build();
3939

4040
@Tracing
41-
@Metrics(captureColdStart = true)
41+
@FlushMetrics(captureColdStart = true)
4242
@Logging(logEvent = true)
4343
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context)
4444
throws IOException, ContractStatusNotFoundException {

unicorn_contracts/ContractsService/pom.xml

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
<project xmlns="http://maven.apache.org/POM/4.0.0"
2-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
34
<modelVersion>4.0.0</modelVersion>
45
<groupId>contracts</groupId>
56
<artifactId>ContractsService</artifactId>
67
<version>1.0</version>
78
<packaging>jar</packaging>
89
<name>Unicorn Contracts Service module</name>
910
<properties>
10-
<maven.compiler.source>17</maven.compiler.source>
11-
<maven.compiler.target>17</maven.compiler.target>
11+
<maven.compiler.source>21</maven.compiler.source>
12+
<maven.compiler.target>21</maven.compiler.target>
1213
<aws.java.sdk.version>2.32.29</aws.java.sdk.version>
13-
<aws.java.powertool.version>1.20.2</aws.java.powertool.version>
14+
<aws.java.powertool.version>2.4.0</aws.java.powertool.version>
1415
<aws-lambda-java-events.version>3.16.1</aws-lambda-java-events.version>
1516
<mockito-core.version>5.18.0</mockito-core.version>
1617
<junit.version>4.13.2</junit.version>
@@ -32,14 +33,24 @@
3233
<artifactId>powertools-metrics</artifactId>
3334
<version>${aws.java.powertool.version}</version>
3435
</dependency>
35-
36+
<dependency>
37+
<groupId>software.amazon.lambda</groupId>
38+
<artifactId>powertools-logging-log4j</artifactId>
39+
<version>${aws.java.powertool.version}</version>
40+
</dependency>
41+
<dependency>
42+
<groupId>org.aspectj</groupId>
43+
<artifactId>aspectjrt</artifactId>
44+
<version>1.9.22</version>
45+
</dependency>
46+
3647
<!-- AWS Lambda Core -->
3748
<dependency>
3849
<groupId>com.amazonaws</groupId>
3950
<artifactId>aws-lambda-java-core</artifactId>
4051
<version>1.3.0</version>
4152
</dependency>
42-
53+
4354
<!-- Jackson for JSON processing -->
4455
<dependency>
4556
<groupId>com.fasterxml.jackson.core</groupId>
@@ -56,7 +67,7 @@
5667
<artifactId>jackson-annotations</artifactId>
5768
<version>2.18.4</version>
5869
</dependency>
59-
70+
6071
<!-- Log4j -->
6172
<dependency>
6273
<groupId>org.apache.logging.log4j</groupId>
@@ -128,6 +139,7 @@
128139
<useSystemClassLoader>false</useSystemClassLoader>
129140
<environmentVariables>
130141
<LAMBDA_TASK_ROOT>handler</LAMBDA_TASK_ROOT>
142+
<POWERTOOLS_METRICS_DISABLED>true</POWERTOOLS_METRICS_DISABLED>
131143
</environmentVariables>
132144
</configuration>
133145
<dependencies>
@@ -154,13 +166,13 @@
154166
</executions>
155167
</plugin>
156168
<plugin>
157-
<groupId>org.codehaus.mojo</groupId>
169+
<groupId>dev.aspectj</groupId>
158170
<artifactId>aspectj-maven-plugin</artifactId>
159-
<version>1.15.0</version>
171+
<version>1.14</version>
160172
<configuration>
161-
<complianceLevel>17</complianceLevel>
162-
<source>17</source>
163-
<target>17</target>
173+
<source>21</source>
174+
<target>21</target>
175+
<complianceLevel>21</complianceLevel>
164176
<aspectLibraries>
165177
<aspectLibrary>
166178
<groupId>software.amazon.lambda</groupId>
@@ -174,13 +186,18 @@
174186
<groupId>software.amazon.lambda</groupId>
175187
<artifactId>powertools-metrics</artifactId>
176188
</aspectLibrary>
189+
<aspectLibrary>
190+
<groupId>software.amazon.lambda</groupId>
191+
<artifactId>powertools-logging</artifactId>
192+
</aspectLibrary>
177193
</aspectLibraries>
178194
</configuration>
179195
<dependencies>
180196
<dependency>
181197
<groupId>org.aspectj</groupId>
182198
<artifactId>aspectjtools</artifactId>
183-
<version>1.9.22.1</version>
199+
<!-- AspectJ compiler version, in sync with runtime -->
200+
<version>1.9.22</version>
184201
</dependency>
185202
</dependencies>
186203
<executions>
@@ -196,10 +213,10 @@
196213
<artifactId>maven-compiler-plugin</artifactId>
197214
<version>3.14.0</version>
198215
<configuration>
199-
<source>17</source>
200-
<target>17</target>
216+
<source>21</source>
217+
<target>21</target>
201218
</configuration>
202219
</plugin>
203220
</plugins>
204221
</build>
205-
</project>
222+
</project>

unicorn_contracts/ContractsService/src/main/java/contracts/ContractEventHandler.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
import org.apache.logging.log4j.Logger;
1313
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
1414
import software.amazon.awssdk.services.dynamodb.model.*;
15+
import software.amazon.lambda.powertools.logging.Logging;
1516
import software.amazon.lambda.powertools.tracing.Tracing;
17+
import software.amazon.lambda.powertools.metrics.FlushMetrics;
1618

1719
import java.time.Instant;
1820
import java.util.Map;
@@ -38,6 +40,8 @@ public ContractEventHandler(DynamoDbClient dynamodbClient) {
3840

3941
@Override
4042
@Tracing
43+
@FlushMetrics(captureColdStart = true)
44+
@Logging(logEvent = true)
4145
public Void handleRequest(SQSEvent event, Context context) {
4246
if (event == null || event.getRecords() == null) {
4347
LOGGER.warn("Received null or empty SQS event");

0 commit comments

Comments
 (0)