...
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 | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<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> |
...