summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/servlet/GitblitContext.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2014-05-15 17:14:41 -0400
committerJames Moger <james.moger@gitblit.com>2014-05-15 17:14:41 -0400
commitc59584f08d46de4a1b9515f4fd1535426ce603b3 (patch)
treedac02f17739e4edeb1d3598cb369f0522f10691e /src/main/java/com/gitblit/servlet/GitblitContext.java
parent032d8228dd61867c792c655e506aa8fae7026fd9 (diff)
downloadgitblit-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.java20
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();