Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.infinispan.rest;
  
  
  
Initializes cache manager for the REST server and sets it into the servlet context.

Author(s):
Michal Linhard (mlinhard@redhat.com)
Since:
5.2
 
 public class ServerBootstrap implements ServletContextListener {

   
The name of an Infinispan configuration file to load
 
    private static final String INFINISPAN_CONFIG = "infinispan.config";
   
Whether to allow returning extended metadata headers
 
    private static final String EXTENDED_HEADERS = "extended.headers";
 
    private final static JavaLog log = LogFactory.getLog(ServerBootstrap.classJavaLog.class);
 
    // Attributes attached to the ServletContext
    public final static String CACHE_MANAGER = "org.infinispan.rest.ServerBootstrap.CACHE_MANAGER";
    public final static String CONFIGURATION = "org.infinispan.rest.ServerBootstrap.CONFIGURATION";
    public final static String MANAGER_INSTANCE = "org.infinispan.rest.ServerBootstrap.MANAGER_INSTANCE";
 
    public static void setCacheManager(ServletContext ctxEmbeddedCacheManager cacheManager) {
       ctx.setAttribute(cacheManager);
       ctx.setAttribute(new ManagerInstance(cacheManager));
    }
 
    public static EmbeddedCacheManager getCacheManager(ServletContext ctx) {
       return (EmbeddedCacheManagerctx.getAttribute();
    }
 
    }
 
    public static void setConfiguration(ServletContext ctxRestServerConfiguration cfg) {
       ctx.setAttribute(cfg);
    }
 
    public static ManagerInstance getManagerInstance(ServletContext ctx) {
       return (ManagerInstancectx.getAttribute();
    }
 
 
    @Override
    public void contextInitialized(ServletContextEvent sce) {
       ServletContext ctx = sce.getServletContext();
 
       // Try to obtain an externally injected CacheManager
       EmbeddedCacheManager cm = getCacheManager(ctx);
 
       // If cache manager is null, create one for REST server's own usage
       if (cm == null) {
          cm = createCacheManager(ctx);
       }
 
       // REST Server configuration
       if (getConfiguration(ctx) == null) {
          createConfiguration(ctx);
       }
 
       // Start defined caches to avoid issues with lazily started caches
       for (String cacheName : cm.getCacheNames())
          cm.getCache(cacheName);
 
       // Finally, start default cache as well
       cm.getCache();
    }
 
    private void createConfiguration(ServletContext ctx) {
       String extendedHeaders = ctx.getInitParameter();
       if (extendedHeaders != null) {
          builder.extendedHeaders(ExtendedHeaders.valueOf(extendedHeaders));
       }
       setConfiguration(ctxbuilder.build());
    }
 
       EmbeddedCacheManager cm;
       String cfgFile = ctx.getInitParameter();
      if (cfgFile == null) {
         cm = new DefaultCacheManager();
      } else {
         try {
            cm = new DefaultCacheManager(cfgFile);
         } catch (IOException e) {
            .errorReadingConfigurationFile(ecfgFile);
            cm = new DefaultCacheManager();
         }
      }
      setCacheManager(ctxcm);
      return cm;
   }
   public void contextDestroyed(ServletContextEvent sce) {
      if (cm != null) {
         cm.stop();
      }
   }
   private Class<?> loadClass(String namethrows Exception {
      return Thread.currentThread().getContextClassLoader().loadClass(name);
   }
New to GrepCode? Check out our FAQ X