@Override public EmbeddedCacheManager getEmbeddedCacheManager(Properties properties) { Properties settings = new Properties(); String container = properties.getProperty(CACHE_CONTAINER, DEFAULT_CACHE_CONTAINER); settings.setProperty(HibernateSecondLevelCache.CONTAINER, container); if (!Boolean.parseBoolean(properties.getProperty(SHARED, DEFAULT_SHARED))) { HibernateSecondLevelCache.addSecondLevelCacheDependencies(properties, null); settings.setProperty(HibernateSecondLevelCache.CACHE_TYPE, HibernateSecondLevelCache.CACHE_PRIVATE); // Find a suitable service name to represent this session factory instance String name = properties.getProperty(AvailableSettings.SESSION_FACTORY_NAME); if (name != null) { settings.setProperty(HibernateSecondLevelCache.NAME, name); } settings.setProperty(HibernateSecondLevelCache.CACHES, String.join(" ", HibernateSecondLevelCache.findCaches(properties))); } try { return new JipiJapaCacheManager(Notification.startCache(Classification.INFINISPAN, settings)); } catch (CacheException e) { throw e; } catch (Exception e) { throw new CacheException(e); } }
public static void addSecondLevelCacheDependencies(Properties mutableProperties, String scopedPersistenceUnitName) { if (mutableProperties.getProperty(AvailableSettings.CACHE_REGION_PREFIX) == null) { // cache entries for this PU will be identified by scoped pu name + Entity class name if (scopedPersistenceUnitName != null) { mutableProperties.setProperty(AvailableSettings.CACHE_REGION_PREFIX, scopedPersistenceUnitName); } } String regionFactory = mutableProperties.getProperty(AvailableSettings.CACHE_REGION_FACTORY); if (regionFactory == null) { regionFactory = DEFAULT_REGION_FACTORY; mutableProperties.setProperty(AvailableSettings.CACHE_REGION_FACTORY, regionFactory); } if (Boolean.parseBoolean(mutableProperties.getProperty(ManagedEmbeddedCacheManagerProvider.SHARED, ManagedEmbeddedCacheManagerProvider.DEFAULT_SHARED))) { // Set infinispan defaults String container = mutableProperties.getProperty(ManagedEmbeddedCacheManagerProvider.CACHE_CONTAINER); if (container == null) { container = ManagedEmbeddedCacheManagerProvider.DEFAULT_CACHE_CONTAINER; mutableProperties.setProperty(ManagedEmbeddedCacheManagerProvider.CACHE_CONTAINER, container); } /** * AS will need the ServiceBuilder<?> builder that used to be passed to PersistenceProviderAdaptor.addProviderDependencies */ Properties cacheSettings = new Properties(); cacheSettings.setProperty(CONTAINER, container); cacheSettings.setProperty(CACHES, String.join(" ", findCaches(mutableProperties))); Notification.addCacheDependencies(Classification.INFINISPAN, cacheSettings); } }
@Override public void addProviderDependencies(PersistenceUnitMetadata pu) { final Properties properties = pu.getProperties(); final String sharedCacheMode = properties.getProperty(SHARED_CACHE_MODE); if ( Classification.NONE.equals(platform.defaultCacheClassification())) { JPA_LOGGER.tracef("second level cache is not supported in platform, ignoring shared cache mode"); pu.setSharedCacheMode(SharedCacheMode.NONE); } // check if 2lc is explicitly disabled which takes precedence over other settings boolean sharedCacheDisabled = SharedCacheMode.NONE.equals(pu.getSharedCacheMode()) || NONE.equals(sharedCacheMode) || SharedCacheMode.UNSPECIFIED.equals(pu.getSharedCacheMode()) || UNSPECIFIED.equals(sharedCacheMode); if (!sharedCacheDisabled && (null == properties.getProperty(AvailableSettings.USE_SECOND_LEVEL_CACHE) || Boolean.parseBoolean(properties.getProperty(AvailableSettings.USE_SECOND_LEVEL_CACHE)))) { HibernateSecondLevelCache.addSecondLevelCacheDependencies(pu.getProperties(), pu.getScopedPersistenceUnitName()); JPA_LOGGER.tracef("second level cache enabled for %s", pu.getScopedPersistenceUnitName()); } else { JPA_LOGGER.tracef("second level cache disabled for %s, pu %s property = %s, pu.getSharedCacheMode = %s", pu.getScopedPersistenceUnitName(), SHARED_CACHE_MODE, sharedCacheMode, pu.getSharedCacheMode().toString()); pu.setSharedCacheMode(SharedCacheMode.NONE); // ensure that Hibernate doesn't try to use the 2lc for UNSPECIFIED } }
public static void addSecondLevelCacheDependencies(Properties mutableProperties, String scopedPersistenceUnitName) { if (mutableProperties.getProperty(AvailableSettings.CACHE_REGION_PREFIX) == null) { // cache entries for this PU will be identified by scoped pu name + Entity class name if (scopedPersistenceUnitName != null) { mutableProperties.setProperty(AvailableSettings.CACHE_REGION_PREFIX, scopedPersistenceUnitName); } } String regionFactory = mutableProperties.getProperty(AvailableSettings.CACHE_REGION_FACTORY); if (regionFactory == null) { regionFactory = DEFAULT_REGION_FACTORY; mutableProperties.setProperty(AvailableSettings.CACHE_REGION_FACTORY, regionFactory); } if (Boolean.parseBoolean(mutableProperties.getProperty(ManagedEmbeddedCacheManagerProvider.SHARED, ManagedEmbeddedCacheManagerProvider.DEFAULT_SHARED))) { // Set infinispan defaults String container = mutableProperties.getProperty(ManagedEmbeddedCacheManagerProvider.CACHE_CONTAINER); if (container == null) { container = ManagedEmbeddedCacheManagerProvider.DEFAULT_CACHE_CONTAINER; mutableProperties.setProperty(ManagedEmbeddedCacheManagerProvider.CACHE_CONTAINER, container); } /** * AS will need the ServiceBuilder<?> builder that used to be passed to PersistenceProviderAdaptor.addProviderDependencies */ Properties cacheSettings = new Properties(); cacheSettings.setProperty(CONTAINER, container); cacheSettings.setProperty(CACHES, String.join(" ", findCaches(mutableProperties))); Notification.addCacheDependencies(Classification.INFINISPAN, cacheSettings); } }
@Override public void addProviderDependencies(PersistenceUnitMetadata pu) { final Properties properties = pu.getProperties(); final String sharedCacheMode = properties.getProperty(SHARED_CACHE_MODE); if ( Classification.NONE.equals(platform.defaultCacheClassification())) { if (!SharedCacheMode.NONE.equals(pu.getSharedCacheMode())) { JPA_LOGGER.tracef("second level cache is not supported in platform, ignoring shared cache mode"); } pu.setSharedCacheMode(SharedCacheMode.NONE); } // check if 2lc is explicitly disabled which takes precedence over other settings boolean sharedCacheDisabled = SharedCacheMode.NONE.equals(pu.getSharedCacheMode()) || NONE.equals(sharedCacheMode); if (!sharedCacheDisabled && Boolean.parseBoolean(properties.getProperty(AvailableSettings.USE_SECOND_LEVEL_CACHE)) || (sharedCacheMode != null && (!NONE.equals(sharedCacheMode))) || (!SharedCacheMode.NONE.equals(pu.getSharedCacheMode()) && (!SharedCacheMode.UNSPECIFIED.equals(pu.getSharedCacheMode())))) { HibernateSecondLevelCache.addSecondLevelCacheDependencies(pu.getProperties(), pu.getScopedPersistenceUnitName()); JPA_LOGGER.tracef("second level cache enabled for %s", pu.getScopedPersistenceUnitName()); } else { JPA_LOGGER.tracef("second level cache disabled for %s, pu %s property = %s, pu.getSharedCacheMode = %s", pu.getScopedPersistenceUnitName(), SHARED_CACHE_MODE, sharedCacheMode, pu.getSharedCacheMode().toString()); } }
@Override public EmbeddedCacheManager getEmbeddedCacheManager(Properties properties) { Properties settings = new Properties(); String container = properties.getProperty(CACHE_CONTAINER, DEFAULT_CACHE_CONTAINER); settings.setProperty(HibernateSecondLevelCache.CONTAINER, container); if (!Boolean.parseBoolean(properties.getProperty(SHARED, DEFAULT_SHARED))) { HibernateSecondLevelCache.addSecondLevelCacheDependencies(properties, null); settings.setProperty(HibernateSecondLevelCache.CACHE_TYPE, HibernateSecondLevelCache.CACHE_PRIVATE); // Find a suitable service name to represent this session factory instance String name = properties.getProperty(AvailableSettings.SESSION_FACTORY_NAME); if (name != null) { settings.setProperty(HibernateSecondLevelCache.NAME, name); } settings.setProperty(HibernateSecondLevelCache.CACHES, String.join(" ", HibernateSecondLevelCache.findCaches(properties))); } try { return new JipiJapaCacheManager(Notification.startCache(Classification.INFINISPAN, settings)); } catch (CacheException e) { throw e; } catch (Exception e) { throw new CacheException(e); } }
public static void addSecondLevelCacheDependencies(Properties mutableProperties, String scopedPersistenceUnitName) { if (mutableProperties.getProperty(AvailableSettings.CACHE_REGION_PREFIX) == null) { // cache entries for this PU will be identified by scoped pu name + Entity class name if (scopedPersistenceUnitName != null) { mutableProperties.setProperty(AvailableSettings.CACHE_REGION_PREFIX, scopedPersistenceUnitName); } } String regionFactory = mutableProperties.getProperty(AvailableSettings.CACHE_REGION_FACTORY); if (regionFactory == null) { regionFactory = DEFAULT_REGION_FACTORY; mutableProperties.setProperty(AvailableSettings.CACHE_REGION_FACTORY, regionFactory); } if (Boolean.parseBoolean(mutableProperties.getProperty(ManagedEmbeddedCacheManagerProvider.SHARED, ManagedEmbeddedCacheManagerProvider.DEFAULT_SHARED))) { // Set infinispan defaults String container = mutableProperties.getProperty(ManagedEmbeddedCacheManagerProvider.CACHE_CONTAINER); if (container == null) { container = ManagedEmbeddedCacheManagerProvider.DEFAULT_CACHE_CONTAINER; mutableProperties.setProperty(ManagedEmbeddedCacheManagerProvider.CACHE_CONTAINER, container); } /** * AS will need the ServiceBuilder<?> builder that used to be passed to PersistenceProviderAdaptor.addProviderDependencies */ Properties cacheSettings = new Properties(); cacheSettings.setProperty(CONTAINER, container); cacheSettings.setProperty(CACHES, String.join(" ", findCaches(mutableProperties))); Notification.addCacheDependencies(Classification.INFINISPAN, cacheSettings); } }
@Override public void addProviderDependencies(PersistenceUnitMetadata pu) { final Properties properties = pu.getProperties(); final String sharedCacheMode = properties.getProperty(SHARED_CACHE_MODE); if ( Classification.NONE.equals(platform.defaultCacheClassification())) { JPA_LOGGER.tracef("second level cache is not supported in platform, ignoring shared cache mode"); pu.setSharedCacheMode(SharedCacheMode.NONE); } // check if 2lc is explicitly disabled which takes precedence over other settings boolean sharedCacheDisabled = SharedCacheMode.NONE.equals(pu.getSharedCacheMode()) || NONE.equals(sharedCacheMode); if (!sharedCacheDisabled && (null == properties.getProperty(AvailableSettings.USE_SECOND_LEVEL_CACHE) || Boolean.parseBoolean(properties.getProperty(AvailableSettings.USE_SECOND_LEVEL_CACHE)))) { HibernateSecondLevelCache.addSecondLevelCacheDependencies(pu.getProperties(), pu.getScopedPersistenceUnitName()); JPA_LOGGER.tracef("second level cache enabled for %s", pu.getScopedPersistenceUnitName()); } else { JPA_LOGGER.tracef("second level cache disabled for %s, pu %s property = %s, pu.getSharedCacheMode = %s", pu.getScopedPersistenceUnitName(), SHARED_CACHE_MODE, sharedCacheMode, pu.getSharedCacheMode().toString()); } }
@Override public EmbeddedCacheManager getEmbeddedCacheManager(Properties properties) { Properties settings = new Properties(); String container = properties.getProperty(CACHE_CONTAINER, DEFAULT_CACHE_CONTAINER); settings.setProperty(HibernateSecondLevelCache.CONTAINER, container); if (!Boolean.parseBoolean(properties.getProperty(SHARED, DEFAULT_SHARED))) { HibernateSecondLevelCache.addSecondLevelCacheDependencies(properties, null); settings.setProperty(HibernateSecondLevelCache.CACHE_TYPE, HibernateSecondLevelCache.CACHE_PRIVATE); // Find a suitable service name to represent this session factory instance String name = properties.getProperty(AvailableSettings.SESSION_FACTORY_NAME); if (name != null) { settings.setProperty(HibernateSecondLevelCache.NAME, name); } settings.setProperty(HibernateSecondLevelCache.CACHES, String.join(" ", HibernateSecondLevelCache.findCaches(properties))); } try { return new JipiJapaCacheManager(Notification.startCache(Classification.INFINISPAN, settings)); } catch (CacheException e) { throw e; } catch (Exception e) { throw new CacheException(e); } }
public static void addSecondLevelCacheDependencies(Properties mutableProperties, String scopedPersistenceUnitName) { if (mutableProperties.getProperty(AvailableSettings.CACHE_REGION_PREFIX) == null) { // cache entries for this PU will be identified by scoped pu name + Entity class name if (scopedPersistenceUnitName != null) { mutableProperties.setProperty(AvailableSettings.CACHE_REGION_PREFIX, scopedPersistenceUnitName); } } String regionFactory = mutableProperties.getProperty(AvailableSettings.CACHE_REGION_FACTORY); if (regionFactory == null) { regionFactory = DEFAULT_REGION_FACTORY; mutableProperties.setProperty(AvailableSettings.CACHE_REGION_FACTORY, regionFactory); } if (Boolean.parseBoolean(mutableProperties.getProperty(ManagedEmbeddedCacheManagerProvider.SHARED, ManagedEmbeddedCacheManagerProvider.DEFAULT_SHARED))) { // Set infinispan defaults String container = mutableProperties.getProperty(ManagedEmbeddedCacheManagerProvider.CACHE_CONTAINER); if (container == null) { container = ManagedEmbeddedCacheManagerProvider.DEFAULT_CACHE_CONTAINER; mutableProperties.setProperty(ManagedEmbeddedCacheManagerProvider.CACHE_CONTAINER, container); } /** * AS will need the ServiceBuilder<?> builder that used to be passed to PersistenceProviderAdaptor.addProviderDependencies */ Properties cacheSettings = new Properties(); cacheSettings.setProperty(CONTAINER, container); cacheSettings.setProperty(CACHES, String.join(" ", findCaches(mutableProperties))); Notification.addCacheDependencies(Classification.INFINISPAN, cacheSettings); } }
@Override public void addProviderDependencies(PersistenceUnitMetadata pu) { final Properties properties = pu.getProperties(); final String sharedCacheMode = properties.getProperty(SHARED_CACHE_MODE); if ( Classification.NONE.equals(platform.defaultCacheClassification())) { if (!SharedCacheMode.NONE.equals(pu.getSharedCacheMode())) { JPA_LOGGER.tracef("second level cache is not supported in platform, ignoring shared cache mode"); } pu.setSharedCacheMode(SharedCacheMode.NONE); } // check if 2lc is explicitly disabled which takes precedence over other settings boolean sharedCacheDisabled = SharedCacheMode.NONE.equals(pu.getSharedCacheMode()) || NONE.equals(sharedCacheMode); if (!sharedCacheDisabled && Boolean.parseBoolean(properties.getProperty(AvailableSettings.USE_SECOND_LEVEL_CACHE)) || (sharedCacheMode != null && (!NONE.equals(sharedCacheMode))) || (!SharedCacheMode.NONE.equals(pu.getSharedCacheMode()) && (!SharedCacheMode.UNSPECIFIED.equals(pu.getSharedCacheMode())))) { HibernateSecondLevelCache.addSecondLevelCacheDependencies(pu.getProperties(), pu.getScopedPersistenceUnitName()); JPA_LOGGER.tracef("second level cache enabled for %s", pu.getScopedPersistenceUnitName()); } else { JPA_LOGGER.tracef("second level cache disabled for %s, pu %s property = %s, pu.getSharedCacheMode = %s", pu.getScopedPersistenceUnitName(), SHARED_CACHE_MODE, sharedCacheMode, pu.getSharedCacheMode().toString()); } }
@Override public EmbeddedCacheManager getEmbeddedCacheManager(Properties properties) { Properties settings = new Properties(); String container = properties.getProperty(CACHE_CONTAINER, DEFAULT_CACHE_CONTAINER); settings.setProperty(HibernateSecondLevelCache.CONTAINER, container); if (!Boolean.parseBoolean(properties.getProperty(SHARED, DEFAULT_SHARED))) { HibernateSecondLevelCache.addSecondLevelCacheDependencies(properties, null); settings.setProperty(HibernateSecondLevelCache.CACHE_TYPE, HibernateSecondLevelCache.CACHE_PRIVATE); // Find a suitable service name to represent this session factory instance String name = properties.getProperty(AvailableSettings.SESSION_FACTORY_NAME); if (name != null) { settings.setProperty(HibernateSecondLevelCache.NAME, name); } settings.setProperty(HibernateSecondLevelCache.CACHES, String.join(" ", HibernateSecondLevelCache.findCaches(properties))); } try { return new JipiJapaCacheManager(Notification.startCache(Classification.INFINISPAN, settings)); } catch (CacheException e) { throw e; } catch (Exception e) { throw new CacheException(e); } }