diff options
author | James Moger <james.moger@gitblit.com> | 2014-05-15 17:14:41 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2014-05-15 17:14:41 -0400 |
commit | c59584f08d46de4a1b9515f4fd1535426ce603b3 (patch) | |
tree | dac02f17739e4edeb1d3598cb369f0522f10691e /src/main/java/com/gitblit/servlet/GitblitContext.java | |
parent | 032d8228dd61867c792c655e506aa8fae7026fd9 (diff) | |
download | gitblit-c59584f08d46de4a1b9515f4fd1535426ce603b3.tar.gz gitblit-c59584f08d46de4a1b9515f4fd1535426ce603b3.zip |
Add startup/shutdown LifeCycle extension point
Diffstat (limited to 'src/main/java/com/gitblit/servlet/GitblitContext.java')
-rw-r--r-- | src/main/java/com/gitblit/servlet/GitblitContext.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main/java/com/gitblit/servlet/GitblitContext.java b/src/main/java/com/gitblit/servlet/GitblitContext.java index ebe2cc2b..110e553c 100644 --- a/src/main/java/com/gitblit/servlet/GitblitContext.java +++ b/src/main/java/com/gitblit/servlet/GitblitContext.java @@ -38,6 +38,7 @@ import com.gitblit.IStoredSettings; 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; @@ -191,6 +192,15 @@ public class GitblitContext extends DaggerContext { 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() { @@ -225,6 +235,16 @@ public class GitblitContext extends DaggerContext { @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(); |