Thanks for the quick answer!
Could you maybe tell me if what I did is ok? So far I don't seem to have
a problem with the following solution.
I put my cache configuration into a custom cache container of my
standalone.xml and inject the cache container just to produce a JSR 107
CacheManager like that:
@Singleton
public class ClusteredCacheManagerProducer {
@Resource(lookup = "java:jboss/infinispan/container/app")
private EmbeddedCacheManager cacheManager;
@Produces
@ClusteredCache
@ApplicationScoped
public CacheManager produceJcacheCacheManager() {
return new
org.infinispan.jcache.JCacheManager(URI.create("app"), cacheManager,
Caching.getCachingProvider());
}
public void dispose(@Disposes @ClusteredCache CacheManager
jcacheManager) {
jcacheManager.close();
}
}
Do you see anything problematic with that approach?
Regards,
Christian
Am 11.08.2015 um 14:29 schrieb Paul Ferraro:
----- Original Message -----
> From: "Christian Beikov" <christian(a)sweazer.com>
> To: infinispan-dev(a)lists.jboss.org
> Sent: Sunday, August 9, 2015 12:02:13 PM
> Subject: [infinispan-dev] JCache integration with Wildfly provided configuration
>
> Hello,
>
> I am using Infinispan 7.2.3.Final within Wildfly 9.0.1 and I would like to
> use the JCache integration but I struggle a bit.
>
> I configured the JGroups subsystem in the standalone.xml of my Wildfly
> installation to enable clustering of Infinispan caches. That works as
> expected, but I wasn't sure how I would have my caches clustered too. I
> thought of some possible solutions but they both aren't really what I am
> looking for.
>
>
> 1. Put the cache container configuration into standalone.xml
> 2. Copy the JGroups configuration and create a new transport in a custom
> infinispan configuration
>
> When doing 1. I can't really use the JCache integration because there is no
> way to tell the caching provider, that I want a CacheManager for a specific
> cache container. If you would recommend doing 1. then it would be nice if
> the caching provider would not only accept file URIs, but also something
> like JNDI names. By doing that, I could reference existing cache containers
> which at least solves the problem with the JCache integration. Still I would
> prefer option 2. because I wouldn't have to change the standalone.xml every
> time I add a cache.
The trouble with JCache integration into WildFly is that JCache is not an EE spec - and
lacks any details for how cache resources should be managed by a container - or how a user
would go about accessing container managed caches. Nor is there any concept of sharing
cache resources between applications (i.e. each manages the cache lifecycle manually) - or
about isolation of cache entries beyond ClassLoader. The API itself couples your code to
a specific JCache implementation, since the URI of a cache manager is, by nature, provider
specific.
Consequently, we've deferred integrating JCache into WildFly until it's next
evolution (i.e. 1.1/2.0) - or unless it somehow gets pulled into EE8.
Consequently, if you really want to use the JCache API, you'll have to stick with
option #2 for now.
> When doing 2. I can use the infinispan configuration file as URI when
> creating the cache manager so the JCache integration works without a
> problem. The only thing that is bothering me is, that I have to copy the
> JGroups configuration to have a separate transport for my applications cache
> container. I can't seem to reference the transport that I configured in the
> standalone.xml nor does it default to that. I would really like to reuse the
> JGroup channel that is already established.
Infinispan requires a separate jgroups channel per cache manager - this is a limitation
of Infinispan itself. The only means of changing this is via a custom Transport
implementation (as we do in WildFly).
WildFly works around this limitation by providing Infinispan with a unique ForkChannel
using a common JChannel. You might try configuring Infinispan with a custom transport
based on the implementation from WildFly. See:
https://github.com/wildfly/wildfly/blob/9.0.1.Final/clustering/infinispan...
> What I would like to know is, whether there is a possibility to make use of
> the JGroups configuration I did in the standalone.xml. If there isn't, what
> should I do when wanting to cluster my caches? Just go with option 1?
Not without customization, see above.
> Regards,
> Christian Beikov
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/infinispan-dev
_______________________________________________
infinispan-dev mailing list
infinispan-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev