/** * Test enableManagement command on JCache API<br> * <br> * Fix pending in <b>ISPN-7095</b> * * @throws MalformedObjectNameException */ @Test @Ignore("Ignored until ISPN-7095") public void testEnableManagement() throws MalformedObjectNameException { ObjectName mBeanName = getMBeanName(enableManagementTestCacheName, "Configuration"); cacheManager.enableManagement(enableManagementTestCacheName, true); assertTrue("Statistics register as disabled after enabling", mBeanServer.isRegistered(mBeanName)); cacheManager.enableManagement(enableManagementTestCacheName, false); assertFalse("Statistics register as enabled after disabling", mBeanServer.isRegistered(mBeanName)); }
@Override @SuppressWarnings("unchecked") public Cache<K, V> build(CacheManager manager) { checkNotNull(manager); checkNotNull(keyType); checkNotNull(valueType); checkNotNull(name); checkNotNull(expiryFactory); CacheConfigurationBuilder<K, V> builder = CacheConfigurationBuilder.newCacheConfigurationBuilder( keyType, valueType, ResourcePoolsBuilder.heap(cacheSize)); builder.withExpiry(mapToEhCacheExpiry(expiryFactory.create())); Cache<K, V> cache = manager.createCache(name, Eh107Configuration.fromEhcacheCacheConfiguration(builder)); manager.enableStatistics(name, statisticsEnabled); manager.enableManagement(name, managementEnabled); if (persister != null) { CacheEventListener listener = (final CacheEvent cacheEvent) -> persister.accept((K) cacheEvent.getKey(), (V) cacheEvent.getOldValue()); Eh107Configuration<K, V> configuration = cache.getConfiguration(Eh107Configuration.class); configuration.unwrap(CacheRuntimeConfiguration.class) .registerCacheEventListener(listener, EventOrdering.UNORDERED, EventFiring.ASYNCHRONOUS, EventType.EVICTED, EventType.REMOVED, EventType.EXPIRED); } return cache; }
@Test(expected = NullPointerException.class) public void enableManagement_nullCacheName() { CacheManager cacheManager = getCacheManager(); final String NULL_CACHE_NAME = null; cacheManager.enableManagement(NULL_CACHE_NAME, true); fail(); }
@Test public void testCacheMXBeanManagementTurnedOff() throws Exception { cache.getCacheManager().enableManagement(cache.getName(), false); try { lookupManagementAttribute(cache, CacheConfiguration, "ReadThrough"); fail(); } catch (javax.management.InstanceNotFoundException e) { //expected. Shouldn't be there } }
@Test public void testCacheManagementOffThenOnThenOff() throws Exception { MutableConfiguration configuration = new MutableConfiguration(); configuration.setManagementEnabled(false); cacheManager.createCache("cache1", configuration); cacheManager.createCache("cache2", configuration); Set<? extends ObjectName> names = mBeanServer.queryNames(new ObjectName("javax.cache:*"), null); Assert.assertTrue(names.size() == 0); configuration.setManagementEnabled(true); cacheManager.createCache("cache3", configuration); cacheManager.createCache("cache4", configuration); assertThat(mBeanServer.queryNames(new ObjectName("javax.cache:*"), null), hasSize(2)); cacheManager.enableManagement("cache3", false); assertThat(mBeanServer.queryNames(new ObjectName("javax.cache:*"), null), hasSize(1)); cacheManager.enableManagement("cache3", true); assertThat(mBeanServer.queryNames(new ObjectName("javax.cache:*"), null), hasSize(2)); } }
@Test(expected = IllegalStateException.class) public void enableManagement_managerStopped() { CacheManager cacheManager = getCacheManager(); cacheManager.close(); cacheManager.enableManagement("notThere", true); fail(); }
@Before public void moreSetUp() { cache = getCacheManager().getCache(getTestCacheName(), Long.class, String.class); cache.getCacheManager().enableStatistics(cache.getName(), true); cache.getCacheManager().enableManagement(cache.getName(), true); }