blob: 6752ce82854e509ece64a6524d4bbfbbb241479f [file] [log] [blame]
[[AWS-SDB-SDBComponent]]
SDB Component
~~~~~~~~~~~~~
*Available as of Camel 2.8.4*
The sdb component supports storing and retrieving data from/to
http://aws.amazon.com/sdb[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
http://aws.amazon.com/sdb[Amazon SDB].
[[AWS-SDB-URIFormat]]
URI Format
^^^^^^^^^^
[source,java]
------------------------------
aws-sdb://domainName[?options]
------------------------------
You can append query options to the URI in the following format,
?options=value&option2=value&...
[[AWS-SDB-URIOptions]]
URI Options
^^^^^^^^^^^
[width="100%",cols="10%,10%,10%,70%",options="header",]
|=======================================================================
|Name |Default Value |Context |Description
|amazonSDBClient |`null` |Producer |Reference to a `com.amazonaws.services.simpledb.AmazonSimpleDB` in the
link:registry.html[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.
|=======================================================================
Required SDB component options
You have to provide the amazonSDBClient in the
link:registry.html[Registry] or your accessKey and secretKey to access
the http://aws.amazon.com/sdb[Amazon's SDB].
[[AWS-SDB-Usage]]
Usage
^^^^^
[[AWS-SDB-MessageheadersevaluatedbytheSDBproducer]]
Message headers evaluated by the SDB producer
+++++++++++++++++++++++++++++++++++++++++++++
[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|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.
|=======================================================================
[[AWS-SDB-MessageheaderssetduringDomainMetadataoperation]]
Message headers set during DomainMetadata operation
+++++++++++++++++++++++++++++++++++++++++++++++++++
[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|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.
|=======================================================================
[[AWS-SDB-MessageheaderssetduringGetAttributesoperation]]
Message headers set during GetAttributes operation
++++++++++++++++++++++++++++++++++++++++++++++++++
[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|Header |Type |Description
|`CamelAwsSdbAttributes` |`List<Attribute>` |The list of attributes returned by the operation.
|=======================================================================
[[AWS-SDB-MessageheaderssetduringListDomainsoperation]]
Message headers set during ListDomains operation
++++++++++++++++++++++++++++++++++++++++++++++++
[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|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.
|=======================================================================
[[AWS-SDB-MessageheaderssetduringSelectoperation]]
Message headers set during Select operation
+++++++++++++++++++++++++++++++++++++++++++
[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|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.
|=======================================================================
[[AWS-SDB-AdvancedAmazonSimpleDBconfiguration]]
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:
[source,java]
----------------------------------------------------
from("direct:start")
.to("aws-sdb://domainName?amazonSDBClient=#client");
----------------------------------------------------
The `#client` refers to a `AmazonSimpleDB` in the
link:registry.html[Registry].
For example if your Camel Application is running behind a firewall:
[source,java]
--------------------------------------------------------------------------------------
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);
--------------------------------------------------------------------------------------
[[AWS-SDB-Dependencies]]
Dependencies
^^^^^^^^^^^^
Maven users will need to add the following dependency to their pom.xml.
*pom.xml*
[source,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).
[[AWS-SDB-SeeAlso]]
See Also
^^^^^^^^
* link:configuring-camel.html[Configuring Camel]
* link:component.html[Component]
* link:endpoint.html[Endpoint]
* link:getting-started.html[Getting Started]
* link:aws.html[AWS Component]