From ef9d8380cbdf12cfea7868bc24b61ca4d0e9af94 Mon Sep 17 00:00:00 2001 From: Andrea Culot Date: Tue, 30 Aug 2022 18:33:51 +0100 Subject: [PATCH 1/2] 1.2.2 lambda-java-core release --- aws-lambda-java-core/RELEASE.CHANGELOG.md | 5 +++++ aws-lambda-java-core/pom.xml | 2 +- .../lambda/runtime/CustomPojoSerializer.java | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/CustomPojoSerializer.java diff --git a/aws-lambda-java-core/RELEASE.CHANGELOG.md b/aws-lambda-java-core/RELEASE.CHANGELOG.md index 406390d7..4ad9dd2c 100644 --- a/aws-lambda-java-core/RELEASE.CHANGELOG.md +++ b/aws-lambda-java-core/RELEASE.CHANGELOG.md @@ -1,3 +1,8 @@ +### August 30, 2022 +`1.2.2`: +- Added new `CustomPojoSerializer` interface +- Removed unnecessary usage of public on interface methods (aws#172) + ### April 28, 2020 `1.2.1`: - Added missing XML namespace declarations to `pom.xml` file ([#97](https://github.com/aws/aws-lambda-java-libs/issues/97)) diff --git a/aws-lambda-java-core/pom.xml b/aws-lambda-java-core/pom.xml index 52d2976f..1438a2e7 100644 --- a/aws-lambda-java-core/pom.xml +++ b/aws-lambda-java-core/pom.xml @@ -5,7 +5,7 @@ com.amazonaws aws-lambda-java-core - 1.2.1 + 1.2.2 jar AWS Lambda Java Core Library diff --git a/aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/CustomPojoSerializer.java b/aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/CustomPojoSerializer.java new file mode 100644 index 00000000..a83d610a --- /dev/null +++ b/aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/CustomPojoSerializer.java @@ -0,0 +1,14 @@ +/* Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. */ + +package com.amazonaws.services.lambda.runtime; + +import java.io.InputStream; +import java.io.OutputStream; + +import java.lang.reflect.Type; + +public interface CustomPojoSerializer { + T fromJson(InputStream input, Type type); + T fromJson(String input, Type type); + void toJson(T value, OutputStream output, Type type); +} \ No newline at end of file From 4a81712c430ac7c4b01dd841ca30557e0eb94745 Mon Sep 17 00:00:00 2001 From: Andrea Culot Date: Tue, 8 Nov 2022 19:24:32 +0000 Subject: [PATCH 2/2] Add Javadoc --- aws-lambda-java-core/RELEASE.CHANGELOG.md | 2 +- .../lambda/runtime/CustomPojoSerializer.java | 26 ++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/aws-lambda-java-core/RELEASE.CHANGELOG.md b/aws-lambda-java-core/RELEASE.CHANGELOG.md index 4ad9dd2c..fd52389b 100644 --- a/aws-lambda-java-core/RELEASE.CHANGELOG.md +++ b/aws-lambda-java-core/RELEASE.CHANGELOG.md @@ -1,4 +1,4 @@ -### August 30, 2022 +### November 09, 2022 `1.2.2`: - Added new `CustomPojoSerializer` interface - Removed unnecessary usage of public on interface methods (aws#172) diff --git a/aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/CustomPojoSerializer.java b/aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/CustomPojoSerializer.java index a83d610a..0d7cc27d 100644 --- a/aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/CustomPojoSerializer.java +++ b/aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/CustomPojoSerializer.java @@ -7,8 +7,32 @@ import java.lang.reflect.Type; +/** + * Interface required to implement a custom plain old java objects serializer + */ public interface CustomPojoSerializer { + + /** + * Deserializes from input stream to plain old java object + * @param input input stream + * @param type plain old java object type + * @return deserialized plain old java object of type T + */ T fromJson(InputStream input, Type type); + + /** + * Deserializes from String to plain old java object + * @param input input string + * @param type plain old java object type + * @return deserialized plain old java object of type T + */ T fromJson(String input, Type type); + + /** + * Serializes plain old java object to output stream + * @param value instance of type T to be serialized + * @param output OutputStream to serialize plain old java object to + * @param type plain old java object type + */ void toJson(T value, OutputStream output, Type type); -} \ No newline at end of file +}