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 {