diff --git a/pom.xml b/pom.xml index 4bf73173..8dd45d18 100755 --- a/pom.xml +++ b/pom.xml @@ -16,14 +16,14 @@ - 4.2.0.RELEASE + 4.3.1.RELEASE Gosling-SR1 - 5.2.2.Final - 1.10.39 + 5.2.4.Final + 1.11.15 1.10.19 1.2 - 1.1.3 + 1.1.7 UTF-8 UTF-8 diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/core/DynamoDBOperations.java b/src/main/java/org/socialsignin/spring/data/dynamodb/core/DynamoDBOperations.java index c503fccf..77d7efee 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/core/DynamoDBOperations.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/core/DynamoDBOperations.java @@ -27,9 +27,11 @@ public interface DynamoDBOperations { public void save(Object entity); public void batchSave(List entities); + public void batchSave(Iterable entities); public void delete(Object entity); public void batchDelete(List entities); + public void batchDelete(Iterable entities); public String getOverriddenTableName(Class domainClass, String tableName); diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/core/DynamoDBTemplate.java b/src/main/java/org/socialsignin/spring/data/dynamodb/core/DynamoDBTemplate.java index a6222cd6..5c5cab54 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/core/DynamoDBTemplate.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/core/DynamoDBTemplate.java @@ -1,5 +1,6 @@ package org.socialsignin.spring.data.dynamodb.core; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -135,17 +136,24 @@ public void save(Object entity) { } @Override + @Deprecated public void batchSave(List entities) { - for (Object entity : entities) - { - maybeEmitEvent(new BeforeSaveEvent(entity)); - } - dynamoDBMapper.batchSave(entities); - for (Object entity : entities) - { - maybeEmitEvent(new AfterSaveEvent(entity)); - } + Iterable iterableEntities = entities; + batchSave(iterableEntities); } + + @Override + public void batchSave(Iterable entities) { + Iterator iteratorBefore = entities.iterator(); + while( iteratorBefore.hasNext() ){ + maybeEmitEvent(new BeforeSaveEvent(iteratorBefore.next())); + } + dynamoDBMapper.batchSave(entities); + Iterator iteratorAfter = entities.iterator(); + while( iteratorAfter.hasNext() ){ + maybeEmitEvent(new BeforeSaveEvent(iteratorAfter.next())); + } + } @Override public void delete(Object entity) { @@ -156,17 +164,23 @@ public void delete(Object entity) { } @Override + @Deprecated public void batchDelete(List entities) { - for (Object entity : entities) - { - maybeEmitEvent(new BeforeDeleteEvent(entity)); - } - dynamoDBMapper.batchDelete(entities); - for (Object entity : entities) - { - maybeEmitEvent(new AfterDeleteEvent(entity)); - } - + Iterable iterableEntities = entities; + batchDelete(iterableEntities); + } + + @Override + public void batchDelete(Iterable entities) { + Iterator iteratorBefore = entities.iterator(); + while( iteratorBefore.hasNext() ){ + maybeEmitEvent(new BeforeDeleteEvent(iteratorBefore.next())); + } + dynamoDBMapper.batchDelete(entities); + Iterator iteratorAfter = entities.iterator(); + while( iteratorAfter.hasNext() ){ + maybeEmitEvent(new AfterDeleteEvent(iteratorAfter.next())); + } } @Override diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/SimpleDynamoDBCrudRepository.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/SimpleDynamoDBCrudRepository.java index b7c6b183..3a902791 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/SimpleDynamoDBCrudRepository.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/SimpleDynamoDBCrudRepository.java @@ -132,13 +132,9 @@ public S save(S entity) { } @Override - public List save(Iterable entities) { - final List entityList = new ArrayList(); - for (S entity : entities) { - entityList.add(entity); - } - dynamoDBOperations.batchSave(entityList); - return entityList; + public Iterable save(Iterable entities) { + dynamoDBOperations.batchSave(entities); + return entities; } @Override @@ -201,12 +197,7 @@ public void delete(T entity) { public void delete(Iterable entities) { Assert.notNull(entities, "The given Iterable of entities not be null!"); - - List entityList = new ArrayList(); - for (T entity : entities) { - entityList.add(entity); - } - dynamoDBOperations.batchDelete(entityList); + dynamoDBOperations.batchDelete(entities); } @Override