diff --git a/.github/workflows/aws-lambda-java-serialization.yml b/.github/workflows/aws-lambda-java-serialization.yml index ccc805be..f52c96fe 100644 --- a/.github/workflows/aws-lambda-java-serialization.yml +++ b/.github/workflows/aws-lambda-java-serialization.yml @@ -40,7 +40,7 @@ jobs: # Package and install target module - name: Package serialization with Maven - run: mvn -B package install --file aws-lambda-java-serialization/pom.xml + run: mvn -B install --file aws-lambda-java-serialization/pom.xml # Run tests - name: Run tests from aws-lambda-java-tests diff --git a/aws-lambda-java-serialization/RELEASE.CHANGELOG.md b/aws-lambda-java-serialization/RELEASE.CHANGELOG.md index 4a0e8ca2..d68d7b1f 100644 --- a/aws-lambda-java-serialization/RELEASE.CHANGELOG.md +++ b/aws-lambda-java-serialization/RELEASE.CHANGELOG.md @@ -1,7 +1,14 @@ +### March 26, 2026 +`1.4.0`: +- Update `jackson-databind` dependency from 2.15.4 to 2.18.6 +- Replace deprecated `PropertyNamingStrategy.PascalCaseStrategy` with `PropertyNamingStrategies.UpperCamelCaseStrategy` +- The regression reported in 1.3.1 was a false positive caused by a CI workflow bug (`mvn package install` running the shade plugin twice, corrupting the artifact). Fixed by using `mvn install` instead. + ### March 19, 2026 `1.3.1`: - Revert `jackson-databind` dependency from 2.18.6 to 2.15.4 - Revert `PropertyNamingStrategies.UpperCamelCaseStrategy` to `PropertyNamingStrategy.PascalCaseStrategy` +- Note: reverted due to a suspected regression in Joda DateTime deserialization; later confirmed to be a false positive (see 1.4.0) ### March 11, 2026 `1.3.0`: diff --git a/aws-lambda-java-serialization/pom.xml b/aws-lambda-java-serialization/pom.xml index a71eb1f8..d412fd76 100644 --- a/aws-lambda-java-serialization/pom.xml +++ b/aws-lambda-java-serialization/pom.xml @@ -4,7 +4,7 @@ com.amazonaws aws-lambda-java-serialization - 1.3.1 + 1.4.0 jar AWS Lambda Java Runtime Serialization @@ -32,7 +32,7 @@ 1.8 1.8 com.amazonaws.lambda.thirdparty - 2.15.4 + 2.18.6 2.10.1 20231013 7.3.2 diff --git a/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/LambdaEventSerializers.java b/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/LambdaEventSerializers.java index 3f01d99b..533bdcd4 100644 --- a/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/LambdaEventSerializers.java +++ b/aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/LambdaEventSerializers.java @@ -19,6 +19,7 @@ import com.amazonaws.services.lambda.runtime.serialization.PojoSerializer; import com.amazonaws.services.lambda.runtime.serialization.util.ReflectUtil; import com.amazonaws.services.lambda.runtime.serialization.util.SerializeUtil; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.PropertyNamingStrategy; import com.amazonaws.services.lambda.runtime.serialization.events.modules.DateModule; import com.amazonaws.services.lambda.runtime.serialization.events.modules.DateTimeModule; @@ -86,156 +87,146 @@ public class LambdaEventSerializers { "com.amazonaws.services.lambda.runtime.events.SQSEvent") .collect(Collectors.toList()); - /** - * list of events incompatible with Jackson, with serializers explicitly defined - * Classes are incompatible with Jackson for any of the following reasons: - * 1. different constructor/setter types from getter types - * 2. various bugs within Jackson - */ - private static final Map SERIALIZER_MAP = Stream.of( - new SimpleEntry<>("com.amazonaws.services.s3.event.S3EventNotification", - new S3EventSerializer<>()), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification", - new S3EventSerializer<>()), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.S3Event", - new S3EventSerializer<>())) - .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue())); + /** + * list of events incompatible with Jackson, with serializers explicitly defined + * Classes are incompatible with Jackson for any of the following reasons: + * 1. different constructor/setter types from getter types + * 2. various bugs within Jackson + */ + private static final Map SERIALIZER_MAP = Stream.of( + new SimpleEntry<>("com.amazonaws.services.s3.event.S3EventNotification", new S3EventSerializer<>()), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification", new S3EventSerializer<>()), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.S3Event", new S3EventSerializer<>())) + .collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue)); - /** - * Maps supported event classes to mixin classes with Jackson annotations. - * Jackson annotations are not loaded through the ClassLoader so if a Java field - * is serialized or deserialized from a - * json field that does not match the Jave field name, then a Mixin is required. - */ - @SuppressWarnings("rawtypes") - private static final Map MIXIN_MAP = Stream.of( - new SimpleEntry<>( - "com.amazonaws.services.lambda.runtime.events.CloudFormationCustomResourceEvent", - CloudFormationCustomResourceEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CloudFrontEvent", - CloudFrontEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CloudWatchLogsEvent", - CloudWatchLogsEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CodeCommitEvent", - CodeCommitEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CodeCommitEvent$Record", - CodeCommitEventMixin.RecordMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent", - ConnectEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Details", - ConnectEventMixin.DetailsMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$ContactData", - ConnectEventMixin.ContactDataMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$CustomerEndpoint", - ConnectEventMixin.CustomerEndpointMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Queue", - ConnectEventMixin.QueueMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$SystemEndpoint", - ConnectEventMixin.SystemEndpointMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbEvent", - DynamodbEventMixin.class), - new SimpleEntry<>( - "com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord", - DynamodbEventMixin.DynamodbStreamRecordMixin.class), - new SimpleEntry<>("com.amazonaws.services.dynamodbv2.model.StreamRecord", - DynamodbEventMixin.StreamRecordMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord", - DynamodbEventMixin.StreamRecordMixin.class), - new SimpleEntry<>("com.amazonaws.services.dynamodbv2.model.AttributeValue", - DynamodbEventMixin.AttributeValueMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.models.dynamodb.AttributeValue", - DynamodbEventMixin.AttributeValueMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbTimeWindowEvent", - DynamodbTimeWindowEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.KinesisEvent", - KinesisEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.KinesisEvent$Record", - KinesisEventMixin.RecordMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.KinesisTimeWindowEvent", - KinesisTimeWindowEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ScheduledEvent", - ScheduledEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SecretsManagerRotationEvent", - SecretsManagerRotationEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SNSEvent", - SNSEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SNSEvent$SNSRecord", - SNSEventMixin.SNSRecordMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SQSEvent", - SQSEventMixin.class), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SQSEvent$SQSMessage", - SQSEventMixin.SQSMessageMixin.class)) - .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue())); + /** + * Maps supported event classes to mixin classes with Jackson annotations. + * Jackson annotations are not loaded through the ClassLoader so if a Java field is serialized or deserialized from a + * json field that does not match the Jave field name, then a Mixin is required. + */ + @SuppressWarnings("rawtypes") + private static final Map MIXIN_MAP = Stream.of( + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CloudFormationCustomResourceEvent", + CloudFormationCustomResourceEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CloudFrontEvent", + CloudFrontEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CloudWatchLogsEvent", + CloudWatchLogsEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CodeCommitEvent", + CodeCommitEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CodeCommitEvent$Record", + CodeCommitEventMixin.RecordMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent", + ConnectEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Details", + ConnectEventMixin.DetailsMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$ContactData", + ConnectEventMixin.ContactDataMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$CustomerEndpoint", + ConnectEventMixin.CustomerEndpointMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Queue", ConnectEventMixin.QueueMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$SystemEndpoint", + ConnectEventMixin.SystemEndpointMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbEvent", + DynamodbEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord", + DynamodbEventMixin.DynamodbStreamRecordMixin.class), + new SimpleEntry<>("com.amazonaws.services.dynamodbv2.model.StreamRecord", + DynamodbEventMixin.StreamRecordMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord", + DynamodbEventMixin.StreamRecordMixin.class), + new SimpleEntry<>("com.amazonaws.services.dynamodbv2.model.AttributeValue", + DynamodbEventMixin.AttributeValueMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.models.dynamodb.AttributeValue", + DynamodbEventMixin.AttributeValueMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbTimeWindowEvent", + DynamodbTimeWindowEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.KinesisEvent", + KinesisEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.KinesisEvent$Record", + KinesisEventMixin.RecordMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.KinesisTimeWindowEvent", + KinesisTimeWindowEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ScheduledEvent", + ScheduledEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SecretsManagerRotationEvent", + SecretsManagerRotationEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SNSEvent", + SNSEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SNSEvent$SNSRecord", + SNSEventMixin.SNSRecordMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SQSEvent", + SQSEventMixin.class), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SQSEvent$SQSMessage", + SQSEventMixin.SQSMessageMixin.class)) + .collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue)); - /** - * If mixins are required for inner classes of an event, then those nested - * classes must be specified here. - */ - @SuppressWarnings("rawtypes") - private static final Map> NESTED_CLASS_MAP = Stream.of( - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CodeCommitEvent", - Arrays.asList( - new NestedClass("com.amazonaws.services.lambda.runtime.events.CodeCommitEvent$Record"))), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CognitoEvent", - Arrays.asList( - new NestedClass("com.amazonaws.services.lambda.runtime.events.CognitoEvent$DatasetRecord"))), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent", - Arrays.asList( - new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Details"), - new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$ContactData"), - new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$CustomerEndpoint"), - new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Queue"), - new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$SystemEndpoint"))), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbEvent", - Arrays.asList( - new AlternateNestedClass( - "com.amazonaws.services.lambda.runtime.events.models.dynamodb.AttributeValue", - "com.amazonaws.services.dynamodbv2.model.AttributeValue"), - new AlternateNestedClass( - "com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord", - "com.amazonaws.services.dynamodbv2.model.StreamRecord"), - new NestedClass("com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord"))), - new SimpleEntry<>( - "com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord", - Arrays.asList( - new AlternateNestedClass( - "com.amazonaws.services.lambda.runtime.events.models.dynamodb.AttributeValue", - "com.amazonaws.services.dynamodbv2.model.AttributeValue"), - new AlternateNestedClass( - "com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord", - "com.amazonaws.services.dynamodbv2.model.StreamRecord"))), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbTimeWindowEvent", - Arrays.asList( - new AlternateNestedClass( - "com.amazonaws.services.lambda.runtime.events.models.dynamodb.AttributeValue", - "com.amazonaws.services.dynamodbv2.model.AttributeValue"), - new AlternateNestedClass( - "com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord", - "com.amazonaws.services.dynamodbv2.model.StreamRecord"), - new NestedClass("com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord"))), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.KinesisEvent", - Arrays.asList( - new NestedClass("com.amazonaws.services.lambda.runtime.events.KinesisEvent$Record"))), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SNSEvent", - Arrays.asList( - new NestedClass("com.amazonaws.services.lambda.runtime.events.SNSEvent$SNSRecord"))), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SQSEvent", - Arrays.asList( - new NestedClass("com.amazonaws.services.lambda.runtime.events.SQSEvent$SQSMessage")))) - .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue())); + /** + * If mixins are required for inner classes of an event, then those nested classes must be specified here. + */ + @SuppressWarnings("rawtypes") + private static final Map> NESTED_CLASS_MAP = Stream.of( + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CodeCommitEvent", + Arrays.asList( + new NestedClass("com.amazonaws.services.lambda.runtime.events.CodeCommitEvent$Record"))), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.CognitoEvent", + Arrays.asList( + new NestedClass("com.amazonaws.services.lambda.runtime.events.CognitoEvent$DatasetRecord"))), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent", + Arrays.asList( + new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Details"), + new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$ContactData"), + new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$CustomerEndpoint"), + new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Queue"), + new NestedClass("com.amazonaws.services.lambda.runtime.events.ConnectEvent$SystemEndpoint"))), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbEvent", + Arrays.asList( + new AlternateNestedClass( + "com.amazonaws.services.lambda.runtime.events.models.dynamodb.AttributeValue", + "com.amazonaws.services.dynamodbv2.model.AttributeValue"), + new AlternateNestedClass( + "com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord", + "com.amazonaws.services.dynamodbv2.model.StreamRecord"), + new NestedClass("com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord"))), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord", + Arrays.asList( + new AlternateNestedClass( + "com.amazonaws.services.lambda.runtime.events.models.dynamodb.AttributeValue", + "com.amazonaws.services.dynamodbv2.model.AttributeValue"), + new AlternateNestedClass( + "com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord", + "com.amazonaws.services.dynamodbv2.model.StreamRecord"))), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.DynamodbTimeWindowEvent", + Arrays.asList( + new AlternateNestedClass( + "com.amazonaws.services.lambda.runtime.events.models.dynamodb.AttributeValue", + "com.amazonaws.services.dynamodbv2.model.AttributeValue"), + new AlternateNestedClass( + "com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord", + "com.amazonaws.services.dynamodbv2.model.StreamRecord"), + new NestedClass("com.amazonaws.services.lambda.runtime.events.DynamodbEvent$DynamodbStreamRecord"))), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.KinesisEvent", + Arrays.asList( + new NestedClass("com.amazonaws.services.lambda.runtime.events.KinesisEvent$Record"))), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SNSEvent", + Arrays.asList( + new NestedClass("com.amazonaws.services.lambda.runtime.events.SNSEvent$SNSRecord"))), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SQSEvent", + Arrays.asList( + new NestedClass("com.amazonaws.services.lambda.runtime.events.SQSEvent$SQSMessage")))) + .collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue)); - /** - * If event requires a naming strategy. For example, when someone names the - * getter method getSNS and the setter - * method setSns, for some magical reasons, using both mixins and a naming - * strategy works - */ - private static final Map NAMING_STRATEGY_MAP = Stream.of( - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SNSEvent", - new PropertyNamingStrategy.PascalCaseStrategy()), - new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Queue", - new PropertyNamingStrategy.PascalCaseStrategy())) - .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue())); + /** + * If event requires a naming strategy. For example, when someone names the getter method getSNS and the setter + * method setSns, for some magical reasons, using both mixins and a naming strategy works + */ + private static final Map NAMING_STRATEGY_MAP = Stream.of( + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.SNSEvent", + new PropertyNamingStrategies.UpperCamelCaseStrategy()), + new SimpleEntry<>("com.amazonaws.services.lambda.runtime.events.ConnectEvent$Queue", + new PropertyNamingStrategies.UpperCamelCaseStrategy()) + ) + .collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue)); /** * Returns whether the class name is a Lambda supported event model. diff --git a/aws-lambda-java-tests/RELEASE.CHANGELOG.md b/aws-lambda-java-tests/RELEASE.CHANGELOG.md index 76965b8f..0b4bd251 100644 --- a/aws-lambda-java-tests/RELEASE.CHANGELOG.md +++ b/aws-lambda-java-tests/RELEASE.CHANGELOG.md @@ -1,3 +1,9 @@ +### March 27, 2026 +`1.1.3`: +- Add serialization round-trip tests covering 66 event classes +- Bumped `aws-lambda-java-serialization` to version `1.4.0` (Jackson `2.15.x` → `2.18.6`) +- Bumped `aws-lambda-java-events` to version `3.16.1` + ### August 26, 2021 `1.1.1`: - Bumped `aws-lambda-java-events` to version `3.11.0` diff --git a/aws-lambda-java-tests/pom.xml b/aws-lambda-java-tests/pom.xml index 69a112cb..e63e529a 100644 --- a/aws-lambda-java-tests/pom.xml +++ b/aws-lambda-java-tests/pom.xml @@ -5,7 +5,7 @@ com.amazonaws aws-lambda-java-tests - 1.1.2 + 1.1.3 jar AWS Lambda Java Tests @@ -40,18 +40,22 @@ --> 5.9.2 0.8.7 + 1.4.0 + 3.16.1 + 3.18.0 + 3.27.7 com.amazonaws aws-lambda-java-serialization - 1.2.0 + ${aws-lambda-java-serialization.version} com.amazonaws aws-lambda-java-events - 3.16.1 + ${aws-lambda-java-events.version} org.junit.jupiter @@ -71,13 +75,13 @@ org.apache.commons commons-lang3 - 3.18.0 + ${commons-lang3.version} org.assertj assertj-core - 3.27.7 + ${assertj-core.version} test diff --git a/aws-lambda-java-tests/src/main/java/com/amazonaws/services/lambda/runtime/tests/LambdaEventAssert.java b/aws-lambda-java-tests/src/main/java/com/amazonaws/services/lambda/runtime/tests/LambdaEventAssert.java index e189b5e2..f8d7e106 100644 --- a/aws-lambda-java-tests/src/main/java/com/amazonaws/services/lambda/runtime/tests/LambdaEventAssert.java +++ b/aws-lambda-java-tests/src/main/java/com/amazonaws/services/lambda/runtime/tests/LambdaEventAssert.java @@ -25,13 +25,8 @@ * {@link AssertionError}. *

* - *

- * This class is intentionally package-private to support updates to - * the aws-lambda-java-events and aws-lambda-java-serialization packages. - * Consider making it public if there's a real request for it. - *

*/ -class LambdaEventAssert { +public class LambdaEventAssert { private static final ObjectMapper MAPPER = new ObjectMapper();