michal      2003/07/02 03:34:48

  Modified:    src/plugins-build/war plugin.jelly plugin.properties
               src/plugins-build/war/xdocs changes.xml properties.xml
                        goals.xml
  Log:
  war:war goal is simply packaging (using ant jar task) the directory created by 
war:webapp goal. 
  This change simplifies the customization of processing and removes code duplication.
  
  Fix for Maven-481 - tlds deps can be bundled in wars
  
  Revision  Changes    Path
  1.22      +27 -52    maven/src/plugins-build/war/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/maven/src/plugins-build/war/plugin.jelly,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- plugin.jelly      1 Jul 2003 14:58:52 -0000       1.21
  +++ plugin.jelly      2 Jul 2003 10:34:48 -0000       1.22
  @@ -33,51 +33,16 @@
     <!--==================================================================-->
     <!-- Builds a war file                                                -->
     <!--==================================================================-->    
  -  <goal name="war:war" prereqs="war:init" description="Build a war file">
  +  <goal name="war:war" prereqs="war:webapp" description="Build a war file">
       
       <ant:echo>Building WAR ${pom.artifactId}</ant:echo>
   
       <ant:mkdir dir="${maven.war.build.dir}" />
  -    <ant:war warfile="${maven.war.build.dir}/${maven.war.final.name}"
  -         webxml="${maven.war.webxml}" update="true">
  -
  -      <j:if test="${webSourcesPresent == 'true'}">
  -        <ant:fileset dir="${maven.war.src}">
  -          <ant:exclude name="WEB-INF/web.xml"/>
  -          <ant:exclude name="WEB-INF/classes/**/*.class"/>
  -          <ant:exclude name="WEB-INF/lib/*.jar"/>
  -        </ant:fileset>
  -      </j:if>
  -      
  -      <j:forEach var="lib" items="${pom.artifacts}">
  -        <j:set var="dep" value="${lib.dependency}"/>       
  -        <j:set var="bundle" value="false"/>
  -        <j:if test="${dep.getProperty('war.bundle.jar')=='true'}">
  -          <ant:echo> 
  -            DEPRECATION WARNING:            
  -            Use : war.bundle instead of war.bundle.jar            
  -          </ant:echo>
  -          <j:set var="bundle" value="true"/>
  -        </j:if>  
  -        <j:if test="${dep.getProperty('war.bundle')=='true' and dep.type =='jar'}"> 
       
  -          <j:set var="bundle" value="true"/>
  -        </j:if>        
  -        <j:if test="${bundle == 'true'}">  
  -          <ant:lib dir="${lib.file.parent}">
  -            <ant:include name="${lib.file.name}"/>
  -          </ant:lib>    
  -        </j:if>        
  -      </j:forEach>            
  -
  -      <j:if test="${sourcesPresent == 'true'}">
  -        <ant:classes 
  -          dir="${maven.build.dest}"
  -          include="${maven.war.classes.includes}" 
  -          exclude="${maven.war.classes.excludes}"/> 
  -      </j:if>
  -
  -      <j:set var="licenseFileName"><license:fileName/></j:set>
  -      <util:file name="${licenseFileName}" var="licenseFile"/>
  +    <ant:jar 
  +         destfile="${maven.war.build.dir}/${maven.war.final.name}"
  +         basedir="${maven.war.webapp.dir}"         
  +         update="true"
  +         index="true">
         <ant:metainf dir="${licenseFile.canonicalFile.parent}">
           <ant:include name="${licenseFile.canonicalFile.name}"/>
         </ant:metainf>
  @@ -99,7 +64,7 @@
           </ant:section>
         </ant:manifest>
   
  -    </ant:war>
  +    </ant:jar>
   
     </goal>
   
  @@ -113,13 +78,16 @@
   
       <ant:mkdir dir="${maven.war.webapp.dir}"/>
   
  -    <ant:property name="webapp.build.webinf" 
value="${maven.war.webapp.dir}/WEB-INF"/>
  +    <j:set var="webapp.build.webinf" value="${maven.war.webapp.dir}/WEB-INF"/>
       <ant:mkdir dir="${webapp.build.webinf}"/>
   
  -    <ant:property name="webapp.build.lib" value="${webapp.build.webinf}/lib"/>
  +    <j:set var="webapp.build.lib" value="${webapp.build.webinf}/lib"/>
       <ant:mkdir dir="${webapp.build.lib}"/>
  -
  -    <ant:property name="webapp.build.classes" 
value="${webapp.build.webinf}/classes"/>
  +    
  +    <j:set var="webapp.build.tlds" value="${maven.war.src}/${maven.war.tld.dir}"/>
  +    <ant:mkdir dir="${webapp.build.tlds}"/>
  +    
  +    <j:set var="webapp.build.classes" value="${webapp.build.webinf}/classes"/>
       <ant:mkdir dir="${webapp.build.classes}"/>
   
       <j:if test="${webSourcesPresent == 'true'}">
  @@ -128,22 +96,29 @@
         </ant:copy>
       </j:if>
       
  -
      
       <j:forEach var="lib" items="${pom.artifacts}">
         <j:set var="dep" value="${lib.dependency}"/>     
  -      <j:if test="${dep.getProperty('war.bundle')=='true' and dep.type =='jar' }">
  -          <ant:copy todir="${webapp.build.lib}"
  -             file="${lib.path}"/>  
  +      <j:if test="${dep.getProperty('war.bundle')=='true'}">
  +          
  +         <j:if test="${dep.type =='jar'}"> 
  +           <ant:copy todir="${webapp.build.lib}" file="${lib.path}"/>  
  +         </j:if> 
  +         
  +         <j:if test="${dep.type =='tld'}"> 
  +           <ant:copy todir="${webapp.build.tlds}" file="${lib.path}"/>  
  +         </j:if> 
  +          
         </j:if>  
  +      <!-- TO BE REMOVED -->
         <j:if test="${dep.getProperty('war.bundle.jar')=='true'}">
            <ant:echo> 
               DEPRECATION WARNING:            
               Use : war.bundle instead of war.bundle.jar
             </ant:echo>
  -        <ant:copy todir="${webapp.build.lib}"
  -          file="${lib.path}"/>
  +        <ant:copy todir="${webapp.build.lib}" file="${lib.path}"/>
         </j:if>  
  +      <!-- END OF TO BE REMOVED -->
       </j:forEach>            
   
       <ant:copy todir="${webapp.build.classes}">
  
  
  
  1.3       +1 -0      maven/src/plugins-build/war/plugin.properties
  
  Index: plugin.properties
  ===================================================================
  RCS file: /home/cvs/maven/src/plugins-build/war/plugin.properties,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- plugin.properties 21 Mar 2003 01:26:29 -0000      1.2
  +++ plugin.properties 2 Jul 2003 10:34:48 -0000       1.3
  @@ -18,3 +18,4 @@
   # Location where the webapp will be created. Defaults to
   # ${maven.war.build.dir}/${pom.artifactId}
   maven.war.webapp.dir = ${maven.war.build.dir}/${pom.artifactId}
  +maven.war.tld.dir=WEB-INF/tld
  
  
  
  1.7       +11 -0     maven/src/plugins-build/war/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/maven/src/plugins-build/war/xdocs/changes.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- changes.xml       1 Jul 2003 14:58:52 -0000       1.6
  +++ changes.xml       2 Jul 2003 10:34:48 -0000       1.7
  @@ -9,6 +9,17 @@
   
       <release version="1.4" date="in CVS">
         <action dev="michal" type="fix">
  +        war:war goal is simply packaging
  +        (using ant jar task) the directory created
  +        by war:webapp goal. This change simplifies
  +        the customization of processing 
  +        and removes code duplication.
  +      </action>
  +      <action dev="michal" type="fix">
  +        Fixes for MAVEN-481. 
  +        Bundling of tlds in war is supported.
  +      </action>
  +      <action dev="michal" type="fix">
           Fixes for MAVEN-518.
           Artifact processing in the plugin 
           was slightly changed and now 
  
  
  
  1.3       +44 -5     maven/src/plugins-build/war/xdocs/properties.xml
  
  Index: properties.xml
  ===================================================================
  RCS file: /home/cvs/maven/src/plugins-build/war/xdocs/properties.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- properties.xml    21 Mar 2003 01:26:29 -0000      1.2
  +++ properties.xml    2 Jul 2003 10:34:48 -0000       1.3
  @@ -62,25 +62,64 @@
                 <code>${maven.war.build.dir}/${pom.artifactId}</code>.
             </td>
           </tr>
  +        <tr>
  +          <a id="tld_dir"/>
  +          <td>maven.war.tld.dir</td>
  +          <td>Yes</td>
  +          <td>
  +             Subdirectory of web application context root directory 
  +             where tag library descriptors (tld files) will be copied. 
  +             Maven WAR Plugin copies to this location all dependencies 
  +             (specified in the POM) of the 
  +             type <code>"tld"</code> and marked with special meta-information.
  +             See the section below for more information.
  +             <br/>
  +             It defaults to
  +             <code>WEB-INF/tld</code>.
  +             This setting is adhering to
  +             <a 
href="http://developer.java.sun.com/developer/technicalArticles/javaserverpages/code_convention/";
  +             >SUN Code Conventions for the JavaServer Pages</a>
  +          </td>
  +        </tr>
         </table>
       </section>
  -    <section name="Including Jars in the Webapp">
  +    <section name="Including artifact in the Webapp">
          <p>
  -         You must tell Maven what jars you want included in the Webapp. This
  +         You must tell Maven what artifact you want included in the Webapp. This
            is achieved by specifying meta-information in the POM, using the
            following syntax:
          </p>
   
   <source><![CDATA[
     <dependency>
  -    <id>jarid</id>
  +    <groupId>grpId</groupId>
  +    <artifactId>jarid</artifactId>
       <version>jarversion</version>
  +    <type>jar</type>
       <properties>
  -      <war.bundle.jar>true</war.bundle.jar>
  +      <war.bundle>true</war.bundle>
  +    </properties>
  +  </dependency>
  +  
  +  <dependency>
  +    <groupId>grpId</groupId>
  +    <artifactId>tldid</artifactId>
  +    <version>tldversion</version>
  +    <type>tld</type>
  +    <properties>
  +      <war.bundle>true</war.bundle>
       </properties>
     </dependency>
   ]]></source>
  -
  + 
  +  <p>
  +    This process in type senstive.
  +    Currently following types are supported: 
  +    <ol>
  +       <li>jar</li>
  +       <li>tld (see: <a href="#tld_dir">maven.war.tld.dir</a>)</li>
  +    </ol>
  +  </p>
       </section>
     </body>
   </document>
  
  
  
  1.3       +22 -11    maven/src/plugins-build/war/xdocs/goals.xml
  
  Index: goals.xml
  ===================================================================
  RCS file: /home/cvs/maven/src/plugins-build/war/xdocs/goals.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- goals.xml 1 Jul 2003 14:58:52 -0000       1.2
  +++ goals.xml 2 Jul 2003 10:34:48 -0000       1.3
  @@ -9,13 +9,32 @@
       <goals>
         <goal>
           <name>war</name>
  -        <description>Build a war file</description>
  +        <description>
  +          Build a war file. 
  +          This goal simply executes the <a href="war:war">war:war</a> goal
  +        </description>
         </goal>
         <goal>
           <name>war:init</name>
           <description>Initialize the file system and attain any necessary 
goals</description>
         </goal>
         <goal>
  +        <name>war:war</name>
  +        <description>
  +          Build a war file.
  +          <br/>
  +          This goal simply package the directory created
  +          by war:webapp goal. Additional custome content which should be included
  +          in the archive can be provided using:
  +          <br/>
  +          <code>&lt;postGoal name="war:webapp"&gt;</code>
  +        </description>
  +      </goal>
  +      <goal>
  +        <name>war:webapp</name>
  +        <description>Build a webapp directory</description>
  +      </goal>
  +      <goal>
           <name>war:install</name>
           <description>Install the war in the local repository</description>
         </goal>
  @@ -30,15 +49,7 @@
         <goal>
           <name>war:deploy-snapshot</name>
           <description>Deploy the snapshot version of the war to the remote 
repository(ies)</description>
  -      </goal>
  -      <goal>
  -        <name>war:war</name>
  -        <description>Build a war file</description>
  -      </goal>
  -      <goal>
  -        <name>war:webapp</name>
  -        <description>Build a webapp directory</description>
  -      </goal>
  -    </goals>
  +      </goal>  
  +    </goals>      
     </body>
   </document>
  
  
  

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

Reply via email to