From 0ec7f4a0d7424c24cb402f23f6896111f257ac44 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/12] Introducing sub-modules in the idempotency module
---
.../powertools-examples-idempotency/pom.xml | 4 +-
.../src/main/java/helloworld/App.java | 2 +-
powertools-idempotency/pom.xml | 77 ++--------------
.../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, 160 insertions(+), 82 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 99eb5dc9f..5577ed81e 100644
--- a/examples/powertools-examples-idempotency/pom.xml
+++ b/examples/powertools-examples-idempotency/pom.xml
@@ -42,7 +42,7 @@
software.amazon.lambda
- powertools-idempotency
+ powertools-idempotency-dynamodb
${project.version}
@@ -117,7 +117,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 72fa621ad..9a178e33b 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 61294b996..5d050e836 100644
--- a/powertools-idempotency/pom.xml
+++ b/powertools-idempotency/pom.xml
@@ -25,34 +25,18 @@
powertools-idempotency
- jar
+ pom
Powertools for AWS Lambda (Java) library Idempotency
- https://aws.amazon.com/lambda/
-
- GitHub Issues
- https://github.com/aws-powertools/powertools-lambda-java/issues
-
-
- https://github.com/aws-powertools/powertools-lambda-java.git
-
-
-
- Powertools for AWS Lambda team
- Amazon Web Services
- https://aws.amazon.com/
-
-
-
-
- ossrh
- https://aws.oss.sonatype.org/content/repositories/snapshots
-
-
+
+
+ powertools-idempotency-common
+ powertools-idempotency-dynamodb
+
@@ -67,20 +51,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
@@ -103,11 +73,6 @@
junit-pioneer
test
-
- org.apache.commons
- commons-lang3
- test
-
org.aspectj
aspectjweaver
@@ -128,20 +93,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
-
@@ -172,22 +123,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 76c36ae9f..63e0243fc 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 575e7a9ab9bc508889d438a60a85c5e8dc08b4c2 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/12] 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 6382089b7f3e5c7385ef77e61360f3f42c3e8a5c 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/12] 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 914359d0e29ec557fe5e6ac92339e83d53fead6f 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/12] 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 | 17 ++++++-----
.../DynamoDBPersistenceStoreTest.java | 21 +++++++-------
39 files changed, 93 insertions(+), 81 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 9a178e33b..cfc66c03d 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 5d050e836..c42cbdbd7 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 63e0243fc..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,22 +18,23 @@
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.stream.Collectors;
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.dynamodb.persistence.DynamoDBPersistenceStore;
+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;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Collectors;
+
public class IdempotencyFunction implements RequestHandler {
private final static Logger LOG = LogManager.getLogger(IdempotencyFunction.class);
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 336cab387053a7737154fb12e4675f3a5807ee41 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/12] fix spotbugs for multiple modules and new pr_artifacts
---
.github/workflows/pr_artifacts_size.yml | 3 ++-
pom.xml | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/pr_artifacts_size.yml b/.github/workflows/pr_artifacts_size.yml
index f37f83a8d..79fcc2522 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/**'
diff --git a/pom.xml b/pom.xml
index 15de3af0b..5ba4ca36d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -508,7 +508,7 @@
true
- ../spotbugs-exclude.xml
+ ${project.basedir}/spotbugs-exclude.xml
From dca1f0ea955bcc382bf32b37911ca93a030b917f 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/12] fix spotbugs for multiple modules
---
pom.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 5ba4ca36d..5cced9179 100644
--- a/pom.xml
+++ b/pom.xml
@@ -92,6 +92,7 @@
5.10.0
1.0.6
0.5.1
+ ${project.basedir}
@@ -508,7 +509,7 @@
true
- ${project.basedir}/spotbugs-exclude.xml
+ ${parentproject.basedir}/spotbugs-exclude.xml
From d71f9acb3c6cc0c2497898e9a8c21e90d5c6f0b7 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/12] fix spotbugs for multiple modules - with pom property
---
powertools-batch/pom.xml | 5 +++++
powertools-cloudformation/pom.xml | 4 ++++
powertools-common/pom.xml | 4 ++++
powertools-e2e-tests/pom.xml | 1 +
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 +-
14 files changed, 51 insertions(+), 1 deletion(-)
diff --git a/powertools-batch/pom.xml b/powertools-batch/pom.xml
index d7246b816..25cea6122 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 79864a64a..2e0f05ec7 100644
--- a/powertools-cloudformation/pom.xml
+++ b/powertools-cloudformation/pom.xml
@@ -55,6 +55,10 @@
+
+ ${project.parent.basedir}
+
+
software.amazon.awssdk
diff --git a/powertools-common/pom.xml b/powertools-common/pom.xml
index 82e2c1d17..b6398c87d 100644
--- a/powertools-common/pom.xml
+++ b/powertools-common/pom.xml
@@ -53,6 +53,10 @@
+
+ ${project.parent.basedir}
+
+
com.amazonaws
diff --git a/powertools-e2e-tests/pom.xml b/powertools-e2e-tests/pom.xml
index c512beb3a..5ba098b78 100644
--- a/powertools-e2e-tests/pom.xml
+++ b/powertools-e2e-tests/pom.xml
@@ -32,6 +32,7 @@
1.8
10.3.0
2.100.0
+ ${project.parent.basedir}
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 a56623518..2a17e886a 100644
--- a/powertools-large-messages/pom.xml
+++ b/powertools-large-messages/pom.xml
@@ -53,6 +53,10 @@
+
+ ${project.parent.basedir}
+
+
software.amazon.lambda
diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml
index 12ebdc335..8bdc88cea 100644
--- a/powertools-logging/pom.xml
+++ b/powertools-logging/pom.xml
@@ -54,6 +54,10 @@
+
+ ${project.parent.basedir}
+
+
software.amazon.lambda
diff --git a/powertools-metrics/pom.xml b/powertools-metrics/pom.xml
index 8c9ce79ad..0c5c7717e 100644
--- a/powertools-metrics/pom.xml
+++ b/powertools-metrics/pom.xml
@@ -55,6 +55,10 @@
+
+ ${project.parent.basedir}
+
+
software.amazon.lambda
diff --git a/powertools-parameters/pom.xml b/powertools-parameters/pom.xml
index eb73962e1..3a9b41084 100644
--- a/powertools-parameters/pom.xml
+++ b/powertools-parameters/pom.xml
@@ -54,6 +54,10 @@
+
+ ${project.parent.basedir}
+
+
software.amazon.lambda
diff --git a/powertools-serialization/pom.xml b/powertools-serialization/pom.xml
index d92d68fb0..320cfd196 100644
--- a/powertools-serialization/pom.xml
+++ b/powertools-serialization/pom.xml
@@ -54,6 +54,10 @@
+
+ ${project.parent.basedir}
+
+
io.burt
diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml
index 6498d3772..c7af5205b 100644
--- a/powertools-tracing/pom.xml
+++ b/powertools-tracing/pom.xml
@@ -55,6 +55,10 @@
+
+ ${project.parent.basedir}
+
+
software.amazon.lambda
diff --git a/powertools-validation/pom.xml b/powertools-validation/pom.xml
index 269513a46..540033e77 100644
--- a/powertools-validation/pom.xml
+++ b/powertools-validation/pom.xml
@@ -55,6 +55,10 @@
+
+ ${project.parent.basedir}
+
+
software.amazon.lambda
diff --git a/spotbugs-exclude.xml b/spotbugs-exclude.xml
index eca7e266f..0516c8982 100644
--- a/spotbugs-exclude.xml
+++ b/spotbugs-exclude.xml
@@ -86,7 +86,7 @@
-
+
From a9ef2c4c66a03bae571f9bbb7ec3124b23a3e4e6 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/12] fix spotbugs for multiple modules - multiple spotbugs
files
---
pom.xml | 3 +-
powertools-batch/pom.xml | 4 --
powertools-cloudformation/pom.xml | 4 --
powertools-common/pom.xml | 4 --
powertools-e2e-tests/pom.xml | 1 -
.../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 | 24 ----------
16 files changed, 47 insertions(+), 75 deletions(-)
create mode 100644 powertools-idempotency/spotbugs-exclude.xml
diff --git a/pom.xml b/pom.xml
index 5cced9179..15de3af0b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -92,7 +92,6 @@
5.10.0
1.0.6
0.5.1
- ${project.basedir}
@@ -509,7 +508,7 @@
true
- ${parentproject.basedir}/spotbugs-exclude.xml
+ ../spotbugs-exclude.xml
diff --git a/powertools-batch/pom.xml b/powertools-batch/pom.xml
index 25cea6122..070067fc7 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 2e0f05ec7..79864a64a 100644
--- a/powertools-cloudformation/pom.xml
+++ b/powertools-cloudformation/pom.xml
@@ -55,10 +55,6 @@
-
- ${project.parent.basedir}
-
-
software.amazon.awssdk
diff --git a/powertools-common/pom.xml b/powertools-common/pom.xml
index b6398c87d..82e2c1d17 100644
--- a/powertools-common/pom.xml
+++ b/powertools-common/pom.xml
@@ -53,10 +53,6 @@
-
- ${project.parent.basedir}
-
-
com.amazonaws
diff --git a/powertools-e2e-tests/pom.xml b/powertools-e2e-tests/pom.xml
index 5ba098b78..c512beb3a 100644
--- a/powertools-e2e-tests/pom.xml
+++ b/powertools-e2e-tests/pom.xml
@@ -32,7 +32,6 @@
1.8
10.3.0
2.100.0
- ${project.parent.basedir}
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 2a17e886a..a56623518 100644
--- a/powertools-large-messages/pom.xml
+++ b/powertools-large-messages/pom.xml
@@ -53,10 +53,6 @@
-
- ${project.parent.basedir}
-
-
software.amazon.lambda
diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml
index 8bdc88cea..12ebdc335 100644
--- a/powertools-logging/pom.xml
+++ b/powertools-logging/pom.xml
@@ -54,10 +54,6 @@
-
- ${project.parent.basedir}
-
-
software.amazon.lambda
diff --git a/powertools-metrics/pom.xml b/powertools-metrics/pom.xml
index 0c5c7717e..8c9ce79ad 100644
--- a/powertools-metrics/pom.xml
+++ b/powertools-metrics/pom.xml
@@ -55,10 +55,6 @@
-
- ${project.parent.basedir}
-
-
software.amazon.lambda
diff --git a/powertools-parameters/pom.xml b/powertools-parameters/pom.xml
index 3a9b41084..eb73962e1 100644
--- a/powertools-parameters/pom.xml
+++ b/powertools-parameters/pom.xml
@@ -54,10 +54,6 @@
-
- ${project.parent.basedir}
-
-
software.amazon.lambda
diff --git a/powertools-serialization/pom.xml b/powertools-serialization/pom.xml
index 320cfd196..d92d68fb0 100644
--- a/powertools-serialization/pom.xml
+++ b/powertools-serialization/pom.xml
@@ -54,10 +54,6 @@
-
- ${project.parent.basedir}
-
-
io.burt
diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml
index c7af5205b..6498d3772 100644
--- a/powertools-tracing/pom.xml
+++ b/powertools-tracing/pom.xml
@@ -55,10 +55,6 @@
-
- ${project.parent.basedir}
-
-
software.amazon.lambda
diff --git a/powertools-validation/pom.xml b/powertools-validation/pom.xml
index 540033e77..269513a46 100644
--- a/powertools-validation/pom.xml
+++ b/powertools-validation/pom.xml
@@ -55,10 +55,6 @@
-
- ${project.parent.basedir}
-
-
software.amazon.lambda
diff --git a/spotbugs-exclude.xml b/spotbugs-exclude.xml
index 0516c8982..42363be59 100644
--- a/spotbugs-exclude.xml
+++ b/spotbugs-exclude.xml
@@ -28,14 +28,6 @@
-
-
-
-
-
-
-
-
@@ -73,22 +65,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
From c0179485f2e8bcf966feffd4aa87a11fae1f7b6d 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/12] 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 bcbd95618e693d190d4e7e99ba82f951e346b3de Mon Sep 17 00:00:00 2001
From: Jerome Van Der Linden
Date: Mon, 13 Nov 2023 14:11:55 +0100
Subject: [PATCH 10/12] 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 15de3af0b..ad94c955f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -381,7 +381,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 9f44ebf62b51a230a1907bbc33b055c49b29de68 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/12] 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 c42cbdbd7..649cca7ff 100644
--- a/powertools-idempotency/pom.xml
+++ b/powertools-idempotency/pom.xml
@@ -43,20 +43,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 6da6aaf6b558edb56b18dd71e2f0ed1a7a8d8d13 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/12] 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;