@Override public void close() { flush(); cacheEntryList.clear(); if (!cache.isDestroyed() && !manager.isClosed()) { cache.close(); } if (!manager.isClosed()) { manager.close(); } hazelcastInstance.shutdown(); persistentDataStore.close(); LOG.info("JCache Gora datastore destroyed successfully."); }
@Override public CacheManager getCacheManager(URI uri, ClassLoader classLoader, Properties properties) { URI globalUri = uri == null ? getDefaultURI() : uri; ClassLoader globalClassLoader = classLoader == null ? getDefaultClassLoader() : classLoader; Properties globalProperties = properties == null ? new Properties() : properties; synchronized (cacheManagers) { Map<URI, CacheManager> map = cacheManagers.get(globalClassLoader); if (map == null) { if (trace) log.tracef("No cache managers registered under '%s'", globalUri); map = new HashMap<URI, CacheManager>(); cacheManagers.put(globalClassLoader, map); } CacheManager cacheManager = map.get(globalUri); if (cacheManager == null || cacheManager.isClosed()) { // Not found or stopped, create cache manager and add to collection cacheManager = createCacheManager(globalClassLoader, globalUri, globalProperties); if (trace) log.tracef("Created '%s' cache manager", globalUri); map.put(globalUri, cacheManager); } return cacheManager; } }