Как создать Ignite CacheManager с программной конфигурацией / без XML

Я хочу создать Ignite-узел с программной конфигурацией. Javax.cache.CacheManager-object требуется для приложения.

Я знаю, что могу запустить Ignite-узел со следующим кодом:

//with xml-config
Ignition.start("path-to-ignite-config-xml");

//with programmatic config
Ignition.start(cfg)

//with xml-config with the JCache-API
Caching.getCachingProvider().getCacheManager(uriToXML,Classloader);

Первые два вызова метода получили Ignite-объект в качестве возвращаемого значения. Последний получил объект CacheManager в качестве возвращаемого значения. Но мне нужно что-то вроде этого:

Caching.getCachingProvider().getCacheManager(IgniteConfiguration cfg);
// or this:
Ignition.start(IgniteConfiguration cfg).getCacheManager();

Есть метод org.apache.ignite.cache.CachingProvider.findManager(Ignite), который получил тип возвращаемого значения javax.cache.CacheManager (что я и хочу), но возвращаемое значение всегда равно нулю.

Есть ли способ получить объект javax.cache.CacheManager без xml-config?

2 ответа

К сожалению, API JCache не позволяет этого и поддерживает только URL-адреса. Вы должны использовать XML-файл для конфигурации или использовать собственный Ignite API.

Я обошел проблему в своем коде, отказавшись CachingProviderи написание собственной реализации javax.cache.CacheManagerинтерфейс.

я создаю Igniteэкземпляр в конструкторе CacheManagerреализация и переадресация всех вызовов на него. IgniteCacheуже реализует javax.cache.Cache, так что тут проблем нет.

Это не совсем JCache, но достаточно близко для моих целей.

Другие вопросы по тегам