JDG in Library Mode Usage Example
Jump to navigation
Jump to search
Internal
Overview
The example is deployed in a wrapper servlet, to facilitate interaction with the EAP JEE container.
GitHub
Maven
<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-as-embedded-modules</artifactId> <version>8.3.0.Final-redhat-1</version> <scope>provided</scope> </dependency>
If support for JDG in library mode is deployed within the target EAP (preferred), declare the dependency <scope>provided</scope> and configure the jboss-deployment-structure.xml as shown:
<?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <dependencies> <module name="org.infinispan" slot="jdg-7.0" services="export"/> </dependencies> </deployment> </jboss-deployment-structure>
services="export" is required because we want JDG module to export its java services to the application.
Otherwise, all required dependencies it with your deployment, by not declaring them "provided".
HotRod Client Configuration
import org.infinispan.client.hotrod.configuration.Configuration; import org.infinispan.client.hotrod.configuration.ConfigurationBuilder; ... ConfigurationBuilder cb = new ConfigurationBuilder(); cb.tcpNoDelay(true) .connectionPool() .numTestsPerEvictionRun(3) .testOnBorrow(false) .testOnReturn(false) .testWhileIdle(true) .addServer() .host(JDG_SERVER_IP_ADDRESS) .port(JDG_SERVER_IP_PORT); Configuration c = cb.build();
Create a RemoteCacheManager and a Cache
import org.infinispan.client.hotrod.RemoteCacheManager; import org.infinispan.commons.api.BasicCache; ... RemoteCacheManager remoteCacheManager = new RemoteCacheManager(c); BasicCache cache = remoteCacheManager.getCache(); ...
Features
Basic API
cache.put("some-key", "some value"); String s = cache.get("some-key");
Transactions
Not available in remote client/server mode.