From e41e8f8c3bc9f5edab1d271464364f95620ece8c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 19 Nov 2015 17:55:38 -0500
Subject: [PATCH] Create filestore directory on startup

---
 src/main/java/com/gitblit/servlet/ProxyFilter.java |   45 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/gitblit/servlet/ProxyFilter.java b/src/main/java/com/gitblit/servlet/ProxyFilter.java
index bfdc87f..d7f096a 100644
--- a/src/main/java/com/gitblit/servlet/ProxyFilter.java
+++ b/src/main/java/com/gitblit/servlet/ProxyFilter.java
@@ -16,37 +16,62 @@
 package com.gitblit.servlet;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 
-import com.gitblit.dagger.DaggerFilter;
+import ro.fortsoft.pf4j.PluginWrapper;
+
 import com.gitblit.extensions.HttpRequestFilter;
 import com.gitblit.manager.IPluginManager;
-
-import dagger.ObjectGraph;
+import com.gitblit.manager.IRuntimeManager;
 
 /**
- * A request filter than allows regsitered extension request filters to access
+ * A request filter than allows registered extension request filters to access
  * request data.  The intended purpose is for server monitoring plugins.
  *
  * @author David Ostrovsky
  * @since 1.6.0
  */
-public class ProxyFilter extends DaggerFilter {
-	private List<HttpRequestFilter> filters;
+@Singleton
+public class ProxyFilter implements Filter {
+	private final IRuntimeManager runtimeManager;
+
+	private final IPluginManager pluginManager;
+
+	private final List<HttpRequestFilter> filters;
+
+	@Inject
+	public ProxyFilter(
+			IRuntimeManager runtimeManager,
+			IPluginManager pluginManager) {
+
+		this.runtimeManager = runtimeManager;
+		this.pluginManager = pluginManager;
+		this.filters = new ArrayList<>();
+
+	}
 
 	@Override
-	protected void inject(ObjectGraph dagger, FilterConfig filterConfig) throws ServletException {
-		IPluginManager pluginManager = dagger.get(IPluginManager.class);
-		filters = pluginManager.getExtensions(HttpRequestFilter.class);
+	public void init(FilterConfig filterConfig) throws ServletException {
+
+		filters.addAll(pluginManager.getExtensions(HttpRequestFilter.class));
 		for (HttpRequestFilter f : filters) {
-			f.init(filterConfig);
+			// wrap the filter config for Gitblit settings retrieval
+			PluginWrapper pluginWrapper = pluginManager.whichPlugin(f.getClass());
+			FilterConfig runtimeConfig = new FilterRuntimeConfig(runtimeManager,
+					pluginWrapper.getPluginId(), filterConfig);
+
+			f.init(runtimeConfig);
 		}
 	}
 

--
Gitblit v1.9.1