...
URI format
Code Block |
---|
infinispan://cacheName?[options]
|
Note | |||
---|---|---|---|
| |||
The URI syntax has changed since camel 2.19.0, for previous camel versions the URI format is:
|
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 |
cacheNamehosts |
| String | SharedThe cache name to use. If not specified, default cache is used | Specifies the hosts of the Infinispan instance. |
command |
| String | Producer | The operation to perform. Currently supports the following values: PUT, GET, REMOVE, CLEAR. From Camel 2.16: PUT ALL, PUT IF ABSENT, REPLACE, SIZE. From Camel 2.17: PUT ASYNC, PUT ALL ASYNC, PUT IF ABSENT ASYNC, CONTAINS KEY, CONTAINS VALUE, REMOVE ASYNC, REPLACE ASYNC, CLEAR ASYNC, QUERY From Camel 2.18: STATS |
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 synchronously, by the same thread that process the cache operation. |
queryBuilder | null | InfinispanQueryBuilder | Shared | From Camel 2.17: the QueryBuilder to be used by QUERY command if CamelInfinispanQueryBuilder header is not set |
customListener | null | InfinispanCustomListener | Consumer | From Camel 2.17: a custom event listener |
clusteredListener | false | Boolean | Consumer | From Camel 2.17: if ture the listener will be installed for entiere cluster |
...
Code Block | ||||
---|---|---|---|---|
| ||||
from("direct:start")
.setHeader(InfinispanConstants.OPERATION, constant(InfinispanConstants.GET))
.setHeader(InfinispanConstants.KEY, constant("123"))
.to("infinispan://localhost?cacheContainer=#cacheContainer");
|
...
Code Block | ||
---|---|---|
| ||
RemoteCacheManager manager = new RemoteCacheManager( new ConfigurationBuilder() .addServers("localhost") .forceReturnValues(true) .build(), true ); context.addRoutes(new RouteBuilder() { void configure() { from("direct:start") .idempotentConsumer( header("MessageID"), new InfinispanIdempotentRepository(manager, "idempotent")) .to("mock:result"); } }); |
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> <bean id="cacheManagerFactory" class="org.infinispan.spring.provider.SpringRemoteCacheManagerFactoryBean"> <property name="configurationProperties"> <props> <prop key="infinispan.client.hotrod.server_list">127.0.0.1:11222</prop> <prop key="infinispan.client.hotrod.force_return_values">true</prop> </props> </property> </bean> <bean id="cacheManager" factory-bean="cacheManagerFactory" factory-method="getNativeCacheManager" init-method="start" destroy-method="stop"> </bean> <bean id="infinispanRepo" class="org.apache.camel.component.infinispan.processor.idempotent.InfinispanIdempotentRepository" factory-method="infinispanIdempotentRepository"> <constructor-arg ref="cacheManager"/> <constructor-arg value="idempotent"/> </bean> <camelContext xmlns="http://camel.apache.org/schema/spring"> <route id="infinispan-remote"> <from uri="direct:start" /> <idempotentConsumer messageIdRepositoryRef="infinispanRepo"> <header>MessageId</header> <to uri="log:org.apache.camel.component.infinispan?level=INFO&showAll=true&multiline=true" /> </idempotentConsumer> </route> </camelContext> </beans> |
For more information, see these resources...
...