use of javax.cache.spi.CachingProvider in project hazelcast by hazelcast.
the class CacheListenerTest method testReplaceIfSameWithSyncListener_whenEntryNotExists.
@Test(timeout = 30000)
public void testReplaceIfSameWithSyncListener_whenEntryNotExists() {
CachingProvider cachingProvider = getCachingProvider();
CacheManager cacheManager = cachingProvider.getCacheManager();
CompleteConfiguration<String, String> config = new MutableConfiguration<String, String>().setTypes(String.class, String.class).addCacheEntryListenerConfiguration(new MutableCacheEntryListenerConfiguration<String, String>(FactoryBuilder.factoryOf(new TestListener(new AtomicInteger())), null, true, true));
Cache<String, String> cache = cacheManager.createCache(randomString(), config);
// there should not be any hanging due to sync listener
cache.replace(randomString(), randomString(), randomString());
}
use of javax.cache.spi.CachingProvider in project hazelcast by hazelcast.
the class CacheListenerTest method testRemoveWithSyncListener_whenEntryNotExists.
@Test(timeout = 30000)
public void testRemoveWithSyncListener_whenEntryNotExists() {
CachingProvider cachingProvider = getCachingProvider();
CacheManager cacheManager = cachingProvider.getCacheManager();
CompleteConfiguration<String, String> config = new MutableConfiguration<String, String>().setTypes(String.class, String.class).addCacheEntryListenerConfiguration(new MutableCacheEntryListenerConfiguration<String, String>(FactoryBuilder.factoryOf(new TestListener(new AtomicInteger())), null, true, true));
Cache<String, String> cache = cacheManager.createCache(randomString(), config);
// there should not be any hanging due to sync listener
cache.remove(randomString());
}
use of javax.cache.spi.CachingProvider in project hazelcast by hazelcast.
the class CacheListenerTest method testGetAndRemoveWithSyncListener_whenEntryNotExists.
@Test(timeout = 30000)
public void testGetAndRemoveWithSyncListener_whenEntryNotExists() {
CachingProvider cachingProvider = getCachingProvider();
CacheManager cacheManager = cachingProvider.getCacheManager();
CompleteConfiguration<String, String> config = new MutableConfiguration<String, String>().setTypes(String.class, String.class).addCacheEntryListenerConfiguration(new MutableCacheEntryListenerConfiguration<String, String>(FactoryBuilder.factoryOf(new TestListener(new AtomicInteger())), null, true, true));
Cache<String, String> cache = cacheManager.createCache(randomString(), config);
// there should not be any hanging due to sync listener
cache.getAndRemove(randomString());
}
use of javax.cache.spi.CachingProvider in project hazelcast by hazelcast.
the class CacheListenerTest method testSyncListener_shouldNotHang_whenHazelcastInstanceShutdown.
@Test
public void testSyncListener_shouldNotHang_whenHazelcastInstanceShutdown() {
CachingProvider provider = getCachingProvider();
testSyncListener_shouldNotHang_AfterAction(randomMapName(), provider, new Runnable() {
@Override
public void run() {
hazelcastInstance.shutdown();
}
});
}
use of javax.cache.spi.CachingProvider in project hazelcast by hazelcast.
the class CacheListenerTest method testSyncListener.
@Test
public void testSyncListener() throws Exception {
CachingProvider cachingProvider = getCachingProvider();
CacheManager cacheManager = cachingProvider.getCacheManager();
final AtomicInteger counter = new AtomicInteger();
CompleteConfiguration<String, String> config = new MutableConfiguration<String, String>().setTypes(String.class, String.class).addCacheEntryListenerConfiguration(new MutableCacheEntryListenerConfiguration<String, String>(FactoryBuilder.factoryOf(new TestListener(counter)), null, true, true));
final Cache<String, String> cache = cacheManager.createCache("test", config);
final int threadCount = 10;
final int shutdownWaitTimeInSeconds = threadCount;
final int putCount = 1000;
final AtomicInteger actualPutCount = new AtomicInteger(0);
final CountDownLatch latch = new CountDownLatch(threadCount);
final AtomicBoolean shutdown = new AtomicBoolean(false);
for (int i = 0; i < threadCount; i++) {
new Thread() {
public void run() {
Random rand = new Random();
for (int i = 0; i < putCount && !shutdown.get(); i++) {
String key = String.valueOf(rand.nextInt(putCount));
String value = UUID.randomUUID().toString();
cache.put(key, value);
actualPutCount.incrementAndGet();
}
latch.countDown();
}
}.start();
}
if (!latch.await(ASSERT_TRUE_EVENTUALLY_TIMEOUT, TimeUnit.SECONDS)) {
shutdown.set(true);
if (!latch.await(shutdownWaitTimeInSeconds, TimeUnit.SECONDS)) {
fail("Cache operations have not finished in " + (ASSERT_TRUE_EVENTUALLY_TIMEOUT + shutdownWaitTimeInSeconds) + " seconds when sync listener is present!");
}
}
assertEquals(actualPutCount.get(), counter.get());
}
Aggregations