@Override protected DomainDataStorageAccess createDomainDataStorageAccess(DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) { String defaultKey = null; if (!regionConfig.getCollectionCaching().isEmpty()) { defaultKey = COLLECTION_DEF; } else if (!regionConfig.getEntityCaching().isEmpty()) { defaultKey = ENTITY_DEF; } else if (!regionConfig.getNaturalIdCaching().isEmpty()) { defaultKey = NATURAL_ID_DEF; } else { throw new IllegalArgumentException("Unable to determine entity cache type!"); } RMapCache<Object, Object> mapCache = getCache(regionConfig.getRegionName(), buildingContext.getSessionFactory().getProperties(), defaultKey); return new RedissonStorage(mapCache, buildingContext.getSessionFactory().getProperties(), defaultKey); }
@Override protected DomainDataStorageAccess createDomainDataStorageAccess( DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) { return new JCacheAccessImpl( getOrCreateCache( regionConfig.getRegionName(), buildingContext.getSessionFactory() ) ); }
private Map<NavigableRole, CollectionDataAccess> generateCollectionDataAccessMap( DomainDataRegionConfig regionConfig) { if ( regionConfig.getNaturalIdCaching().isEmpty() ) { return Collections.emptyMap(); } final Map<NavigableRole, CollectionDataAccess> accessMap = new ConcurrentHashMap<>(); for ( CollectionDataCachingConfig cachingConfig : regionConfig.getCollectionCaching() ) { accessMap.computeIfAbsent( cachingConfig.getNavigableRole(), hierarchy -> generateCollectionAccess( cachingConfig ) ); } return Collections.unmodifiableMap( accessMap ); }
private Map<NavigableRole, NaturalIdDataAccess> generateNaturalIdDataAccessMap(DomainDataRegionConfig regionConfig) { if ( regionConfig.getNaturalIdCaching().isEmpty() ) { return Collections.emptyMap(); } final Map<NavigableRole, NaturalIdDataAccess> accessMap = new ConcurrentHashMap<>(); for ( NaturalIdDataCachingConfig naturalIdAccessConfig : regionConfig.getNaturalIdCaching() ) { accessMap.computeIfAbsent( naturalIdAccessConfig.getNavigableRole(), hierarchy -> generateNaturalIdAccess( naturalIdAccessConfig ) ); } return Collections.unmodifiableMap( accessMap ); }
private Map<NavigableRole, EntityDataAccess> generateEntityDataAccessMap( DomainDataRegionConfig regionConfig) { if ( regionConfig.getEntityCaching().isEmpty() ) { return Collections.emptyMap(); } final Map<NavigableRole, EntityDataAccess> accessMap = new ConcurrentHashMap<>(); for ( EntityDataCachingConfig entityAccessConfig : regionConfig.getEntityCaching() ) { accessMap.computeIfAbsent( entityAccessConfig.getNavigableRole(), hierarchy -> generateEntityAccess( entityAccessConfig ) ); } return Collections.unmodifiableMap( accessMap ); }
private Map<NavigableRole, CollectionDataAccess> generateCollectionDataAccessMap( DomainDataRegionConfig regionConfig) { if ( regionConfig.getCollectionCaching().isEmpty() ) { return Collections.emptyMap(); } final Map<NavigableRole, CollectionDataAccess> accessMap = new ConcurrentHashMap<>(); for ( CollectionDataCachingConfig cachingConfig : regionConfig.getCollectionCaching() ) { accessMap.computeIfAbsent( cachingConfig.getNavigableRole(), hierarchy -> generateCollectionAccess( cachingConfig ) ); } return Collections.unmodifiableMap( accessMap ); }
@Override protected DomainDataStorageAccess createDomainDataStorageAccess( DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) { return new StorageAccessImpl( getOrCreateCache( regionConfig.getRegionName(), buildingContext.getSessionFactory() ) ); }
private Map<NavigableRole, NaturalIdDataAccess> generateNaturalIdDataAccessMap(DomainDataRegionConfig regionConfig) { if ( regionConfig.getNaturalIdCaching().isEmpty() ) { return Collections.emptyMap(); } final Map<NavigableRole, NaturalIdDataAccess> accessMap = new ConcurrentHashMap<>(); for ( NaturalIdDataCachingConfig naturalIdAccessConfig : regionConfig.getNaturalIdCaching() ) { accessMap.computeIfAbsent( naturalIdAccessConfig.getNavigableRole(), hierarchy -> generateNaturalIdAccess( naturalIdAccessConfig ) ); } return Collections.unmodifiableMap( accessMap ); }
private Map<NavigableRole, EntityDataAccess> generateEntityDataAccessMap( DomainDataRegionConfig regionConfig) { if ( regionConfig.getEntityCaching().isEmpty() ) { return Collections.emptyMap(); } final Map<NavigableRole, EntityDataAccess> accessMap = new ConcurrentHashMap<>(); for ( EntityDataCachingConfig entityAccessConfig : regionConfig.getEntityCaching() ) { accessMap.computeIfAbsent( entityAccessConfig.getNavigableRole(), hierarchy -> generateEntityAccess( entityAccessConfig ) ); } return Collections.unmodifiableMap( accessMap ); }
private Map<NavigableRole, CollectionDataAccess> generateCollectionDataAccessMap( DomainDataRegionConfig regionConfig) { if ( regionConfig.getCollectionCaching().isEmpty() ) { return Collections.emptyMap(); } final Map<NavigableRole, CollectionDataAccess> accessMap = new ConcurrentHashMap<>(); for ( CollectionDataCachingConfig cachingConfig : regionConfig.getCollectionCaching() ) { accessMap.computeIfAbsent( cachingConfig.getNavigableRole(), hierarchy -> generateCollectionAccess( cachingConfig ) ); } return Collections.unmodifiableMap( accessMap ); }
regionsByName.put( region.getName(), region ); if ( ! Objects.equals( region.getName(), regionConfig.getRegionName() ) ) { throw new HibernateException( String.format( region, getRegionFactory().getClass().getName(), regionConfig.getRegionName(), region.getName() for ( EntityDataCachingConfig entityAccessConfig : regionConfig.getEntityCaching() ) { final EntityDataAccess entityDataAccess = entityAccessMap.put( entityAccessConfig.getNavigableRole(), if ( regionConfig.getNaturalIdCaching().isEmpty() ) { legacyNaturalIdAccessesForRegion.put( region.getName(), Collections.emptySet() ); final HashSet<NaturalIdDataAccess> accesses = new HashSet<>(); for ( NaturalIdDataCachingConfig naturalIdAccessConfig : regionConfig.getNaturalIdCaching() ) { final NaturalIdDataAccess naturalIdDataAccess = naturalIdAccessMap.put( naturalIdAccessConfig.getNavigableRole(), for ( CollectionDataCachingConfig collectionAccessConfig : regionConfig.getCollectionCaching() ) { final CollectionDataAccess collectionDataAccess = collectionAccessMap.put( collectionAccessConfig.getNavigableRole(),
public AbstractDomainDataRegion( DomainDataRegionConfig regionConfig, RegionFactory regionFactory, CacheKeysFactory defaultKeysFactory, DomainDataRegionBuildingContext buildingContext) { // super( regionFactory.qualify( regionConfig.getRegionName() ), regionFactory ); super( regionConfig.getRegionName(), regionFactory ); this.sessionFactory = buildingContext.getSessionFactory(); if ( defaultKeysFactory == null ) { defaultKeysFactory = DefaultCacheKeysFactory.INSTANCE; } this.effectiveKeysFactory = buildingContext.getEnforcedCacheKeysFactory() != null ? buildingContext.getEnforcedCacheKeysFactory() : defaultKeysFactory; }
private Map<NavigableRole, NaturalIdDataAccess> generateNaturalIdDataAccessMap(DomainDataRegionConfig regionConfig) { if ( regionConfig.getNaturalIdCaching().isEmpty() ) { return Collections.emptyMap(); } final Map<NavigableRole, NaturalIdDataAccess> accessMap = new ConcurrentHashMap<>(); for ( NaturalIdDataCachingConfig naturalIdAccessConfig : regionConfig.getNaturalIdCaching() ) { accessMap.computeIfAbsent( naturalIdAccessConfig.getNavigableRole(), hierarchy -> generateNaturalIdAccess( naturalIdAccessConfig ) ); } return Collections.unmodifiableMap( accessMap ); }
private Map<NavigableRole, EntityDataAccess> generateEntityDataAccessMap( DomainDataRegionConfig regionConfig) { if ( regionConfig.getEntityCaching().isEmpty() ) { return Collections.emptyMap(); } final Map<NavigableRole, EntityDataAccess> accessMap = new ConcurrentHashMap<>(); for ( EntityDataCachingConfig entityAccessConfig : regionConfig.getEntityCaching() ) { accessMap.computeIfAbsent( entityAccessConfig.getNavigableRole(), hierarchy -> generateEntityAccess( entityAccessConfig ) ); } return Collections.unmodifiableMap( accessMap ); }
regionsByName.put( region.getName(), region ); if ( ! Objects.equals( region.getName(), regionConfig.getRegionName() ) ) { throw new HibernateException( String.format( region, getRegionFactory().getClass().getName(), regionConfig.getRegionName(), region.getName() for ( EntityDataCachingConfig entityAccessConfig : regionConfig.getEntityCaching() ) { final EntityDataAccess entityDataAccess = entityAccessMap.put( entityAccessConfig.getNavigableRole(), if ( regionConfig.getNaturalIdCaching().isEmpty() ) { legacyNaturalIdAccessesForRegion.put( region.getName(), Collections.emptySet() ); final HashSet<NaturalIdDataAccess> accesses = new HashSet<>(); for ( NaturalIdDataCachingConfig naturalIdAccessConfig : regionConfig.getNaturalIdCaching() ) { final NaturalIdDataAccess naturalIdDataAccess = naturalIdAccessMap.put( naturalIdAccessConfig.getNavigableRole(), for ( CollectionDataCachingConfig collectionAccessConfig : regionConfig.getCollectionCaching() ) { final CollectionDataAccess collectionDataAccess = collectionAccessMap.put( collectionAccessConfig.getNavigableRole(),
/** * Should be called at the end of the subtype's constructor, or at least after the * `#super(...)` (aka, this type's constructor) call. It's a timing issue - we need access * to the DomainDataStorageAccess in DomainDataRegionTemplate but in methods initiated * (atm) from AbstractDomainDataRegion's constructor */ protected void completeInstantiation( DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) { log.tracef( "DomainDataRegion created [%s]; key-factory = %s", regionConfig.getRegionName(), effectiveKeysFactory ); this.entityDataAccessMap = generateEntityDataAccessMap( regionConfig ); this.naturalIdDataAccessMap = generateNaturalIdDataAccessMap( regionConfig ); this.collectionDataAccessMap = generateCollectionDataAccessMap( regionConfig ); }
@Override protected DomainDataStorageAccess createDomainDataStorageAccess(DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) { return new RedisDomainDataStorageAccessImpl(redisClient, getOrCreateCache(regionConfig.getRegionName(), buildingContext.getSessionFactory())); }
@Override protected DomainDataStorageAccess createDomainDataStorageAccess(DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) { return new RedisDomainDataStorageAccessImpl(redisClient, getOrCreateCache(regionConfig.getRegionName(), buildingContext.getSessionFactory())); }
@Override protected DomainDataStorageAccess createDomainDataStorageAccess( DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) { return new StorageAccessImpl( getOrCreateCache( regionConfig.getRegionName(), buildingContext.getSessionFactory() ) ); }
@Override protected DomainDataStorageAccess createDomainDataStorageAccess( DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) { return new JCacheAccessImpl( getOrCreateCache( regionConfig.getRegionName(), buildingContext.getSessionFactory() ) ); }