ok I actually found that old war project that I had rigged up to use an embedded infinispan cache. Hope it helps.
The subsequent snippets assume you've configured your cache this way via jboss-cli/whatever
/subsystem=infinispan/cache-container=vaadin-cache-container:add(marshaller=JBOSS)
/subsystem=infinispan/cache-container=vaadin-cache-container/transport=jgroups:add()
/subsystem=infinispan/cache-container=vaadin-cache-container/replicated-cache=vaadin-session-cache:add()
/subsystem=infinispan/cache-container=vaadin-cache-container/replicated-cache=vaadin-session-cache/component=expiration:add(max-idle=300000)
/subsystem=infinispan/cache-container=vaadin-cache-container/replicated-cache=vaadin-session-cache/component=locking:add()
/subsystem=infinispan/cache-container=vaadin-cache-container/replicated-cache=vaadin-session-cache/component=locking:write-attribute(name=isolation, value=REPEATABLE_READ)
/subsystem=infinispan/cache-container=vaadin-cache-container/replicated-cache=vaadin-session-cache/component=locking:write-attribute(name=acquire-timeout, value=5000L)
/subsystem=infinispan/cache-container=vaadin-cache-container/replicated-cache=vaadin-session-cache/component=transaction:add()
/subsystem=infinispan/cache-container=vaadin-cache-container/replicated-cache=vaadin-session-cache/component=transaction:write-attribute(name=mode, value=BATCH)
/subsystem=infinispan/cache-container=vaadin-cache-container:write-attribute(name=default-cache, value=vaadin-session-cache)
I ended up putting this in my src/main/webapp/WEB-INF/web.xml
<resource-env-ref>
<resource-env-ref-name>vaadinSessionCache</resource-env-ref-name>
<lookup-name>java:jboss/infinispan/cache/vaadin-cache-container/vaadin-session-cache</lookup-name>
</resource-env-ref>
This in cat src/main/webapp/WEB-INF/jboss-deployment-structure.xml
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.infinispan" export="TRUE" />
</dependencies>
</deployment>
</jboss-deployment-structure>
Then create a CacheService.java
@Named
public class CacheService
{
@Resource(name = "vaadinSessionCache")
private Cache<String, String> cache;
public CacheService()
{
}
public void putCacheValue(String key, String value)
{
cache.put(key, value);
}
public String getCacheValue(String key)
{
return cache.get(key);
}
}
And then use the CacheService in your JAX-RS endpoint class
@Inject
private CacheService cacheService;
@GET
@Path("/put")
public Response putCacheValue(@QueryParam("key") String key, @QueryParam("value") String value)
{
cacheService.putCacheValue(key, value);
return Response.ok("ok").build();
}
@GET
@Path("/get")
public Response getCacheValue(@QueryParam("key") String key)
{
return Response.ok(cacheService.getCacheValue(key)).build();
}