Skip to content

Commit e6ea6ec

Browse files
authored
Merge branch 'main' into update-log4j
2 parents db542bb + 3d8dfb6 commit e6ea6ec

File tree

13 files changed

+95
-23
lines changed

13 files changed

+95
-23
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public class SqsHandler implements RequestHandler<SQSEvent, String> {
7171
<dependency>
7272
<groupId>com.amazonaws</groupId>
7373
<artifactId>aws-lambda-java-events</artifactId>
74-
<version>3.11.3</version>
74+
<version>3.11.4</version>
7575
</dependency>
7676
```
7777

@@ -154,7 +154,7 @@ This package defines the Lambda serialization logic using in the `aws-lambda-jav
154154
<dependency>
155155
<groupId>com.amazonaws</groupId>
156156
<artifactId>aws-lambda-java-serialization</artifactId>
157-
<version>1.1.4</version>
157+
<version>1.1.5</version>
158158
</dependency>
159159
```
160160

aws-lambda-java-events/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
<dependency>
7070
<groupId>com.amazonaws</groupId>
7171
<artifactId>aws-lambda-java-events</artifactId>
72-
<version>3.11.3</version>
72+
<version>3.11.4</version>
7373
</dependency>
7474
...
7575
</dependencies>

aws-lambda-java-events/RELEASE.CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
### December 1, 2023
2+
`3.11.4`:
3+
- Improve `toString` in Cognito events by calling `super`
4+
- Added missing `version` field to ScheduledEvent from CloudWatch
5+
16
### September 1, 2023
27
`3.11.3`:
38
- Update challengeAnswer field format in CognitoUserPoolEvent

aws-lambda-java-events/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.amazonaws</groupId>
77
<artifactId>aws-lambda-java-events</artifactId>
8-
<version>3.11.3</version>
8+
<version>3.11.4</version>
99
<packaging>jar</packaging>
1010

1111
<name>AWS Lambda Java Events Library</name>

aws-lambda-java-serialization/RELEASE.CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
### December 1, 2023
2+
`1.1.5`:
3+
- Add support for DynamodbEvent.DynamodbStreamRecord serialization
4+
15
### October 19, 2023
26
`1.1.4`:
37
- Update org.json version to 20231013

aws-lambda-java-serialization/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.amazonaws</groupId>
66
<artifactId>aws-lambda-java-serialization</artifactId>
7-
<version>1.1.4</version>
7+
<version>1.1.5</version>
88
<packaging>jar</packaging>
99

1010
<name>AWS Lambda Java Runtime Serialization</name>

aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/LambdaEventSerializers.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ public class LambdaEventSerializers {
158158
* If mixins are required for inner classes of an event, then those nested classes must be specified here.
159159
*/
160160
@SuppressWarnings("rawtypes")
161-
private static final Map<String, List<NestedClass>> NESTED_CLASS_MAP = Stream.of(
161+
private static final Map<String, List<? extends NestedClass>> NESTED_CLASS_MAP = Stream.of(
162162
new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CodeCommitEvent",
163163
Arrays.asList(
164164
new NestedClass("com.amazonaws.services.lambda.runtime.events.CodeCommitEvent$Record"))),
@@ -180,6 +180,14 @@ public class LambdaEventSerializers {
180180
"com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord",
181181
"com.amazonaws.services.dynamodbv2.model.StreamRecord"),
182182
new NestedClass("com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord"))),
183+
new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord",
184+
Arrays.asList(
185+
new AlternateNestedClass(
186+
"com.amazonaws.services.lambda.runtime.events.models.dynamodb.AttributeValue",
187+
"com.amazonaws.services.dynamodbv2.model.AttributeValue"),
188+
new AlternateNestedClass(
189+
"com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord",
190+
"com.amazonaws.services.dynamodbv2.model.StreamRecord"))),
183191
new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbTimeWindowEvent",
184192
Arrays.asList(
185193
new AlternateNestedClass(
@@ -236,7 +244,7 @@ public static <T> PojoSerializer<T> serializerFor(Class<T> eventClass, ClassLoad
236244
}
237245
// if event model has nested classes then load those classes and check if mixins apply
238246
if (NESTED_CLASS_MAP.containsKey(eventClass.getName())) {
239-
List<NestedClass> nestedClasses = NESTED_CLASS_MAP.get(eventClass.getName());
247+
List<? extends NestedClass> nestedClasses = NESTED_CLASS_MAP.get(eventClass.getName());
240248
for (NestedClass nestedClass: nestedClasses) {
241249
// if mixin exists for nested class then apply
242250
if (MIXIN_MAP.containsKey(nestedClass.className)) {

aws-lambda-java-tests/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@
4040
<dependency>
4141
<groupId>com.amazonaws</groupId>
4242
<artifactId>aws-lambda-java-serialization</artifactId>
43-
<version>1.1.4</version>
43+
<version>1.1.5</version>
4444
</dependency>
4545
<dependency>
4646
<groupId>com.amazonaws</groupId>
4747
<artifactId>aws-lambda-java-events</artifactId>
48-
<version>3.11.3</version>
48+
<version>3.11.4</version>
4949
</dependency>
5050
<dependency>
5151
<groupId>org.junit.jupiter</groupId>

aws-lambda-java-tests/src/main/java/com/amazonaws/services/lambda/runtime/tests/EventLoader.java

+4
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ public static DynamodbEvent loadDynamoDbEvent(String filename) {
6565
return loadEvent(filename, DynamodbEvent.class);
6666
}
6767

68+
public static DynamodbEvent.DynamodbStreamRecord loadDynamoDbStreamRecord(String filename) {
69+
return loadEvent(filename, DynamodbEvent.DynamodbStreamRecord.class);
70+
}
71+
6872
public static KafkaEvent loadKafkaEvent(String filename) {
6973
return loadEvent(filename, KafkaEvent.class);
7074
}

aws-lambda-java-tests/src/test/java/com/amazonaws/services/lambda/runtime/tests/EventLoaderTest.java

+28-12
Original file line numberDiff line numberDiff line change
@@ -160,27 +160,43 @@ public void testLoadSNSEvent() {
160160

161161
@Test
162162
public void testLoadDynamoEvent() {
163-
DynamodbEvent event = EventLoader.loadDynamoDbEvent("dynamo_event.json");
163+
DynamodbEvent event = EventLoader.loadDynamoDbEvent("ddb/dynamo_event.json");
164164
assertThat(event).isNotNull();
165165
assertThat(event.getRecords()).hasSize(3);
166+
assertDynamoDbStreamRecord(event.getRecords().get(1));
167+
}
166168

167-
DynamodbEvent.DynamodbStreamRecord record = event.getRecords().get(0);
169+
@Test
170+
public void testLoadDynamoDbStreamRecord() {
171+
assertDynamoDbStreamRecord(EventLoader.loadDynamoDbStreamRecord("ddb/dynamo_ddb_stream_record.json"));
172+
}
173+
174+
private static void assertDynamoDbStreamRecord(final DynamodbEvent.DynamodbStreamRecord record) {
168175
assertThat(record)
176+
.isNotNull()
169177
.returns("arn:aws:dynamodb:eu-central-1:123456789012:table/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", from(DynamodbEvent.DynamodbStreamRecord::getEventSourceARN))
170-
.returns("INSERT", from(Record::getEventName));
178+
.returns("MODIFY", from(Record::getEventName));
171179

172180
StreamRecord streamRecord = record.getDynamodb();
173181
assertThat(streamRecord)
174-
.returns("4421584500000000017450439091", StreamRecord::getSequenceNumber)
175-
.returns(26L, StreamRecord::getSizeBytes)
182+
.returns("4421584500000000017450439092", StreamRecord::getSequenceNumber)
183+
.returns(59L, StreamRecord::getSizeBytes)
176184
.returns("NEW_AND_OLD_IMAGES", StreamRecord::getStreamViewType)
177-
.returns(Date.from(ofEpochSecond(1428537600)), StreamRecord::getApproximateCreationDateTime);
178-
179-
assertThat(streamRecord.getKeys()).contains(entry("Id", new AttributeValue().withN("101")));
180-
assertThat(streamRecord.getNewImage()).containsAnyOf(
181-
entry("Message", new AttributeValue("New item!")),
182-
entry("Id", new AttributeValue().withN("101"))
183-
);
185+
.returns(Date.from(ofEpochSecond(1635734407).plusNanos(123456789)), StreamRecord::getApproximateCreationDateTime);
186+
187+
assertThat(streamRecord.getKeys())
188+
.isNotNull()
189+
.contains(entry("Id", new AttributeValue().withN("101")));
190+
assertThat(streamRecord.getNewImage())
191+
.isNotNull()
192+
.containsAnyOf(
193+
entry("Message", new AttributeValue("This item has changed")),
194+
entry("Id", new AttributeValue().withN("101")));
195+
assertThat(streamRecord.getOldImage())
196+
.isNotNull()
197+
.containsAnyOf(
198+
entry("Message", new AttributeValue("New item!")),
199+
entry("Id", new AttributeValue().withN("101")));
184200
}
185201

186202
@Test
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"eventID": "c81e728d9d4c2f636f067f89cc14862c",
3+
"eventName": "MODIFY",
4+
"eventVersion": "1.1",
5+
"eventSource": "aws:dynamodb",
6+
"awsRegion": "eu-central-1",
7+
"dynamodb": {
8+
"Keys": {
9+
"Id": {
10+
"N": "101"
11+
}
12+
},
13+
"NewImage": {
14+
"Message": {
15+
"S": "This item has changed"
16+
},
17+
"Id": {
18+
"N": "101"
19+
}
20+
},
21+
"OldImage": {
22+
"Message": {
23+
"S": "New item!"
24+
},
25+
"Id": {
26+
"N": "101"
27+
}
28+
},
29+
"ApproximateCreationDateTime": 1.635734407123456789E9,
30+
"SequenceNumber": "4421584500000000017450439092",
31+
"SizeBytes": 59,
32+
"StreamViewType": "NEW_AND_OLD_IMAGES"
33+
},
34+
"eventSourceARN": "arn:aws:dynamodb:eu-central-1:123456789012:table/ExampleTableWithStream/stream/2015-06-27T00:48:05.899"
35+
}

aws-lambda-java-tests/src/test/resources/dynamo_event.json aws-lambda-java-tests/src/test/resources/ddb/dynamo_event.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
"N": "101"
6060
}
6161
},
62-
"ApproximateCreationDateTime": 1428537600,
62+
"ApproximateCreationDateTime": 1.635734407123456789E9,
6363
"SequenceNumber": "4421584500000000017450439092",
6464
"SizeBytes": 59,
6565
"StreamViewType": "NEW_AND_OLD_IMAGES"

samples/kinesis-firehose-event-handler/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<dependency>
4747
<groupId>com.amazonaws</groupId>
4848
<artifactId>aws-lambda-java-events</artifactId>
49-
<version>3.11.3</version>
49+
<version>3.11.4</version>
5050
</dependency>
5151

5252
<dependency>

0 commit comments

Comments
 (0)