Skip to content

Commit f951911

Browse files
committed
java events 2.0.1 - fixed KinesisFirehose
KinesisFirehose event schema was wrong. approximateArrivalTimestamp is represented as a millisecond epoch instead of a DateTime object. Other SDK classes use second epoch and are modeled as java.util.Date objects. To correctly deserialize the KinesisFirehoseEvent, the timestamp must be modeled as a Long.
1 parent a82afbe commit f951911

File tree

3 files changed

+14
-17
lines changed

3 files changed

+14
-17
lines changed

README.md

+5-6
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ To get started writing AWS Lambda functions in Java, check out the [official doc
99

1010
Each of the supplied packages should be used without modification. Removing
1111
dependencies, adding conflicting dependencies, or selectively including classes
12-
from the packages can result in unexpected behavior, which the AWS Lambda team
13-
is not responsible for.
12+
from the packages can result in unexpected behavior.
1413

1514
# Recent Updates!
1615

@@ -31,7 +30,7 @@ ___
3130
<dependency>
3231
<groupId>com.amazonaws</groupId>
3332
<artifactId>aws-lambda-java-events</artifactId>
34-
<version>2.0</version>
33+
<version>2.0.1</version>
3534
</dependency>
3635
<dependency>
3736
<groupId>com.amazonaws</groupId>
@@ -49,7 +48,7 @@ ___
4948

5049
```groovy
5150
'com.amazonaws:aws-lambda-java-core:1.1.0'
52-
'com.amazonaws:aws-lambda-java-events:2.0'
51+
'com.amazonaws:aws-lambda-java-events:2.0.1'
5352
'com.amazonaws:aws-lambda-java-log4j:1.0.0'
5453
'com.amazonaws:aws-lambda-java-log4j2:1.0.0'
5554
```
@@ -58,7 +57,7 @@ ___
5857

5958
```clojure
6059
[com.amazonaws/aws-lambda-java-core "1.1.0"]
61-
[com.amazonaws/aws-lambda-java-events "2.0"]
60+
[com.amazonaws/aws-lambda-java-events "2.0.1"]
6261
[com.amazonaws/aws-lambda-java-log4j "1.0.0"]
6362
[com.amazonaws/aws-lambda-java-log4j2 "1.0.0"]
6463
```
@@ -67,7 +66,7 @@ ___
6766

6867
```scala
6968
"com.amazonaws" % "aws-lambda-java-core" % "1.1.0"
70-
"com.amazonaws" % "aws-lambda-java-events" % "2.0"
69+
"com.amazonaws" % "aws-lambda-java-events" % "2.0.1"
7170
"com.amazonaws" % "aws-lambda-java-log4j" % "1.0.0"
7271
"com.amazonaws" % "aws-lambda-java-log4j2" % "1.0.0"
7372
```

aws-lambda-java-events/README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ so the dependencies section in the pom.xml file would like this
4444
<dependency>
4545
<groupId>com.amazonaws</groupId>
4646
<artifactId>aws-lambda-java-events</artifactId>
47-
<version>2.0</version>
47+
<version>2.0.1</version>
4848
</dependency>
4949
...
5050
</dependencies>
@@ -65,7 +65,7 @@ For the S3 event the pom would look like this:
6565
<dependency>
6666
<groupId>com.amazonaws</groupId>
6767
<artifactId>aws-lambda-java-events</artifactId>
68-
<version>2.0</version>
68+
<version>2.0.1</version>
6969
</dependency>
7070
<dependency>
7171
<groupId>com.amazonaws</groupId>
@@ -91,7 +91,7 @@ For the Kinesis event
9191
<dependency>
9292
<groupId>com.amazonaws</groupId>
9393
<artifactId>aws-lambda-java-events</artifactId>
94-
<version>2.0</version>
94+
<version>2.0.1</version>
9595
</dependency>
9696
<dependency>
9797
<groupId>com.amazonaws</groupId>
@@ -117,7 +117,7 @@ For the Dynamodb event
117117
<dependency>
118118
<groupId>com.amazonaws</groupId>
119119
<artifactId>aws-lambda-java-events</artifactId>
120-
<version>2.0</version>
120+
<version>2.0.1</version>
121121
</dependency>
122122
<dependency>
123123
<groupId>com.amazonaws</groupId>

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

+5-7
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313

1414
package com.amazonaws.services.lambda.runtime.events;
1515

16-
import org.joda.time.DateTime;
17-
1816
import java.io.Serializable;
1917
import java.nio.ByteBuffer;
2018
import java.nio.charset.StandardCharsets;
@@ -53,7 +51,7 @@ public static class Record implements Serializable, Cloneable {
5351

5452
private Long approximateArrivalEpoch;
5553

56-
private DateTime approximateArrivalTimestamp;
54+
private Long approximateArrivalTimestamp;
5755

5856
private Map<String, String> kinesisRecordMetadata;
5957

@@ -155,22 +153,22 @@ public Record withApproximateArrivalEpoch(Long approximateArrivalEpoch) {
155153
/**
156154
* @return approximate arrival timestamp
157155
*/
158-
public DateTime getApproximateArrivalTimestamp() {
156+
public Long getApproximateArrivalTimestamp() {
159157
return this.approximateArrivalTimestamp;
160158
}
161159

162160
/**
163161
* @param approximateArrivalTimestamp approximate arrival timestamp
164162
*/
165-
public void setApproximateArrivalTimestamp(DateTime approximateArrivalTimestamp) {
163+
public void setApproximateArrivalTimestamp(Long approximateArrivalTimestamp) {
166164
this.approximateArrivalTimestamp = approximateArrivalTimestamp;
167165
}
168166

169167
/**
170168
* @param approximateArrivalTimestamp approximate arrival timestamp
171169
* @return Record
172170
*/
173-
public Record withApproximateArrivalTimestamp(DateTime approximateArrivalTimestamp) {
171+
public Record withApproximateArrivalTimestamp(Long approximateArrivalTimestamp) {
174172
setApproximateArrivalTimestamp(approximateArrivalTimestamp);
175173
return this;
176174
}
@@ -210,7 +208,7 @@ public String toString() {
210208
StringBuilder sb = new StringBuilder();
211209
sb.append("{");
212210
if (getData() != null)
213-
sb.append("data: ").append(new String(Base64.getDecoder().decode(getData().array()), StandardCharsets.UTF_8)).append(",");
211+
sb.append("data: ").append(getData().toString()).append(",");
214212
if (getRecordId() != null)
215213
sb.append("recordId: ").append(getRecordId()).append(",");
216214
if (getApproximateArrivalEpoch() != null)

0 commit comments

Comments
 (0)