abstract class SmartServiceInfoRefs
extends java.lang.Object
implements javax.servlet.Filter
InfoRefsServlet
to catch smart service requests.Modifier and Type | Class and Description |
---|---|
private class |
SmartServiceInfoRefs.Chain |
Modifier and Type | Field and Description |
---|---|
private javax.servlet.Filter[] |
filters |
private java.lang.String |
svc |
Constructor and Description |
---|
SmartServiceInfoRefs(java.lang.String service,
java.util.List<javax.servlet.Filter> filters) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
advertise(javax.servlet.http.HttpServletRequest req,
RefAdvertiser.PacketLineOutRefAdvertiser pck)
Advertise.
|
protected abstract void |
begin(javax.servlet.http.HttpServletRequest req,
Repository db)
Begin service.
|
void |
destroy() |
void |
doFilter(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain chain) |
void |
init(javax.servlet.FilterConfig config) |
protected void |
respond(javax.servlet.http.HttpServletRequest req,
PacketLineOut pckOut,
java.lang.String serviceName)
Writes the appropriate response to an info/refs request received by
a smart service.
|
private void |
service(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response) |
private final java.lang.String svc
private final javax.servlet.Filter[] filters
SmartServiceInfoRefs(java.lang.String service, java.util.List<javax.servlet.Filter> filters)
public void init(javax.servlet.FilterConfig config) throws javax.servlet.ServletException
init
in interface javax.servlet.Filter
javax.servlet.ServletException
public void destroy()
destroy
in interface javax.servlet.Filter
public void doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain) throws java.io.IOException, javax.servlet.ServletException
doFilter
in interface javax.servlet.Filter
java.io.IOException
javax.servlet.ServletException
private void service(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response) throws java.io.IOException
java.io.IOException
protected abstract void begin(javax.servlet.http.HttpServletRequest req, Repository db) throws java.io.IOException, ServiceNotEnabledException, ServiceNotAuthorizedException
req
- requestdb
- repositoryjava.io.IOException
ServiceNotEnabledException
ServiceNotAuthorizedException
protected abstract void advertise(javax.servlet.http.HttpServletRequest req, RefAdvertiser.PacketLineOutRefAdvertiser pck) throws java.io.IOException, ServiceNotEnabledException, ServiceNotAuthorizedException
req
- requestpck
- java.io.IOException
ServiceNotEnabledException
ServiceNotAuthorizedException
protected void respond(javax.servlet.http.HttpServletRequest req, PacketLineOut pckOut, java.lang.String serviceName) throws java.io.IOException, ServiceNotEnabledException, ServiceNotAuthorizedException
The default implementation writes "# service=serviceName" and a
flush packet, then calls advertise(javax.servlet.http.HttpServletRequest, org.eclipse.jgit.transport.RefAdvertiser.PacketLineOutRefAdvertiser)
. Subclasses should
override this method if they support protocol versions other than
protocol v0.
req
- requestpckOut
- destination of responseserviceName
- service name to be written out in protocol v0; may or may
not be used in other versionsjava.io.IOException
ServiceNotEnabledException
ServiceNotAuthorizedException