Skip to content

Added annotations for documentation #58

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 65 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
a15116b
Added annotations for documentation
raupachz Sep 20, 2018
a565b6d
Support for Multi-Value Headers and Query String Parameters
Oct 29, 2018
6ab192c
Version bump events library to 2.2.3
bmoffatt Nov 5, 2018
2009fbd
[s3-event-default-constructor] Adding default constructor for S3Event…
Nov 8, 2018
55809cc
GH-65 Fix "Paramters" typo
stepio Jan 2, 2019
ca6e4aa
Version bump events library to 2.2.4
Jan 2, 2019
5c3879c
Version bump events library to 2.2.5
Jan 3, 2019
ee1da88
Fix the packages directive in the example config
iconara Oct 30, 2018
c534673
Changed version of aws-lambda-java-core to 1.2.0 (#73)
raupachz Jan 24, 2019
74060dc
Adding customData to CommitEvent.Record (#79)
vbellotto Feb 21, 2019
1104421
Added missing 'isBase64Encoded' field to APIGatewayProxyResponseEvent…
miere Feb 21, 2019
a618443
Adding authorizer field to collect context properties from authorizer…
avanathan Feb 21, 2019
35a91d5
Version bump event library to 2.2.6 (#83)
bmoffatt Mar 11, 2019
1ee847d
Adding support for APIGatewayV2 (Web Sockets) (#92)
TimGustafson Jul 30, 2019
f50df3b
Fixed Congnito to Cognito java doc in CognitoEvent (#87)
jccarrillo Aug 7, 2019
190a1d6
Version Bump Events Library To 2.2.7
BradleyLyman Aug 13, 2019
9d52682
Add missing xml namespace declarations to POM files (#97)
ivoanjo Sep 2, 2019
98b9b32
Update nexusUrl in all pom.xml (#108)
bmoffatt Feb 12, 2020
34718f5
Bump all packages to new patch version, add maven.compiler properties…
carlzogh Apr 28, 2020
11722a9
Add per-module release changelog files, update main readme (#117)
carlzogh Apr 28, 2020
6849518
#114: Update README.md file for Gradle and SAM tools (#115)
axthosarouris May 5, 2020
cdf760c
Add action to build all packages in project (#121)
carlzogh May 5, 2020
8e39c35
Update `log4j-core` and `log4j-api` to `2.13.2`, bump log4j2 to `1.2.…
carlzogh May 5, 2020
6ea9428
Add aws-lambda-java-events-sdk-transformer library with DynamodbEvent…
carlzogh May 5, 2020
26b11a5
Add events-sdk-transformer to build workflow (#124)
carlzogh May 5, 2020
7ef1338
Adding support for OperationName in the APIGatewayProxyRequestEvent (…
hercules90 May 8, 2020
937b553
Update build workflow to install instead of package (#129)
carlzogh May 13, 2020
f974e67
Bump events lib version to 2.2.9 (#128)
carlzogh May 13, 2020
b36cf54
Remove SDK dependencies from events library (#127)
carlzogh May 18, 2020
2f83e55
Add Application Load Balancer Target Events (#131)
msailes May 19, 2020
ae3ed08
Update upcoming in RELEASE.CHANGELOG (events)
carlzogh May 19, 2020
aad8da8
Add support for APIGatwayV2 HTTP API (#123)
bmoffatt May 20, 2020
eeaf48c
Add APIGatewayV2WebSocketEvent/Response as renames of APIGatewayV2Pro…
bmoffatt May 1, 2020
08ad2cc
Remove duplicate Lombok dependency
carlzogh May 20, 2020
3b2d9f4
Update events README.md (#135)
bmoffatt May 20, 2020
b1068fd
Update events RELEASE.CHANGELOG.md (#134)
bmoffatt May 20, 2020
f98bdc9
Update SDK Transformer for events v3.0.0, bump to 2.0.0 (#132)
carlzogh May 20, 2020
81a7f64
Bump `aws-lambda-java-events` to version `3.1.0` (#136)
carlzogh May 21, 2020
3af3867
Update references library versions in README
carlzogh May 25, 2020
9e5ce7d
Fix NPE when mapping insert / delete events. (#143)
senioroman4uk Jun 11, 2020
b11d859
Bump sdk transformer lib to version 2.0.1 (#145)
carlzogh Jun 15, 2020
c440aab
Remove deprecated aws-lambda-java-log4j library from repo (#146)
carlzogh Jun 19, 2020
659fe07
Fixes Base64 enconding for ALB and API Gateway HTTP events (#150)
galquezar Jul 30, 2020
7118564
Pre-release of events version `3.1.1` and sdk-transformer version `2.…
msailes Jul 30, 2020
d262d0f
Add Kafka Event (#154)
prajesh1 Aug 11, 2020
9b8dbc9
Stage events v3.2.0 and sdk-transformer v2.0.3 (#155)
carlzogh Aug 11, 2020
c3aec20
Implementation of Amazon Connect event (#140)
msailes Sep 14, 2020
6d489a8
Added support for Secret Manager rotation event (#130)
msailes Sep 14, 2020
56f021d
Initial CloudFormation event (#138)
msailes Sep 14, 2020
6e28f20
Update RELEASE.CHANGELOG.md for events lib (#144)
Sep 14, 2020
653dbcb
Add support for Lambda Destination Event (#139)
msailes Sep 14, 2020
bc4ad82
minor: Use full month name in RELEASE.CHANGELOG.md files
carlzogh Sep 14, 2020
f4297c9
Bump events to 3.3.0 and SDK transformer to 2.0.4
carlzogh Sep 14, 2020
379ed76
Add new events to list of supported event models in README.md
carlzogh Sep 15, 2020
7d4fbde
Add multiValueQueryStringParameters to ALB Event (#163)
dhobbs Sep 23, 2020
cf251e6
Stage events 3.3.1 and sdk-transformer 2.0.5
carlzogh Sep 23, 2020
27c745a
Add Lambda and IAM authorizers to APIGatewayV2HTTPEvent request conte…
Tolledo Oct 7, 2020
3cee665
Fix NPE when UserIdentity is null
carlzogh Oct 7, 2020
b751132
Add API Gateway custom authorizer events (V1 & V2) and Simple IAM Pol…
msailes Oct 7, 2020
b1d34f5
Stage events v3.4.0 and sdk-transformer 2.0.6 (#170)
carlzogh Oct 7, 2020
bf2f2fb
Update README.md with latest versions of the events and sdk-transform…
carlzogh Oct 7, 2020
7ea99f9
Add S3 batch event and response (#179)
msailes Oct 28, 2020
f820712
Stage events v3.5.0 and sdk-transformer v2.0.7 (#181)
carlzogh Oct 28, 2020
2426626
Add ActiveMQ event (#185)
prajesh1 Nov 6, 2020
f12742c
Stage events 3.6.0 and sdk-transformer 2.0.8 (#188)
carlzogh Nov 6, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions .github/workflows/maven-build-all.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# This workflow will build all Java packages in this project with Maven (Java 8)

name: Java CI with Maven

on:
push:
branches: [ master ]
pull_request:
branches: [ '*' ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8

# Install base modules
- name: Build core with Maven
run: mvn -B install --file aws-lambda-java-core/pom.xml
- name: Build events with Maven
run: mvn -B install --file aws-lambda-java-events/pom.xml

# Package modules that depend on base modules
- name: Build events-sdk-transformer with Maven
run: mvn -B package --file aws-lambda-java-events-sdk-transformer/pom.xml
- name: Build log4j2 with Maven
run: mvn -B package --file aws-lambda-java-log4j2/pom.xml
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,10 @@

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# Maven build
target/

# IDEA internal
*.iml
.idea
70 changes: 37 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
# AWS Lambda Java Support Libraries
Interface definitions for Java code running on the AWS Lambda platform.

For issues and questions, you can start with our [FAQ](https://aws.amazon.com/lambda/faqs/) and the [AWS forums](https://forums.aws.amazon.com/forum.jspa?forumID=186)
For issues and questions, you can start with our [FAQ](https://aws.amazon.com/lambda/faqs/)
and the [AWS forums](https://forums.aws.amazon.com/forum.jspa?forumID=186)

To get started writing AWS Lambda functions in Java, check out the [official documentation] (http://docs.aws.amazon.com/lambda/latest/dg/java-gs.html).
To get started writing AWS Lambda functions in Java, check out the [official documentation](http://docs.aws.amazon.com/lambda/latest/dg/java-gs.html).

# Disclaimer of use

Each of the supplied packages should be used without modification. Removing
dependencies, adding conflicting dependencies, or selectively including classes
from the packages can result in unexpected behavior.

# Recent Updates!
# Release Notes

* ### [SQS Support](https://github.com/aws/aws-lambda-java-libs/commit/9a74fdc9d92b5d7f73ae05660090e65cbd098360)
* ### [Kinesis Analytics Support](https://github.com/aws/aws-lambda-java-libs/commit/943352c7f0256afe82773e664e887e1593303508)
* ### [2017 Java Events Update](https://github.com/aws/aws-lambda-java-libs/tree/master/aws-lambda-java-events)
* ### [Log4j2 Support](https://github.com/aws/aws-lambda-java-libs/tree/master/aws-lambda-java-log4j2)
Check out the per-module release notes:
- [aws-lambda-java-core](aws-lambda-java-core/RELEASE.CHANGELOG.md)
- [aws-lambda-java-events](aws-lambda-java-events/RELEASE.CHANGELOG.md)
- [aws-lambda-java-events-sdk-transformer](aws-lambda-java-events-sdk-transformer/RELEASE.CHANGELOG.md)
- [aws-lambda-java-log4j2](aws-lambda-java-log4j2/RELEASE.CHANGELOG.md)

# Where to get packages
___
Expand All @@ -27,67 +29,69 @@ ___
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.1.0</version>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<version>2.2.2</version>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-log4j</artifactId>
<version>1.0.0</version>
<artifactId>aws-lambda-java-events-sdk-transformer</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-log4j2</artifactId>
<version>1.0.0</version>
<version>1.2.0</version>
</dependency>
```

[Gradle](https://gradle.org)

```groovy
'com.amazonaws:aws-lambda-java-core:1.1.0'
'com.amazonaws:aws-lambda-java-events:2.2.2'
'com.amazonaws:aws-lambda-java-log4j:1.0.0'
'com.amazonaws:aws-lambda-java-log4j2:1.0.0'
'com.amazonaws:aws-lambda-java-core:1.2.1'
'com.amazonaws:aws-lambda-java-events:3.4.0'
'com.amazonaws:aws-lambda-java-events-sdk-transformer:2.0.6'
'com.amazonaws:aws-lambda-java-log4j2:1.2.0'
```

[Leiningen](http://leiningen.org) and [Boot](http://boot-clj.com)

```clojure
[com.amazonaws/aws-lambda-java-core "1.1.0"]
[com.amazonaws/aws-lambda-java-events "2.2.2"]
[com.amazonaws/aws-lambda-java-log4j "1.0.0"]
[com.amazonaws/aws-lambda-java-log4j2 "1.0.0"]
[com.amazonaws/aws-lambda-java-core "1.2.1"]
[com.amazonaws/aws-lambda-java-events "3.4.0"]
[com.amazonaws/aws-lambda-java-events-sdk-transformer "2.0.6"]
[com.amazonaws/aws-lambda-java-log4j2 "1.2.0"]
```

[sbt](http://www.scala-sbt.org)

```scala
"com.amazonaws" % "aws-lambda-java-core" % "1.1.0"
"com.amazonaws" % "aws-lambda-java-events" % "2.2.2"
"com.amazonaws" % "aws-lambda-java-log4j" % "1.0.0"
"com.amazonaws" % "aws-lambda-java-log4j2" % "1.0.0"
"com.amazonaws" % "aws-lambda-java-core" % "1.2.1"
"com.amazonaws" % "aws-lambda-java-events" % "3.4.0"
"com.amazonaws" % "aws-lambda-java-events-sdk-transformer" % "2.0.6"
"com.amazonaws" % "aws-lambda-java-log4j2" % "1.2.0"
```

# Using aws-lambda-java-core

This package defines the Lambda [Context](http://docs.aws.amazon.com/lambda/latest/dg/java-context-object.html)
object as well as [interfaces](http://docs.aws.amazon.com/lambda/latest/dg/java-handler-using-predefined-interfaces.html) that Lambda accepts.
This package defines the Lambda [Context](http://docs.aws.amazon.com/lambda/latest/dg/java-context-object.html) object
as well as [interfaces](http://docs.aws.amazon.com/lambda/latest/dg/java-handler-using-predefined-interfaces.html) that Lambda accepts.

# Using aws-lambda-java-events

This package defines [event sources](http://docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html) that AWS Lambda natively accepts. See the [documentation](https://github.com/aws/aws-lambda-java-libs/tree/master/aws-lambda-java-events) for more information.
This package defines [event sources](http://docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html) that AWS Lambda natively accepts.
See the [documentation](aws-lambda-java-events/README.md) for more information.

# Using aws-lambda-java-log4j2
# Using aws-lambda-java-events-sdk-transformer

This package defines the Lambda adapter to use with log4j version 2. See
[documentation](https://github.com/aws/aws-lambda-java-libs/tree/master/aws-lambda-java-log4j2) for how to use the adapter.
This package provides helper classes/methods to use alongside `aws-lambda-java-events` in order to transform
Lambda input event model objects into SDK-compatible output model objects.
See the [documentation](aws-lambda-java-events-sdk-transformer/README.md) for more information.

# Using aws-lambda-java-log4j (Not recommended)
# Using aws-lambda-java-log4j2

This package defines the Lambda adapter to use with log4j version 1. See
the [official documentation](http://docs.aws.amazon.com/lambda/latest/dg/java-logging.html#java-wt-logging-using-log4j) for how to use this adapter.
This package defines the Lambda adapter to use with log4j version 2.
See the [README](aws-lambda-java-log4j2/README.md) or the [official documentation](http://docs.aws.amazon.com/lambda/latest/dg/java-logging.html#java-wt-logging-using-log4j) for information on how to use the adapter.
18 changes: 18 additions & 0 deletions aws-lambda-java-core/RELEASE.CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
### 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))
- Updated `nexusUrl` in `pom.xml` file ([#108](https://github.com/aws/aws-lambda-java-libs/issues/108))

### November 21, 2017
`1.2.0`:
- Added method to log byte array to `LambdaLogger`

### October 07, 2015
`1.1.0`:
- Added `LambdaRuntime` and `LambdaRuntimeInternal`
- Added `getInstallationId()` to `Client`
- Added `getFunctionVersion()` and `getInvokedFunctionArn()` to `Context`

### June 15, 2015
`1.0.0`:
- Initial support for java in AWS Lambda
13 changes: 10 additions & 3 deletions aws-lambda-java-core/pom.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.2.0</version>
<version>1.2.1</version>
<packaging>jar</packaging>

<name>AWS Lambda Java Core Library</name>
Expand All @@ -29,6 +31,11 @@
</developer>
</developers>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

<distributionManagement>
<repository>
<id>sonatype-nexus-staging</id>
Expand Down Expand Up @@ -114,7 +121,7 @@
<extensions>true</extensions>
<configuration>
<serverId>sonatype-nexus-staging</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<nexusUrl>https://aws.oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>false</autoReleaseAfterClose>
</configuration>
</plugin>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.amazonaws.services.lambda.runtime;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* Indicates this the API Gateway endpoint for this Lambda Function.
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Endpoint {

String value();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.amazonaws.services.lambda.runtime;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* Indicates that the name of this Lambda Function in the AWS Console.
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface FunctionName {

String value();

}
115 changes: 115 additions & 0 deletions aws-lambda-java-events-sdk-transformer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# AWS Lambda Java Events SDK Transformer Library

### About

Provides helper classes/methods to use alongside `aws-lambda-java-events` in order to transform Lambda input event model
objects into SDK-compatible output model objects
(eg. DynamodbEvent to a List of records writable back to DynamoDB through the AWS DynamoDB SDK v2).


### Getting started

Add the following Apache Maven dependencies to your `pom.xml` file:

```xml
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events-sdk-transformer</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<version>3.6.0</version>
</dependency>
</dependencies>
```

To use this library as a transformer to the AWS DynamoDB Java SDK v2, also add the following dependency to your `pom.xml` file:

```xml
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>dynamodb</artifactId>
<version>2.13.18</version>
</dependency>
</dependencies>
```


### Example Usage

To convert a full `DynamodbEvent` object to an SDK v2 compatible `List<Record>`:
```java
import com.amazonaws.services.lambda.runtime.events.transformers.DynamodbEventTransformer;

public class DDBEventProcessor implements RequestHandler<DynamodbEvent, String> {

public String handleRequest(DynamodbEvent ddbEvent, Context context) {
// Process input event
List<Record> convertedRecords = DynamodbEventTransformer.toRecordsV2(ddbEvent);
// Modify records as needed and write back to DynamoDB using the DynamoDB AWS SDK for Java 2.0
}
}
```

To convert a single `DynamodbEvent.DynamodbStreamRecord` object to an SDK v2 compatible `Record`:
```java
import com.amazonaws.services.lambda.runtime.events.transformers.dynamodb.DynamodbRecordTransformer;

public class MyClass {

public void myMethod(DynamodbEvent.DynamodbStreamRecord record) {
// ...
Record convertedRecord = DynamodbRecordTransformer.toRecordV2(record);
// ...
}
}
```

To convert a `StreamRecord` object originating from a `DynamodbEvent` to an SDK v2 compatible `StreamRecord`:
```java
import com.amazonaws.services.lambda.runtime.events.transformers.dynamodb.DynamodbStreamRecordTransformer;

public class MyClass {

public void myMethod(StreamRecord streamRecord) {
// ...
software.amazon.awssdk.services.dynamodb.model.StreamRecord convertedStreamRecord =
DynamodbStreamRecordTransformer.toStreamRecordV2(streamRecord);
// ...
}
}
```

To convert an `AttributeValue` object originating from a `DynamodbEvent` to an SDK v2 compatible `AttributeValue`:
```java
import com.amazonaws.services.lambda.runtime.events.transformers.dynamodb.DynamodbAttributeValueTransformer;

public class MyClass {

public void myMethod(AttributeValue attributeValue) {
// ...
software.amazon.awssdk.services.dynamodb.model.AttributeValue convertedAttributeValue =
DynamodbAttributeValueTransformer.toAttributeValueV2(attributeValue);
// ...
}
}
```

To convert an `Identity` object originating from a `DynamodbEvent` to an SDK v2 compatible `Identity`:
```java
import com.amazonaws.services.lambda.runtime.events.transformers.dynamodb.DynamodbIdentityTransformer;

public class MyClass {

public void myMethod(Identity identity) {
// ...
software.amazon.awssdk.services.dynamodb.model.Identity convertedIdentity =
DynamodbIdentityTransformer.toIdentityV2(identity);
// ...
}
}
```
Loading