Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Use injection for the Infinispan cache manager.
Browse files Browse the repository at this point in the history
  • Loading branch information
Carlos A. Munoz committed Sep 29, 2014
1 parent 004e104 commit 15ec253
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 18 deletions.
@@ -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 <a
* href="mailto:camunoz@redhat.com">camunoz@redhat.com</a>
*/
@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);
}
}
Expand Up @@ -82,8 +82,6 @@ public class TranslationStateCacheImpl implements TranslationStateCache {
private static final String TFT_VALIDATION_CACHE_NAME = BASE
+ ".targetValidationCache";

private CacheContainer cacheManager;

private CacheWrapper<DocumentLocaleKey, WordStatistic> documentStatisticCache;
private CacheLoader<DocumentLocaleKey, WordStatistic> documentStatisticLoader;

Expand All @@ -93,6 +91,9 @@ public class TranslationStateCacheImpl implements TranslationStateCache {
private CacheWrapper<Long, Map<ValidationId, Boolean>> targetValidationCache;
private CacheLoader<Long, Map<ValidationId, Boolean>> targetValidationLoader;

@In
private CacheContainer cacheContainer;

@In
private ServiceLocator serviceLocator;

Expand All @@ -114,29 +115,25 @@ 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);
}

@Destroy
public void destroy() {
// NB Since infinispan is container managed, there's no need to stop the
// cache manager with
// cacheManager.stop();
// cacheContainer.stop();
}

@Override
Expand Down
Expand Up @@ -57,11 +57,12 @@ public class VersionStateCacheImpl implements VersionStateCache {
private static final String VERSION_STATISTIC_CACHE_NAME = BASE
+ ".versionStatisticCache";

private CacheContainer cacheManager;

private CacheWrapper<VersionLocaleKey, WordStatistic> versionStatisticCache;
private CacheLoader<VersionLocaleKey, WordStatistic> versionStatisticLoader;

@In
private CacheContainer cacheContainer;

@In
private ServiceLocator serviceLocator;

Expand All @@ -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)
Expand Down

0 comments on commit 15ec253

Please sign in to comment.