SDB Component
Available as of Camel 2.8.4
The sdb component supports storing and retrieving data from/to Amazon's SDB service.
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
aws-sdb://domainName[?options]
|
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. |
proxyHost | null
| Producer | Camel 2.16: Specify a proxy host to be used inside the client definition. |
proxyPort | null
| Producer | Camel 2.16: Specify a proxy port to be used inside the client definition. |
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
| UpdateCondition
| 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 AmazonSimpleDB configuration
If you need more control over the AmazonSimpleDB instance configuration you can create your own instance and refer to it from the URI:
from("direct:start")
.to("aws-sdb://domainName?amazonSDBClient=#client");
|
The #client refers to a AmazonSimpleDB 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://myProxyHost");
clientConfiguration.setProxyPort(8080);
AmazonSimpleDB client = new AmazonSimpleDBClient(awsCredentials, clientConfiguration);
registry.bind("client", client);
|
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).
