From 896c533de882d729a6fd8a30e08fd5a9e9eec27d Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sat, 18 Jun 2011 09:22:05 -0400
Subject: [PATCH] Map gitservlet from web.xml and configure it from gitblit properties.

---
 src/com/gitblit/GitBlitServer.java |   10 ----------
 src/WEB-INF/web.xml                |   14 +++-----------
 src/com/gitblit/GitServlet.java    |   16 ++++++++++++++++
 3 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/src/WEB-INF/web.xml b/src/WEB-INF/web.xml
index d5d3288..2661590 100644
--- a/src/WEB-INF/web.xml
+++ b/src/WEB-INF/web.xml
@@ -15,23 +15,15 @@
 		 <url-pattern> MUST match: 
 			* GitFilter
 			* com.gitblit.Constants.GIT_PATH
-			* Wicket Filter ignorePaths parameter --><!-- STRIP
+			* Wicket Filter ignorePaths parameter -->
 	<servlet>
 		<servlet-name>GitServlet</servlet-name>
-		<servlet-class>org.jgit.http.transport.GitServlet</servlet-class>
-		<init-param>
-			<param-name>base-path</param-name>
-			<param-value>c:/git</param-value>
-		</init-param>
-		<init-param>
-			<param-name>export-all</param-name>
-			<param-value>1</param-value>
-		</init-param>
+		<servlet-class>com.gitblit.GitServlet</servlet-class>
 	</servlet>
 	<servlet-mapping>
 		<servlet-name>GitServlet</servlet-name>		
 		<url-pattern>/git/*</url-pattern>
-	</servlet-mapping>STRIP -->
+	</servlet-mapping>
 	
 	
 	<!-- Syndication Servlet
diff --git a/src/com/gitblit/GitBlitServer.java b/src/com/gitblit/GitBlitServer.java
index 3687e4d..678c9d4 100644
--- a/src/com/gitblit/GitBlitServer.java
+++ b/src/com/gitblit/GitBlitServer.java
@@ -38,11 +38,8 @@
 import org.eclipse.jetty.server.ssl.SslConnector;
 import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
 import org.eclipse.jetty.server.ssl.SslSocketConnector;
-import org.eclipse.jetty.servlet.FilterMapping;
-import org.eclipse.jetty.servlet.ServletHolder;
 import org.eclipse.jetty.util.thread.QueuedThreadPool;
 import org.eclipse.jetty.webapp.WebAppContext;
-import org.eclipse.jgit.http.server.GitServlet;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -196,13 +193,6 @@
 		// Use secure cookies if only serving https
 		sessionManager.setSecureCookies(params.port <= 0 && params.securePort > 0);
 		rootContext.getSessionHandler().setSessionManager(sessionManager);
-
-		// JGit Filter and Servlet
-		String jgitPathSpec = Constants.GIT_PATH + "*";
-		rootContext.addFilter(GitFilter.class, jgitPathSpec, FilterMapping.DEFAULT);
-		ServletHolder jGitServlet = rootContext.addServlet(GitServlet.class, jgitPathSpec);
-		jGitServlet.setInitParameter("base-path", params.repositoriesFolder);
-		jGitServlet.setInitParameter("export-all", "1");
 
 		// Ensure there is a defined Login Service
 		String realmUsers = params.realmFile;
diff --git a/src/com/gitblit/GitServlet.java b/src/com/gitblit/GitServlet.java
new file mode 100644
index 0000000..daf5d96
--- /dev/null
+++ b/src/com/gitblit/GitServlet.java
@@ -0,0 +1,16 @@
+package com.gitblit;
+
+public class GitServlet extends org.eclipse.jgit.http.server.GitServlet {
+
+	private static final long serialVersionUID = 1L;
+
+	@Override
+	public String getInitParameter(String name) {
+		if (name.equals("base-path")) {
+			return GitBlit.getString(Keys.git.repositoriesFolder, "git");
+		} else if (name.equals("export-all")) {
+			return "1";
+		}
+		return super.getInitParameter(name);
+	}
+}

--
Gitblit v1.9.1