blob: ad0eb1fba06d9d2bd945c3b42c5569b0d7fab480 [file] [log] [blame]
/*
* (C) Janne Jalkanen 2005
*
*/
package com.ecyrd.jspwiki.dav;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author jalkanen
*
* @since
*/
public class WebdavServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
private static final String METHOD_PROPPATCH = "PROPPATCH";
private static final String METHOD_PROPFIND = "PROPFIND";
private static final String METHOD_MKCOL = "MKCOL";
private static final String METHOD_COPY = "COPY";
private static final String METHOD_MOVE = "MOVE";
private static final String METHOD_LOCK = "LOCK";
private static final String METHOD_UNLOCK = "UNLOCK";
public static final int SC_PROCESSING = 102;
public static final int SC_MULTISTATUS = 207;
public static final int SC_UNPROCESSABLE = 422;
public static final int SC_LOCKED = 423;
public static final int SC_FAILED_DEPENDENCY = 424;
public static final int SC_INSUFFICIENT_STORAGE = 507;
/**
*
*/
public WebdavServlet()
{
super();
// TODO Auto-generated constructor stub
}
public void doPropFind( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
}
public void doPropPatch( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
}
public void doMkCol( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
}
public void doCopy( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
}
public void doMove( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
}
/**
* The default implementation of this class just returns an error code.
*
* @param request
* @param response
*/
public void doLock( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
try
{
response.sendError( HttpServletResponse.SC_NOT_IMPLEMENTED, "Sorry" );
}
catch( IOException e ) {}
}
/**
* The default implementation of this class just returns an error code.
*
* @param request
* @param response
*/
public void doUnlock( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
try
{
response.sendError( HttpServletResponse.SC_NOT_IMPLEMENTED, "Sorry" );
}
catch( IOException e ) {}
}
protected void service( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException
{
String method = request.getMethod();
System.out.println("METHOD="+method+"; request="+request.getPathInfo() );
try
{
if( METHOD_PROPPATCH.equals(method) )
{
doPropPatch( request, response );
}
else if( METHOD_PROPFIND.equals(method) )
{
doPropFind( request, response );
}
else if( METHOD_MKCOL.equals(method) )
{
doMkCol( request, response );
}
else if( METHOD_COPY.equals(method) )
{
doCopy( request, response );
}
else if( METHOD_MOVE.equals(method) )
{
doMove( request, response );
}
else if( METHOD_LOCK.equals(method) )
{
doLock( request, response );
}
else if( METHOD_UNLOCK.equals(method) )
{
doUnlock( request, response );
}
else if( "OPTIONS".equals(method) )
{
doOptions( request, response );
}
else
{
super.service( request, response );
}
}
catch( Throwable t )
{
t.printStackTrace( System.out );
throw new ServletException( t );
}
}
}