/** * Adds a {@link CacheEventDispatcherFactoryConfiguration}, that specifies the thread pool to use, to the returned * builder. * * @param threadPoolAlias the thread pool alias * @return a new builder with the added configuration * * @see PooledExecutionServiceConfigurationBuilder */ public CacheManagerBuilder<T> withDefaultEventListenersThreadPool(String threadPoolAlias) { CacheEventDispatcherFactoryConfiguration config = configBuilder.findServiceByClass(CacheEventDispatcherFactoryConfiguration.class); if (config == null) { return new CacheManagerBuilder<>(this, configBuilder.addService(new CacheEventDispatcherFactoryConfiguration(threadPoolAlias))); } else { ConfigurationBuilder builder = configBuilder.removeService(config); return new CacheManagerBuilder<>(this, builder.addService(new CacheEventDispatcherFactoryConfiguration(threadPoolAlias))); } }
public CacheEventDispatcherFactoryImpl(CacheEventDispatcherFactoryConfiguration configuration) { this.defaultThreadPoolAlias = configuration.getThreadPoolAlias(); }
@Test public void unparseServiceCreationConfiguration() { Configuration config = ConfigurationBuilder.newConfigurationBuilder() .addService(new CacheEventDispatcherFactoryConfiguration("foo")).build(); ConfigType configType = new CacheEventDispatcherFactoryConfigurationParser().unparseServiceCreationConfiguration(config, new ConfigType()); assertThat(configType.getEventDispatch().getThreadPool()).isEqualTo("foo"); } }
@Test public void parseServiceCreationConfiguration() throws SAXException, JAXBException, ParserConfigurationException, IOException, ClassNotFoundException { Configuration xmlConfig = new XmlConfiguration(getClass().getResource("/configs/ehcache-cacheEventListener.xml")); assertThat(xmlConfig.getServiceCreationConfigurations()).hasSize(1); ServiceCreationConfiguration<?> configuration = xmlConfig.getServiceCreationConfigurations().iterator().next(); assertThat(configuration).isInstanceOf(CacheEventDispatcherFactoryConfiguration.class); CacheEventDispatcherFactoryConfiguration providerConfiguration = (CacheEventDispatcherFactoryConfiguration) configuration; assertThat(providerConfiguration.getThreadPoolAlias()).isEqualTo("events-pool"); }
@Test public void testNoDefaultThreadPoolSucceedsWithExplicitConfig() throws Exception { PooledExecutionServiceConfiguration executionServiceConfiguration = new PooledExecutionServiceConfiguration(); executionServiceConfiguration.addPool("foo", 2, 4); CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder() .using(new CacheEventDispatcherFactoryConfiguration("foo")) .using(executionServiceConfiguration) .build(true); cacheManager.createCache("testCache", CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class, heap(10)) .build()); cacheManager.close(); }
public CacheEventDispatcherFactoryImpl(CacheEventDispatcherFactoryConfiguration configuration) { this.defaultThreadPoolAlias = configuration.getThreadPoolAlias(); }
@Test public void testDefaultThreadPoolFailsWithExplicitConfig() throws Exception { PooledExecutionServiceConfiguration executionServiceConfiguration = new PooledExecutionServiceConfiguration(); executionServiceConfiguration.addDefaultPool("dflt", 2, 4); CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder() .using(new CacheEventDispatcherFactoryConfiguration("foo")) .using(executionServiceConfiguration) .build(true); try { cacheManager.createCache("testCache", CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class, heap(10)) .build()); fail("expected IllegalStateException"); } catch (IllegalStateException ise) { // expected } cacheManager.close(); }
/** * Adds a {@link CacheEventDispatcherFactoryConfiguration}, that specifies the thread pool to use, to the returned * builder. * * @param threadPoolAlias the thread pool alias * @return a new builder with the added configuration * * @see PooledExecutionServiceConfigurationBuilder */ public CacheManagerBuilder<T> withDefaultEventListenersThreadPool(String threadPoolAlias) { CacheEventDispatcherFactoryConfiguration config = configBuilder.findServiceByClass(CacheEventDispatcherFactoryConfiguration.class); if (config == null) { return new CacheManagerBuilder<>(this, configBuilder.addService(new CacheEventDispatcherFactoryConfiguration(threadPoolAlias))); } else { ConfigurationBuilder builder = configBuilder.removeService(config); return new CacheManagerBuilder<>(this, builder.addService(new CacheEventDispatcherFactoryConfiguration(threadPoolAlias))); } }