You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by st...@locus.apache.org on 2000/05/02 01:53:17 UTC

cvs commit: xml-cocoon/src/org/apache/cocoon Cocoon.java cocoon.properties Defaults.java

stefano     00/05/01 16:53:17

  Modified:    src/org/apache/cocoon Cocoon.java cocoon.properties
                        Defaults.java
  Log:
  now cocoon is able to understand if run by tomcat and get it's properties from getResource()...
  This should ease installation on tomcat since you can use the deployment descriptor shipped with the distribution without even touching it
  (Paul, I improved your patch a little, hope you don't mind)
  
  Revision  Changes    Path
  1.14      +53 -6     xml-cocoon/src/org/apache/cocoon/Cocoon.java
  
  Index: Cocoon.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/Cocoon.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- Cocoon.java	2000/04/04 11:10:10	1.13
  +++ Cocoon.java	2000/05/01 23:53:16	1.14
  @@ -1,4 +1,4 @@
  -/*-- $Id: Cocoon.java,v 1.13 2000/04/04 11:10:10 stefano Exp $ -- 
  +/*-- $Id: Cocoon.java,v 1.14 2000/05/01 23:53:16 stefano Exp $ -- 
   
    ============================================================================
                      The Apache Software License, Version 1.1
  @@ -64,7 +64,7 @@
    * separate different knowledge contexts in different processing layers.
    *
    * @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
  - * @version $Revision: 1.13 $ $Date: 2000/04/04 11:10:10 $
  + * @version $Revision: 1.14 $ $Date: 2000/05/01 23:53:16 $
    */
   
   public class Cocoon extends HttpServlet implements Defaults {
  @@ -78,6 +78,8 @@
       String statusURL = null;
       boolean errorsInternally = false;
       boolean showStatus = false;
  +    int containerMajorVersion;
  +    int containerMinorVersion;    
   
       /**
        * Returns the version signature of Cocoon
  @@ -97,18 +99,37 @@
   
           // Get the initialization argument
           confsName = config.getInitParameter(INIT_ARG);
  +        containerMajorVersion = this.getContainerMajorVersion();
  +        containerMinorVersion = this.getContainerMinorVersion();
   
           if (confsName == null) {
               exception = null;
  -            message = "<p>The servlet initialization argument <i>\"" + INIT_ARG + "\"</i> was not found. " +
  -                "Please, make sure Cocoon is able to find its configurations or it won't be able to execute correctly.</p>" +
  -                "<p>A template for such configurations may be found in the file \"/conf/cocoon.properties\" in the distribution.</p>";
  +            message = "<p>The servlet initialization argument <i>\"" 
  +            + INIT_ARG
  +            + "\"</i> was not found. Please, make sure Cocoon is able to "
  +            + "find its configurations or it won't be able to execute correctly.</p>" 
  +            + "<p>A template for such configurations may be found in the "
  +            + "file \"/conf/cocoon.properties\" in the distribution.</p>";
               return;
           }
   
           try {
               // Create the configuration object
  -            confs = new Configurations(confsName);
  +            // if we are using a servlet container that is 2.1 or higher then we
  +            // can use container based resources instead of files
  +            if ((containerMajorVersion >= 2) && (containerMinorVersion > 0)) {
  +               try {
  +                   URL resource = config.getServletContext().getResource(confsName);
  +                   InputStream confsStream = resource.openConnection().getInputStream();
  +                   confs = new Configurations(confsStream);
  +                   confsStream.close();
  +               } catch (Exception ex) {
  +                   exception = ex;
  +                   message = "Unable to open resource: " + confsName;
  +               }
  +            } else {
  +               confs = new Configurations(confsName);
  +            }
               
               // Save servlet configurations
               showStatus = ((String) confs.get(SHOW_STATUS, "false")).toLowerCase().equals("true");
  @@ -179,7 +200,33 @@
       public String getServletInfo() {
           return version();
       }
  +
  +    /**
  +     * This method tries to guess the container major version.
  +     */
  +    private int getContainerMajorVersion() {
  +        int v;
  +        try {
  +            v = getServletConfig().getServletContext().getMajorVersion();
  +        } catch (NoSuchMethodError e) {
  +            v = 2;   // using pre 2.1 servlet container
  +        }
  +        return v;
  +    }
       
  +    /**
  +     * This method tries to guess the container minor version.
  +     */
  +    private int getContainerMinorVersion() {
  +        int v;
  +        try {
  +            v = getServletConfig().getServletContext().getMinorVersion();
  +        } catch (NoSuchMethodError e) {
  +            v = 0; // using pre 2.1 servlet container
  +        }
  +        return v;
  +    }
  +
       /**
        * The entry point for standalone usage of Cocoon.
        *
  
  
  
  1.29      +2 -2      xml-cocoon/src/org/apache/cocoon/cocoon.properties
  
  Index: cocoon.properties
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/cocoon.properties,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- cocoon.properties	2000/04/27 22:38:27	1.28
  +++ cocoon.properties	2000/05/01 23:53:16	1.29
  @@ -163,7 +163,7 @@
   
   # This is used when no <?cocoon?> PI is present to indicate
   # which MIME type to associate to the document.
  -# NOTE: this type must present in the above map.
  +# NOTE: this type must present in the map below.
   formatter.default = text/html
   
   # These are used when the <?cocoon-format type="xxx/yyy"?> PI is present
  @@ -216,7 +216,7 @@
   # PDF
   formatter.text/xslfo.MIME-type = application/pdf
   
  -# HTML 4.0 (trasitional)
  +# HTML 4.0 (transitional)
   formatter.text/html/loose.doctype-public = -//W3C//DTD HTML 4.0 Transitional//EN
   formatter.text/html/loose.doctype-system = http://www.w3.org/TR/REC-html40/loose.dtd
   formatter.text/html/loose.preserve-space = true
  
  
  
  1.12      +3 -2      xml-cocoon/src/org/apache/cocoon/Defaults.java
  
  Index: Defaults.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/Defaults.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- Defaults.java	2000/03/17 16:46:58	1.11
  +++ Defaults.java	2000/05/01 23:53:16	1.12
  @@ -1,4 +1,4 @@
  -/*-- $Id: Defaults.java,v 1.11 2000/03/17 16:46:58 stefano Exp $ --
  +/*-- $Id: Defaults.java,v 1.12 2000/05/01 23:53:16 stefano Exp $ --
   
    ============================================================================
                      The Apache Software License, Version 1.1
  @@ -54,7 +54,7 @@
    * The Cocoon strings.
    *
    * @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
  - * @version $Revision: 1.11 $ $Date: 2000/03/17 16:46:58 $
  + * @version $Revision: 1.12 $ $Date: 2000/05/01 23:53:16 $
    */
   
   public interface Defaults {
  @@ -64,6 +64,7 @@
       public static final String YEAR = "@year@";
   
       public static final String INIT_ARG = "properties";
  +
       public static final String PROPERTIES = "cocoon.properties";
       public static final String INTERNAL_PROPERTIES = "org/apache/cocoon/" + PROPERTIES;