James Moger
2014-05-16 aa1361d04cfe09f90e7d8bece90c00dd6e4185bb
src/main/java/com/gitblit/guice/GuiceContext.java
File was renamed from src/main/java/com/gitblit/dagger/DaggerContext.java
@@ -1,5 +1,5 @@
/*
 * Copyright 2013 gitblit.com.
 * Copyright 2014 gitblit.com.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.gitblit.dagger;
package com.gitblit.guice;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
@@ -22,41 +22,42 @@
import org.slf4j.LoggerFactory;
import com.gitblit.servlet.InjectionContextListener;
import dagger.ObjectGraph;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
/**
 * Dagger servlet context listener is a context listener that uses Dagger to
 * Guice servlet context listener is a context listener that uses Guice to
 * instantiate and inject servlets, filters, and anything else you might want.
 *
 * @author James Moger
 *
 */
public abstract class DaggerContext extends InjectionContextListener {
public abstract class GuiceContext extends InjectionContextListener {
   public static final String INJECTOR_NAME = ObjectGraph.class.getName();
   public static final String INJECTOR_NAME = Injector.class.getName();
   protected final Logger logger = LoggerFactory.getLogger(getClass());
   protected abstract Object [] getModules();
   protected abstract AbstractModule [] getModules();
   protected abstract void destroyContext(ServletContext context);
   protected ObjectGraph getInjector(ServletContext context) {
   protected Injector getInjector(ServletContext context) {
      Object o = context.getAttribute(INJECTOR_NAME);
      if (o == null) {
         logger.debug("instantiating Dagger modules");
         Object [] modules = getModules();
         logger.debug("getting Dagger injector");
         logger.debug("instantiating Guice modules");
         AbstractModule [] modules = getModules();
         logger.debug("getting Guice injector");
         try {
            o = ObjectGraph.create(modules);
            logger.debug("setting Dagger injector into {} attribute", INJECTOR_NAME);
            o = Guice.createInjector(modules);
            logger.debug("setting Guice injector into {} attribute", INJECTOR_NAME);
            context.setAttribute(INJECTOR_NAME, o);
         } catch (Throwable t) {
            logger.error("an error occurred creating the Dagger injector", t);
            logger.error("an error occurred creating the Guice injector", t);
         }
      }
      return (ObjectGraph) o;
      return (Injector) o;
   }
   /**
@@ -68,8 +69,8 @@
   @Override
   protected <X> X instantiate(ServletContext context, Class<X> clazz) {
      try {
         ObjectGraph injector = getInjector(context);
         return injector.get(clazz);
         Injector injector = getInjector(context);
         return injector.getInstance(clazz);
      } catch (Throwable t) {
         logger.error(null, t);
      }