I'm using spring cache and hazelcast, I'm just trying to save the responses to my controller:
@Bean
@Override
public CacheManager cacheManager() {
return new HazelcastCacheManager(hazelcastInstance);
}
//creating hazelcast cache config.
@Bean
public HazelcastClientCacheManager hazelcastClientCacheManager() {
CachingProvider provider =
HazelcastClientCachingProvider.createCachingProvider(hazelcastInstance);
HazelcastClientCacheManager cacheManager = (HazelcastClientCacheManager) provider.getCacheManager();
cacheManager.getHazelcastInstance().getConfig().getSerializationConfig().getByteOrder();
Duration oneHours = Duration.ONE_MINUTE;
MutableConfiguration<Object, Object> configuration = new MutableConfiguration<>();
configuration.setTypes(Object.class, Object.class)
.setExpiryPolicyFactory(AccessedExpiryPolicy.factoryOf(oneHours))
.setStatisticsEnabled(true);
cacheManager.createCache("mycache", configuration);*
return cacheManager;
}
//My CacheResolver
@Bean
@Override
public CacheResolver cacheResolver() {
return new CustomCacheResolver(cacheManager());
}
There is the problem, In my CacheResolver.class:
public class CustomCacheResolver implements CacheResolver {
private final CacheManager cacheManager;
@Override
public Collection<? extends Cache> resolveCaches(CacheOperationInvocationContext<?> context) {
Collection<Cache> caches = new ArrayList<>();
caches.add(cacheManager.getCache("mycache"));
return caches;
}
From:
@Cacheable(cacheResolver = "cacheResolver", key = "#uuid+",
unless="#result.size() == 0")
myMethod(String uuid){}
Problem: the resolveCaches in CustomCacheResolver must return Cache collection, but my cache created in hazelcast is ICache.
Any idea? I need to use that cache with its confifguration, ttl, etc. Thanks in advance.!
Java 11. Spring boot spring cache. hazelcast.