From cb25f12c1f48d64f90c889b6420f4ca0eec1edfb Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Wed, 8 Nov 2023 16:30:44 +0200
Subject: [PATCH 01/13] Introducing sub-modules in the idempotency module
---
.../powertools-examples-idempotency/pom.xml | 4 +-
.../src/main/java/helloworld/App.java | 2 +-
powertools-idempotency/pom.xml | 54 ++----------
.../powertools-idempotency-common/pom.xml | 51 +++++++++++
.../powertools/idempotency/Constants.java | 0
.../powertools/idempotency/Idempotency.java | 0
.../idempotency/IdempotencyConfig.java | 0
.../idempotency/IdempotencyKey.java | 0
.../powertools/idempotency/Idempotent.java | 0
...IdempotencyAlreadyInProgressException.java | 0
.../IdempotencyConfigurationException.java | 0
...IdempotencyInconsistentStateException.java | 0
...IdempotencyItemAlreadyExistsException.java | 0
.../IdempotencyItemNotFoundException.java | 0
.../exceptions/IdempotencyKeyException.java | 0
.../IdempotencyPersistenceLayerException.java | 0
.../IdempotencyValidationException.java | 0
.../internal/IdempotencyHandler.java | 0
.../internal/IdempotentAspect.java | 0
.../idempotency/internal/cache/LRUCache.java | 0
.../persistence/BasePersistenceStore.java | 0
.../idempotency/persistence/DataRecord.java | 0
.../persistence/PersistenceStore.java | 0
.../handlers/IdempotencyEnabledFunction.java | 0
.../handlers/IdempotencyInternalFunction.java | 0
...dempotencyInternalFunctionInternalKey.java | 0
.../IdempotencyInternalFunctionInvalid.java | 0
.../IdempotencyInternalFunctionVoid.java | 0
.../handlers/IdempotencyStringFunction.java | 0
.../IdempotencyWithErrorFunction.java | 0
.../internal/IdempotencyAspectTest.java | 0
.../internal/cache/LRUCacheTest.java | 0
.../powertools/idempotency/model/Basket.java | 0
.../powertools/idempotency/model/Product.java | 0
.../persistence/BasePersistenceStoreTest.java | 0
.../src/test/resources/apigw_event.json | 0
.../src/test/resources/apigw_event2.json | 0
.../powertools-idempotency-dynamodb/pom.xml | 88 +++++++++++++++++++
.../DynamoDBPersistenceStore.java | 5 +-
.../DynamoDBConfig.java | 2 +-
.../IdempotencyTest.java | 4 +-
.../handlers/IdempotencyFunction.java | 4 +-
.../DynamoDBPersistenceStoreTest.java | 5 +-
43 files changed, 162 insertions(+), 57 deletions(-)
create mode 100644 powertools-idempotency/powertools-idempotency-common/pom.xml
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/Constants.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotency.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyKey.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyAlreadyInProgressException.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyConfigurationException.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyInconsistentStateException.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemAlreadyExistsException.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemNotFoundException.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyKeyException.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyPersistenceLayerException.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyValidationException.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCache.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyEnabledFunction.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunction.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInternalKey.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInvalid.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionVoid.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyStringFunction.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyWithErrorFunction.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/model/Basket.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/model/Product.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/resources/apigw_event.json (100%)
rename powertools-idempotency/{ => powertools-idempotency-common}/src/test/resources/apigw_event2.json (100%)
create mode 100644 powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
rename powertools-idempotency/{src/main/java/software/amazon/lambda/powertools/idempotency/persistence => powertools-idempotency-dynamodb/src/main/java/software.amazon.lambda.powertools.idempotency.dynamodb.persistence}/DynamoDBPersistenceStore.java (98%)
rename powertools-idempotency/{src/test/java/software/amazon/lambda/powertools/idempotency => powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb}/DynamoDBConfig.java (98%)
rename powertools-idempotency/{src/test/java/software/amazon/lambda/powertools/idempotency => powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb}/IdempotencyTest.java (93%)
rename powertools-idempotency/{src/test/java/software/amazon/lambda/powertools/idempotency => powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb}/handlers/IdempotencyFunction.java (95%)
rename powertools-idempotency/{src/test/java/software/amazon/lambda/powertools/idempotency => powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb}/persistence/DynamoDBPersistenceStoreTest.java (98%)
diff --git a/examples/powertools-examples-idempotency/pom.xml b/examples/powertools-examples-idempotency/pom.xml
index 19d7a2272..39d6a8172 100644
--- a/examples/powertools-examples-idempotency/pom.xml
+++ b/examples/powertools-examples-idempotency/pom.xml
@@ -41,7 +41,7 @@
software.amazon.lambda
- powertools-idempotency
+ powertools-idempotency-dynamodb
${project.version}
@@ -95,7 +95,7 @@
software.amazon.lambda
- powertools-idempotency
+ powertools-idempotency-dynamodb
diff --git a/examples/powertools-examples-idempotency/src/main/java/helloworld/App.java b/examples/powertools-examples-idempotency/src/main/java/helloworld/App.java
index cf0c0ee31..201a3254e 100644
--- a/examples/powertools-examples-idempotency/src/main/java/helloworld/App.java
+++ b/examples/powertools-examples-idempotency/src/main/java/helloworld/App.java
@@ -32,7 +32,7 @@
import software.amazon.lambda.powertools.idempotency.Idempotency;
import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
import software.amazon.lambda.powertools.idempotency.Idempotent;
-import software.amazon.lambda.powertools.idempotency.persistence.DynamoDBPersistenceStore;
+import software.amazon.lambda.powertools.idempotency.dynamodb.persistence.DynamoDBPersistenceStore;
import software.amazon.lambda.powertools.logging.Logging;
import software.amazon.lambda.powertools.utilities.JsonConfig;
diff --git a/powertools-idempotency/pom.xml b/powertools-idempotency/pom.xml
index fd53cd9e2..92e1dd88a 100644
--- a/powertools-idempotency/pom.xml
+++ b/powertools-idempotency/pom.xml
@@ -25,13 +25,19 @@
powertools-idempotency
- jar
+ pom
- Powertools for AWS Lambda (Java) - Idempotency
+ Powertools for AWS Lambda (Java) library Idempotency
+
+
+ powertools-idempotency-common
+ powertools-idempotency-dynamodb
+
+
org.aspectj
@@ -50,20 +56,6 @@
com.amazonaws
aws-lambda-java-core
-
- software.amazon.awssdk
- dynamodb
-
-
- software.amazon.awssdk
- netty-nio-client
-
-
- software.amazon.awssdk
- apache-client
-
-
-
software.amazon.awssdk
url-connection-client
@@ -106,20 +98,6 @@
aws-lambda-java-tests
test
-
- com.amazonaws
- DynamoDBLocal
- [1.12,2.0)
- test
-
-
-
- io.github.ganadist.sqlite4java
- libsqlite4java-osx-aarch64
- 1.0.392
- test
- dylib
-
@@ -150,22 +128,6 @@
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.3.0
-
-
-
- software.amazon.awssdk.enhanced.dynamodb
-
-
-
-
-
- org.apache.maven.plugins
- maven-checkstyle-plugin
-
\ No newline at end of file
diff --git a/powertools-idempotency/powertools-idempotency-common/pom.xml b/powertools-idempotency/powertools-idempotency-common/pom.xml
new file mode 100644
index 000000000..9a3ca931d
--- /dev/null
+++ b/powertools-idempotency/powertools-idempotency-common/pom.xml
@@ -0,0 +1,51 @@
+
+
+
+
+ 4.0.0
+
+
+ software.amazon.lambda
+ powertools-idempotency
+ 2.0.0-SNAPSHOT
+
+
+ powertools-idempotency-common
+ jar
+
+ Powertools for AWS Lambda (Java) library Idempotency - Common
+
+ Idempotency module common implementation
+
+
+
+
+ software.amazon.lambda
+ powertools-serialization
+
+
+ com.amazonaws
+ aws-lambda-java-core
+
+
+ software.amazon.awssdk
+ url-connection-client
+ ${aws.sdk.version}
+
+
+
+
\ No newline at end of file
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/Constants.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Constants.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/Constants.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Constants.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotency.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotency.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotency.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotency.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyKey.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyKey.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyKey.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyKey.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyAlreadyInProgressException.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyAlreadyInProgressException.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyAlreadyInProgressException.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyAlreadyInProgressException.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyConfigurationException.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyConfigurationException.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyConfigurationException.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyConfigurationException.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyInconsistentStateException.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyInconsistentStateException.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyInconsistentStateException.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyInconsistentStateException.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemAlreadyExistsException.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemAlreadyExistsException.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemAlreadyExistsException.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemAlreadyExistsException.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemNotFoundException.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemNotFoundException.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemNotFoundException.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemNotFoundException.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyKeyException.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyKeyException.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyKeyException.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyKeyException.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyPersistenceLayerException.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyPersistenceLayerException.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyPersistenceLayerException.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyPersistenceLayerException.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyValidationException.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyValidationException.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyValidationException.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyValidationException.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCache.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCache.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCache.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCache.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java b/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java
similarity index 100%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java
rename to powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyEnabledFunction.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyEnabledFunction.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyEnabledFunction.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyEnabledFunction.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunction.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunction.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunction.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunction.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInternalKey.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInternalKey.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInternalKey.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInternalKey.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInvalid.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInvalid.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInvalid.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInvalid.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionVoid.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionVoid.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionVoid.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionVoid.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyStringFunction.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyStringFunction.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyStringFunction.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyStringFunction.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyWithErrorFunction.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyWithErrorFunction.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyWithErrorFunction.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyWithErrorFunction.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/model/Basket.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/model/Basket.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/model/Basket.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/model/Basket.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/model/Product.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/model/Product.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/model/Product.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/model/Product.java
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java b/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java
similarity index 100%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java
rename to powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java
diff --git a/powertools-idempotency/src/test/resources/apigw_event.json b/powertools-idempotency/powertools-idempotency-common/src/test/resources/apigw_event.json
similarity index 100%
rename from powertools-idempotency/src/test/resources/apigw_event.json
rename to powertools-idempotency/powertools-idempotency-common/src/test/resources/apigw_event.json
diff --git a/powertools-idempotency/src/test/resources/apigw_event2.json b/powertools-idempotency/powertools-idempotency-common/src/test/resources/apigw_event2.json
similarity index 100%
rename from powertools-idempotency/src/test/resources/apigw_event2.json
rename to powertools-idempotency/powertools-idempotency-common/src/test/resources/apigw_event2.json
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
new file mode 100644
index 000000000..8853ce8ce
--- /dev/null
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
@@ -0,0 +1,88 @@
+
+
+
+
+ 4.0.0
+
+
+ software.amazon.lambda
+ powertools-idempotency
+ 2.0.0-SNAPSHOT
+
+
+ powertools-idempotency-dynamodb
+ jar
+
+ Powertools for AWS Lambda (Java) library Idempotency - DynamoDB
+
+ DynamoDB implementation for the idempotency module
+
+
+
+
+ software.amazon.lambda
+ powertools-idempotency-common
+ ${project.version}
+
+
+ software.amazon.awssdk
+ dynamodb
+
+
+ software.amazon.awssdk
+ netty-nio-client
+
+
+ software.amazon.awssdk
+ apache-client
+
+
+
+
+
+
+ com.amazonaws
+ DynamoDBLocal
+ [1.12,2.0)
+ test
+
+
+
+ io.github.ganadist.sqlite4java
+ libsqlite4java-osx-aarch64
+ 1.0.392
+ test
+ dylib
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 3.3.0
+
+
+
+ software.amazon.awssdk.enhanced.dynamodb
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DynamoDBPersistenceStore.java b/powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software.amazon.lambda.powertools.idempotency.dynamodb.persistence/DynamoDBPersistenceStore.java
similarity index 98%
rename from powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DynamoDBPersistenceStore.java
rename to powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software.amazon.lambda.powertools.idempotency.dynamodb.persistence/DynamoDBPersistenceStore.java
index 054f61ef3..64608d202 100644
--- a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DynamoDBPersistenceStore.java
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software.amazon.lambda.powertools.idempotency.dynamodb.persistence/DynamoDBPersistenceStore.java
@@ -12,7 +12,7 @@
*
*/
-package software.amazon.lambda.powertools.idempotency.persistence;
+package software.amazon.lambda.powertools.idempotency.dynamodb.persistence;
import static software.amazon.lambda.powertools.common.internal.LambdaConstants.AWS_REGION_ENV;
import static software.amazon.lambda.powertools.common.internal.LambdaConstants.LAMBDA_FUNCTION_NAME_ENV;
@@ -44,6 +44,9 @@
import software.amazon.lambda.powertools.idempotency.Constants;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemAlreadyExistsException;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemNotFoundException;
+import software.amazon.lambda.powertools.idempotency.persistence.BasePersistenceStore;
+import software.amazon.lambda.powertools.idempotency.persistence.DataRecord;
+import software.amazon.lambda.powertools.idempotency.persistence.PersistenceStore;
/**
* DynamoDB version of the {@link PersistenceStore}. Will store idempotency data in DynamoDB.
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/DynamoDBConfig.java b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/DynamoDBConfig.java
similarity index 98%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/DynamoDBConfig.java
rename to powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/DynamoDBConfig.java
index 66ddb53ac..30b4976d7 100644
--- a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/DynamoDBConfig.java
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/DynamoDBConfig.java
@@ -12,7 +12,7 @@
*
*/
-package software.amazon.lambda.powertools.idempotency;
+package software.amazon.lambda.powertools.idempotency.dynamodb;
import com.amazonaws.services.dynamodbv2.local.main.ServerRunner;
import com.amazonaws.services.dynamodbv2.local.server.DynamoDBProxyServer;
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/IdempotencyTest.java b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/IdempotencyTest.java
similarity index 93%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/IdempotencyTest.java
rename to powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/IdempotencyTest.java
index c94fec3db..be915b610 100644
--- a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/IdempotencyTest.java
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/IdempotencyTest.java
@@ -12,7 +12,7 @@
*
*/
-package software.amazon.lambda.powertools.idempotency;
+package software.amazon.lambda.powertools.idempotency.dynamodb;
import static org.assertj.core.api.Assertions.assertThat;
@@ -25,7 +25,7 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import software.amazon.awssdk.services.dynamodb.model.ScanRequest;
-import software.amazon.lambda.powertools.idempotency.handlers.IdempotencyFunction;
+import software.amazon.lambda.powertools.idempotency.dynamodb.handlers.IdempotencyFunction;
public class IdempotencyTest extends DynamoDBConfig {
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyFunction.java b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/handlers/IdempotencyFunction.java
similarity index 95%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyFunction.java
rename to powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/handlers/IdempotencyFunction.java
index 43e191fc2..6acf025a2 100644
--- a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyFunction.java
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/handlers/IdempotencyFunction.java
@@ -12,7 +12,7 @@
*
*/
-package software.amazon.lambda.powertools.idempotency.handlers;
+package software.amazon.lambda.powertools.idempotency.dynamodb.handlers;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
@@ -31,7 +31,7 @@
import software.amazon.lambda.powertools.idempotency.Idempotency;
import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
import software.amazon.lambda.powertools.idempotency.Idempotent;
-import software.amazon.lambda.powertools.idempotency.persistence.DynamoDBPersistenceStore;
+import software.amazon.lambda.powertools.idempotency.dynamodb.persistence.DynamoDBPersistenceStore;
import software.amazon.lambda.powertools.utilities.JsonConfig;
public class IdempotencyFunction implements RequestHandler {
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/DynamoDBPersistenceStoreTest.java b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/persistence/DynamoDBPersistenceStoreTest.java
similarity index 98%
rename from powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/DynamoDBPersistenceStoreTest.java
rename to powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/persistence/DynamoDBPersistenceStoreTest.java
index b19cebfe1..4183cc338 100644
--- a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/DynamoDBPersistenceStoreTest.java
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/persistence/DynamoDBPersistenceStoreTest.java
@@ -12,7 +12,7 @@
*
*/
-package software.amazon.lambda.powertools.idempotency.persistence;
+package software.amazon.lambda.powertools.idempotency.dynamodb.persistence;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -39,10 +39,11 @@
import software.amazon.awssdk.services.dynamodb.model.ScalarAttributeType;
import software.amazon.awssdk.services.dynamodb.model.ScanRequest;
import software.amazon.lambda.powertools.idempotency.Constants;
-import software.amazon.lambda.powertools.idempotency.DynamoDBConfig;
+import software.amazon.lambda.powertools.idempotency.dynamodb.DynamoDBConfig;
import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemAlreadyExistsException;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemNotFoundException;
+import software.amazon.lambda.powertools.idempotency.persistence.DataRecord;
/**
* These test are using DynamoDBLocal and sqlite, see https://nickolasfisher.com/blog/Configuring-an-In-Memory-DynamoDB-instance-with-Java-for-Integration-Testing
From 2c5464c809579b876583ab2dfe6cddd3f8329094 Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Wed, 8 Nov 2023 16:31:14 +0200
Subject: [PATCH 02/13] Updating the idempotency documentation
---
docs/utilities/idempotency.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/utilities/idempotency.md b/docs/utilities/idempotency.md
index 5392b8d4c..f4defbdfd 100644
--- a/docs/utilities/idempotency.md
+++ b/docs/utilities/idempotency.md
@@ -35,7 +35,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl
...
software.amazon.lambda
- powertools-idempotency
+ powertools-idempotency-dynamodb
{{ powertools.version }}
...
@@ -56,7 +56,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl
software.amazon.lambda
- powertools-idempotency
+ powertools-idempotency-dynamodb
@@ -80,7 +80,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl
...
software.amazon.lambda
- powertools-idempotency
+ powertools-idempotency-dynamodb
{{ powertools.version }}
...
@@ -101,7 +101,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl
software.amazon.lambda
- powertools-idempotency
+ powertools-idempotency-dynamodb
@@ -131,7 +131,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl
}
dependencies {
- aspect 'software.amazon.lambda:powertools-idempotency:{{ powertools.version }}'
+ aspect 'software.amazon.lambda:powertools-idempotency-dynamodb:{{ powertools.version }}'
}
sourceCompatibility = 11 // or higher
@@ -151,7 +151,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl
}
dependencies {
- aspect 'software.amazon.lambda:powertools-idempotency:{{ powertools.version }}'
+ aspect 'software.amazon.lambda:powertools-idempotency-dynamodb:{{ powertools.version }}'
}
sourceCompatibility = 1.8
From d63ce67049916900d4bd08a241ffc9c7ec1744de Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Thu, 9 Nov 2023 11:20:32 +0200
Subject: [PATCH 03/13] Move test resource to the dynamodb idempotency
sub-module
---
.../src/test/resources/apigw_event2.json | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-dynamodb}/src/test/resources/apigw_event2.json (100%)
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/resources/apigw_event2.json b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/resources/apigw_event2.json
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/resources/apigw_event2.json
rename to powertools-idempotency/powertools-idempotency-dynamodb/src/test/resources/apigw_event2.json
From bb3c613d242cbe6327a202a10b77f5fb4d639e68 Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Thu, 9 Nov 2023 12:27:51 +0200
Subject: [PATCH 04/13] Renaming common module to core and refactoring package
name for repo implementation
---
.../src/main/java/helloworld/App.java | 2 +-
powertools-idempotency/pom.xml | 2 +-
.../pom.xml | 2 +-
.../powertools/idempotency/Constants.java | 0
.../powertools/idempotency/Idempotency.java | 0
.../idempotency/IdempotencyConfig.java | 3 +-
.../idempotency/IdempotencyKey.java | 0
.../powertools/idempotency/Idempotent.java | 1 +
...IdempotencyAlreadyInProgressException.java | 0
.../IdempotencyConfigurationException.java | 0
...IdempotencyInconsistentStateException.java | 0
...IdempotencyItemAlreadyExistsException.java | 0
.../IdempotencyItemNotFoundException.java | 0
.../exceptions/IdempotencyKeyException.java | 0
.../IdempotencyPersistenceLayerException.java | 0
.../IdempotencyValidationException.java | 0
.../internal/IdempotencyHandler.java | 11 +++----
.../internal/IdempotentAspect.java | 9 +++---
.../idempotency/internal/cache/LRUCache.java | 0
.../persistence/BasePersistenceStore.java | 25 ++++++++--------
.../idempotency/persistence/DataRecord.java | 3 +-
.../persistence/PersistenceStore.java | 3 +-
.../handlers/IdempotencyEnabledFunction.java | 0
.../handlers/IdempotencyInternalFunction.java | 0
...dempotencyInternalFunctionInternalKey.java | 0
.../IdempotencyInternalFunctionInvalid.java | 0
.../IdempotencyInternalFunctionVoid.java | 0
.../handlers/IdempotencyStringFunction.java | 0
.../IdempotencyWithErrorFunction.java | 0
.../internal/IdempotencyAspectTest.java | 29 ++++++++++---------
.../internal/cache/LRUCacheTest.java | 4 +--
.../powertools/idempotency/model/Basket.java | 0
.../powertools/idempotency/model/Product.java | 0
.../persistence/BasePersistenceStoreTest.java | 15 +++++-----
.../src/test/resources/apigw_event.json | 0
.../powertools-idempotency-dynamodb/pom.xml | 2 +-
.../dynamodb}/DynamoDBPersistenceStore.java | 25 ++++++++--------
.../handlers/IdempotencyFunction.java | 19 ++++++------
.../DynamoDBPersistenceStoreTest.java | 21 +++++++-------
39 files changed, 94 insertions(+), 82 deletions(-)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/pom.xml (96%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/Constants.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotency.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java (99%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyKey.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java (99%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyAlreadyInProgressException.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyConfigurationException.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyInconsistentStateException.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemAlreadyExistsException.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemNotFoundException.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyKeyException.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyPersistenceLayerException.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyValidationException.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java (99%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java (99%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCache.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java (99%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java (99%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java (99%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyEnabledFunction.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunction.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInternalKey.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInvalid.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionVoid.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyStringFunction.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyWithErrorFunction.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java (99%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/model/Basket.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/model/Product.java (100%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java (99%)
rename powertools-idempotency/{powertools-idempotency-common => powertools-idempotency-core}/src/test/resources/apigw_event.json (100%)
rename powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/{software.amazon.lambda.powertools.idempotency.dynamodb.persistence => software/amazon/lambda/powertools/idempotency/persistence/dynamodb}/DynamoDBPersistenceStore.java (99%)
rename powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/{software.amazon.lambda.powertools.idempotency.dynamodb/persistence => software/amazon/lambda/powertools/idempotency/persistence/dynamodb}/DynamoDBPersistenceStoreTest.java (99%)
diff --git a/examples/powertools-examples-idempotency/src/main/java/helloworld/App.java b/examples/powertools-examples-idempotency/src/main/java/helloworld/App.java
index 201a3254e..0c4693230 100644
--- a/examples/powertools-examples-idempotency/src/main/java/helloworld/App.java
+++ b/examples/powertools-examples-idempotency/src/main/java/helloworld/App.java
@@ -32,7 +32,7 @@
import software.amazon.lambda.powertools.idempotency.Idempotency;
import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
import software.amazon.lambda.powertools.idempotency.Idempotent;
-import software.amazon.lambda.powertools.idempotency.dynamodb.persistence.DynamoDBPersistenceStore;
+import software.amazon.lambda.powertools.idempotency.persistence.dynamodb.DynamoDBPersistenceStore;
import software.amazon.lambda.powertools.logging.Logging;
import software.amazon.lambda.powertools.utilities.JsonConfig;
diff --git a/powertools-idempotency/pom.xml b/powertools-idempotency/pom.xml
index 92e1dd88a..7f161c76c 100644
--- a/powertools-idempotency/pom.xml
+++ b/powertools-idempotency/pom.xml
@@ -34,7 +34,7 @@
- powertools-idempotency-common
+ powertools-idempotency-core
powertools-idempotency-dynamodb
diff --git a/powertools-idempotency/powertools-idempotency-common/pom.xml b/powertools-idempotency/powertools-idempotency-core/pom.xml
similarity index 96%
rename from powertools-idempotency/powertools-idempotency-common/pom.xml
rename to powertools-idempotency/powertools-idempotency-core/pom.xml
index 9a3ca931d..1a3636712 100644
--- a/powertools-idempotency/powertools-idempotency-common/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-core/pom.xml
@@ -24,7 +24,7 @@
2.0.0-SNAPSHOT
- powertools-idempotency-common
+ powertools-idempotency-core
jar
Powertools for AWS Lambda (Java) library Idempotency - Common
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Constants.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/Constants.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Constants.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/Constants.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotency.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotency.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotency.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotency.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
index 58d0a7f5b..f92a3ba67 100644
--- a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
@@ -15,9 +15,10 @@
package software.amazon.lambda.powertools.idempotency;
import com.amazonaws.services.lambda.runtime.Context;
-import java.time.Duration;
import software.amazon.lambda.powertools.idempotency.internal.cache.LRUCache;
+import java.time.Duration;
+
/**
* Configuration of the idempotency feature. Use the {@link Builder} to create an instance.
*/
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyKey.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyKey.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyKey.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyKey.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java
index 6ca40a0e1..d08874492 100644
--- a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/Idempotent.java
@@ -15,6 +15,7 @@
package software.amazon.lambda.powertools.idempotency;
import com.amazonaws.services.lambda.runtime.Context;
+
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyAlreadyInProgressException.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyAlreadyInProgressException.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyAlreadyInProgressException.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyAlreadyInProgressException.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyConfigurationException.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyConfigurationException.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyConfigurationException.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyConfigurationException.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyInconsistentStateException.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyInconsistentStateException.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyInconsistentStateException.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyInconsistentStateException.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemAlreadyExistsException.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemAlreadyExistsException.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemAlreadyExistsException.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemAlreadyExistsException.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemNotFoundException.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemNotFoundException.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemNotFoundException.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyItemNotFoundException.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyKeyException.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyKeyException.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyKeyException.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyKeyException.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyPersistenceLayerException.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyPersistenceLayerException.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyPersistenceLayerException.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyPersistenceLayerException.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyValidationException.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyValidationException.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyValidationException.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/exceptions/IdempotencyValidationException.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java
index 2875ab3d1..7982d911a 100644
--- a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyHandler.java
@@ -14,13 +14,8 @@
package software.amazon.lambda.powertools.idempotency.internal;
-import static software.amazon.lambda.powertools.idempotency.persistence.DataRecord.Status.EXPIRED;
-import static software.amazon.lambda.powertools.idempotency.persistence.DataRecord.Status.INPROGRESS;
-
import com.amazonaws.services.lambda.runtime.Context;
import com.fasterxml.jackson.databind.JsonNode;
-import java.time.Instant;
-import java.util.OptionalInt;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
@@ -37,6 +32,12 @@
import software.amazon.lambda.powertools.idempotency.persistence.DataRecord;
import software.amazon.lambda.powertools.utilities.JsonConfig;
+import java.time.Instant;
+import java.util.OptionalInt;
+
+import static software.amazon.lambda.powertools.idempotency.persistence.DataRecord.Status.EXPIRED;
+import static software.amazon.lambda.powertools.idempotency.persistence.DataRecord.Status.INPROGRESS;
+
/**
* Internal class that will handle the Idempotency, and use the {@link software.amazon.lambda.powertools.idempotency.persistence.PersistenceStore}
* to store the result of previous calls.
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java
index 0b9d729f4..ea6d743f0 100644
--- a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/internal/IdempotentAspect.java
@@ -14,12 +14,8 @@
package software.amazon.lambda.powertools.idempotency.internal;
-import static software.amazon.lambda.powertools.common.internal.LambdaHandlerProcessor.placedOnRequestHandler;
-
import com.amazonaws.services.lambda.runtime.Context;
import com.fasterxml.jackson.databind.JsonNode;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
@@ -33,6 +29,11 @@
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyConfigurationException;
import software.amazon.lambda.powertools.utilities.JsonConfig;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+
+import static software.amazon.lambda.powertools.common.internal.LambdaHandlerProcessor.placedOnRequestHandler;
+
/**
* Aspect that handles the {@link Idempotent} annotation.
* It uses the {@link IdempotencyHandler} to actually do the job.
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCache.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCache.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCache.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCache.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
index ac5044972..8425f29aa 100644
--- a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
@@ -14,12 +14,21 @@
package software.amazon.lambda.powertools.idempotency.persistence;
-import static software.amazon.lambda.powertools.common.internal.LambdaConstants.LAMBDA_FUNCTION_NAME_ENV;
-
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectWriter;
import io.burt.jmespath.Expression;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.utils.StringUtils;
+import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
+import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemAlreadyExistsException;
+import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemNotFoundException;
+import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyKeyException;
+import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyValidationException;
+import software.amazon.lambda.powertools.idempotency.internal.cache.LRUCache;
+import software.amazon.lambda.powertools.utilities.JsonConfig;
+
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
@@ -33,16 +42,8 @@
import java.util.Spliterators;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import software.amazon.awssdk.utils.StringUtils;
-import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
-import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemAlreadyExistsException;
-import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemNotFoundException;
-import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyKeyException;
-import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyValidationException;
-import software.amazon.lambda.powertools.idempotency.internal.cache.LRUCache;
-import software.amazon.lambda.powertools.utilities.JsonConfig;
+
+import static software.amazon.lambda.powertools.common.internal.LambdaConstants.LAMBDA_FUNCTION_NAME_ENV;
/**
* Persistence layer that will store the idempotency result.
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java
index 9af7c6a53..2d56fe349 100644
--- a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DataRecord.java
@@ -14,10 +14,11 @@
package software.amazon.lambda.powertools.idempotency.persistence;
+import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
+
import java.time.Instant;
import java.util.Objects;
import java.util.OptionalLong;
-import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
/**
* Data Class for idempotency records. This is actually the item that will be stored in the persistence layer.
diff --git a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java
rename to powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java
index c058b592e..b4f105720 100644
--- a/powertools-idempotency/powertools-idempotency-common/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/PersistenceStore.java
@@ -14,10 +14,11 @@
package software.amazon.lambda.powertools.idempotency.persistence;
-import java.time.Instant;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemAlreadyExistsException;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemNotFoundException;
+import java.time.Instant;
+
/**
* Persistence layer that will store the idempotency result.
* In order to provide another implementation, extends {@link BasePersistenceStore}.
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyEnabledFunction.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyEnabledFunction.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyEnabledFunction.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyEnabledFunction.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunction.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunction.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunction.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunction.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInternalKey.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInternalKey.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInternalKey.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInternalKey.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInvalid.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInvalid.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInvalid.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionInvalid.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionVoid.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionVoid.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionVoid.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyInternalFunctionVoid.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyStringFunction.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyStringFunction.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyStringFunction.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyStringFunction.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyWithErrorFunction.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyWithErrorFunction.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyWithErrorFunction.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/handlers/IdempotencyWithErrorFunction.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java
index c72593b66..e5f45aef7 100644
--- a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/internal/IdempotencyAspectTest.java
@@ -14,23 +14,9 @@
package software.amazon.lambda.powertools.idempotency.internal;
-import static java.time.temporal.ChronoUnit.SECONDS;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoInteractions;
-import static org.mockito.Mockito.when;
-
import com.amazonaws.services.lambda.runtime.Context;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
-import java.time.Instant;
-import java.util.OptionalInt;
-import java.util.OptionalLong;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junitpioneer.jupiter.SetEnvironmentVariable;
@@ -57,6 +43,21 @@
import software.amazon.lambda.powertools.idempotency.persistence.DataRecord;
import software.amazon.lambda.powertools.utilities.JsonConfig;
+import java.time.Instant;
+import java.util.OptionalInt;
+import java.util.OptionalLong;
+
+import static java.time.temporal.ChronoUnit.SECONDS;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
+import static org.mockito.Mockito.when;
+
public class IdempotencyAspectTest {
@Mock
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java
index 8854be1f2..053b56430 100644
--- a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/internal/cache/LRUCacheTest.java
@@ -14,10 +14,10 @@
package software.amazon.lambda.powertools.idempotency.internal.cache;
-import static org.assertj.core.api.Assertions.assertThat;
-
import org.junit.jupiter.api.Test;
+import static org.assertj.core.api.Assertions.assertThat;
+
public class LRUCacheTest {
@Test
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/model/Basket.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/model/Basket.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/model/Basket.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/model/Basket.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/model/Product.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/model/Product.java
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/model/Product.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/model/Product.java
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java
rename to powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java
index 67bc5aa22..41d7e2957 100644
--- a/powertools-idempotency/powertools-idempotency-common/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStoreTest.java
@@ -14,18 +14,11 @@
package software.amazon.lambda.powertools.idempotency.persistence;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.tests.EventLoader;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.node.DoubleNode;
import com.fasterxml.jackson.databind.node.TextNode;
-import java.time.Duration;
-import java.time.Instant;
-import java.time.temporal.ChronoUnit;
-import java.util.OptionalInt;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
@@ -37,6 +30,14 @@
import software.amazon.lambda.powertools.idempotency.model.Product;
import software.amazon.lambda.powertools.utilities.JsonConfig;
+import java.time.Duration;
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.util.OptionalInt;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
public class BasePersistenceStoreTest {
private DataRecord dr;
diff --git a/powertools-idempotency/powertools-idempotency-common/src/test/resources/apigw_event.json b/powertools-idempotency/powertools-idempotency-core/src/test/resources/apigw_event.json
similarity index 100%
rename from powertools-idempotency/powertools-idempotency-common/src/test/resources/apigw_event.json
rename to powertools-idempotency/powertools-idempotency-core/src/test/resources/apigw_event.json
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
index 8853ce8ce..19b6964b3 100644
--- a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
@@ -35,7 +35,7 @@
software.amazon.lambda
- powertools-idempotency-common
+ powertools-idempotency-core
${project.version}
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software.amazon.lambda.powertools.idempotency.dynamodb.persistence/DynamoDBPersistenceStore.java b/powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/dynamodb/DynamoDBPersistenceStore.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software.amazon.lambda.powertools.idempotency.dynamodb.persistence/DynamoDBPersistenceStore.java
rename to powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/dynamodb/DynamoDBPersistenceStore.java
index 64608d202..528e86219 100644
--- a/powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software.amazon.lambda.powertools.idempotency.dynamodb.persistence/DynamoDBPersistenceStore.java
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/dynamodb/DynamoDBPersistenceStore.java
@@ -12,19 +12,8 @@
*
*/
-package software.amazon.lambda.powertools.idempotency.dynamodb.persistence;
+package software.amazon.lambda.powertools.idempotency.persistence.dynamodb;
-import static software.amazon.lambda.powertools.common.internal.LambdaConstants.AWS_REGION_ENV;
-import static software.amazon.lambda.powertools.common.internal.LambdaConstants.LAMBDA_FUNCTION_NAME_ENV;
-import static software.amazon.lambda.powertools.idempotency.persistence.DataRecord.Status.INPROGRESS;
-
-import java.time.Instant;
-import java.util.AbstractMap;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.OptionalLong;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
@@ -48,6 +37,18 @@
import software.amazon.lambda.powertools.idempotency.persistence.DataRecord;
import software.amazon.lambda.powertools.idempotency.persistence.PersistenceStore;
+import java.time.Instant;
+import java.util.AbstractMap;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.OptionalLong;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static software.amazon.lambda.powertools.common.internal.LambdaConstants.AWS_REGION_ENV;
+import static software.amazon.lambda.powertools.common.internal.LambdaConstants.LAMBDA_FUNCTION_NAME_ENV;
+import static software.amazon.lambda.powertools.idempotency.persistence.DataRecord.Status.INPROGRESS;
+
/**
* DynamoDB version of the {@link PersistenceStore}. Will store idempotency data in DynamoDB.
* Use the {@link Builder} to create a new instance.
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/handlers/IdempotencyFunction.java b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/handlers/IdempotencyFunction.java
index 6acf025a2..1296a75c7 100644
--- a/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/handlers/IdempotencyFunction.java
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/handlers/IdempotencyFunction.java
@@ -18,6 +18,15 @@
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
+import software.amazon.lambda.powertools.idempotency.Idempotency;
+import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
+import software.amazon.lambda.powertools.idempotency.Idempotent;
+import software.amazon.lambda.powertools.idempotency.persistence.dynamodb.DynamoDBPersistenceStore;
+import software.amazon.lambda.powertools.utilities.JsonConfig;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -25,17 +34,9 @@
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
-import software.amazon.lambda.powertools.idempotency.Idempotency;
-import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
-import software.amazon.lambda.powertools.idempotency.Idempotent;
-import software.amazon.lambda.powertools.idempotency.dynamodb.persistence.DynamoDBPersistenceStore;
-import software.amazon.lambda.powertools.utilities.JsonConfig;
public class IdempotencyFunction implements RequestHandler {
- private static final Logger LOG = LoggerFactory.getLogger(IdempotencyFunction.class);
+ private final static Logger LOG = LogManager.getLogger(IdempotencyFunction.class);
public boolean handlerExecuted = false;
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/persistence/DynamoDBPersistenceStoreTest.java b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/dynamodb/DynamoDBPersistenceStoreTest.java
similarity index 99%
rename from powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/persistence/DynamoDBPersistenceStoreTest.java
rename to powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/dynamodb/DynamoDBPersistenceStoreTest.java
index 4183cc338..cc682a81f 100644
--- a/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software.amazon.lambda.powertools.idempotency.dynamodb/persistence/DynamoDBPersistenceStoreTest.java
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/src/test/java/software/amazon/lambda/powertools/idempotency/persistence/dynamodb/DynamoDBPersistenceStoreTest.java
@@ -12,16 +12,8 @@
*
*/
-package software.amazon.lambda.powertools.idempotency.dynamodb.persistence;
+package software.amazon.lambda.powertools.idempotency.persistence.dynamodb;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-
-import java.time.Instant;
-import java.time.temporal.ChronoUnit;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -39,12 +31,21 @@
import software.amazon.awssdk.services.dynamodb.model.ScalarAttributeType;
import software.amazon.awssdk.services.dynamodb.model.ScanRequest;
import software.amazon.lambda.powertools.idempotency.Constants;
-import software.amazon.lambda.powertools.idempotency.dynamodb.DynamoDBConfig;
import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
+import software.amazon.lambda.powertools.idempotency.dynamodb.DynamoDBConfig;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemAlreadyExistsException;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemNotFoundException;
import software.amazon.lambda.powertools.idempotency.persistence.DataRecord;
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
/**
* These test are using DynamoDBLocal and sqlite, see https://nickolasfisher.com/blog/Configuring-an-In-Memory-DynamoDB-instance-with-Java-for-Integration-Testing
* NOTE: on a Mac with Apple Chipset, you need to use the Oracle JDK x86 64-bit
From 4d036d419d8bcabf2ba31ae51c52a86b760cbfb5 Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Thu, 9 Nov 2023 13:19:40 +0200
Subject: [PATCH 05/13] fix spotbugs for multiple modules and new pr_artifacts
---
.github/workflows/pr_artifacts_size.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/pr_artifacts_size.yml b/.github/workflows/pr_artifacts_size.yml
index 1d905af01..2244f7b06 100644
--- a/.github/workflows/pr_artifacts_size.yml
+++ b/.github/workflows/pr_artifacts_size.yml
@@ -11,7 +11,8 @@ on:
- 'powertools-core/**' # not in v2
- 'powertools-common/**' # v2 only
- 'powertools-e2e-tests/**'
- - 'powertools-idempotency/**'
+ - 'powertools-idempotency-core/**'
+ - 'powertools-idempotency-dynamodb/**'
- 'powertools-large-messages/**'
- 'powertools-logging/**'
- 'powertools-metrics/**'
From 87136668d2c89e4b7f31ef3ccdaa4f9627a99ce4 Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Thu, 9 Nov 2023 13:27:56 +0200
Subject: [PATCH 06/13] fix spotbugs for multiple modules
---
pom.xml | 19 -------------------
1 file changed, 19 deletions(-)
diff --git a/pom.xml b/pom.xml
index f0f5e051e..36a806485 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,25 +32,6 @@
GitHub Issues
https://github.com/aws-powertools/powertools-lambda-java/issues
-
-
- https://github.com/aws-powertools/powertools-lambda-java.git
-
-
-
- Powertools for AWS Lambda (Java) Team
- Amazon Web Services
- https://aws.amazon.com/
-
-
-
-
-
- ossrh
- https://aws.oss.sonatype.org/content/repositories/snapshots
-
-
-
Apache License, Version 2.0
From d0031c978b7b0436c0de2be116d505bd2ef1f508 Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Thu, 9 Nov 2023 14:23:51 +0200
Subject: [PATCH 07/13] fix spotbugs for multiple modules - with pom property
---
powertools-batch/pom.xml | 5 +++++
powertools-cloudformation/pom.xml | 4 ++++
powertools-common/pom.xml | 4 ++++
powertools-idempotency/powertools-idempotency-core/pom.xml | 4 ++++
.../powertools-idempotency-dynamodb/pom.xml | 4 ++++
powertools-large-messages/pom.xml | 4 ++++
powertools-logging/pom.xml | 4 ++++
powertools-metrics/pom.xml | 4 ++++
powertools-parameters/pom.xml | 4 ++++
powertools-serialization/pom.xml | 4 ++++
powertools-tracing/pom.xml | 4 ++++
powertools-validation/pom.xml | 4 ++++
spotbugs-exclude.xml | 2 +-
13 files changed, 50 insertions(+), 1 deletion(-)
diff --git a/powertools-batch/pom.xml b/powertools-batch/pom.xml
index eaafdb56e..c9a57b36c 100644
--- a/powertools-batch/pom.xml
+++ b/powertools-batch/pom.xml
@@ -25,6 +25,11 @@
powertools-batch
+
+
+ ${project.parent.basedir}
+
+
com.amazonaws
diff --git a/powertools-cloudformation/pom.xml b/powertools-cloudformation/pom.xml
index e3e4748d6..81c242c47 100644
--- a/powertools-cloudformation/pom.xml
+++ b/powertools-cloudformation/pom.xml
@@ -33,6 +33,10 @@
custom metrics asynchronously easier.
+
+ ${project.parent.basedir}
+
+
software.amazon.awssdk
diff --git a/powertools-common/pom.xml b/powertools-common/pom.xml
index 15409e1f6..bbe7c5361 100644
--- a/powertools-common/pom.xml
+++ b/powertools-common/pom.xml
@@ -30,6 +30,10 @@
Powertools for AWS Lambda (Java) - Common Internal Utilities
Internal utilities shared by the Powertools for AWS Lambda (Java) modules. Do not use directly in your project.
+
+ ${project.parent.basedir}
+
+
org.slf4j
diff --git a/powertools-idempotency/powertools-idempotency-core/pom.xml b/powertools-idempotency/powertools-idempotency-core/pom.xml
index 1a3636712..1a672d65c 100644
--- a/powertools-idempotency/powertools-idempotency-core/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-core/pom.xml
@@ -32,6 +32,10 @@
Idempotency module common implementation
+
+ ${project.parent.parent.basedir}
+
+
software.amazon.lambda
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
index 19b6964b3..d4056bf43 100644
--- a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
@@ -32,6 +32,10 @@
DynamoDB implementation for the idempotency module
+
+ ${project.parent.parent.basedir}
+
+
software.amazon.lambda
diff --git a/powertools-large-messages/pom.xml b/powertools-large-messages/pom.xml
index 4206183de..f2ac64c7d 100644
--- a/powertools-large-messages/pom.xml
+++ b/powertools-large-messages/pom.xml
@@ -31,6 +31,10 @@
Powertools for AWS Lambda (Java) - Large messages
+
+ ${project.parent.basedir}
+
+
org.aspectj
diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml
index 43c65a3b0..195ca00e9 100644
--- a/powertools-logging/pom.xml
+++ b/powertools-logging/pom.xml
@@ -29,6 +29,10 @@
powertools-logging
jar
+
+ ${project.parent.basedir}
+
+
software.amazon.lambda
diff --git a/powertools-metrics/pom.xml b/powertools-metrics/pom.xml
index 0daa49664..650003ce2 100644
--- a/powertools-metrics/pom.xml
+++ b/powertools-metrics/pom.xml
@@ -33,6 +33,10 @@
asynchronously easier.
+
+ ${project.parent.basedir}
+
+
org.aspectj
diff --git a/powertools-parameters/pom.xml b/powertools-parameters/pom.xml
index 6c90e30a8..a2adc24d7 100644
--- a/powertools-parameters/pom.xml
+++ b/powertools-parameters/pom.xml
@@ -29,6 +29,10 @@
Powertools for AWS Lambda (Java) - Parameters
Set of utilities to retrieve parameters - common interface
+
+ ${project.parent.basedir}
+
+
org.aspectj
diff --git a/powertools-serialization/pom.xml b/powertools-serialization/pom.xml
index 454b30d3e..fa1cd0ed7 100644
--- a/powertools-serialization/pom.xml
+++ b/powertools-serialization/pom.xml
@@ -32,6 +32,10 @@
+
+ ${project.parent.basedir}
+
+
io.burt
diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml
index 9d60d4f40..acb1c9beb 100644
--- a/powertools-tracing/pom.xml
+++ b/powertools-tracing/pom.xml
@@ -32,6 +32,10 @@
A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier.
+
+ ${project.parent.basedir}
+
+
org.aspectj
diff --git a/powertools-validation/pom.xml b/powertools-validation/pom.xml
index a5fc4a890..98c3e011c 100644
--- a/powertools-validation/pom.xml
+++ b/powertools-validation/pom.xml
@@ -32,6 +32,10 @@
Json schema validation for Lambda events and responses
+
+ ${project.parent.basedir}
+
+
software.amazon.lambda
diff --git a/spotbugs-exclude.xml b/spotbugs-exclude.xml
index 747752130..8ec741391 100644
--- a/spotbugs-exclude.xml
+++ b/spotbugs-exclude.xml
@@ -127,7 +127,7 @@
-
+
From dd817bb1b121dc7e890e75af940cc7cefa356e18 Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Thu, 9 Nov 2023 14:28:56 +0200
Subject: [PATCH 08/13] fix spotbugs for multiple modules - multiple spotbugs
files
---
powertools-batch/pom.xml | 4 --
powertools-cloudformation/pom.xml | 4 --
powertools-common/pom.xml | 4 --
.../powertools-idempotency-core/pom.xml | 4 --
.../powertools-idempotency-dynamodb/pom.xml | 4 --
powertools-idempotency/spotbugs-exclude.xml | 46 +++++++++++++++++++
powertools-large-messages/pom.xml | 4 --
powertools-logging/pom.xml | 4 --
powertools-metrics/pom.xml | 4 --
powertools-parameters/pom.xml | 4 --
powertools-serialization/pom.xml | 4 --
powertools-tracing/pom.xml | 4 --
powertools-validation/pom.xml | 4 --
spotbugs-exclude.xml | 4 ++
14 files changed, 50 insertions(+), 48 deletions(-)
create mode 100644 powertools-idempotency/spotbugs-exclude.xml
diff --git a/powertools-batch/pom.xml b/powertools-batch/pom.xml
index c9a57b36c..1886f56e6 100644
--- a/powertools-batch/pom.xml
+++ b/powertools-batch/pom.xml
@@ -26,10 +26,6 @@
powertools-batch
-
- ${project.parent.basedir}
-
-
com.amazonaws
diff --git a/powertools-cloudformation/pom.xml b/powertools-cloudformation/pom.xml
index 81c242c47..e3e4748d6 100644
--- a/powertools-cloudformation/pom.xml
+++ b/powertools-cloudformation/pom.xml
@@ -33,10 +33,6 @@
custom metrics asynchronously easier.
-
- ${project.parent.basedir}
-
-
software.amazon.awssdk
diff --git a/powertools-common/pom.xml b/powertools-common/pom.xml
index bbe7c5361..15409e1f6 100644
--- a/powertools-common/pom.xml
+++ b/powertools-common/pom.xml
@@ -30,10 +30,6 @@
Powertools for AWS Lambda (Java) - Common Internal Utilities
Internal utilities shared by the Powertools for AWS Lambda (Java) modules. Do not use directly in your project.
-
- ${project.parent.basedir}
-
-
org.slf4j
diff --git a/powertools-idempotency/powertools-idempotency-core/pom.xml b/powertools-idempotency/powertools-idempotency-core/pom.xml
index 1a672d65c..1a3636712 100644
--- a/powertools-idempotency/powertools-idempotency-core/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-core/pom.xml
@@ -32,10 +32,6 @@
Idempotency module common implementation
-
- ${project.parent.parent.basedir}
-
-
software.amazon.lambda
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
index d4056bf43..19b6964b3 100644
--- a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
@@ -32,10 +32,6 @@
DynamoDB implementation for the idempotency module
-
- ${project.parent.parent.basedir}
-
-
software.amazon.lambda
diff --git a/powertools-idempotency/spotbugs-exclude.xml b/powertools-idempotency/spotbugs-exclude.xml
new file mode 100644
index 000000000..9a2369c75
--- /dev/null
+++ b/powertools-idempotency/spotbugs-exclude.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/powertools-large-messages/pom.xml b/powertools-large-messages/pom.xml
index f2ac64c7d..4206183de 100644
--- a/powertools-large-messages/pom.xml
+++ b/powertools-large-messages/pom.xml
@@ -31,10 +31,6 @@
Powertools for AWS Lambda (Java) - Large messages
-
- ${project.parent.basedir}
-
-
org.aspectj
diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml
index 195ca00e9..43c65a3b0 100644
--- a/powertools-logging/pom.xml
+++ b/powertools-logging/pom.xml
@@ -29,10 +29,6 @@
powertools-logging
jar
-
- ${project.parent.basedir}
-
-
software.amazon.lambda
diff --git a/powertools-metrics/pom.xml b/powertools-metrics/pom.xml
index 650003ce2..0daa49664 100644
--- a/powertools-metrics/pom.xml
+++ b/powertools-metrics/pom.xml
@@ -33,10 +33,6 @@
asynchronously easier.
-
- ${project.parent.basedir}
-
-
org.aspectj
diff --git a/powertools-parameters/pom.xml b/powertools-parameters/pom.xml
index a2adc24d7..6c90e30a8 100644
--- a/powertools-parameters/pom.xml
+++ b/powertools-parameters/pom.xml
@@ -29,10 +29,6 @@
Powertools for AWS Lambda (Java) - Parameters
Set of utilities to retrieve parameters - common interface
-
- ${project.parent.basedir}
-
-
org.aspectj
diff --git a/powertools-serialization/pom.xml b/powertools-serialization/pom.xml
index fa1cd0ed7..454b30d3e 100644
--- a/powertools-serialization/pom.xml
+++ b/powertools-serialization/pom.xml
@@ -32,10 +32,6 @@
-
- ${project.parent.basedir}
-
-
io.burt
diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml
index acb1c9beb..9d60d4f40 100644
--- a/powertools-tracing/pom.xml
+++ b/powertools-tracing/pom.xml
@@ -32,10 +32,6 @@
A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier.
-
- ${project.parent.basedir}
-
-
org.aspectj
diff --git a/powertools-validation/pom.xml b/powertools-validation/pom.xml
index 98c3e011c..a5fc4a890 100644
--- a/powertools-validation/pom.xml
+++ b/powertools-validation/pom.xml
@@ -32,10 +32,6 @@
Json schema validation for Lambda events and responses
-
- ${project.parent.basedir}
-
-
software.amazon.lambda
diff --git a/spotbugs-exclude.xml b/spotbugs-exclude.xml
index 8ec741391..ff6b64fbc 100644
--- a/spotbugs-exclude.xml
+++ b/spotbugs-exclude.xml
@@ -28,6 +28,8 @@
+
+
@@ -107,6 +109,8 @@
+
+
From 2d77a3b7f6582ba0efe0addb5b1f3f997f24e408 Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Fri, 10 Nov 2023 19:01:39 +0200
Subject: [PATCH 09/13] Try fixing java8 build
---
.../powertools-idempotency-dynamodb/pom.xml | 46 +++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
index 19b6964b3..73815be0e 100644
--- a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
@@ -68,6 +68,12 @@
test
dylib
+
+ org.aspectj
+ aspectjrt
+ ${aspectj.version}
+ test
+
@@ -83,6 +89,46 @@
+
+ dev.aspectj
+ aspectj-maven-plugin
+ ${aspectj-maven-plugin.version}
+
+ ${maven.compiler.source}
+ ${maven.compiler.target}
+ ${maven.compiler.target}
+ ignore
+ ${project.build.sourceEncoding}
+
+
+ software.amazon.lambda
+ powertools-idempotency-core
+
+
+ `
+
+
+
+ process-sources
+
+ compile
+ test-compile
+
+
+
+
+
+ org.aspectj
+ aspectjrt
+ ${aspectj.version}
+
+
+ org.aspectj
+ aspectjtools
+ ${aspectj.version}
+
+
+
\ No newline at end of file
From c02b6dbf1576fee669453d2fd0716eb39ea16da0 Mon Sep 17 00:00:00 2001
From: Jerome Van Der Linden
Date: Mon, 13 Nov 2023 14:11:55 +0100
Subject: [PATCH 10/13] fix aspectj weaving
---
pom.xml | 1 -
.../powertools-idempotency-dynamodb/pom.xml | 13 -------------
2 files changed, 14 deletions(-)
diff --git a/pom.xml b/pom.xml
index 36a806485..0c7ca43d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -402,7 +402,6 @@
- process-sources
compile
test-compile
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
index 73815be0e..9bd3ac85f 100644
--- a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
@@ -68,12 +68,6 @@
test
dylib
-
- org.aspectj
- aspectjrt
- ${aspectj.version}
- test
-
@@ -105,11 +99,9 @@
powertools-idempotency-core
- `
- process-sources
compile
test-compile
@@ -117,11 +109,6 @@
-
- org.aspectj
- aspectjrt
- ${aspectj.version}
-
org.aspectj
aspectjtools
From 4af831495cddd8e71fb2798f4cc29f15f0fe08a4 Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Tue, 14 Nov 2023 08:53:25 +0200
Subject: [PATCH 11/13] Clean-up pom dependencies and remove awssdk#StringUtils
usage
---
powertools-idempotency/pom.xml | 14 --------------
.../powertools-idempotency-core/pom.xml | 11 +----------
.../persistence/BasePersistenceStore.java | 13 ++++++++++---
.../powertools-idempotency-dynamodb/pom.xml | 5 +++++
.../dynamodb/DynamoDBPersistenceStore.java | 3 +--
5 files changed, 17 insertions(+), 29 deletions(-)
diff --git a/powertools-idempotency/pom.xml b/powertools-idempotency/pom.xml
index 7f161c76c..fddef497a 100644
--- a/powertools-idempotency/pom.xml
+++ b/powertools-idempotency/pom.xml
@@ -48,20 +48,6 @@
software.amazon.lambda
powertools-common
-
- software.amazon.lambda
- powertools-serialization
-
-
- com.amazonaws
- aws-lambda-java-core
-
-
- software.amazon.awssdk
- url-connection-client
- ${aws.sdk.version}
-
-
org.junit.jupiter
diff --git a/powertools-idempotency/powertools-idempotency-core/pom.xml b/powertools-idempotency/powertools-idempotency-core/pom.xml
index 1a3636712..302cc24f5 100644
--- a/powertools-idempotency/powertools-idempotency-core/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-core/pom.xml
@@ -27,7 +27,7 @@
powertools-idempotency-core
jar
- Powertools for AWS Lambda (Java) library Idempotency - Common
+ Powertools for AWS Lambda (Java) library Idempotency - Core
Idempotency module common implementation
@@ -37,15 +37,6 @@
software.amazon.lambda
powertools-serialization
-
- com.amazonaws
- aws-lambda-java-core
-
-
- software.amazon.awssdk
- url-connection-client
- ${aws.sdk.version}
-
\ No newline at end of file
diff --git a/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
index 8425f29aa..0fa5a8663 100644
--- a/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
@@ -20,7 +20,6 @@
import io.burt.jmespath.Expression;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import software.amazon.awssdk.utils.StringUtils;
import software.amazon.lambda.powertools.idempotency.IdempotencyConfig;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemAlreadyExistsException;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemNotFoundException;
@@ -74,7 +73,7 @@ public abstract class BasePersistenceStore implements PersistenceStore {
public void configure(IdempotencyConfig config, String functionName) {
String funcEnv = System.getenv(LAMBDA_FUNCTION_NAME_ENV);
this.functionName = funcEnv != null ? funcEnv : "testFunction";
- if (!StringUtils.isEmpty(functionName)) {
+ if (functionName != null && !functionName.isEmpty()) {
this.functionName += "." + functionName;
}
@@ -340,7 +339,7 @@ private MessageDigest getHashAlgorithm() {
private void validatePayload(JsonNode data, DataRecord dataRecord) throws IdempotencyValidationException {
if (payloadValidationEnabled) {
String dataHash = getHashedPayload(data);
- if (!StringUtils.equals(dataHash, dataRecord.getPayloadHash())) {
+ if (!isEqual(dataRecord.getPayloadHash(), dataHash)) {
throw new IdempotencyValidationException("Payload does not match stored record for this event key");
}
}
@@ -403,4 +402,12 @@ void configure(IdempotencyConfig config, String functionName, LRUCachepowertools-idempotency-core
${project.version}
+
+ software.amazon.awssdk
+ url-connection-client
+ ${aws.sdk.version}
+
software.amazon.awssdk
dynamodb
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/dynamodb/DynamoDBPersistenceStore.java b/powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/dynamodb/DynamoDBPersistenceStore.java
index 528e86219..0e20e396f 100644
--- a/powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/dynamodb/DynamoDBPersistenceStore.java
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/dynamodb/DynamoDBPersistenceStore.java
@@ -28,7 +28,6 @@
import software.amazon.awssdk.services.dynamodb.model.GetItemResponse;
import software.amazon.awssdk.services.dynamodb.model.PutItemRequest;
import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest;
-import software.amazon.awssdk.utils.StringUtils;
import software.amazon.lambda.powertools.common.internal.UserAgentConfigurator;
import software.amazon.lambda.powertools.idempotency.Constants;
import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemAlreadyExistsException;
@@ -314,7 +313,7 @@ public static class Builder {
* @return an instance of the {@link DynamoDBPersistenceStore}
*/
public DynamoDBPersistenceStore build() {
- if (StringUtils.isEmpty(tableName)) {
+ if (tableName == null || "".equals(tableName)) {
throw new IllegalArgumentException("Table name is not specified");
}
return new DynamoDBPersistenceStore(tableName, keyAttr, staticPkValue, sortKeyAttr, expiryAttr,
From 8ec0c507270dc104c13540454504cb7b74142325 Mon Sep 17 00:00:00 2001
From: Eleni Dimitropoulou <12170229+eldimi@users.noreply.github.com>
Date: Tue, 14 Nov 2023 09:04:22 +0200
Subject: [PATCH 12/13] Fix sonar issues
---
.../amazon/lambda/powertools/idempotency/IdempotencyConfig.java | 2 +-
.../idempotency/persistence/BasePersistenceStore.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
index f92a3ba67..2b22cac51 100644
--- a/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/IdempotencyConfig.java
@@ -93,7 +93,7 @@ public static class Builder {
private int localCacheMaxItems = 256;
private boolean useLocalCache = false;
- private long expirationInSeconds = 60 * 60; // 1 hour
+ private long expirationInSeconds = 60 * 60L; // 1 hour
private String eventKeyJMESPath;
private String payloadValidationJMESPath;
private boolean throwOnNoIdempotencyKey = false;
diff --git a/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
index 0fa5a8663..bafbcbd42 100644
--- a/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
+++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java
@@ -55,7 +55,7 @@ public abstract class BasePersistenceStore implements PersistenceStore {
protected boolean payloadValidationEnabled = false;
private String functionName = "";
private boolean configured = false;
- private long expirationInSeconds = 60 * 60; // 1 hour default
+ private long expirationInSeconds = 60 * 60L; // 1 hour default
private boolean useLocalCache = false;
private LRUCache cache;
private String eventKeyJMESPath;
From f5928ecc86f33c8ebf66c2acc97039460e79d13f Mon Sep 17 00:00:00 2001
From: Scott Gerring
Date: Tue, 13 Feb 2024 15:17:32 +0100
Subject: [PATCH 13/13] Fix some merge issues
---
.github/workflows/pr_build.yml | 1 +
.../powertools-parameters-appconfig/pom.xml | 6 +++++-
.../powertools-parameters-dynamodb/pom.xml | 5 +++++
powertools-parameters/powertools-parameters-secrets/pom.xml | 5 +++++
powertools-parameters/powertools-parameters-ssm/pom.xml | 5 +++++
powertools-validation/pom.xml | 5 +++++
spotbugs-exclude.xml | 4 ++++
7 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/pr_build.yml b/.github/workflows/pr_build.yml
index e86f49753..5373f4b4c 100644
--- a/.github/workflows/pr_build.yml
+++ b/.github/workflows/pr_build.yml
@@ -26,6 +26,7 @@ on:
push:
branches:
- main
+ - v2
paths:
- 'powertools-batch/**'
- 'powertools-cloudformation/**'
diff --git a/powertools-parameters/powertools-parameters-appconfig/pom.xml b/powertools-parameters/powertools-parameters-appconfig/pom.xml
index 3a3018c7c..34b1238f6 100644
--- a/powertools-parameters/powertools-parameters-appconfig/pom.xml
+++ b/powertools-parameters/powertools-parameters-appconfig/pom.xml
@@ -21,7 +21,6 @@
powertools-parameters
${project.version}
-
software.amazon.awssdk
appconfigdata
@@ -36,6 +35,11 @@
+
+ org.aspectj
+ aspectjrt
+ provided
+
diff --git a/powertools-parameters/powertools-parameters-dynamodb/pom.xml b/powertools-parameters/powertools-parameters-dynamodb/pom.xml
index ad32bdff8..2ec6ad27c 100644
--- a/powertools-parameters/powertools-parameters-dynamodb/pom.xml
+++ b/powertools-parameters/powertools-parameters-dynamodb/pom.xml
@@ -36,6 +36,11 @@
+
+ org.aspectj
+ aspectjrt
+ provided
+
diff --git a/powertools-parameters/powertools-parameters-secrets/pom.xml b/powertools-parameters/powertools-parameters-secrets/pom.xml
index 6c4501ca3..3275d0ee0 100644
--- a/powertools-parameters/powertools-parameters-secrets/pom.xml
+++ b/powertools-parameters/powertools-parameters-secrets/pom.xml
@@ -36,6 +36,11 @@
+
+ org.aspectj
+ aspectjrt
+ provided
+
diff --git a/powertools-parameters/powertools-parameters-ssm/pom.xml b/powertools-parameters/powertools-parameters-ssm/pom.xml
index 80276189d..65332c9ef 100644
--- a/powertools-parameters/powertools-parameters-ssm/pom.xml
+++ b/powertools-parameters/powertools-parameters-ssm/pom.xml
@@ -36,6 +36,11 @@
+
+ org.aspectj
+ aspectjrt
+ provided
+
diff --git a/powertools-validation/pom.xml b/powertools-validation/pom.xml
index a5fc4a890..0de38c1c1 100644
--- a/powertools-validation/pom.xml
+++ b/powertools-validation/pom.xml
@@ -33,6 +33,11 @@
+
+ org.aspectj
+ aspectjrt
+ provided
+
software.amazon.lambda
powertools-common
diff --git a/spotbugs-exclude.xml b/spotbugs-exclude.xml
index ff6b64fbc..ee39b5d0f 100644
--- a/spotbugs-exclude.xml
+++ b/spotbugs-exclude.xml
@@ -30,6 +30,8 @@
+
+
@@ -111,6 +113,8 @@
+
+