Я использую JCache API с Infinispan.Теперь я хочу сделать мой кэш кластеризованным.
В Infinispan я бы просто сказал что-то вроде:
GlobalConfiguration global = GlobalConfigurationBuilder.defaultClusteredBuilder().build();
CacheManager cacheManager = new DefaultCacheManager(global);
Configuration config = new ConfigurationBuilder().cluster.cacheMode(REPL_SYNC).build();
cacheManager.defineConfiguration("clusteredCache", config);
Cache<String, String> clusteredCache = cacheManager.getCache("clusteredCache");
Но, используя JCache API, я не могу получить доступ к Конфигурации Infinispan.Итак, насколько я знаю, единственный способ получить кластерный кеш - это настроить его в XML-файл и передать его в javax.cache.CacheManager
, что-то вроде этого:
javax.cache.CacheManager cacheManager = Caching.getCachingProvider()
.getCacheManager(URI.create("infinispan-clustered.xml"), getClass().getClassLoader());
javax.cache.Cache<String, String> clusteredCache = cacheManager.getCache("[name defined in xml file]");
Но этоне совсем то, что я хочу с тех пор, я не могу динамически добавить новый кластеризованный кэш в CacheManager.
Так что мой вопрос: как я могу сделать кластеризацию JCache без определения его в XMLфайл