public ClusterTierPassiveEntity(ServiceRegistry registry, ClusterTierEntityConfiguration config, KeySegmentMapper defaultMapper) throws ConfigurationException { if (config == null) { throw new ConfigurationException("ClusterTierManagerConfiguration cannot be null"); } storeIdentifier = config.getStoreIdentifier(); configuration = config.getConfiguration(); managerIdentifier = config.getManagerIdentifier(); try { stateService = registry.getService(new EhcacheStoreStateServiceConfig(config.getManagerIdentifier(), defaultMapper)); messageHandler = registry.getService(new OOOMessageHandlerConfiguration<>(managerIdentifier + "###" + storeIdentifier, ClusterTierActiveEntity::isTrackedMessage, defaultMapper.getSegments() + 1, new MessageToTrackerSegmentFunction(clusterTierConcurrency(defaultMapper)))); } catch (ServiceException e) { throw new ConfigurationException("Unable to retrieve service: " + e.getMessage()); } if (stateService == null) { throw new AssertionError("Server failed to retrieve EhcacheStateService."); } management = new ClusterTierManagement(registry, stateService, false, storeIdentifier, config.getManagerIdentifier()); }
@SuppressWarnings("unchecked") public ClusterTierActiveEntity(ServiceRegistry registry, ClusterTierEntityConfiguration entityConfiguration, KeySegmentMapper defaultMapper) throws ConfigurationException { if (entityConfiguration == null) { throw new ConfigurationException("ClusteredStoreEntityConfiguration cannot be null"); } storeIdentifier = entityConfiguration.getStoreIdentifier(); configuration = entityConfiguration.getConfiguration(); managerIdentifier = entityConfiguration.getManagerIdentifier(); try { clientCommunicator = registry.getService(new CommunicatorServiceConfiguration()); stateService = registry.getService(new EhcacheStoreStateServiceConfig(entityConfiguration.getManagerIdentifier(), defaultMapper)); entityMessenger = registry.getService(new BasicServiceConfiguration<>(IEntityMessenger.class)); messageHandler = registry.getService(new OOOMessageHandlerConfiguration<>(managerIdentifier + "###" + storeIdentifier, ClusterTierActiveEntity::isTrackedMessage, defaultMapper.getSegments() + 1, new MessageToTrackerSegmentFunction(clusterTierConcurrency(defaultMapper)))); } catch (ServiceException e) { throw new ConfigurationException("Unable to retrieve service: " + e.getMessage()); } if (entityMessenger == null) { throw new AssertionError("Server failed to retrieve IEntityMessenger service."); } management = new ClusterTierManagement(registry, stateService, true, storeIdentifier, entityConfiguration.getManagerIdentifier()); chainCompactionLimit = Integer.getInteger(CHAIN_COMPACTION_THRESHOLD_PROP, DEFAULT_CHAIN_COMPACTION_THRESHOLD); if (configuration.isLoaderWriterConfigured()) { lockManager = new LockManagerImpl(); } else { lockManager = new NoopLockManager(); } }