diff --git a/zanata-war/src/main/java/org/zanata/cache/CacheContainerProducer.java b/zanata-war/src/main/java/org/zanata/cache/CacheContainerProducer.java
new file mode 100644
index 0000000000..3b7a06ad5d
--- /dev/null
+++ b/zanata-war/src/main/java/org/zanata/cache/CacheContainerProducer.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2014, Red Hat, Inc. and individual contributors as indicated by the
+ * @author tags. See the copyright.txt file in the distribution for a full
+ * listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.zanata.cache;
+
+import org.infinispan.manager.CacheContainer;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.Unwrap;
+import org.zanata.util.ServiceLocator;
+
+/**
+ * Produces a cache container for injection.
+ * @author Carlos Munoz camunoz@redhat.com
+ */
+@Name("cacheContainer")
+@Scope(ScopeType.STATELESS)
+@AutoCreate
+public class CacheContainerProducer {
+
+ private static final String CACHE_CONTAINER_NAME =
+ "java:jboss/infinispan/container/zanata";
+
+ @Unwrap
+ public CacheContainer getCacheContainer() {
+ return ServiceLocator.instance().getJndiComponent(CACHE_CONTAINER_NAME,
+ CacheContainer.class);
+ }
+}
diff --git a/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java b/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java
index 89469c0c46..96302bc9a0 100644
--- a/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java
+++ b/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java
@@ -82,8 +82,6 @@ public class TranslationStateCacheImpl implements TranslationStateCache {
private static final String TFT_VALIDATION_CACHE_NAME = BASE
+ ".targetValidationCache";
- private CacheContainer cacheManager;
-
private CacheWrapper documentStatisticCache;
private CacheLoader documentStatisticLoader;
@@ -93,6 +91,9 @@ public class TranslationStateCacheImpl implements TranslationStateCache {
private CacheWrapper> targetValidationCache;
private CacheLoader> targetValidationLoader;
+ @In
+ private CacheContainer cacheContainer;
+
@In
private ServiceLocator serviceLocator;
@@ -114,21 +115,17 @@ public TranslationStateCacheImpl(
@Create
public void create() {
- cacheManager =
- ServiceLocator.instance().getJndiComponent(
- "java:jboss/infinispan/container/zanata",
- CacheContainer.class);
documentStatisticCache =
InfinispanCacheWrapper.create(DOC_STATISTIC_CACHE_NAME,
- cacheManager, documentStatisticLoader);
+ cacheContainer, documentStatisticLoader);
docStatusCache =
InfinispanCacheWrapper.create(DOC_STATUS_CACHE_NAME,
- cacheManager,
+ cacheContainer,
docStatusLoader);
targetValidationCache =
InfinispanCacheWrapper.create(TFT_VALIDATION_CACHE_NAME,
- cacheManager,
+ cacheContainer,
targetValidationLoader);
}
@@ -136,7 +133,7 @@ public void create() {
public void destroy() {
// NB Since infinispan is container managed, there's no need to stop the
// cache manager with
- // cacheManager.stop();
+ // cacheContainer.stop();
}
@Override
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 6e511af290..a64ac1f4c3 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
@@ -57,11 +57,12 @@ public class VersionStateCacheImpl implements VersionStateCache {
private static final String VERSION_STATISTIC_CACHE_NAME = BASE
+ ".versionStatisticCache";
- private CacheContainer cacheManager;
-
private CacheWrapper versionStatisticCache;
private CacheLoader versionStatisticLoader;
+ @In
+ private CacheContainer cacheContainer;
+
@In
private ServiceLocator serviceLocator;
@@ -78,20 +79,16 @@ public VersionStateCacheImpl(
@Create
public void create() {
- cacheManager =
- ServiceLocator.instance().getJndiComponent(
- "java:jboss/infinispan/container/zanata",
- CacheContainer.class);
versionStatisticCache =
InfinispanCacheWrapper.create(VERSION_STATISTIC_CACHE_NAME,
- cacheManager, versionStatisticLoader);
+ cacheContainer, versionStatisticLoader);
}
@Destroy
public void destroy() {
// NB Since infinispan is container managed, there's no need to stop the
// cache manager with
- // cacheManager.stop();
+ // cacheContainer.stop();
}
@Observer(TextFlowTargetStateEvent.EVENT_NAME)