diff --git a/zanata-war/src/main/java/org/zanata/service/impl/VersionStateCacheImpl.java b/zanata-war/src/main/java/org/zanata/service/impl/VersionStateCacheImpl.java index a64ac1f4c3..972260a725 100644 --- a/zanata-war/src/main/java/org/zanata/service/impl/VersionStateCacheImpl.java +++ b/zanata-war/src/main/java/org/zanata/service/impl/VersionStateCacheImpl.java @@ -60,7 +60,6 @@ public class VersionStateCacheImpl implements VersionStateCache { private CacheWrapper versionStatisticCache; private CacheLoader versionStatisticLoader; - @In private CacheContainer cacheContainer; @In @@ -127,6 +126,11 @@ public void clearVersionStatsCache(Long versionId) { } } + @In + public void setCacheContainer(CacheContainer cacheContainer) { + this.cacheContainer = cacheContainer; + } + private static class VersionStatisticLoader extends CacheLoader { diff --git a/zanata-war/src/test/java/org/zanata/cache/InfinispanTestCacheContainer.java b/zanata-war/src/test/java/org/zanata/cache/InfinispanTestCacheContainer.java index 68ea4e1f2a..475bd11625 100644 --- a/zanata-war/src/test/java/org/zanata/cache/InfinispanTestCacheContainer.java +++ b/zanata-war/src/test/java/org/zanata/cache/InfinispanTestCacheContainer.java @@ -42,6 +42,7 @@ public InfinispanTestCacheContainer() { public void start() { stop(); this.delegate = new DefaultCacheManager(); + configure(); this.delegate.start(); } @@ -51,4 +52,13 @@ public void stop() { delegate.stop(); } } + + private void configure() { + /* This allows multiple concurrent tests to run. + See https://issues.jboss.org/browse/ISPN-2886 for the exception that + is thrown when this is not used. + */ + this.delegate.getCacheManagerConfiguration().globalJmxStatistics() + .allowDuplicateDomains(); + } } diff --git a/zanata-war/src/test/java/org/zanata/service/impl/VersionStateCacheImplTest.java b/zanata-war/src/test/java/org/zanata/service/impl/VersionStateCacheImplTest.java index bde0d9c56c..6d4f8df3fa 100644 --- a/zanata-war/src/test/java/org/zanata/service/impl/VersionStateCacheImplTest.java +++ b/zanata-war/src/test/java/org/zanata/service/impl/VersionStateCacheImplTest.java @@ -5,11 +5,13 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import org.infinispan.manager.CacheContainer; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import org.zanata.cache.InfinispanTestCacheContainer; import org.zanata.common.LocaleId; import org.zanata.service.VersionLocaleKey; import org.zanata.ui.model.statistic.WordStatistic; @@ -26,14 +28,15 @@ public class VersionStateCacheImplTest { @Mock private CacheLoader versionStatisticLoader; + private final CacheContainer cacheContainer = + new InfinispanTestCacheContainer(); @BeforeMethod public void beforeMethod() { MockitoAnnotations.initMocks(this); cache = new VersionStateCacheImpl(versionStatisticLoader); - - cache.create(); - cache.destroy(); + cacheContainer.start(); + cache.setCacheContainer(cacheContainer); cache.create(); } diff --git a/zanata-war/src/test/resources/arquillian/persistence.xml b/zanata-war/src/test/resources/arquillian/persistence.xml index f5743cf7cb..86481e7d53 100755 --- a/zanata-war/src/test/resources/arquillian/persistence.xml +++ b/zanata-war/src/test/resources/arquillian/persistence.xml @@ -83,9 +83,10 @@ - + value="infinispan" /> + + diff --git a/zanata-war/src/test/resources/arquillian/standalone.xml b/zanata-war/src/test/resources/arquillian/standalone.xml index fe9c451cf6..749e830b98 100644 --- a/zanata-war/src/test/resources/arquillian/standalone.xml +++ b/zanata-war/src/test/resources/arquillian/standalone.xml @@ -191,6 +191,27 @@ + + + + + + + + + + + + + +