Simple dumb HTTP server for Git
commit5e33a1de831fcbac4ff53cadacfdfc8e7b204ffe
authorShawn O. Pearce <spearce@spearce.org>
Wed, 6 Jan 2010 20:26:54 +0000 (6 12:26 -0800)
committerShawn O. Pearce <spearce@spearce.org>
Tue, 12 Jan 2010 20:01:24 +0000 (12 12:01 -0800)
tree264a978001fbae0913eb0cd11da7cc71c2daec11
parent71b34847299f0c8f6923fe37fdd509f57fd35830
Simple dumb HTTP server for Git

This is a simple HTTP server that provides the minimum server side
support required for dumb (non-git aware) transport clients.

We produce the info/refs and objects/info/packs file on the fly
from the local repository state, but otherwise serve data as raw
files from the on-disk structure.

In the future we could better optimize the FileSender class and the
servlets that use it to take advantage of direct file to network
APIs in more advanced servlet containers like Jetty.

Our glue package borrows the idea of a micro embedded DSL from
Google Guice and uses it to configure a collection of Filters
and HttpServlets, all of which are matched against requests using
regular expressions.  If a subgroup exists in the pattern, it is
extracted and used for the path info component of the request.

Change-Id: Ia0f1a425d07d035e344ae54faf8aeb04763e7487
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
42 files changed:
org.eclipse.jgit.http.server/.classpath [new file with mode: 0644]
org.eclipse.jgit.http.server/.fbprefs [new file with mode: 0644]
org.eclipse.jgit.http.server/.gitignore [new file with mode: 0644]
org.eclipse.jgit.http.server/.project [new file with mode: 0644]
org.eclipse.jgit.http.server/.settings/org.eclipse.core.resources.prefs [new file with mode: 0644]
org.eclipse.jgit.http.server/.settings/org.eclipse.core.runtime.prefs [new file with mode: 0644]
org.eclipse.jgit.http.server/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
org.eclipse.jgit.http.server/.settings/org.eclipse.jdt.ui.prefs [new file with mode: 0644]
org.eclipse.jgit.http.server/META-INF/MANIFEST.MF [new file with mode: 0644]
org.eclipse.jgit.http.server/build.properties [new file with mode: 0644]
org.eclipse.jgit.http.server/plugin.properties [new file with mode: 0644]
org.eclipse.jgit.http.server/pom.xml [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/AsIsFileFilter.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 53% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/FileSender.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/GitServlet.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/InfoPacksServlet.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 62% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/InfoRefsServlet.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/IsLocalFilter.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 57% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/NoCacheFilter.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 60% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/ObjectFileServlet.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/RepositoryFilter.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/ServletUtils.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/TextFileServlet.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 62% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/ErrorServlet.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 72% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/MetaServlet.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/RegexGroupFilter.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 53% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/RegexPipeline.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/ServletBinder.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 70% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/ServletBinderImpl.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 58% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/SuffixPipeline.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/UrlPipeline.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/WrappedRequest.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 64% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/resolver/AsIsFileService.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/resolver/FileResolver.java [new file with mode: 0644]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/resolver/RepositoryResolver.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 58% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/resolver/ServiceNotAuthorizedException.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 71% similarity]
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/resolver/ServiceNotEnabledException.java [copied from org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java with 71% similarity]
org.eclipse.jgit/src/org/eclipse/jgit/errors/RepositoryNotFoundException.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java
org.eclipse.jgit/src/org/eclipse/jgit/util/HttpSupport.java
org.eclipse.jgit/src/org/eclipse/jgit/util/StringUtils.java
pom.xml