diff --git a/aws-lambda-java-core/RELEASE.CHANGELOG.md b/aws-lambda-java-core/RELEASE.CHANGELOG.md index 406390d7..fd52389b 100644 --- a/aws-lambda-java-core/RELEASE.CHANGELOG.md +++ b/aws-lambda-java-core/RELEASE.CHANGELOG.md @@ -1,3 +1,8 @@ +### November 09, 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..0d7cc27d --- /dev/null +++ b/aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/CustomPojoSerializer.java @@ -0,0 +1,38 @@ +/* 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; + +/** + * 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); +}