| [[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] |
| |