org.objectweb.dsrg.sofa.repository.server.webapp
Class SofaServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by org.objectweb.dsrg.sofa.repository.server.webapp.SofaServlet
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

public class SofaServlet
extends javax.servlet.http.HttpServlet
implements javax.servlet.Servlet

Servlet implementation class for SofaServlet. Do both download and upload services for Sofa repository clients.

See Also:
Serialized Form

Nested Class Summary
static class SofaServlet.ServletCommands
          Encapsulates repository servlet special commands.
static class SofaServlet.ServletResponses
          Encapsulates repository servlet responses on special commands.
 
Constructor Summary
SofaServlet()
          Standard constructor.
 
Method Summary
protected  void deleteEmptyDirs(java.io.File start)
          Deletes recursively all directories which are empty.
protected  void doDelete(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
          Does delete service for repository clients.
protected  void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Does download service for repository clients.
protected  void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Handles requests for special operations.
protected  void doPut(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Does upload service for repository clients or sets the lock on repository servlet.
protected  void generateDynamic(java.lang.String shortURI, java.io.File destFile)
          This method is called whenever the requested URI is dynamic.
 void init()
          Initialize repository directory and resolves URI prefix from init parameters.
protected  boolean isDynamic(java.lang.String shortURI)
          Checks, if requested short URI refers to dynamic resource.
protected  java.lang.String isLocked()
          Returns the status of the lock on repository servlet.
protected  java.lang.String lock()
          Locks the repository servlet.
protected  java.lang.String unlock()
          Unlocks the repository servlet.
 
Methods inherited from class javax.servlet.http.HttpServlet
doHead, doOptions, doTrace, getLastModified, service, service
 
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.servlet.Servlet
destroy, getServletConfig, getServletInfo, init, service
 

Constructor Detail

SofaServlet

public SofaServlet()
Standard constructor. Initiliazation done in init() method.

Method Detail

init

public void init()
          throws javax.servlet.ServletException
Initialize repository directory and resolves URI prefix from init parameters.

Overrides:
init in class javax.servlet.GenericServlet
Throws:
javax.servlet.ServletException

isDynamic

protected boolean isDynamic(java.lang.String shortURI)
Checks, if requested short URI refers to dynamic resource. For this implementation only repository data object is dynamic.

Parameters:
shortURI -
Returns:
True for dynamic URIs

generateDynamic

protected void generateDynamic(java.lang.String shortURI,
                               java.io.File destFile)
This method is called whenever the requested URI is dynamic. The dynamic generator should be aware of some caching and etc.

Parameters:
shortURI - Short request URI
destFile - Destination file for this dynamic URI

deleteEmptyDirs

protected void deleteEmptyDirs(java.io.File start)
Deletes recursively all directories which are empty. Stops when it reaches a non-empty directory or the repository directory.

Parameters:
start - The starting directory

doDelete

protected void doDelete(javax.servlet.http.HttpServletRequest req,
                        javax.servlet.http.HttpServletResponse resp)
                 throws javax.servlet.ServletException,
                        java.io.IOException
Does delete service for repository clients.

Overrides:
doDelete in class javax.servlet.http.HttpServlet
Throws:
javax.servlet.ServletException
java.io.IOException

doGet

protected void doGet(javax.servlet.http.HttpServletRequest request,
                     javax.servlet.http.HttpServletResponse response)
              throws javax.servlet.ServletException,
                     java.io.IOException
Does download service for repository clients.

Overrides:
doGet in class javax.servlet.http.HttpServlet
Throws:
javax.servlet.ServletException
java.io.IOException

lock

protected java.lang.String lock()
Locks the repository servlet. The lock is not mandatory nor exclusive. It fulfills only informational purpose. The client SHOULD acquire the lock for sequence of dependent actions.

Returns:
Servlet response string. See SofaServlet.ServletResponses class.
See Also:
SofaServlet.ServletResponses, SofaServlet.ServletCommands, unlock(), isLocked()

unlock

protected java.lang.String unlock()
Unlocks the repository servlet. The lock is not mandatory nor exclusive. It fulfills only informational purpose. The client SHOULD acquire the lock for sequence of dependent actions.

Returns:
Servlet response string. See SofaServlet.ServletResponses class.
See Also:
SofaServlet.ServletResponses, SofaServlet.ServletCommands, lock(), isLocked()

isLocked

protected java.lang.String isLocked()
Returns the status of the lock on repository servlet.

Returns:
Servlet response string. See SofaServlet.ServletResponses class.
See Also:
SofaServlet.ServletResponses, SofaServlet.ServletCommands, lock(), unlock()

doPost

protected void doPost(javax.servlet.http.HttpServletRequest request,
                      javax.servlet.http.HttpServletResponse response)
               throws javax.servlet.ServletException,
                      java.io.IOException
Handles requests for special operations.

Overrides:
doPost in class javax.servlet.http.HttpServlet
Throws:
javax.servlet.ServletException
java.io.IOException

doPut

protected void doPut(javax.servlet.http.HttpServletRequest request,
                     javax.servlet.http.HttpServletResponse response)
              throws javax.servlet.ServletException,
                     java.io.IOException
Does upload service for repository clients or sets the lock on repository servlet.

Overrides:
doPut in class javax.servlet.http.HttpServlet
Throws:
javax.servlet.ServletException
java.io.IOException