Saturday, April 2, 2016

Camel Cache Component



Below are code snippets to configure cache in Camel and Fuse ESB



Initializing Cache Component

 <camel:route autoStartup="true">
        <camel:from uri="cache://Cache?maxElementsInMemory=1500&memoryStoreEvictionPolicy=MemoryStoreEvictionPolicy.LFU&diskExpiryThreadIntervalSeconds=864000&overflowToDisk=true&eternal=true&timeToIdleSeconds=86400"/>
       <camel:log message="Cahce operation done is : ${header.CamelCacheOperation} on Key ${header.CamelCacheKey}"/>
                  
                    <camel:to uri="mock:end"/>
 </camel:route>


Add Operation ---:

"<camel:setHeader headerName="CamelCacheOperation">
                            <camel:constant>CamelCacheAdd</camel:constant>              
                            </camel:setHeader>
                            <camel:setHeader headerName="CamelCacheEternal">
                                   <camel:constant>true</camel:constant>
                               </camel:setHeader>
                            <camel:setHeader headerName="CamelCacheKey">
                                <camel:simple>${header.key}</camel:simple>
                            </camel:setHeader>

 <camel:to uri="cache://Cache"/>


Update Operation --:

<camel:setHeader headerName="CamelCacheOperation">
                    <camel:constant>CamelCacheUpdate</camel:constant>              
                </camel:setHeader>
                <camel:setHeader headerName="CamelCacheKey">
                    <camel:simple>${header.key}</camel:simple>
                </camel:setHeader>
                <camel:setHeader headerName="CamelCacheEternal">
                       <camel:constant>true</camel:constant>
                   </camel:setHeader>

<camel:to uri="cache://Cache"/>


Delete Operation --:



<camel:setHeader headerName="CamelCacheOperation">
                        <camel:simple>CamelCacheDelete</camel:simple>
                </camel:setHeader>
                <camel:setHeader headerName="CamelCacheKey">
                    <camel:simple>${header.key}</camel:simple>
                </camel:setHeader>

<camel:to uri="cache://Cache"/>  

Get Operation --:

<camel:setHeader headerName="CamelCacheOperation">
                        <camel:simple>CamelCacheGet</camel:simple>
                </camel:setHeader>
                <camel:setHeader headerName="CamelCacheKey">
                    <camel:simple>${header.key}</camel:simple>
                </camel:setHeader>

<camel:to uri="cache://Cache"/>


Also add Camel:Cache feature in Fuse, Which creates an Instance of ECChache




No comments:

Post a Comment