You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cactus-dev@jakarta.apache.org by vm...@apache.org on 2004/03/23 10:29:18 UTC

cvs commit: jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/container AbstractJavaContainer.java ContainerWrapper.java Container.java AbstractContainer.java

vmassol     2004/03/23 01:29:18

  Modified:    documentation/docs/xdocs/integration/ant task_cactus.xml
               samples/servlet/src/scripts/share build.xml
               integration/ant/src/test/org/apache/cactus/integration/ant/container
                        MockContainer.java
               integration/ant/src/java/org/apache/cactus/integration/ant
                        CactusTask.java
               documentation/docs/xdocs changes.xml
               integration/ant/src/java/org/apache/cactus/integration/ant/container
                        AbstractJavaContainer.java ContainerWrapper.java
                        Container.java AbstractContainer.java
  Log:
  Added new optional nested <code>&lt;containerclasspath&gt;</code> element for the <code>&lt;cactus&gt;</code> task. It allows specifying additional jars that will be put in the classpath used to start/stop the specified containers.
  
  Revision  Changes    Path
  1.22      +12 -0     jakarta-cactus/documentation/docs/xdocs/integration/ant/task_cactus.xml
  
  Index: task_cactus.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-cactus/documentation/docs/xdocs/integration/ant/task_cactus.xml,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- task_cactus.xml	18 Mar 2004 22:13:14 -0000	1.21
  +++ task_cactus.xml	23 Mar 2004 09:29:16 -0000	1.22
  @@ -173,6 +173,18 @@
   
         </section>
   
  +      <section title="containerclasspath">
  +        <p>
  +          The optional <strong>containerclasspath</strong> element lets you 
  +          specify additional jars that will be added to the container 
  +          classpaths that are used to start/stop the containers. This is in 
  +          addition to the container jars which are automatically added by the
  +          <code>&lt;cactus&gt;</code> task. The <code>containerclasspath</code>
  +          element behaves exactly the same as the Ant <code>classpath</code>
  +          element. In most cases you will not need to use this element.
  +        </p>
  +      </section>
  +
       </section>
   
       <section title="Supported Containers">
  
  
  
  1.30      +11 -0     jakarta-cactus/samples/servlet/src/scripts/share/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-cactus/samples/servlet/src/scripts/share/build.xml,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- build.xml	18 Jan 2004 11:03:05 -0000	1.29
  +++ build.xml	23 Mar 2004 09:29:17 -0000	1.30
  @@ -325,6 +325,13 @@
         <cactusproperty server="true"
             propertiesFile="${target.dir.normalized}/logging_server.properties"/>
   
  +      <!-- Additional jars that will be added to the classpath used to start the
  +           container (in addition to the container jars themseleves which are
  +           automatically added by the <cactus> task -->
  +      <containerclasspath>
  +        <@clover.begin@pathelement location="${clover.jar}"/@clover.end@>
  +      </containerclasspath>
  +
         <classpath>
           <path refid="project.classpath"/>
           <@clover.begin@pathelement location="${clover.jar}"/@clover.end@>
  @@ -334,6 +341,7 @@
           <pathelement location="${target.classes.cactus.dir}"/>
           <pathelement location="${log4j.jar}"/>
         </classpath>
  +
         <containerset>
           <@j2ee13.begin@jboss3x if="cactus.home.jboss3x"
               dir="${cactus.home.jboss3x}"
  @@ -372,8 +380,10 @@
               output="${target.testreports.dir}/weblogic7x.out"
               todir="${target.testreports.dir}/weblogic7x"/>
         </containerset>
  +
         <formatter type="brief" usefile="false"/>
         <formatter type="xml"/>
  +
         <batchtest>
           <fileset dir="${src.cactus.dir}">
             <!-- Due to some Cactus synchronization bug, the 'unit' tests need
  @@ -388,6 +398,7 @@
             <exclude name="**/servlet/Test*All.java"/>
           </fileset>
         </batchtest>
  +
       </cactus>
   
       <!-- Generate the JUnit reports -->
  
  
  
  1.13      +18 -1     jakarta-cactus/integration/ant/src/test/org/apache/cactus/integration/ant/container/MockContainer.java
  
  Index: MockContainer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-cactus/integration/ant/src/test/org/apache/cactus/integration/ant/container/MockContainer.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- MockContainer.java	29 Feb 2004 16:32:16 -0000	1.12
  +++ MockContainer.java	23 Mar 2004 09:29:17 -0000	1.13
  @@ -25,6 +25,7 @@
   
   import org.apache.cactus.integration.ant.util.AntTaskFactory;
   import org.apache.commons.logging.Log;
  +import org.apache.tools.ant.types.Path;
   import org.apache.tools.ant.types.Environment.Variable;
   
   /**
  @@ -248,6 +249,22 @@
        * @see Container#getSystemProperties()
        */
       public Variable[] getSystemProperties()
  +    {
  +        throw new RuntimeException("not implemented");
  +    }
  +
  +    /**
  +     * @see Container#setContainerClasspath(Path)
  +     */
  +    public void setContainerClasspath(Path theClasspath)
  +    {
  +        // do nothing
  +    }
  +
  +    /**
  +     * @see Container#getContainerClasspath()
  +     */
  +    public Path getContainerClasspath()
       {
           throw new RuntimeException("not implemented");
       }
  
  
  
  1.30      +29 -1     jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/CactusTask.java
  
  Index: CactusTask.java
  ===================================================================
  RCS file: /home/cvs/jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/CactusTask.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- CactusTask.java	29 Feb 2004 10:05:26 -0000	1.29
  +++ CactusTask.java	23 Mar 2004 09:29:17 -0000	1.30
  @@ -41,6 +41,7 @@
   import org.apache.tools.ant.taskdefs.optional.junit.JUnitTask;
   import org.apache.tools.ant.taskdefs.optional.junit.JUnitTest;
   import org.apache.tools.ant.types.Environment;
  +import org.apache.tools.ant.types.Path;
   import org.apache.tools.ant.types.Environment.Variable;
   
   /**
  @@ -73,6 +74,12 @@
        * System properties that will be set in the container JVM.
        */
       private List systemProperties = new ArrayList();
  +
  +    /**
  +     * Additional classpath entries for the classpath that will be used to 
  +     * start the containers.
  +     */
  +    private Path containerClasspath;
       
       /**
        * The factory for creating ant tasks that is passed to the containers.
  @@ -196,6 +203,10 @@
                   containers[i].setSystemProperties(
                       (Variable[]) this.systemProperties.toArray(
                           new Variable[0]));
  +
  +                // Add extra classpath entries
  +                containers[i].setContainerClasspath(this.containerClasspath);
  +                
                   if (containers[i].isEnabled())
                   {
                       containers[i].init();
  @@ -314,6 +325,23 @@
           }
       }
   
  +    /**
  +     * Adds container classpath to the classpath that will be used for starting
  +     * the container. 
  +     *
  +     * @return reference to the classpath
  +     * @since Cactus 1.6
  +     */
  +    public Path createContainerClasspath()
  +    {
  +        if (this.containerClasspath == null)
  +        {
  +            this.containerClasspath = new Path(this.project);            
  +        }
  +        
  +        return this.containerClasspath.createPath();
  +    }    
  +    
       // Private Methods ---------------------------------------------------------
   
       /**
  
  
  
  1.176     +6 -0      jakarta-cactus/documentation/docs/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-cactus/documentation/docs/xdocs/changes.xml,v
  retrieving revision 1.175
  retrieving revision 1.176
  diff -u -r1.175 -r1.176
  --- changes.xml	15 Mar 2004 20:06:49 -0000	1.175
  +++ changes.xml	23 Mar 2004 09:29:17 -0000	1.176
  @@ -90,6 +90,12 @@
         </devs>
   
         <release version="1.6dev" date="in CVS">
  +        <action dev="VMA" type="add">
  +          Added new optional nested <code>&lt;containerclasspath&gt;</code> 
  +          element for the <code>&lt;cactus&gt;</code> task. It allows 
  +          specifying additional jars that will be put in the classpath used to 
  +          start/stop the specified containers.
  +        </action>
           <action dev="VMA" type="remove">
             Removed ability to choose different HTTP connection helpers. The only
             one supported now is the Commons HttpClient one provided internally
  
  
  
  1.11      +13 -16    jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/container/AbstractJavaContainer.java
  
  Index: AbstractJavaContainer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/container/AbstractJavaContainer.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- AbstractJavaContainer.java	22 Mar 2004 20:26:56 -0000	1.10
  +++ AbstractJavaContainer.java	23 Mar 2004 09:29:17 -0000	1.11
  @@ -22,7 +22,6 @@
   import java.io.File;
   import java.io.FileNotFoundException;
   
  -import org.apache.cactus.integration.ant.util.ResourceUtils;
   import org.apache.tools.ant.taskdefs.Java;
   import org.apache.tools.ant.types.Path;
   import org.apache.tools.ant.types.Environment.Variable;
  @@ -83,6 +82,10 @@
       {
           Java java = (Java) createAntTask("java");
           java.setFork(true);
  +
  +        // Add extra container classpath entries specified by the user.
  +        addExtraClasspath(java);
  +        
           return java;
       }
   
  @@ -99,10 +102,8 @@
           java.setOutput(this.output);
           java.setAppend(this.append);
   
  -        // Add Clover jar to the server classpath if Clover is in the classpath
  -        // that started the <cactus> task. This is required when running in 
  -        // Clovered mode.
  -        addCloverJar(java);
  +        // Add extra container classpath entries specified by the user.
  +        addExtraClasspath(java);
          
           // Add Cactus properties for the server side
           for (int i = 0; i < getSystemProperties().length; i++)
  @@ -116,21 +117,17 @@
       }
   
       /**
  -     * Add Clover jar to the server classpath if Clover is in the classpath
  -     * that started the <cactus> task. This is required when running in
  -     * Clovered mode.
  +     * Add extra container classpath entries specified by the user.
        * 
  -     * @param theJavaCommand the java command that will start the container
  +     * @param theJavaCommand the java command used to start/stop the container
        */
  -    private void addCloverJar(Java theJavaCommand)
  +    private void addExtraClasspath(Java theJavaCommand)
       {
           Path classpath = theJavaCommand.createClasspath();
  -        File file = ResourceUtils.getResourceLocation(
  -            "/com/cortexeb/tools/clover/tasks/CloverTask.class");
  -        if (file != null)
  +        if (getContainerClasspath() != null)
           {
  -            classpath.createPathElement().setLocation(file);
  -        }
  +            classpath.addExisting(getContainerClasspath());
  +        }        
       }
       
       /**
  
  
  
  1.13      +20 -1     jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/container/ContainerWrapper.java
  
  Index: ContainerWrapper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/container/ContainerWrapper.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ContainerWrapper.java	29 Feb 2004 10:10:41 -0000	1.12
  +++ ContainerWrapper.java	23 Mar 2004 09:29:17 -0000	1.13
  @@ -23,6 +23,7 @@
   
   import org.apache.cactus.integration.ant.util.AntTaskFactory;
   import org.apache.commons.logging.Log;
  +import org.apache.tools.ant.types.Path;
   import org.apache.tools.ant.types.Environment.Variable;
   
   /**
  @@ -177,5 +178,23 @@
       public void setSystemProperties(Variable[] theProperties)
       {
           this.container.setSystemProperties(theProperties);
  +    }
  +
  +    /**
  +     * @see Container#setContainerClasspath(Path)
  +     * @since Cactus 1.6
  +     */
  +    public void setContainerClasspath(Path theClasspath)
  +    {
  +        this.container.setContainerClasspath(theClasspath);
  +    }
  +
  +    /**
  +     * @see Container#getContainerClasspath()
  +     * @since Cactus 1.6
  +     */
  +    public Path getContainerClasspath()
  +    {
  +        return this.container.getContainerClasspath();
       }
   }
  
  
  
  1.12      +17 -1     jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/container/Container.java
  
  Index: Container.java
  ===================================================================
  RCS file: /home/cvs/jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/container/Container.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- Container.java	29 Feb 2004 10:05:26 -0000	1.11
  +++ Container.java	23 Mar 2004 09:29:17 -0000	1.12
  @@ -23,6 +23,7 @@
   
   import org.apache.cactus.integration.ant.util.AntTaskFactory;
   import org.apache.commons.logging.Log;
  +import org.apache.tools.ant.types.Path;
   import org.apache.tools.ant.types.Environment.Variable;
   
   /**
  @@ -133,6 +134,21 @@
        */
       void setSystemProperties(Variable[] theProperties);
   
  +    /**
  +     * Sets additional classpath entries that will be added to the container
  +     * classpath used to start the containers.
  +     * 
  +     * @param theClasspath the container classpath entries to add
  +     * @since Cactus 1.6
  +     */
  +    void setContainerClasspath(Path theClasspath);
  +
  +    /**
  +     * @return additional container classpath entries
  +     * @since Cactus 1.6
  +     */
  +    Path getContainerClasspath();
  +    
       /**
        * Subclasses must implement this method to perform the actual task of 
        * starting up the container.
  
  
  
  1.17      +26 -1     jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/container/AbstractContainer.java
  
  Index: AbstractContainer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-cactus/integration/ant/src/java/org/apache/cactus/integration/ant/container/AbstractContainer.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- AbstractContainer.java	29 Feb 2004 10:05:26 -0000	1.16
  +++ AbstractContainer.java	23 Mar 2004 09:29:17 -0000	1.17
  @@ -32,6 +32,7 @@
   import org.apache.tools.ant.taskdefs.Delete;
   import org.apache.tools.ant.types.FileSet;
   import org.apache.tools.ant.types.FilterChain;
  +import org.apache.tools.ant.types.Path;
   import org.apache.tools.ant.types.PatternSet;
   import org.apache.tools.ant.types.Environment.Variable;
   import org.apache.tools.ant.types.selectors.SelectorUtils;
  @@ -103,6 +104,12 @@
        */
       private long startUpWait = 1000;
   
  +    /**
  +     * Additional classpath entries for the classpath that will be used to 
  +     * start the containers.
  +     */
  +    private Path containerClasspath;    
  +    
       // Public Methods ----------------------------------------------------------
   
       /**
  @@ -285,6 +292,24 @@
       public Variable[] getSystemProperties()
       {
           return this.systemProperties;
  +    }
  +
  +    /**
  +     * @see Container#setContainerClasspath(Path)
  +     * @since Cactus 1.6
  +     */
  +    public void setContainerClasspath(Path theClasspath)
  +    {
  +        this.containerClasspath = theClasspath;
  +    }    
  +
  +    /**
  +     * @see Container#getContainerClasspath()
  +     * @since Cactus 1.6
  +     */
  +    public Path getContainerClasspath()
  +    {
  +        return this.containerClasspath;
       }
       
       // Protected Methods -------------------------------------------------------
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cactus-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: cactus-dev-help@jakarta.apache.org