Package org.jboss.seam.core

Source Code of org.jboss.seam.core.PojoCache

//$Id: PojoCache.java,v 1.11 2007/06/22 09:28:51 gavin Exp $
package org.jboss.seam.core;

import static org.jboss.seam.annotations.Install.BUILT_IN;

import org.jboss.cache.PropertyConfigurator;
import org.jboss.seam.Component;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.Install;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.Unwrap;
import org.jboss.seam.annotations.intercept.BypassInterceptors;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.log.LogProvider;
import org.jboss.seam.log.Logging;

/**
* Integration with JBoss Cache
*
* @author Gavin King
*
*/
@Name("org.jboss.seam.core.pojoCache")
@Scope(ScopeType.APPLICATION)
@BypassInterceptors
@Install(value=false, precedence=BUILT_IN)
public class PojoCache
{

   private static final LogProvider log = Logging.getLogProvider(PojoCache.class);

   private org.jboss.cache.aop.PojoCache cache;
   private String cfgResourceName = "treecache.xml";

   @Create
   public void start() throws Exception
   {
      log.debug("starting JBoss Cache");
      cache = new org.jboss.cache.aop.PojoCache();
      new PropertyConfigurator().configure(cache, cfgResourceName);
      cache.createService();
      cache.startService();
   }
  
   @Destroy
   public void stop()
   {
      log.debug("stopping JBoss Cache");
      cache.stopService();
      cache.destroyService();
      cache = null;
   }

   @Unwrap
   public org.jboss.cache.aop.PojoCache getCache()
   {
      return cache;
   }

   public String getCfgResourceName()
   {
      return cfgResourceName;
   }

   public void setCfgResourceName(String cfgResourceName)
   {
      this.cfgResourceName = cfgResourceName;
   }

   public static org.jboss.cache.aop.PojoCache instance()
   {
      if ( !Contexts.isApplicationContextActive() )
      {
         throw new IllegalStateException("No active application scope");
      }
      return (org.jboss.cache.aop.PojoCache) Component.getInstance(PojoCache.class, ScopeType.APPLICATION);
   }
  
}
TOP

Related Classes of org.jboss.seam.core.PojoCache

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.