James Moger
2014-05-15 047f18466a1a7e0e011163589725a795f1570a1f
src/main/java/com/gitblit/servlet/GitblitContext.java
@@ -38,6 +38,7 @@
import com.gitblit.Keys;
import com.gitblit.WebXmlSettings;
import com.gitblit.dagger.DaggerContext;
import com.gitblit.extensions.LifeCycleListener;
import com.gitblit.manager.IAuthenticationManager;
import com.gitblit.manager.IFederationManager;
import com.gitblit.manager.IGitblit;
@@ -79,9 +80,7 @@
    * Construct a Gitblit WAR/Express context.
    */
   public GitblitContext() {
      this.goSettings = null;
      this.goBaseFolder = null;
      gitblit = this;
      this(null, null);
   }
   /**
@@ -177,7 +176,6 @@
      managers.add(runtime);
      // start all other managers
      startManager(injector, IPluginManager.class);
      startManager(injector, INotificationManager.class);
      startManager(injector, IUserManager.class);
      startManager(injector, IAuthenticationManager.class);
@@ -187,9 +185,22 @@
      startManager(injector, IFederationManager.class);
      startManager(injector, IGitblit.class);
      // start the plugin manager last so that plugins can depend on
      // deterministic access to all other managers in their start() methods
      startManager(injector, IPluginManager.class);
      logger.info("");
      logger.info("All managers started.");
      logger.info("");
      IPluginManager pluginManager = injector.get(IPluginManager.class);
      for (LifeCycleListener listener : pluginManager.getExtensions(LifeCycleListener.class)) {
         try {
            listener.onStartup();
         } catch (Throwable t) {
            logger.error(null, t);
         }
      }
   }
   private String lookupBaseFolderFromJndi() {
@@ -224,6 +235,16 @@
   @Override
   protected void destroyContext(ServletContext context) {
      logger.info("Gitblit context destroyed by servlet container.");
      IPluginManager pluginManager = getManager(IPluginManager.class);
      for (LifeCycleListener listener : pluginManager.getExtensions(LifeCycleListener.class)) {
         try {
            listener.onShutdown();
         } catch (Throwable t) {
            logger.error(null, t);
         }
      }
      for (IManager manager : managers) {
         logger.debug("stopping {}", manager.getClass().getSimpleName());
         manager.stop();