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://hostName?[options]
URI Options
The producer allows sending messages to a local infinispan cache configured in the registry, or to a remote cache 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 |
| CacheContainer | Shared | Reference to a |
cacheName |
| String | Shared | The cache name to use. If not specified, default cache is used. |
command |
| String | Producer | The operation to perform. Currently supports the following values: PUT, GET, REMOVE, CLEAR. |
eventTypes |
| 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 |
| 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 |
| String | Shared | The cache participating in the operation or event. |
CamelInfinispanOperation |
| String | Producer | The operation to perform: CamelInfinispanOperationPut, CamelInfinispanOperationGet, CamelInfinispanOperationRemove, CamelInfinispanOperationClear. |
CamelInfinispanKey |
| Object | Shared | The key to perform the operation to or the key generating the event. |
CamelInfinispanValue |
| Object | Producer | The value to use for the operation. |
CamelInfinispanOperationResult |
| Object | Producer | The result of the operation. |
CamelInfinispanEventType |
| String | Consumer | The type of the received event. Possible values defined here org.infinispan.notifications.cachelistener.event.Event.Type |
CamelInfinispanIsPre |
| 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 cache 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...