CAMEL-8572 - Upgrade aws sdk java version and add support for DynamoDB v2

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/90d5906c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/90d5906c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/90d5906c

Branch: refs/heads/master
Commit: 90d5906c777d2612601613d13a2c9e47021891e0
Parents: 6a0d76b
Author: ancosen <anco...@gmail.com>
Authored: Thu Apr 2 22:19:30 2015 +0200
Committer: Willem Jiang <willem.ji...@gmail.com>
Committed: Fri Apr 3 10:01:17 2015 +0800

----------------------------------------------------------------------
 .../component/aws/ddb/AbstractDdbCommand.java   | 13 ++-
 .../component/aws/ddb/BatchGetItemsCommand.java | 10 +-
 .../component/aws/ddb/DdbConfiguration.java     |  3 +-
 .../camel/component/aws/ddb/DdbConstants.java   | 11 ++-
 .../camel/component/aws/ddb/DdbEndpoint.java    | 30 +++---
 .../component/aws/ddb/DeleteItemCommand.java    |  9 +-
 .../component/aws/ddb/DeleteTableCommand.java   |  8 +-
 .../component/aws/ddb/DescribeTableCommand.java |  8 +-
 .../camel/component/aws/ddb/GetItemCommand.java |  8 +-
 .../camel/component/aws/ddb/PutItemCommand.java |  8 +-
 .../camel/component/aws/ddb/QueryCommand.java   | 35 +++----
 .../camel/component/aws/ddb/ScanCommand.java    | 12 +--
 .../component/aws/ddb/UpdateItemCommand.java    | 10 +-
 .../component/aws/ddb/UpdateTableCommand.java   |  8 +-
 .../component/aws/ddb/AmazonDDBClientMock.java  | 98 +++++++++++---------
 .../aws/ddb/BatchGetItemsCommandTest.java       | 24 ++---
 .../aws/ddb/DeleteItemCommandTest.java          | 12 +--
 .../aws/ddb/DeleteTableCommandTest.java         | 16 ++--
 .../aws/ddb/DescribeTableCommandTest.java       | 15 ++-
 .../component/aws/ddb/GetItemCommandTest.java   | 11 ++-
 .../component/aws/ddb/PutItemCommandTest.java   |  8 +-
 .../component/aws/ddb/QueryCommandTest.java     | 42 +++++----
 .../component/aws/ddb/ScanCommandTest.java      | 20 ++--
 .../aws/ddb/UpdateItemCommandTest.java          | 16 ++--
 .../DdbComponentIntegrationTest.java            |  4 +-
 25 files changed, 235 insertions(+), 204 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/AbstractDdbCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/AbstractDdbCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/AbstractDdbCommand.java
index fd0c801..09c7075 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/AbstractDdbCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/AbstractDdbCommand.java
@@ -19,14 +19,13 @@ package org.apache.camel.component.aws.ddb;
 import java.util.Collection;
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-import com.amazonaws.services.dynamodb.model.ExpectedAttributeValue;
-import com.amazonaws.services.dynamodb.model.Key;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+import com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue;
+
 public abstract class AbstractDdbCommand {
     protected DdbConfiguration configuration;
     protected Exchange exchange;
@@ -81,8 +80,8 @@ public abstract class AbstractDdbCommand {
         msg.setHeader(headerKey, value);
     }
 
-    protected Key determineKey() {
-        return exchange.getIn().getHeader(DdbConstants.KEY, Key.class);
+    protected Map<String, AttributeValue> determineKey() {
+        return exchange.getIn().getHeader(DdbConstants.KEY, Map.class);
     }
 
     @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommand.java
index fc9d04c..c1513d1 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommand.java
@@ -18,13 +18,13 @@ package org.apache.camel.component.aws.ddb;
 
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.BatchGetItemRequest;
-import com.amazonaws.services.dynamodb.model.BatchGetItemResult;
-import com.amazonaws.services.dynamodb.model.KeysAndAttributes;
-
 import org.apache.camel.Exchange;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.BatchGetItemRequest;
+import com.amazonaws.services.dynamodbv2.model.BatchGetItemResult;
+import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes;
+
 public class BatchGetItemsCommand extends AbstractDdbCommand {
     public BatchGetItemsCommand(AmazonDynamoDB ddbClient, DdbConfiguration 
configuration, Exchange exchange) {
         super(ddbClient, configuration, exchange);

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
index ff9f063..e221822 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
@@ -16,12 +16,13 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+
 @UriParams
 public class DdbConfiguration {
 

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConstants.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConstants.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConstants.java
index dbd1a9d..6c2dbae 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConstants.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConstants.java
@@ -28,8 +28,10 @@ public interface DdbConstants {
     String CONSUMED_CAPACITY = "CamelAwsDdbConsumedCapacity";
     String COUNT = "CamelAwsDdbCount";
     String CREATION_DATE = "CamelAwsDdbCreationDate";
-    String EXACT_COUNT = "CamelAwsDdbExactCount";
-    String HASH_KEY_VALUE = "CamelAwsDdbHashKeyValue";
+    // Removed from DynamoDB v1 to v2
+    // String EXACT_COUNT = "CamelAwsDdbExactCount";
+    // Removed from DynamoDB v1 to v2
+    // String HASH_KEY_VALUE = "CamelAwsDdbHashKeyValue";
     String ITEM = "CamelAwsDdbItem";
     String ITEMS = "CamelAwsDdbItems";
     String ITEM_COUNT = "CamelAwsDdbTableItemCount";
@@ -37,6 +39,8 @@ public interface DdbConstants {
     String MESSAGE_ID = "CamelAwsDdbMessageId";
     String NEXT_TOKEN = "CamelAwsDdbNextToken";
     String KEY = "CamelAwsDdbKey";
+    // Added from DynamoDB v1 to v2
+    String KEY_CONDITIONS = "CamelAwsDdbKeyConditions";
     String KEY_SCHEMA = "CamelAwsDdbKeySchema";
     String LAST_EVALUATED_KEY = "CamelAwsDdbLastEvaluatedKey";
     String LIMIT = "CamelAwsDdbLimit";
@@ -46,7 +50,8 @@ public interface DdbConstants {
     String RETURN_VALUES = "CamelAwsDdbReturnValues";
     String SCANNED_COUNT = "CamelAwsDdbScannedCount";
     String SCAN_INDEX_FORWARD = "CamelAwsDdbScanIndexForward";
-    String SCAN_RANGE_KEY_CONDITION = "CamelAwsDdbScanRangeKeyCondition";
+    // Removed from DynamoDB v1 to v2
+    // String SCAN_RANGE_KEY_CONDITION = "CamelAwsDdbScanRangeKeyCondition";
     String SCAN_FILTER = "CamelAwsDdbScanFilter";
     String START_KEY = "CamelAwsDdbStartKey";
     String TABLE_NAME = "CamelAwsDdbTableName";

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
index ae4e649..86a6efd 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
@@ -16,19 +16,6 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import com.amazonaws.AmazonServiceException;
-import com.amazonaws.auth.AWSCredentials;
-import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.AmazonDynamoDBClient;
-import com.amazonaws.services.dynamodb.model.CreateTableRequest;
-import com.amazonaws.services.dynamodb.model.DescribeTableRequest;
-import com.amazonaws.services.dynamodb.model.KeySchema;
-import com.amazonaws.services.dynamodb.model.KeySchemaElement;
-import com.amazonaws.services.dynamodb.model.ProvisionedThroughput;
-import com.amazonaws.services.dynamodb.model.ResourceNotFoundException;
-import com.amazonaws.services.dynamodb.model.TableDescription;
-import com.amazonaws.services.dynamodb.model.TableStatus;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Component;
 import org.apache.camel.Consumer;
@@ -41,6 +28,19 @@ import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.amazonaws.AmazonServiceException;
+import com.amazonaws.auth.AWSCredentials;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
+import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
+import com.amazonaws.services.dynamodbv2.model.DescribeTableRequest;
+import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
+import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
+import com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException;
+import com.amazonaws.services.dynamodbv2.model.TableDescription;
+import com.amazonaws.services.dynamodbv2.model.TableStatus;
+
 /**
  * Defines the <a href="http://aws.amazon.com/dynamodb/";>AWS DynamoDB 
endpoint</a>
  */
@@ -114,10 +114,10 @@ public class DdbEndpoint extends ScheduledPollEndpoint {
 
     private TableDescription createTable(String tableName) {
         CreateTableRequest createTableRequest = new 
CreateTableRequest().withTableName(tableName)
-                .withKeySchema(new KeySchema(
+                .withKeySchema(
                         new KeySchemaElement().withAttributeName(
                                 configuration.getKeyAttributeName())
-                                
.withAttributeType(configuration.getKeyAttributeType())))
+                                
.withKeyType(configuration.getKeyAttributeType()))
                 .withProvisionedThroughput(
                         new 
ProvisionedThroughput().withReadCapacityUnits(configuration.getReadCapacity())
                                 
.withWriteCapacityUnits(configuration.getWriteCapacity()));

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DeleteItemCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DeleteItemCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DeleteItemCommand.java
index c14d2dd..aa38abd 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DeleteItemCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DeleteItemCommand.java
@@ -16,12 +16,15 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.DeleteItemRequest;
-import com.amazonaws.services.dynamodb.model.DeleteItemResult;
+import java.util.Map;
 
 import org.apache.camel.Exchange;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+import com.amazonaws.services.dynamodbv2.model.DeleteItemRequest;
+import com.amazonaws.services.dynamodbv2.model.DeleteItemResult;
+
 public class DeleteItemCommand extends AbstractDdbCommand {
     public DeleteItemCommand(AmazonDynamoDB ddbClient, DdbConfiguration 
configuration, Exchange exchange) {
         super(ddbClient, configuration, exchange);

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DeleteTableCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DeleteTableCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DeleteTableCommand.java
index a9ce1b5..0c4586b 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DeleteTableCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DeleteTableCommand.java
@@ -16,12 +16,12 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.DeleteTableRequest;
-import com.amazonaws.services.dynamodb.model.TableDescription;
-
 import org.apache.camel.Exchange;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest;
+import com.amazonaws.services.dynamodbv2.model.TableDescription;
+
 public class DeleteTableCommand extends AbstractDdbCommand {
     public DeleteTableCommand(AmazonDynamoDB ddbClient, DdbConfiguration 
configuration,
                               Exchange exchange) {

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DescribeTableCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DescribeTableCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DescribeTableCommand.java
index 5229c69..12b6c52 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DescribeTableCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DescribeTableCommand.java
@@ -16,13 +16,13 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.DescribeTableRequest;
-import com.amazonaws.services.dynamodb.model.DescribeTableResult;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.DescribeTableRequest;
+import com.amazonaws.services.dynamodbv2.model.DescribeTableResult;
+
 public class DescribeTableCommand extends AbstractDdbCommand {
     public DescribeTableCommand(AmazonDynamoDB ddbClient, DdbConfiguration 
configuration,
                                 Exchange exchange) {

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/GetItemCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/GetItemCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/GetItemCommand.java
index 41b20f7..8a7e6c3 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/GetItemCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/GetItemCommand.java
@@ -16,12 +16,12 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.GetItemRequest;
-import com.amazonaws.services.dynamodb.model.GetItemResult;
-
 import org.apache.camel.Exchange;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.GetItemRequest;
+import com.amazonaws.services.dynamodbv2.model.GetItemResult;
+
 public class GetItemCommand extends AbstractDdbCommand {
     public GetItemCommand(AmazonDynamoDB ddbClient, DdbConfiguration 
configuration, Exchange exchange) {
         super(ddbClient, configuration, exchange);

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/PutItemCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/PutItemCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/PutItemCommand.java
index 99aa488..cf0d9ab 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/PutItemCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/PutItemCommand.java
@@ -16,12 +16,12 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.PutItemRequest;
-import com.amazonaws.services.dynamodb.model.PutItemResult;
-
 import org.apache.camel.Exchange;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.PutItemRequest;
+import com.amazonaws.services.dynamodbv2.model.PutItemResult;
+
 public class PutItemCommand extends AbstractDdbCommand {
     public PutItemCommand(AmazonDynamoDB ddbClient, DdbConfiguration 
configuration, Exchange exchange) {
         super(ddbClient, configuration, exchange);

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/QueryCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/QueryCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/QueryCommand.java
index 29a3c88..9da8840 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/QueryCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/QueryCommand.java
@@ -16,15 +16,15 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-import com.amazonaws.services.dynamodb.model.Condition;
-import com.amazonaws.services.dynamodb.model.Key;
-import com.amazonaws.services.dynamodb.model.QueryRequest;
-import com.amazonaws.services.dynamodb.model.QueryResult;
+import java.util.Map;
 
 import org.apache.camel.Exchange;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+import com.amazonaws.services.dynamodbv2.model.QueryRequest;
+import com.amazonaws.services.dynamodbv2.model.QueryResult;
+
 public class QueryCommand extends AbstractDdbCommand {
     public QueryCommand(AmazonDynamoDB ddbClient, DdbConfiguration 
configuration, Exchange exchange) {
         super(ddbClient, configuration, exchange);
@@ -35,41 +35,32 @@ public class QueryCommand extends AbstractDdbCommand {
         QueryResult result = ddbClient.query(new QueryRequest()
                 .withTableName(determineTableName())
                 .withAttributesToGet(determineAttributeNames())
-                .withCount(determineExactCount())
                 .withConsistentRead(determineConsistentRead())
                 .withExclusiveStartKey(determineStartKey())
-                .withHashKeyValue(determineHashKeyValue())
+                .withKeyConditions(determineKeyConditions())
+                .withExclusiveStartKey(determineStartKey())
                 .withLimit(determineLimit())
-                .withRangeKeyCondition(determineRangeKeyCondition())
                 .withScanIndexForward(determineScanIndexForward()));
 
         addToResult(DdbConstants.ITEMS, result.getItems());
         addToResult(DdbConstants.LAST_EVALUATED_KEY, 
result.getLastEvaluatedKey());
-        addToResult(DdbConstants.CONSUMED_CAPACITY, 
result.getConsumedCapacityUnits());
+        addToResult(DdbConstants.CONSUMED_CAPACITY, 
result.getConsumedCapacity());
         addToResult(DdbConstants.COUNT, result.getCount());
     }
 
-    private Key determineStartKey() {
-        return exchange.getIn().getHeader(DdbConstants.START_KEY, Key.class);
+    private  Map<String, AttributeValue> determineStartKey() {
+        return exchange.getIn().getHeader(DdbConstants.START_KEY, Map.class);
     }
 
     private Boolean determineScanIndexForward() {
         return exchange.getIn().getHeader(DdbConstants.SCAN_INDEX_FORWARD, 
Boolean.class);
     }
 
-    private Condition determineRangeKeyCondition() {
-        return 
exchange.getIn().getHeader(DdbConstants.SCAN_RANGE_KEY_CONDITION, 
Condition.class);
+    private Map determineKeyConditions() {
+        return exchange.getIn().getHeader(DdbConstants.KEY_CONDITIONS, 
Map.class);
     }
 
     private Integer determineLimit() {
         return exchange.getIn().getHeader(DdbConstants.LIMIT, Integer.class);
     }
-
-    private AttributeValue determineHashKeyValue() {
-        return exchange.getIn().getHeader(DdbConstants.HASH_KEY_VALUE, 
AttributeValue.class);
-    }
-
-    private Boolean determineExactCount() {
-        return exchange.getIn().getHeader(DdbConstants.EXACT_COUNT, 
Boolean.class);
-    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/ScanCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/ScanCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/ScanCommand.java
index 79b83be..350bf0f 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/ScanCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/ScanCommand.java
@@ -18,13 +18,13 @@ package org.apache.camel.component.aws.ddb;
 
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.Condition;
-import com.amazonaws.services.dynamodb.model.ScanRequest;
-import com.amazonaws.services.dynamodb.model.ScanResult;
-
 import org.apache.camel.Exchange;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.Condition;
+import com.amazonaws.services.dynamodbv2.model.ScanRequest;
+import com.amazonaws.services.dynamodbv2.model.ScanResult;
+
 public class ScanCommand extends AbstractDdbCommand {
     public ScanCommand(AmazonDynamoDB ddbClient, DdbConfiguration 
configuration, Exchange exchange) {
         super(ddbClient, configuration, exchange);
@@ -38,7 +38,7 @@ public class ScanCommand extends AbstractDdbCommand {
 
         addToResult(DdbConstants.ITEMS, result.getItems());
         addToResult(DdbConstants.LAST_EVALUATED_KEY, 
result.getLastEvaluatedKey());
-        addToResult(DdbConstants.CONSUMED_CAPACITY, 
result.getConsumedCapacityUnits());
+        addToResult(DdbConstants.CONSUMED_CAPACITY, 
result.getConsumedCapacity());
         addToResult(DdbConstants.COUNT, result.getCount());
         addToResult(DdbConstants.SCANNED_COUNT, result.getScannedCount());
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/UpdateItemCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/UpdateItemCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/UpdateItemCommand.java
index 3d3ce2a..cf770e1 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/UpdateItemCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/UpdateItemCommand.java
@@ -18,13 +18,13 @@ package org.apache.camel.component.aws.ddb;
 
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.AttributeValueUpdate;
-import com.amazonaws.services.dynamodb.model.UpdateItemRequest;
-import com.amazonaws.services.dynamodb.model.UpdateItemResult;
-
 import org.apache.camel.Exchange;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.AttributeValueUpdate;
+import com.amazonaws.services.dynamodbv2.model.UpdateItemRequest;
+import com.amazonaws.services.dynamodbv2.model.UpdateItemResult;
+
 public class UpdateItemCommand extends AbstractDdbCommand {
     public UpdateItemCommand(AmazonDynamoDB ddbClient, DdbConfiguration 
configuration, Exchange exchange) {
         super(ddbClient, configuration, exchange);

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/UpdateTableCommand.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/UpdateTableCommand.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/UpdateTableCommand.java
index f9d20ec..7e9f459 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/UpdateTableCommand.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/UpdateTableCommand.java
@@ -16,12 +16,12 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import com.amazonaws.services.dynamodb.AmazonDynamoDB;
-import com.amazonaws.services.dynamodb.model.ProvisionedThroughput;
-import com.amazonaws.services.dynamodb.model.UpdateTableRequest;
-
 import org.apache.camel.Exchange;
 
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
+import com.amazonaws.services.dynamodbv2.model.UpdateTableRequest;
+
 public class UpdateTableCommand extends AbstractDdbCommand {
     public UpdateTableCommand(AmazonDynamoDB ddbClient, DdbConfiguration 
configuration, Exchange exchange) {
         super(ddbClient, configuration, exchange);

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/AmazonDDBClientMock.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/AmazonDDBClientMock.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/AmazonDDBClientMock.java
index 14824a1..e508e89 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/AmazonDDBClientMock.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/AmazonDDBClientMock.java
@@ -16,44 +16,45 @@
  */
 package org.apache.camel.component.aws.ddb;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.services.dynamodb.AmazonDynamoDBClient;
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-import com.amazonaws.services.dynamodb.model.BatchGetItemRequest;
-import com.amazonaws.services.dynamodb.model.BatchGetItemResult;
-import com.amazonaws.services.dynamodb.model.BatchResponse;
-import com.amazonaws.services.dynamodb.model.CreateTableRequest;
-import com.amazonaws.services.dynamodb.model.CreateTableResult;
-import com.amazonaws.services.dynamodb.model.DeleteItemRequest;
-import com.amazonaws.services.dynamodb.model.DeleteItemResult;
-import com.amazonaws.services.dynamodb.model.DeleteTableRequest;
-import com.amazonaws.services.dynamodb.model.DeleteTableResult;
-import com.amazonaws.services.dynamodb.model.DescribeTableRequest;
-import com.amazonaws.services.dynamodb.model.DescribeTableResult;
-import com.amazonaws.services.dynamodb.model.GetItemRequest;
-import com.amazonaws.services.dynamodb.model.GetItemResult;
-import com.amazonaws.services.dynamodb.model.Key;
-import com.amazonaws.services.dynamodb.model.KeySchema;
-import com.amazonaws.services.dynamodb.model.KeySchemaElement;
-import com.amazonaws.services.dynamodb.model.KeysAndAttributes;
-import com.amazonaws.services.dynamodb.model.ProvisionedThroughputDescription;
-import com.amazonaws.services.dynamodb.model.PutItemRequest;
-import com.amazonaws.services.dynamodb.model.PutItemResult;
-import com.amazonaws.services.dynamodb.model.QueryRequest;
-import com.amazonaws.services.dynamodb.model.QueryResult;
-import com.amazonaws.services.dynamodb.model.ResourceNotFoundException;
-import com.amazonaws.services.dynamodb.model.ScanRequest;
-import com.amazonaws.services.dynamodb.model.ScanResult;
-import com.amazonaws.services.dynamodb.model.TableDescription;
-import com.amazonaws.services.dynamodb.model.TableStatus;
-import com.amazonaws.services.dynamodb.model.UpdateItemRequest;
-import com.amazonaws.services.dynamodb.model.UpdateItemResult;
-import com.amazonaws.services.dynamodb.model.UpdateTableRequest;
-import com.amazonaws.services.dynamodb.model.UpdateTableResult;
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+import com.amazonaws.services.dynamodbv2.model.BatchGetItemRequest;
+import com.amazonaws.services.dynamodbv2.model.BatchGetItemResult;
+import com.amazonaws.services.dynamodbv2.model.ConsumedCapacity;
+import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
+import com.amazonaws.services.dynamodbv2.model.CreateTableResult;
+import com.amazonaws.services.dynamodbv2.model.DeleteItemRequest;
+import com.amazonaws.services.dynamodbv2.model.DeleteItemResult;
+import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest;
+import com.amazonaws.services.dynamodbv2.model.DeleteTableResult;
+import com.amazonaws.services.dynamodbv2.model.DescribeTableRequest;
+import com.amazonaws.services.dynamodbv2.model.DescribeTableResult;
+import com.amazonaws.services.dynamodbv2.model.GetItemRequest;
+import com.amazonaws.services.dynamodbv2.model.GetItemResult;
+import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
+import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes;
+import 
com.amazonaws.services.dynamodbv2.model.ProvisionedThroughputDescription;
+import com.amazonaws.services.dynamodbv2.model.PutItemRequest;
+import com.amazonaws.services.dynamodbv2.model.PutItemResult;
+import com.amazonaws.services.dynamodbv2.model.QueryRequest;
+import com.amazonaws.services.dynamodbv2.model.QueryResult;
+import com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException;
+import com.amazonaws.services.dynamodbv2.model.ScanRequest;
+import com.amazonaws.services.dynamodbv2.model.ScanResult;
+import com.amazonaws.services.dynamodbv2.model.TableDescription;
+import com.amazonaws.services.dynamodbv2.model.TableStatus;
+import com.amazonaws.services.dynamodbv2.model.UpdateItemRequest;
+import com.amazonaws.services.dynamodbv2.model.UpdateItemResult;
+import com.amazonaws.services.dynamodbv2.model.UpdateTableRequest;
+import com.amazonaws.services.dynamodbv2.model.UpdateTableResult;
+
 
 public class AmazonDDBClientMock extends AmazonDynamoDBClient {
     public static final long NOW = 1327709390233L;
@@ -87,7 +88,7 @@ public class AmazonDDBClientMock extends AmazonDynamoDBClient 
{
                     .withTableStatus(TableStatus.ACTIVE)
                     .withCreationDateTime(new Date(NOW))
                     .withItemCount(100L)
-                    .withKeySchema(new KeySchema(new 
KeySchemaElement().withAttributeName("name")))
+                    .withKeySchema(new 
KeySchemaElement().withAttributeName("name"))
                     .withProvisionedThroughput(new 
ProvisionedThroughputDescription()
                             .withReadCapacityUnits(20L)
                             .withWriteCapacityUnits(10L))
@@ -121,7 +122,7 @@ public class AmazonDDBClientMock extends 
AmazonDynamoDBClient {
                 .withTableName(deleteTableRequest.getTableName())
                 .withCreationDateTime(new Date(NOW))
                 .withItemCount(10L)
-                .withKeySchema(new KeySchema())
+                .withKeySchema(new ArrayList<KeySchemaElement>())
                 .withTableSizeBytes(20L)
                 .withTableStatus(TableStatus.ACTIVE));
     }
@@ -160,12 +161,15 @@ public class AmazonDDBClientMock extends 
AmazonDynamoDBClient {
     @Override
     public BatchGetItemResult batchGetItem(BatchGetItemRequest 
batchGetItemRequest) {
         this.batchGetItemRequest = batchGetItemRequest;
-        Map<String, BatchResponse> responseMap = new HashMap<String, 
BatchResponse>();
-        responseMap.put("DOMAIN1", new 
BatchResponse().withItems(getAttributes()));
-
+        Map<String, List<Map<String, AttributeValue>>> responseMap = new 
HashMap<String, List<Map<String, AttributeValue>>>();
+        List<Map<String, AttributeValue>> p = new ArrayList<Map<String, 
AttributeValue>>();
+        p.add(getAttributes());
+        responseMap.put("DOMAIN1", p);
+        Map<String,AttributeValue> keysMap = new HashMap<String, 
AttributeValue>();
+        keysMap.put("1", new AttributeValue("UNPROCESSED_KEY"));
         Map<String, KeysAndAttributes> unprocessedKeys = new HashMap<String, 
KeysAndAttributes>();
         unprocessedKeys.put("DOMAIN1", new KeysAndAttributes().withKeys(
-                new Key(new AttributeValue("UNPROCESSED_KEY"))));
+                       keysMap));
 
         return new BatchGetItemResult()
                 .withResponses(responseMap)
@@ -176,22 +180,30 @@ public class AmazonDDBClientMock extends 
AmazonDynamoDBClient {
     @Override
     public ScanResult scan(ScanRequest scanRequest) {
         this.scanRequest = scanRequest;
+        ConsumedCapacity consumed = new ConsumedCapacity();
+        consumed.setCapacityUnits(1.0);
+        Map<String,AttributeValue> lastEvaluatedKey = new HashMap<String, 
AttributeValue>();
+        lastEvaluatedKey.put("1", new AttributeValue("LAST_KEY"));
         return new ScanResult()
-                .withConsumedCapacityUnits(1.0)
+                .withConsumedCapacity(consumed)
                 .withCount(1)
                 .withItems(getAttributes())
                 .withScannedCount(10)
-                .withLastEvaluatedKey(new Key(new AttributeValue("LAST_KEY")));
+                .withLastEvaluatedKey(lastEvaluatedKey);
     }
 
     @SuppressWarnings("unchecked")
     @Override
     public QueryResult query(QueryRequest queryRequest) {
         this.queryRequest = queryRequest;
+        ConsumedCapacity consumed = new ConsumedCapacity();
+        consumed.setCapacityUnits(1.0);
+        Map<String,AttributeValue> lastEvaluatedKey = new HashMap<String, 
AttributeValue>();
+        lastEvaluatedKey.put("1", new AttributeValue("LAST_KEY"));
         return new QueryResult()
-                .withConsumedCapacityUnits(1.0)
+                .withConsumedCapacity(consumed)
                 .withCount(1)
                 .withItems(getAttributes())
-                .withLastEvaluatedKey(new Key(new AttributeValue("LAST_KEY")));
+                .withLastEvaluatedKey(lastEvaluatedKey);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommandTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommandTest.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommandTest.java
index 3a161bf..27ee44d 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommandTest.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommandTest.java
@@ -16,21 +16,20 @@
  */
 package org.apache.camel.component.aws.ddb;
 
+import static org.junit.Assert.assertEquals;
+
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-import com.amazonaws.services.dynamodb.model.BatchResponse;
-import com.amazonaws.services.dynamodb.model.Key;
-import com.amazonaws.services.dynamodb.model.KeysAndAttributes;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.DefaultExchange;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes;
 
 public class BatchGetItemsCommandTest {
 
@@ -49,8 +48,10 @@ public class BatchGetItemsCommandTest {
 
     @Test
     public void execute() {
-        Key key = new Key(new AttributeValue("Key_1"));
-        Key unprocessedKey = new Key(new AttributeValue("UNPROCESSED_KEY"));
+       Map<String,AttributeValue> key = new HashMap<String, AttributeValue>();
+       key.put("1", new AttributeValue("Key_1"));
+       Map<String,AttributeValue> unprocessedKey = new HashMap<String, 
AttributeValue>();
+       unprocessedKey.put("1", new AttributeValue("UNPROCESSED_KEY"));
         Map<String, KeysAndAttributes> keysAndAttributesMap = new 
HashMap<String, KeysAndAttributes>();
         KeysAndAttributes keysAndAttributes = new 
KeysAndAttributes().withKeys(key);
         keysAndAttributesMap.put("DOMAIN1", keysAndAttributes);
@@ -61,13 +62,12 @@ public class BatchGetItemsCommandTest {
         assertEquals(keysAndAttributesMap, 
ddbClient.batchGetItemRequest.getRequestItems());
 
 
-        BatchResponse batchResponse = (BatchResponse)exchange.getIn()
-                .getHeader(DdbConstants.BATCH_RESPONSE, 
Map.class).get("DOMAIN1");
-        AttributeValue value = batchResponse.getItems().get(0).get("attrName");
+        List<Map<String, AttributeValue>> batchResponse = (List<Map<String, 
AttributeValue>>)exchange.getIn().getHeader(DdbConstants.BATCH_RESPONSE, 
Map.class).get("DOMAIN1");
+        AttributeValue value = batchResponse.get(0).get("attrName");
 
         KeysAndAttributes unProcessedAttributes = 
(KeysAndAttributes)exchange.getIn().getHeader(
                 DdbConstants.UNPROCESSED_KEYS, Map.class).get("DOMAIN1");
-        Key next = unProcessedAttributes.getKeys().iterator().next();
+        Map<String,AttributeValue> next = 
unProcessedAttributes.getKeys().iterator().next();
 
         assertEquals(new AttributeValue("attrValue"), value);
         assertEquals(unprocessedKey, next);

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DeleteItemCommandTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DeleteItemCommandTest.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DeleteItemCommandTest.java
index 026571e..e57ab6b 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DeleteItemCommandTest.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DeleteItemCommandTest.java
@@ -16,20 +16,19 @@
  */
 package org.apache.camel.component.aws.ddb;
 
+import static org.junit.Assert.assertEquals;
+
 import java.util.HashMap;
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-import com.amazonaws.services.dynamodb.model.ExpectedAttributeValue;
-import com.amazonaws.services.dynamodb.model.Key;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.DefaultExchange;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+import com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue;
 
 public class DeleteItemCommandTest {
 
@@ -49,7 +48,8 @@ public class DeleteItemCommandTest {
 
     @Test
     public void execute() {
-        Key key = new Key(new AttributeValue("Key_1"));
+       Map<String,AttributeValue> key = new HashMap<String, AttributeValue>();
+       key.put("1", new AttributeValue("Key_1"));
         exchange.getIn().setHeader(DdbConstants.KEY, key);
 
 

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DeleteTableCommandTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DeleteTableCommandTest.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DeleteTableCommandTest.java
index 91bb696..18533c4 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DeleteTableCommandTest.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DeleteTableCommandTest.java
@@ -16,20 +16,22 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import java.util.Date;
+import static org.junit.Assert.assertEquals;
 
-import com.amazonaws.services.dynamodb.model.KeySchema;
-import com.amazonaws.services.dynamodb.model.ProvisionedThroughputDescription;
-import com.amazonaws.services.dynamodb.model.TableStatus;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.DefaultExchange;
-
 import org.junit.Before;
 import org.junit.Test;
+import static org.junit.Assert.assertArrayEquals;
 
-import static org.junit.Assert.assertEquals;
+import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
+import 
com.amazonaws.services.dynamodbv2.model.ProvisionedThroughputDescription;
+import com.amazonaws.services.dynamodbv2.model.TableStatus;
 
 public class DeleteTableCommandTest {
 
@@ -58,7 +60,7 @@ public class DeleteTableCommandTest {
         assertEquals(new Date(AmazonDDBClientMock.NOW), 
exchange.getIn().getHeader(DdbConstants.CREATION_DATE,
                 Date.class));
         assertEquals(Long.valueOf(10L), 
exchange.getIn().getHeader(DdbConstants.ITEM_COUNT, Long.class));
-        assertEquals(new KeySchema(), 
exchange.getIn().getHeader(DdbConstants.KEY_SCHEMA, KeySchema.class));
+        assertEquals(new ArrayList<KeySchemaElement>(), 
exchange.getIn().getHeader(DdbConstants.KEY_SCHEMA, ArrayList.class));
         assertEquals(Long.valueOf(20L), 
exchange.getIn().getHeader(DdbConstants.TABLE_SIZE, Long.class));
         assertEquals(TableStatus.ACTIVE, 
exchange.getIn().getHeader(DdbConstants.TABLE_STATUS, TableStatus.class));
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DescribeTableCommandTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DescribeTableCommandTest.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DescribeTableCommandTest.java
index d1d14f5..60af09f 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DescribeTableCommandTest.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/DescribeTableCommandTest.java
@@ -16,10 +16,11 @@
  */
 package org.apache.camel.component.aws.ddb;
 
-import java.util.Date;
+import static org.junit.Assert.assertEquals;
 
-import com.amazonaws.services.dynamodb.model.KeySchema;
-import com.amazonaws.services.dynamodb.model.KeySchemaElement;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultCamelContext;
@@ -27,7 +28,7 @@ import org.apache.camel.impl.DefaultExchange;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
+import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
 
 public class DescribeTableCommandTest {
 
@@ -48,12 +49,16 @@ public class DescribeTableCommandTest {
     @Test
     public void testExecute() {
         command.execute();
+        
+       List<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>();
+       keySchema.add(new KeySchemaElement().withAttributeName("name"));
+       
         assertEquals("FULL_DESCRIBE_TABLE", 
ddbClient.describeTableRequest.getTableName());
         assertEquals("FULL_DESCRIBE_TABLE", 
exchange.getIn().getHeader(DdbConstants.TABLE_NAME));
         assertEquals("ACTIVE", 
exchange.getIn().getHeader(DdbConstants.TABLE_STATUS));
         assertEquals(new Date(AmazonDDBClientMock.NOW), 
exchange.getIn().getHeader(DdbConstants.CREATION_DATE));
         assertEquals(100L, 
exchange.getIn().getHeader(DdbConstants.ITEM_COUNT));
-        assertEquals(new KeySchema(new 
KeySchemaElement().withAttributeName("name")),
+        assertEquals(keySchema,
                 exchange.getIn().getHeader(DdbConstants.KEY_SCHEMA));
         assertEquals(20L, 
exchange.getIn().getHeader(DdbConstants.READ_CAPACITY));
         assertEquals(10L, 
exchange.getIn().getHeader(DdbConstants.WRITE_CAPACITY));

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/GetItemCommandTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/GetItemCommandTest.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/GetItemCommandTest.java
index d329ec6..a55f5bd 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/GetItemCommandTest.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/GetItemCommandTest.java
@@ -16,20 +16,20 @@
  */
 package org.apache.camel.component.aws.ddb;
 
+import static org.junit.Assert.assertEquals;
+
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-import com.amazonaws.services.dynamodb.model.Key;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.DefaultExchange;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
 
 public class GetItemCommandTest {
     private GetItemCommand command;
@@ -48,7 +48,8 @@ public class GetItemCommandTest {
 
     @Test
     public void execute() {
-        Key key = new Key(new AttributeValue("Key_1"));
+       Map<String,AttributeValue> key = new HashMap<String, AttributeValue>();
+       key.put("1", new AttributeValue("Key_1"));
         exchange.getIn().setHeader(DdbConstants.KEY, key);
 
         List<String> attrNames = Arrays.asList("attrName");

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/PutItemCommandTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/PutItemCommandTest.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/PutItemCommandTest.java
index 22c5a9a..5ef0745 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/PutItemCommandTest.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/PutItemCommandTest.java
@@ -16,19 +16,19 @@
  */
 package org.apache.camel.component.aws.ddb;
 
+import static org.junit.Assert.assertEquals;
+
 import java.util.HashMap;
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-import com.amazonaws.services.dynamodb.model.ExpectedAttributeValue;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.DefaultExchange;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+import com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue;
 
 public class PutItemCommandTest {
 

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/QueryCommandTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/QueryCommandTest.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/QueryCommandTest.java
index 2e11d21..d266b89 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/QueryCommandTest.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/QueryCommandTest.java
@@ -16,23 +16,24 @@
  */
 package org.apache.camel.component.aws.ddb;
 
+import static org.junit.Assert.assertEquals;
+
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-import com.amazonaws.services.dynamodb.model.ComparisonOperator;
-import com.amazonaws.services.dynamodb.model.Condition;
-import com.amazonaws.services.dynamodb.model.Key;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.DefaultExchange;
-
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+import com.amazonaws.services.dynamodbv2.model.ComparisonOperator;
+import com.amazonaws.services.dynamodbv2.model.Condition;
+import com.amazonaws.services.dynamodbv2.model.ConsumedCapacity;
+import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
 
 public class QueryCommandTest {
 
@@ -53,27 +54,34 @@ public class QueryCommandTest {
     @Test
     public void execute() {
 
-        Key startKey = new Key(new AttributeValue("startKey"));
-        AttributeValue attributeValue = new AttributeValue().withN("1985");
-        Condition condition = new Condition()
-                .withComparisonOperator(ComparisonOperator.GT.toString())
-                .withAttributeValueList(new AttributeValue().withN("1985"));
+       Map<String,AttributeValue> startKey = new HashMap<String, 
AttributeValue>();
+       startKey.put("1", new AttributeValue("startKey"));
 
         List<String> attributeNames = Arrays.asList("attrNameOne", 
"attrNameTwo");
         exchange.getIn().setHeader(DdbConstants.ATTRIBUTE_NAMES, 
attributeNames);
-        exchange.getIn().setHeader(DdbConstants.EXACT_COUNT, true);
         exchange.getIn().setHeader(DdbConstants.CONSISTENT_READ, true);
         exchange.getIn().setHeader(DdbConstants.START_KEY, startKey);
-        exchange.getIn().setHeader(DdbConstants.HASH_KEY_VALUE, 
attributeValue);
         exchange.getIn().setHeader(DdbConstants.LIMIT, 10);
-        exchange.getIn().setHeader(DdbConstants.SCAN_RANGE_KEY_CONDITION, 
condition);
         exchange.getIn().setHeader(DdbConstants.SCAN_INDEX_FORWARD, true);
+        
+        Map<String, Condition> keyConditions = new HashMap<String, 
Condition>();
+        Condition condition = new Condition()
+               .withComparisonOperator(ComparisonOperator.GT.toString())
+               .withAttributeValueList(new AttributeValue().withN("1985"));
+        
+        keyConditions.put("1", condition);
+        
+        exchange.getIn().setHeader(DdbConstants.KEY_CONDITIONS, keyConditions);
 
         command.execute();
 
+       Map<String,AttributeValue> mapAssert = new HashMap<String, 
AttributeValue>();
+       mapAssert.put("1", new AttributeValue("LAST_KEY"));
+       ConsumedCapacity consumed = (ConsumedCapacity) 
exchange.getIn().getHeader(DdbConstants.CONSUMED_CAPACITY);
         assertEquals(Integer.valueOf(1), 
exchange.getIn().getHeader(DdbConstants.COUNT, Integer.class));
-        assertEquals(Double.valueOf(1.0), 
exchange.getIn().getHeader(DdbConstants.CONSUMED_CAPACITY, Double.class));
-        assertEquals(new Key(new AttributeValue("LAST_KEY")), 
exchange.getIn().getHeader(DdbConstants.LAST_EVALUATED_KEY, Key.class));
+        assertEquals(Double.valueOf(1.0), consumed.getCapacityUnits());
+        assertEquals(mapAssert, 
exchange.getIn().getHeader(DdbConstants.LAST_EVALUATED_KEY, Map.class));
+        assertEquals(keyConditions, 
exchange.getIn().getHeader(DdbConstants.KEY_CONDITIONS, Map.class));
 
         Map<?, ?> items = (Map<?, ?>) 
exchange.getIn().getHeader(DdbConstants.ITEMS, List.class).get(0);
         assertEquals(new AttributeValue("attrValue"), items.get("attrName"));

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/ScanCommandTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/ScanCommandTest.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/ScanCommandTest.java
index 0b2379d..d08af2a 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/ScanCommandTest.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/ScanCommandTest.java
@@ -16,22 +16,22 @@
  */
 package org.apache.camel.component.aws.ddb;
 
+import static org.junit.Assert.assertEquals;
+
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-import com.amazonaws.services.dynamodb.model.ComparisonOperator;
-import com.amazonaws.services.dynamodb.model.Condition;
-import com.amazonaws.services.dynamodb.model.Key;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.DefaultExchange;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+import com.amazonaws.services.dynamodbv2.model.ComparisonOperator;
+import com.amazonaws.services.dynamodbv2.model.Condition;
+import com.amazonaws.services.dynamodbv2.model.ConsumedCapacity;
 
 public class ScanCommandTest {
 
@@ -60,11 +60,15 @@ public class ScanCommandTest {
 
         command.execute();
 
+       Map<String,AttributeValue> mapAssert = new HashMap<String, 
AttributeValue>();
+       mapAssert.put("1", new AttributeValue("LAST_KEY"));
+       
+       ConsumedCapacity consumed = (ConsumedCapacity) 
exchange.getIn().getHeader(DdbConstants.CONSUMED_CAPACITY);
         assertEquals(scanFilter, ddbClient.scanRequest.getScanFilter());
         assertEquals(Integer.valueOf(10), 
exchange.getIn().getHeader(DdbConstants.SCANNED_COUNT, Integer.class));
         assertEquals(Integer.valueOf(1), 
exchange.getIn().getHeader(DdbConstants.COUNT, Integer.class));
-        assertEquals(Double.valueOf(1.0), 
exchange.getIn().getHeader(DdbConstants.CONSUMED_CAPACITY, Double.class));
-        assertEquals(new Key(new AttributeValue("LAST_KEY")), 
exchange.getIn().getHeader(DdbConstants.LAST_EVALUATED_KEY, Key.class));
+        assertEquals(Double.valueOf(1.0), consumed.getCapacityUnits());
+        assertEquals(mapAssert, 
exchange.getIn().getHeader(DdbConstants.LAST_EVALUATED_KEY, Map.class));
 
         Map<?, ?> items = (Map<?, ?>) 
exchange.getIn().getHeader(DdbConstants.ITEMS, List.class).get(0);
         assertEquals(new AttributeValue("attrValue"), items.get("attrName"));

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/UpdateItemCommandTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/UpdateItemCommandTest.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/UpdateItemCommandTest.java
index a99be93..001e720 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/UpdateItemCommandTest.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/UpdateItemCommandTest.java
@@ -16,22 +16,21 @@
  */
 package org.apache.camel.component.aws.ddb;
 
+import static org.junit.Assert.assertEquals;
+
 import java.util.HashMap;
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.model.AttributeAction;
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-import com.amazonaws.services.dynamodb.model.AttributeValueUpdate;
-import com.amazonaws.services.dynamodb.model.ExpectedAttributeValue;
-import com.amazonaws.services.dynamodb.model.Key;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.DefaultExchange;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
+import com.amazonaws.services.dynamodbv2.model.AttributeAction;
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+import com.amazonaws.services.dynamodbv2.model.AttributeValueUpdate;
+import com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue;
 
 public class UpdateItemCommandTest {
 
@@ -51,7 +50,8 @@ public class UpdateItemCommandTest {
 
     @Test
     public void execute() {
-        Key key = new Key(new AttributeValue("Key_1"));
+       Map<String,AttributeValue> key = new HashMap<String, AttributeValue>();
+       key.put("1", new AttributeValue("Key_1"));
         exchange.getIn().setHeader(DdbConstants.KEY, key);
 
         Map<String, AttributeValueUpdate> attributeMap = new HashMap<String, 
AttributeValueUpdate>();

http://git-wip-us.apache.org/repos/asf/camel/blob/90d5906c/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/integration/DdbComponentIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/integration/DdbComponentIntegrationTest.java
 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/integration/DdbComponentIntegrationTest.java
index 9bfe77b..9d2bbb7 100644
--- 
a/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/integration/DdbComponentIntegrationTest.java
+++ 
b/components/camel-aws/src/test/java/org/apache/camel/component/aws/ddb/integration/DdbComponentIntegrationTest.java
@@ -20,8 +20,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import com.amazonaws.services.dynamodb.model.AttributeValue;
-
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
@@ -33,6 +31,8 @@ import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Ignore;
 import org.junit.Test;
 
+import com.amazonaws.services.dynamodbv2.model.AttributeValue;
+
 @Ignore("Must be manually tested. Provide your own accessKey and secretKey!")
 public class DdbComponentIntegrationTest extends CamelTestSupport {
 

Reply via email to