JDG in Library Mode Usage Example: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 34: Line 34:
</jboss-deployment-structure>
</jboss-deployment-structure>
</pre>
</pre>
"[[Jboss-deployment-structure.xml#deployment_dependencies_module_services|services="export"]] is required because.


Otherwise, all required dependencies it with your deployment, by '''not''' declaring them "provided".
Otherwise, all required dependencies it with your deployment, by '''not''' declaring them "provided".

Revision as of 17:42, 4 May 2017

Internal

Overview

The example is deployed in a wrapper servlet, to facilitate interaction with the EAP JEE container.

GitHub

https://github.com/NovaOrdis/playground/tree/master/jboss/infinispan/library-mode-access-from-eap

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.

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.