Skip to content

Commit 54f81e3

Browse files
committed
Change SLF4J logger to context logger, update dependencies accordingly
Tested changes on both Gradle and Maven, works well
1 parent 94069b5 commit 54f81e3

File tree

4 files changed

+28
-60
lines changed

4 files changed

+28
-60
lines changed

sample-apps/s3-java/build.gradle

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,15 @@ repositories {
77
}
88

99
dependencies {
10-
implementation platform('software.amazon.awssdk:bom:2.15.0')
10+
implementation platform('software.amazon.awssdk:bom:2.16.1')
1111
implementation platform('com.amazonaws:aws-xray-recorder-sdk-bom:2.11.0')
1212
implementation 'software.amazon.awssdk:s3'
1313
implementation 'com.amazonaws:aws-lambda-java-core:1.2.1'
1414
implementation 'com.amazonaws:aws-lambda-java-events:3.11.0'
15-
implementation 'org.apache.logging.log4j:log4j-api:[2.17.1,)'
16-
implementation 'org.apache.logging.log4j:log4j-core:[2.17.1,)'
17-
implementation 'org.apache.logging.log4j:log4j-slf4j18-impl:[2.17.1,)'
18-
runtimeOnly 'com.amazonaws:aws-lambda-java-log4j2:1.5.1'
1915
implementation 'com.amazonaws:aws-xray-recorder-sdk-core'
2016
implementation 'com.amazonaws:aws-xray-recorder-sdk-aws-sdk'
21-
implementation 'com.amazonaws:aws-xray-recorder-sdk-aws-sdk-instrumentor'
17+
implementation 'com.amazonaws:aws-xray-recorder-sdk-aws-sdk-v2-instrumentor'
18+
implementation 'org.slf4j:slf4j-nop:2.0.6'
2219
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
2320
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.0'
2421
}
@@ -35,8 +32,8 @@ task packageJar(type: Zip) {
3532
}
3633

3734
java {
38-
sourceCompatibility = JavaVersion.VERSION_1_8
39-
targetCompatibility = JavaVersion.VERSION_1_8
35+
sourceCompatibility = JavaVersion.VERSION_21
36+
targetCompatibility = JavaVersion.VERSION_21
4037
}
4138

4239
build.dependsOn packageJar

sample-apps/s3-java/pom.xml

Lines changed: 13 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
<name>s3-java-function</name>
99
<properties>
1010
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
11-
<maven.compiler.source>1.8</maven.compiler.source>
12-
<maven.compiler.target>1.8</maven.compiler.target>
11+
<maven.compiler.source>21</maven.compiler.source>
12+
<maven.compiler.target>21</maven.compiler.target>
1313
</properties>
1414

1515
<dependencyManagement>
@@ -46,26 +46,6 @@
4646
<artifactId>aws-lambda-java-events</artifactId>
4747
<version>3.11.0</version>
4848
</dependency>
49-
<dependency>
50-
<groupId>com.amazonaws</groupId>
51-
<artifactId>aws-lambda-java-log4j2</artifactId>
52-
<version>1.5.1</version>
53-
</dependency>
54-
<dependency>
55-
<groupId>org.apache.logging.log4j</groupId>
56-
<artifactId>log4j-api</artifactId>
57-
<version>[2.17.1,)</version>
58-
</dependency>
59-
<dependency>
60-
<groupId>org.apache.logging.log4j</groupId>
61-
<artifactId>log4j-core</artifactId>
62-
<version>[2.17.1,)</version>
63-
</dependency>
64-
<dependency>
65-
<groupId>org.apache.logging.log4j</groupId>
66-
<artifactId>log4j-slf4j18-impl</artifactId>
67-
<version>[2.17.1,)</version>
68-
</dependency>
6949
<dependency>
7050
<groupId>com.amazonaws</groupId>
7151
<artifactId>aws-xray-recorder-sdk-core</artifactId>
@@ -76,7 +56,12 @@
7656
</dependency>
7757
<dependency>
7858
<groupId>com.amazonaws</groupId>
79-
<artifactId>aws-xray-recorder-sdk-aws-sdk-instrumentor</artifactId>
59+
<artifactId>aws-xray-recorder-sdk-aws-sdk-v2-instrumentor</artifactId>
60+
</dependency>
61+
<dependency>
62+
<groupId>org.slf4j</groupId>
63+
<artifactId>slf4j-nop</artifactId>
64+
<version>2.0.13</version>
8065
</dependency>
8166
<dependency>
8267
<groupId>org.junit.jupiter</groupId>
@@ -101,7 +86,7 @@
10186
<plugin>
10287
<groupId>org.apache.maven.plugins</groupId>
10388
<artifactId>maven-shade-plugin</artifactId>
104-
<version>3.2.2</version>
89+
<version>3.5.2</version>
10590
<configuration>
10691
<createDependencyReducedPom>false</createDependencyReducedPom>
10792
</configuration>
@@ -111,29 +96,17 @@
11196
<goals>
11297
<goal>shade</goal>
11398
</goals>
114-
<configuration>
115-
<transformers>
116-
<transformer implementation="com.github.edwgiz.maven_shade_plugin.log4j2_cache_transformer.PluginsCacheFileTransformer">
117-
</transformer>
118-
</transformers>
119-
</configuration>
12099
</execution>
121100
</executions>
122-
<dependencies>
123-
<dependency>
124-
<groupId>com.github.edwgiz</groupId>
125-
<artifactId>maven-shade-plugin.log4j2-cachefile-transformer</artifactId>
126-
<version>[2.17.1,)</version>
127-
</dependency>
128-
</dependencies>
129101
</plugin>
130102
<plugin>
131103
<groupId>org.apache.maven.plugins</groupId>
132104
<artifactId>maven-compiler-plugin</artifactId>
133-
<version>3.8.1</version>
105+
<version>3.13.0</version>
134106
<configuration>
135-
<source>1.8</source>
136-
<target>1.8</target>
107+
<source>21</source>
108+
<target>21</target>
109+
<release>21</release>
137110
</configuration>
138111
</plugin>
139112
</plugins>

sample-apps/s3-java/src/main/java/example/Handler.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,13 @@
2121
import software.amazon.awssdk.services.s3.S3Client;
2222

2323
import com.amazonaws.services.lambda.runtime.Context;
24+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
2425
import com.amazonaws.services.lambda.runtime.RequestHandler;
2526
import com.amazonaws.services.lambda.runtime.events.S3Event;
2627
import com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification.S3EventNotificationRecord;
2728

28-
import org.slf4j.Logger;
29-
import org.slf4j.LoggerFactory;
30-
3129
// Handler value: example.Handler
3230
public class Handler implements RequestHandler<S3Event, String> {
33-
private static final Logger logger = LoggerFactory.getLogger(Handler.class);
3431
private static final float MAX_DIMENSION = 100;
3532
private final String REGEX = ".*\\.([^\\.]*)";
3633
private final String JPG_TYPE = "jpg";
@@ -39,6 +36,7 @@ public class Handler implements RequestHandler<S3Event, String> {
3936
private final String PNG_MIME = "image/png";
4037
@Override
4138
public String handleRequest(S3Event s3event, Context context) {
39+
LambdaLogger logger = context.getLogger();
4240
try {
4341
S3EventNotificationRecord record = s3event.getRecords().get(0);
4442

@@ -53,12 +51,12 @@ public String handleRequest(S3Event s3event, Context context) {
5351
// Infer the image type.
5452
Matcher matcher = Pattern.compile(REGEX).matcher(srcKey);
5553
if (!matcher.matches()) {
56-
logger.info("Unable to infer image type for key " + srcKey);
54+
logger.log("Unable to infer image type for key " + srcKey);
5755
return "";
5856
}
5957
String imageType = matcher.group(1);
6058
if (!(JPG_TYPE.equals(imageType)) && !(PNG_TYPE.equals(imageType))) {
61-
logger.info("Skipping non-image " + srcKey);
59+
logger.log("Skipping non-image " + srcKey);
6260
return "";
6361
}
6462

@@ -75,9 +73,9 @@ public String handleRequest(S3Event s3event, Context context) {
7573
ImageIO.write(newImage, imageType, outputStream);
7674

7775
// Upload new image to S3
78-
putObject(s3Client, outputStream, dstBucket, dstKey, imageType);
76+
putObject(s3Client, outputStream, dstBucket, dstKey, imageType, logger);
7977

80-
logger.info("Successfully resized " + srcBucket + "/"
78+
logger.log("Successfully resized " + srcBucket + "/"
8179
+ srcKey + " and uploaded to " + dstBucket + "/" + dstKey);
8280
return "Ok";
8381
} catch (IOException e) {
@@ -94,7 +92,7 @@ private InputStream getObject(S3Client s3Client, String bucket, String key) {
9492
}
9593

9694
private void putObject(S3Client s3Client, ByteArrayOutputStream outputStream,
97-
String bucket, String key, String imageType) {
95+
String bucket, String key, String imageType, LambdaLogger logger) {
9896
Map<String, String> metadata = new HashMap<>();
9997
metadata.put("Content-Length", Integer.toString(outputStream.size()));
10098
if (JPG_TYPE.equals(imageType)) {
@@ -110,14 +108,14 @@ private void putObject(S3Client s3Client, ByteArrayOutputStream outputStream,
110108
.build();
111109

112110
// Uploading to S3 destination bucket
113-
logger.info("Writing to: " + bucket + "/" + key);
111+
logger.log("Writing to: " + bucket + "/" + key);
114112
try {
115113
s3Client.putObject(putObjectRequest,
116114
RequestBody.fromBytes(outputStream.toByteArray()));
117115
}
118116
catch(AwsServiceException e)
119117
{
120-
logger.error(e.awsErrorDetails().errorMessage());
118+
logger.log(e.awsErrorDetails().errorMessage());
121119
System.exit(1);
122120
}
123121
}

sample-apps/s3-java/template-mvn.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Resources:
1010
Properties:
1111
CodeUri: target/s3-java-1.0-SNAPSHOT.jar
1212
Handler: example.Handler::handleRequest
13-
Runtime: java8
13+
Runtime: java21
1414
Description: Java function
1515
MemorySize: 512
1616
Timeout: 30

0 commit comments

Comments
 (0)