Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

URI format

Code Block
infinispan://cacheName?[options]
Note
titleURI syntax change

The URI syntax has changed since camel 2.19.0, for previous camel versions the URI format is:

Code Block
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

null

CacheContainer

Shared

Reference to a org.infinispan.manager.CacheContainer in the Registry.

cacheNamehosts

null

String

SharedThe cache name to use. If not specified, default cache is used

Specifies the hosts of the Infinispan instance.

command

PUT

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

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 synchronously, by the same thread that process the cache operation.

queryBuildernullInfinispanQueryBuilderSharedFrom Camel 2.17: the QueryBuilder to be used by QUERY command if CamelInfinispanQueryBuilder header is not set
customListenernullInfinispanCustomListenerConsumerFrom Camel 2.17: a custom event listener
clusteredListenerfalseBooleanConsumerFrom Camel 2.17: if ture the listener will be installed for entiere cluster

...

Code Block
java
java
from("direct:start")
        .setHeader(InfinispanConstants.OPERATION, constant(InfinispanConstants.GET))
        .setHeader(InfinispanConstants.KEY, constant("123"))
        .to("infinispan://localhost?cacheContainer=#cacheContainer");

...

Code Block
languagexml
titleSpring XML
<?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&amp;showAll=true&amp;multiline=true" />
      </idempotentConsumer>
    </route>
  </camelContext>

</beans>

...