Infinispan Component
Available as of Camel 2.13.0
This component allows you to interact with Infinispan distributed data grid / cache. Infinispan is an extremely scalable, highly available key/value data store and data grid platform written in Java.
Maven users will need to add the following dependency to their pom.xml for this component:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-infinispan</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
URI format
infinispan://host?[options]
URI Options
The producer allows sending messages to a local infinispan cache configured in the registry, or to a remote cahe using the HotRod protocol.
The consumer allows listening for events from local infinispan cache accessible from the registry.
Name |
Default Value |
Type |
Context |
Description |
cacheContainer |
null |
CacheContainer |
Shared |
Reference to a org.infinispan.manager.CacheContainer in the Registry. |
cacheName |
null |
String |
Shared |
The cache name to use. If not specified, default cache is used. |
command |
PUT |
String |
Producer |
The operation to perform. Currently supports the following values: PUT, GET, REMOVE, CLEAR. |
eventTypes |
null |
Set<String> |
Consumer |
The event types to register. By default will listen for all event types. Possible values defined in org.infinispan.notifications.cachelistener.event.Event.Type |
sync |
true |
Boolean |
Consumer |
By default the consumer will receive notifications synchronosly, by the same thread that process the cache operation. |
Message Headers
Name |
Default Value |
Type |
Context |
Description |
CamelInfinispanCacheName |
null |
String |
Shared |
The cache participating in the operation or event. |
CamelInfinispanOperation |
PUT |
String |
Producer |
The operation to perform: CamelInfinispanOperationPut, CamelInfinispanOperationGet, CamelInfinispanOperationRemove, CamelInfinispanOperationClear. |
CamelInfinispanKey |
null |
Object |
Shared |
The key to perform the operation to or the key generating the event. |
CamelInfinispanValue |
null |
Object |
Producer |
The value to use for the operation. |
CamelInfinispanOperationResult |
null |
Object |
Producer |
The result of the operation. |
CamelInfinispanEventType |
null |
String |
Consumer |
The type of the received event. Possible values defined here org.infinispan.notifications.cachelistener.event.Event.Type |
CamelInfinispanIsPre |
null |
Boolean |
Consumer |
Infinispan fires two events for each operation: one before and one after the operation. |
Example
Below is an example route that retrieves a value from the cahe for a specific key:
from("direct:start")
.setHeader(InfinispanConstants.OPERATION, constant(InfinispanConstants.GET))
.setHeader(InfinispanConstants.KEY, constant("123"))
.to("infinispan://localhost?cacheContainer=#cacheContainer");
For more information, see these resources...
See Also