SDB Component
Available as of Camel 2.8.4
The sdb component supports storing and retrieving data from/to Amazon's SDB service.
![]() | Prerequisites You must have a valid Amazon Web Services developer account, and be signed up to use Amazon SDB. More information are available at Amazon SDB. |
URI Format
You can append query options to the URI in the following format, ?options=value&option2=value&...
URI Options
| Name |
Default Value |
Context |
Description |
| amazonSDBClient |
null |
Producer |
Reference to a com.amazonaws.services.simpledb.AmazonSimpleDB in the Registry. |
| accessKey |
null |
Producer |
Amazon AWS Access Key |
| secretKey |
null |
Producer |
Amazon AWS Secret Key |
| amazonSdbEndpoint |
null |
Producer |
The region with which the AWS-SDB client wants to work with. |
| domainName |
null |
Producer |
The name of the domain currently worked with. |
| maxNumberOfDomains |
100 |
Producer |
The maximum number of domain names you want returned. The range is 1 * to 100. |
| consistentRead |
false |
Producer |
Determines whether or not strong consistency should be enforced when data is read. |
| operation |
PutAttributes |
Producer |
Valid values are BatchDeleteAttributes, BatchPutAttributes, DeleteAttributes, DeleteDomain, DomainMetadata, GetAttributes, ListDomains, PutAttributes, Select. |
![]() | Required SDB component options You have to provide the amazonSDBClient in the Registry or your accessKey and secretKey to access the Amazon's SDB. |
Usage
Message headers evaluated by the SDB producer
| Header |
Type |
Description |
| CamelAwsSdbAttributes |
Collection<Attribute> |
List of attributes to be acted upon. |
| CamelAwsSdbAttributeNames |
Collection<String> |
The names of the attributes to be retrieved. |
| CamelAwsSdbConsistentRead |
Boolean |
Determines whether or not strong consistency should be enforced when data is read. |
| CamelAwsSdbDeletableItems |
Collection<DeletableItem> |
A list of items on which to perform the delete operation in a batch. |
| CamelAwsSdbDomainName |
String |
The name of the domain currently worked with. |
| CamelAwsSdbItemName |
String |
The unique key for this item |
| CamelAwsSdbMaxNumberOfDomains |
Integer |
The maximum number of domain names you want returned. The range is 1 * to 100. |
| CamelAwsSdbNextToken |
String |
A string specifying where to start the next list of domain/item names. |
| CamelAwsSdbOperation |
String |
To override the operation from the URI options. |
| CamelAwsSdbReplaceableAttributes |
Collection<ReplaceableAttribute> |
List of attributes to put in an Item. |
| CamelAwsSdbReplaceableItems |
Collection<ReplaceableItem> |
A list of items to put in a Domain. |
| CamelAwsSdbSelectExpression |
String |
The _expression_ used to query the domain. |
| CamelAwsSdbUpdateCondition |
String |
The update condition which, if specified, determines whether the specified attributes will be updated/deleted or not. |
Message headers set during DomainMetadata operation
| Header |
Type |
Description |
| CamelAwsSdbTimestamp |
Integer |
The data and time when metadata was calculated, in Epoch (UNIX) seconds. |
| CamelAwsSdbItemCount |
Integer |
The number of all items in the domain. |
| CamelAwsSdbAttributeNameCount |
Integer |
The number of unique attribute names in the domain. |
| CamelAwsSdbAttributeValueCount |
Integer |
The number of all attribute name/value pairs in the domain. |
| CamelAwsSdbAttributeNameSize |
Long |
The total size of all unique attribute names in the domain, in bytes. |
| CamelAwsSdbAttributeValueSize |
Long |
The total size of all attribute values in the domain, in bytes. |
| CamelAwsSdbItemNameSize |
Long |
The total size of all item names in the domain, in bytes. |
Message headers set during GetAttributes operation
| Header |
Type |
Description |
| CamelAwsSdbAttributes |
List<Attribute> |
The list of attributes returned by the operation. |
Message headers set during ListDomains operation
| Header |
Type |
Description |
| CamelAwsSdbDomainNames |
List<String> |
A list of domain names that match the _expression_. |
| CamelAwsSdbNextToken |
String |
An opaque token indicating that there are more domains than the specified MaxNumberOfDomains still available. |
Message headers set during Select operation
| Header |
Type |
Description |
| CamelAwsSdbItems |
List<Item> |
A list of items that match the select _expression_. |
| CamelAwsSdbNextToken |
String |
An opaque token indicating that more items than MaxNumberOfItems were matched, the response size exceeded 1 megabyte, or the execution time exceeded 5 seconds. |
Advanced AmazonSimpleDBClient configuration
If you need more control over the AmazonSimpleDBClient configuration you can create your own instance and refer to it from the URI:
from("direct:start")
.to("aws-sdb:);
The #amazonSDBClient refers to a AmazonSimpleDBClient in the Registry.
For example if your Camel Application is running behind a firewall:
AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http:);
clientConfiguration.setProxyPort(8080);
AmazonSimpleDBClient amazonSDBClient = new AmazonSimpleDBClient(awsCredentials, clientConfiguration);
Dependencies
Maven users will need to add the following dependency to their pom.xml.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
where ${camel-version} must be replaced by the actual version of Camel (2.8.4 or higher).
See Also