| // camel-k: dependency=camel-azure-storage-blob |
| // |
| // Apache Camel Azure Storage Blob Consumer |
| // |
| import static org.apache.camel.support.processor.idempotent.MemoryIdempotentRepository.memoryIdempotentRepository |
| |
| from('knative:channel/azure-blob') |
| .setHeader('orderId', xpath("/order/@id",String.class)) |
| //use idempotent consumer to process an order only once |
| .idempotentConsumer(header("orderId"), memoryIdempotentRepository(50)) |
| .log('Received:\n${body}') |
| .split() |
| .xpath('/order/item') |
| .setHeader('lineItemId', xpath("/item/@id",String.class)) |
| .setHeader('CamelAzureStorageBlobBlobName', simple('${header.lineItemId}-${header.orderId}.xml')) |
| .log('Uploading Item ${header.CamelAzureStorageBlobBlobName}:\n${body}') |
| .to('azure-storage-blob:{{azure.blob.accountName}}/{{azure.blob.itemsContainerName}}?accessKey=RAW({{azure.blob.accessKey}})&operation=uploadBlockBlob') |
| |
| |
| |
| |