Hi Marc,

Thanks for your patch. Here's the "canonical" way of submitting a patch for
the Cactus project:

1/ Always create your patch against CVS HEAD
2/ Create a JIRA issue (http://issues.apache.org/jira) for the Cactus
project
3/ Create a real patch, i.e. by calling "cvs patch" (or using your IDE/CVS
client). Please use the unified diff format (usually the default).
4/ Attach the patch file to the JIRA issue

In this manner it's easy for committer to both
a/ see what's changed from the CVS HEAD as the diff clearly shows the
differences
b/ apply it as there are tools to apply a patch in unified diff format (i.e.
no manual work involved).

One comment though: I don't think anyone should put Cactus tests next to
main code in the project directory structure.

Thanks
-Vincent

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]
> Sent: lundi 20 septembre 2004 21:58
> To: [EMAIL PROTECTED]
> Subject: RE: cactus:catifyear
> 
> Vincent,
>       I have succesfully got the cactus:test-war-in-ear working.  Below
> are the modified and new targets created.  Since this is my first
> contribution to open source I don't know the procedure.  If you can review
> and let me know what you think.
> 
> thanks,
> Marc
> 
> MODIFIED GOALS:
>   <!--
> 
> ========================================================================
>        Compiles the Cactus tests.
> 
> ========================================================================
>   -->
>   <goal name="cactus:compile" prereqs="cactus:init,java:compile"
>       description="Compiles the Cactus tests">
> 
>     <ant:mkdir dir="${cactus.target.classes.dir}"/>
> 
>     <j:choose>
>       <j:when test="${cactusSourcePresent == 'true'}">
> 
>             <!-- MODIFICATION -->
>             <!-- added excludes and includes attributes when src and
> cactus
> test cases are in the same directory -->
>               <ant:javac destdir="${cactus.target.classes.dir}"
>             excludes="${cactus.test.excludes},**/package.html"
>             includes="${cactus.test.includes}"
> 
> debug="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compil
> e.debug')}"
> 
> deprecation="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.
> compile.deprecation')}"
> 
> target="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compi
> le.target')}"
> 
> optimize="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.com
> pile.optimize')}">
> 
>           <ant:src path="${cactus.src.dir}"/>
> 
>           <ant:classpath>
>             <ant:path refid="maven.dependency.classpath"/>
>             <ant:path refid="cactus.classpath"/>
>             <ant:pathelement path="${maven.build.dest}"/>
>           </ant:classpath>
> 
>           <j:if
> test="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compile
> .compilerargs')}">
>             <ant:compilerarg
> line="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compile
> .compilerargs')}"/>
>           </j:if>
> 
>           <j:if
> test="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compile
> .encoding')}">
>             <ant:setProperty name="encoding"
> value="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compil
> e.encoding')}"/>
>           </j:if>
> 
>           <j:if
> test="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compile
> .executable')}">
>             <ant:setProperty name="executable"
> value="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compil
> e.executable')}"/>
>           </j:if>
> 
>           <j:if
> test="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compile
> .fork')}">
>             <ant:setProperty name="fork"
> value="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compil
> e.fork')}"/>
>           </j:if>
> 
>           <j:if
> test="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compile
> .source')}">
>             <ant:setProperty name="source"
> value="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compil
> e.source')}"/>
>           </j:if>
> 
>           <j:if
> test="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compile
> .verbose')}">
>             <ant:setProperty name="verbose"
> value="${pom.getPluginContext('maven-java-
> plugin').getVariable('maven.compil
> e.verbose')}"/>
>           </j:if>
>         </ant:javac>
>         <!-- END MODIFICATION -->
> 
>         <!-- Copy non java source files -->
>         <ant:copy todir="${cactus.target.classes.dir}">
>           <ant:fileset dir="${cactus.src.dir}">
>             <ant:exclude name="**/*.java"/>
>             <ant:exclude name="**/*.html"/>
>           </ant:fileset>
>         </ant:copy>
> 
>       </j:when>
>       <j:otherwise>
>         <ant:echo>No Cactus source files to compile.</ant:echo>
>       </j:otherwise>
>     </j:choose>
> 
>   </goal>
> 
>   <!--
> 
> ========================================================================
>        Creates ear descriptor - application.xml file
> 
> ========================================================================
>   -->
>   <goal name="cactus:generate-ear-descriptor" prereqs="cactus:init">
> 
>     <mkdir dir="${maven.build.dir}"/>
> 
>     <ant:echo>Generating appxml file:[${maven.build.dir}/application.xml]
> version ${cactus.j2ee.version}</ant:echo>
> 
>     <j:file name="${maven.build.dir}/application.xml" outputMode="xml"
>         prettyPrint="true" encoding="UTF-8">
> 
>       <j:switch on="${cactus.j2ee.version}">
>         <j:case value="1.3">
>           <x:doctype name="application"
>               publicId="-//Sun Microsystems, Inc.//DTD J2EE Application
> 1.3//EN"
>               systemId="http://java.sun.com/dtd/application_1_3.dtd"/>
>         </j:case>
>         <j:default>
>           <x:doctype name="application"
>               publicId="-//Sun Microsystems, Inc.//DTD J2EE Application
> 1.2//EN"
> 
> systemId="http://java.sun.com/j2ee/dtds/application_1_2.dtd"/>
>         </j:default>
>       </j:switch>
> 
>       <x:element name="application">
>         <x:element name="display-name">${pom.name} for Cactus</x:element>
> 
>         <!-- cactus war file -->
>         <x:element name="module">
>           <x:element name="web">
>             <x:element name="web-uri">${cactus.war.name}</x:element>
>             <x:element name="context-root">${pom.artifactId}</x:element>
>           </x:element>
>         </x:element>
> 
>         <!-- ejb module under test -->
>         <!-- MODIFICATION -->
>         <!-- If war in ear then the ejb reference doesn't get included in
> application.xml -->
>         <j:if test="${!isWarInEarProject}">
>           <x:element name="module">
>             <x:element name="ejb">${cactus.ejb.name}</x:element>
>           </x:element>
>         </j:if>
>         <!-- END MODIFICATION -->
> 
>         <j:forEach var="lib" items="${pom.artifacts}">
>           <j:set var="dep" value="${lib.dependency}"/>
>           <j:if test="${dep.getProperty('ear.bundle')=='true' ||
> dep.getProperty('ear.module')=='true'}">
>             <j:choose>
>               <j:when test="${dep.type=='war'}">
>                 <x:element name="module">
>                   <x:element name="web">
>                     <x:element
> name="web-uri">${dep.getArtifact()}</x:element>
>                     <x:element
> name="context-root">${dep.getProperty('ear.appxml.war.context-
> root')}</x:ele
> ment>
>                  </x:element>
>                 </x:element>
>               </j:when>
>               <j:when test="${dep.type=='ejb'}">
>                 <x:element name="module">
>                   <x:element name="ejb">${dep.getArtifact()}</x:element>
> 
>                 </x:element>
>               </j:when>
>               <j:when test="${dep.type=='jar'}">
>                 <j:if test="${dep.getProperty('ear.module')=='true'}">
>                   <x:element name="module">
>                     <x:element
> name="java">${dep.getArtifact()}</x:element>
> 
>                   </x:element>
>                 </j:if>
>               </j:when>
>               <j:when test="${dep.type=='rar'}">
>                 <x:element name="module">
>                   <x:element
> name="connector">${dep.getArtifact()}</x:element>
>                 </x:element>
>               </j:when>
>               <j:when test="${dep.type=='sar'}">
>                 <x:element name="module">
>                   <x:element
> name="connector">${dep.getArtifact()}</x:element>
>                 </x:element>
>               </j:when>
>             </j:choose>
>           </j:if>
>         </j:forEach>
> 
>       </x:element>
>     </j:file>
> 
>   </goal>
> 
> 
> NEW GOALS:
>   <!--
> 
> ========================================================================
>        Initialization before cactifying the WAR in EAR
> 
> ========================================================================
>   -->
>   <goal name="cactus:cactifywar-in-ear-init">
>     <j:set var="isWarInEarProject" value="true"/>
>   </goal>
> 
>   <!--
> 
> ========================================================================
>        Generate a Cactified WAR in EAR
> 
> ========================================================================
>   -->
>   <goal name="cactus:cactifywar-in-ear"
> 
> prereqs="cactus:cactifywar-in-ear-init,cactus:cactifywar,cactus:generate-
> ear
> -descriptor"
>       description="Create and cactify a WAR in EAR">
> 
>     <ant:mkdir dir="${maven.build.dir}"/>
> 
>     <!-- Ensure that the ear properties are loaded in memory so that they
> can be
>          referenced -->
>     <attainGoal name="ear:load"/>
> 
>     <ant:available property="cactus.ear.manifest.available"
> 
> file="${pom.getPluginContext('maven-ear-
> plugin').getVariable('maven.ear.mani
> fest')}"/>
> 
>     <ant:available property="cactus.ear.src.available"
> 
> file="${pom.getPluginContext('maven-ear-
> plugin').getVariable('maven.ear.src'
> )}"/>
> 
>     <!-- don't think this is necessary if this is in the plugin -->
>     <j:set var="cactus.ear"
> value="${maven.build.dir}/${pom.artifactId}-cactus.ear"/>
> 
>     <ant:ear destfile="${cactus.ear}"
>         appxml="${maven.build.dir}/application.xml">
> 
>       <j:if test="${cactus.ear.src.available}">
>         <fileset
> dir="${pom.getPluginContext('maven-ear-
> plugin').getVariable('maven.ear.src')
> }"
>             casesensitive="false" excludes="**/META-INF/application.xml"/>
>       </j:if>
> 
>       <!-- include cactus generated archives -->
>       <ant:fileset dir="${cactus.war.dir}">
>         <ant:include name="${cactus.war.name}"/>
>       </ant:fileset>
> 
>       <!-- include marked dependencies -->
>       <j:forEach var="lib" items="${pom.artifacts}">
>         <j:set var="dep" value="${lib.dependency}"/>
>         <j:if test="${dep.getProperty('ear.bundle')=='true' ||
> dep.getProperty('ear.module')=='true'}">
>           <ant:fileset dir="${lib.file.parent}">
>             <ant:include name="${lib.file.name}"/>
>           </ant:fileset>
>         </j:if>
>       </j:forEach>
> 
>       <j:if test="${cactus.ear.manifest.available}">
>         <ant:setProperty name="manifest"
> 
> value="${pom.getPluginContext('maven-ear-
> plugin').getVariable('maven.ear.man
> ifest')}"/>
>       </j:if>
> 
>     </ant:ear>
>   </goal>
> 
>   <!--
> 
> ========================================================================
>        Execute the Cactus tests, packaging them in an EAR.
> 
> ========================================================================
>   -->
>   <goal name="cactus:test-war-in-ear"
>       prereqs="cactus:init,cactus:init-report,cactus:cactifywar-in-ear"
>       description="Run all Cactus tests (packaged in an EAR)">
> 
>     <cactus earfile="${cactus.ear}" fork="yes"
>         errorproperty="cactustests.error"
> failureproperty="cactustests.failure"
>         printsummary="${maven.cactus.printsummary}">
> 
>       <!-- Configure the cactus task for logging -->
>       <j:if test="${context.getVariable('cactus.logging.config.client') !=
> null}">
>         <cactusproperty server="false"
>             propertiesFile="${cactus.logging.config.client}"/>
>       </j:if>
>       <j:if test="${context.getVariable('cactus.logging.config.server') !=
> null}">
>         <cactusproperty server="true"
>             propertiesFile="${cactus.logging.config.server}"/>
>       </j:if>
> 
>       <ant:classpath>
>         <ant:pathelement path="${maven.build.dest}"/>
>         <ant:pathelement location="${cactus.target.classes.dir}"/>
>         <ant:path refid="maven.dependency.classpath"/>
>         <ant:path refid="cactus.classpath"/>
>       </ant:classpath>
> 
>       <containerset>
> 
>         <!-- Note: The port attribute for JBoss is only used for custom
>              configs -->
>         <jboss3x if="cactus.home.jboss3x" port="${cactus.port}"
>             dir="${cactus.home.jboss3x}"
>             output="${cactus.reports.dir}/jboss3x.out"
>             todir="${cactus.reports.dir}/jboss3x"
>             config="${cactus.jboss3x.config.name}">
>           <j:if test="${context.getVariable('cactus.tmp.dir') != null}">
>             <ant:setProperty name="tmpdir" value="${cactus.tmp.dir}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.jboss3x.jndiport') !=
> null}">
>             <ant:setProperty name="jndiport"
> value="${cactus.jboss3x.jndiport}"/>
>           </j:if>
>         </jboss3x>
> 
>         <orion1x if="cactus.home.orion1x" port="${cactus.port}"
>             dir="${cactus.home.orion1x}"
>             output="${cactus.reports.dir}/orion1x.out"
>             todir="${cactus.reports.dir}/orion1x">
>           <j:if test="${context.getVariable('cactus.tmp.dir') != null}">
>             <ant:setProperty name="tmpdir" value="${cactus.tmp.dir}"/>
>           </j:if>
>         </orion1x>
> 
>         <orion2x if="cactus.home.orion2x" port="${cactus.port}"
>             dir="${cactus.home.orion2x}"
>             output="${cactus.reports.dir}/orion2x.out"
>             todir="${cactus.reports.dir}/orion2x">
>           <j:if test="${context.getVariable('cactus.tmp.dir') != null}">
>             <ant:setProperty name="tmpdir" value="${cactus.tmp.dir}"/>
>           </j:if>
>         </orion2x>
> 
>         <resin2x if="cactus.home.resin2x" port="${cactus.port}"
>             dir="${cactus.home.resin2x}"
>             output="${cactus.reports.dir}/resin2x.out"
>             todir="${cactus.reports.dir}/resin2x">
>           <j:if test="${context.getVariable('cactus.tmp.dir') != null}">
>             <ant:setProperty name="tmpdir" value="${cactus.tmp.dir}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.resin2x.config') !=
> null}">
>             <ant:setProperty name="resinconf"
> value="${cactus.resin2x.config}"/>
>           </j:if>
>         </resin2x>
> 
>         <resin3x if="cactus.home.resin3x" port="${cactus.port}"
>             dir="${cactus.home.resin3x}"
>             output="${cactus.reports.dir}/resin3x.out"
>             todir="${cactus.reports.dir}/resin3x">
>           <j:if test="${context.getVariable('cactus.tmp.dir') != null}">
>             <ant:setProperty name="tmpdir" value="${cactus.tmp.dir}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.resin3x.config') !=
> null}">
>             <ant:setProperty name="resinconf"
> value="${cactus.resin3x.config}"/>
>           </j:if>
>         </resin3x>
> 
>         <tomcat4x if="cactus.home.tomcat4x" port="${cactus.port}"
>             dir="${cactus.home.tomcat4x}"
>             output="${cactus.reports.dir}/tomcat4x.out"
>             todir="${cactus.reports.dir}/tomcat4x">
>           <j:if test="${context.getVariable('cactus.tmp.dir') != null}">
>             <ant:setProperty name="tmpdir" value="${cactus.tmp.dir}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.tomcat4x.config') !=
> null}">
>             <ant:setProperty name="serverxml"
> value="${cactus.tomcat4x.config}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.tomcat4x.tmpdir') !=
> null}">
>             <ant:setProperty name="tmpdir"
> value="${cactus.tomcat4x.tmpdir}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.tomcat4x.conf.dir') !=
> null}">
>             <conf dir="${cactus.tomcat4x.conf.dir}"
>                 includes="${cactus.tomcat4x.conf.includes}"
>                 excludes="${cactus.tomcat4x.conf.excludes}"/>
>           </j:if>
>         </tomcat4x>
> 
>         <tomcat5x if="cactus.home.tomcat5x" port="${cactus.port}"
>             dir="${cactus.home.tomcat5x}"
>             output="${cactus.reports.dir}/tomcat5x.out"
>             todir="${cactus.reports.dir}/tomcat5x">
>           <j:if test="${context.getVariable('cactus.tmp.dir') != null}">
>             <ant:setProperty name="tmpdir" value="${cactus.tmp.dir}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.tomcat5x.config') !=
> null}">
>             <ant:setProperty name="serverxml"
> value="${cactus.tomcat5x.config}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.tomcat5x.tmpdir') !=
> null}">
>             <ant:setProperty name="tmpdir"
> value="${cactus.tomcat5x.tmpdir}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.tomcat5x.conf.dir') !=
> null}">
>            <conf dir="${cactus.tomcat5x.conf.dir}"
>                includes="${cactus.tomcat5x.conf.includes}"
>                excludes="${cactus.tomcat5x.conf.excludes}"/>
>           </j:if>
>         </tomcat5x>
> 
>         <weblogic7x if="cactus.home.weblogic7x" port="${cactus.port}"
>             dir="${cactus.home.weblogic7x}"
>             output="${cactus.reports.dir}/weblogic7x.out"
>             todir="${cactus.reports.dir}/weblogic7x">
>           <j:if test="${context.getVariable('cactus.tmp.dir') != null}">
>             <ant:setProperty name="tmpdir" value="${cactus.tmp.dir}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.weblogic7x.beahome')
> !=
> null}">
>             <ant:setProperty name="beahome"
> value="${cactus.weblogic7x.beahome}"/>
>           </j:if>
>           <j:if test="${context.getVariable('cactus.weblogic7x.config') !=
> null}">
>             <ant:setProperty name="configxml"
> value="${cactus.weblogic7x.config}"/>
>           </j:if>
>         </weblogic7x>
> 
>       </containerset>
> 
>       <ant:formatter type="plain" usefile="${cactus.junit.usefile}"/>
>       <ant:formatter type="xml"/>
> 
>       <ant:batchtest>
>         <ant:fileset dir="${cactus.src.dir}"
>             includes="${cactus.test.includes}"
>             excludes="${cactus.test.excludes}"/>
>       </ant:batchtest>
> 
>     </cactus>
> 
>     <!-- TODO: Change the Cactus stylesheet (cactus.jsl) to handle reports
>        for several containers -->
> 
>     <!-- Consolidate the reports into a single -->
>     <ant:junitreport todir="${cactus.reports.dir}"
>         tofile="TESTS-TestSuites-Cactus.xml">
> 
>       <j:if test="${context.getVariable('cactus.home.jboss3x') != null}">
>         <ant:fileset dir="${cactus.reports.dir}/jboss3x">
>           <ant:include name="TEST-*.xml"/>
>         </ant:fileset>
>       </j:if>
> 
>       <j:if test="${context.getVariable('cactus.home.orion1x') != null}">
>         <ant:fileset dir="${cactus.reports.dir}/orion1x">
>           <ant:include name="TEST-*.xml"/>
>         </ant:fileset>
>       </j:if>
> 
>       <j:if test="${context.getVariable('cactus.home.orion2x') != null}">
>         <ant:fileset dir="${cactus.reports.dir}/orion2x">
>           <ant:include name="TEST-*.xml"/>
>         </ant:fileset>
>       </j:if>
> 
>       <j:if test="${context.getVariable('cactus.home.resin2x') != null}">
>         <ant:fileset dir="${cactus.reports.dir}/resin2x">
>           <ant:include name="TEST-*.xml"/>
>         </ant:fileset>
>       </j:if>
> 
>       <j:if test="${context.getVariable('cactus.home.resin3x') != null}">
>         <ant:fileset dir="${cactus.reports.dir}/resin3x">
>           <ant:include name="TEST-*.xml"/>
>         </ant:fileset>
>       </j:if>
> 
>       <j:if test="${context.getVariable('cactus.home.tomcat4x') != null}">
>         <ant:fileset dir="${cactus.reports.dir}/tomcat4x">
>           <ant:include name="TEST-*.xml"/>
>         </ant:fileset>
>       </j:if>
> 
>       <j:if test="${context.getVariable('cactus.home.tomcat5x') != null}">
>         <ant:fileset dir="${cactus.reports.dir}/tomcat5x">
>           <ant:include name="TEST-*.xml"/>
>         </ant:fileset>
>       </j:if>
> 
>       <j:if test="${context.getVariable('cactus.home.weblogic7x') !=
> null}">
>         <ant:fileset dir="${cactus.reports.dir}/weblogic7x">
>           <ant:include name="TEST-*.xml"/>
>         </ant:fileset>
>       </j:if>
> 
>     </ant:junitreport>
> 
>     <j:if test="${cactus.halt.on.failure}">
>       <ant:fail if="cactustests.failure">At least one test had a
> failure!</ant:fail>
>     </j:if>
>     <j:if test="${cactus.halt.on.error}">
>       <ant:fail if="cactustests.error">At least one test had an
> error!</ant:fail>
>     </j:if>
> 
>   </goal>
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]
> Sent: Friday, September 10, 2004 3:11 PM
> To: [EMAIL PROTECTED]
> Subject: RE: cactus:catifyear
> 
> 
> Ran into a little issue.  Since my source code, cactus tests are in the
> same
> source tree it is causing duplicate files to be added to the cactified
> war.
> 
> src (all code)
> src\com\** (real code)
> src\test\** (container tests)
> 
> My properties are set to:
> maven.war.classes.includes=com/**
> maven.war.classes.excludes=test/**
> cactus.test.includes=test/**/TestContainer*,test/**/*.xml
> cactus.test.excludes=com/**
> 
> The pre-cactified war doesn't include the test files (which is good), but
> the cactified war includes the real code twice.  My app server (weblogic
> 8.1) complains during deployment about the duplicate files.
> 
> I thought that this would fix it in cactus:cactifywar (I added the
> <include
> /> and <exclude />) but no luck.
>     <cactifywar version="2.3" destfile="${cactus.war}">
> 
>       ...
> 
>       <ant:classes dir="${cactus.target.classes.dir}">
>         <include name="${cactus.test.includes}" />
>         <exclude name="${cactus.test.excludes}" />
>       </ant:classes>
> 
>       ...
> 
>     </cactifywar>
> 
> Any ideas?
> 
> After this gets resolved I believe that cactus:test-war-in-ear will be
> ready
> to go.  I will start looking at the code prior to building the war
> (copying
> of files into the target/test-cactus-classes now, and see if I can
> pinpoint
> it.
> 
> Marc
> 
> -----Original Message-----
> From: Vincent Massol [mailto:[EMAIL PROTECTED]
> Sent: Friday, September 10, 2004 1:13 PM
> To: 'Cactus Users List'
> Subject: RE: cactus:catifyear
> 
> 
> 
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED]
> > Sent: vendredi 10 septembre 2004 19:54
> > To: [EMAIL PROTECTED]
> > Subject: RE: cactus:catifyear
> >
> > OK, finally have time to attempt this.
> >
> > My plan is:
> > 1) get cactus:test-war-in-ear working.  This will build the cactified
> war
> > as
> > normal, wrap the war in an ear including any dependencies that have
> > ear.bundle
> > 2) Look into modifying cactus:test to detect whether to call :test-war,
> > :test-ear, or :test-war-in-ear
> 
> Looks cool! Thanks Marc
> 
> -Vincent
> 
> >
> >
> >
> > -----Original Message-----
> > From: Vincent Massol [mailto:[EMAIL PROTECTED]
> > Sent: Saturday, August 21, 2004 2:59 AM
> > To: 'Cactus Users List'
> > Subject: RE: cactus:catifyear
> >
> >
> > Hi Marc,
> >
> > Yes, I think that would be very useful. Maybe the plugin can
> automatically
> > detect if it needs to deploy the WAR as an EAR or not?
> >
> > I'd suggest that the plugin checks to see if there are any ejb defined
> as
> > dependencies in the project.xml and that they are tagged with some
> > property
> > such as ear.bundle (this is the property used by the EAR plugin to
> decide
> > what artifact to bundle in the ear). If there are any the plugin could
> > wrap
> > the cactified war in an ear, adding to the ear the artifacts marked with
> > ear.bundle. Another alternative is to name the property
> cactus.ear.bundle.
> >
> > We can also have an explicitely named goal. We already have cactus:test-
> > war
> > and cactus:test-ear. We could have cactus:test-war-in-ear.
> >
> > Thanks
> > -Vincent
> >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED]
> > > [mailto:[EMAIL PROTECTED]
> > > Sent: mercredi 18 ao�t 2004 19:35
> > > To: [EMAIL PROTECTED]
> > > Subject: cactus:catifyear
> > >
> > > I have been using cactus and ant extensively and now attempting to
> > convert
> > > to maven.  I have been successful at the following:
> > >
> > > - run ejb tests
> > > - run war tests (no ejb dependencies)
> > >
> > > Now I am trying to run war tests that have dependencies on ejbs (jsps
> > call
> > > Business Delegate which calls stateless session bean).  In our current
> > dev
> > > process we bundle the ejb and war into one ear file and don't use ejb-
> > ref
> > > declarations in the web.xml.  In other words, we don't use the
> > > java:comp/env
> > > approach when we look up our ejbs.  This is causing problems for me as
> I
> > > want to test the servlet code that uses the ejbs, but at the same time
> > > don't
> > > want to change the code to support run the tests.  I ran into the same
> > > issues when using cactus and ant, and ended up writing a customer
> target
> > > to
> > > do what I needed.
> > >
> > > I guess what I am looking for is cactus:cactifywarinear (war-in-ear):
> > > - call cactus:cactifywar
> > > - create an ear that contains the the cactified war as well as
> depencies
> > > with cactus.bundle = true
> > > - do the normal startup, deploy the cactus-ear, run tests, shut down.
> > >
> > > Since the *.jelly file code is very straightforward I am gonna attempt
> > to
> > > create a new goal to test and see how it goes.  Is this a feature that
> > > others would like?  I hope I explained things clearly.
> > >
> > > Marc
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to