sylvain     2003/06/05 09:33:59

  Modified:    src/java/org/apache/cocoon/servlet
                        ParanoidCocoonServlet.java
  Log:
  New "servlet-class" parameter to load any servlet
  
  Revision  Changes    Path
  1.3       +17 -10    
cocoon-2.1/src/java/org/apache/cocoon/servlet/ParanoidCocoonServlet.java
  
  Index: ParanoidCocoonServlet.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/servlet/ParanoidCocoonServlet.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ParanoidCocoonServlet.java        3 Jun 2003 13:25:42 -0000       1.2
  +++ ParanoidCocoonServlet.java        5 Jun 2003 16:33:59 -0000       1.3
  @@ -66,12 +66,14 @@
   import javax.servlet.http.HttpServlet;
   
   /**
  - * This is the entry point for Cocoon execution as an HTTP Servlet.
  - * It also creates a buffer by loading the whole servlet inside a ClassLoader.
  - * It has been changed to extend <code>CocoonServlet</code> so that it is
  - * easier to add and change functionality between the two servlets.
  - * The only real differences are the ClassLoader and instantiating Cocoon inside
  - * of it.
  + * This servlet builds a classloading sandbox and runs another servlet inside that
  + * sandbox. The purpose is to shield the libraries and classes shipped with the web
  + * application from any other classes with the same name that may exist in the 
system,
  + * such as Xerces and Xalan versions included in JDK 1.4.
  + * <p>
  + * This servlet propagates all initialisation parameters to the sandboxed servlet, 
and
  + * accept only one additional parameter, <code>servlet-class</code>, which defined 
the
  + * sandboxed servlet class. The default is [EMAIL PROTECTED] CocoonServlet}.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a>
    * @author <a href="http://www.apache.org/~sylvain/";>Sylvain Wallez</a>
  @@ -83,7 +85,7 @@
        /**
         * The name of the actual servlet class.
         */
  -     public static final String SERVLET_CLASS = 
"org.apache.cocoon.servlet.CocoonServlet";
  +     public static final String DEFAULT_SERVLET_CLASS = 
"org.apache.cocoon.servlet.CocoonServlet";
       
        private Servlet servlet;
       
  @@ -96,14 +98,19 @@
                // Create the classloader in which we will load the servlet
                this.classloader = getClassLoader(this.getContextDir());
           
  +        String servletName = config.getInitParameter("servlet-class");
  +        if (servletName == null) {
  +            servletName = DEFAULT_SERVLET_CLASS;
  +        }
  +        
           // Create the servlet
                try {
  -                     Class servletClass = this.classloader.loadClass(SERVLET_CLASS);
  +                     Class servletClass = this.classloader.loadClass(servletName);
               
                        this.servlet = (Servlet)servletClass.newInstance();
   
                } catch(Exception e) {
  -                     throw new ServletException("Cannot load servlet " + 
SERVLET_CLASS, e);
  +                     throw new ServletException("Cannot load servlet " + 
servletName, e);
                }
           
                // Always set the context classloader. JAXP uses it to find a 
ParserFactory,
  
  
  

Reply via email to