You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2004/05/24 20:12:03 UTC

cvs commit: jakarta-jetspeed/plugin plugin.jelly

taylor      2004/05/24 11:12:03

  Modified:    plugin   plugin.jelly
  Log:
  *** keyword substitution change ***
  
  Revision  Changes    Path
  1.9       +391 -391  jakarta-jetspeed/plugin/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/plugin/plugin.jelly,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- plugin.jelly	22 Apr 2004 04:03:04 -0000	1.8
  +++ plugin.jelly	24 May 2004 18:12:03 -0000	1.9
  @@ -1,391 +1,391 @@
  -<?xml version="1.0"?>
  -<!--
  -Copyright 2004 The Apache Software Foundation
  -
  -Licensed under the Apache License, Version 2.0 (the "License");
  -you may not use this file except in compliance with the License.
  -You may obtain a copy of the License at
  -
  -    http://www.apache.org/licenses/LICENSE-2.0
  -
  -Unless required by applicable law or agreed to in writing, software
  -distributed under the License is distributed on an "AS IS" BASIS,
  -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  -See the License for the specific language governing permissions and
  -limitations under the License.
  --->
  -<!--
  -  =============================================================================
  -    Jetspeed plugin for Maven.
  -  =============================================================================
  --->
  -<project 
  -  xmlns:j="jelly:core"
  -  xmlns:i="jelly:interaction"
  -  xmlns:ant="jelly:ant" 
  -  xmlns:define="jelly:define"
  -  xmlns:u="jelly:util"
  -  xmlns:jetspeed="jetspeed">
  -    <!--
  -     ========================================================================
  -       Create the custom WAR from binary distribution
  -     ========================================================================
  -  -->
  -    <goal name="jetspeed:war" description="Create custom .war file based on jetspeed binary distribution">
  -        <j:set var="maven.war.src" value="${war.stage.dir}/webapp"/>
  -        <j:if test="${maven.jetspeed.debug == 'true'}">
  -            <echo>[DEBUG] maven.src.dir = ${maven.src.dir}</echo>
  -            <echo>[DEBUG] maven.war.src = ${maven.war.src}</echo>
  -            <echo>[DEBUG] maven.build.dir = ${maven.build.dir}</echo>
  -            <echo>[DEBUG] maven.war.build.dir = ${maven.war.build.dir}</echo>
  -            <echo>[DEBUG] maven.dependency.classpath = ${maven.dependency.classpath}</echo>
  -        </j:if>
  -        <!-- recreate target area -->
  -        <!--attainGoal name="war:init"/-->
  -        <mkdir dir="${maven.war.src}"/>
  -        <!-- recreate stage area -->
  -        <delete dir="${war.stage.dir}"/>
  -        <mkdir dir="${war.stage.dir}"/>
  -        <!-- copy distribution war to stage directory -->
  -        <j:forEach var="dep" items="${pom.dependencies}">
  -            <j:if test="${dep.getType() == 'distribution'}">
  -                <j:set var="dist.name" value="${dep.getArtifactId()}"/>
  -                <j:set var="internal.war.path" value="${dep.getProperty('dist.native.name')}"/>
  -                <j:set var="internal.war.path" value="${dep.getProperty('dist.native.name')}"/>
  -                <u:tokenize var="parts" delim=":">${dep.getId()}</u:tokenize>
  -                <j:set var="depid" value="${parts[0]}"/>
  -                <j:set var="dist.dependency.zip" value="${maven.repo.local}/${depid}/distributions/${dep.getArtifact()}"/>
  -                <j:if test="${maven.jetspeed.debug == 'true'}">
  -                    <echo>[DEBUG] dist.dependency.zip = ${dist.dependency.zip}</echo>
  -                    <echo>[DEBUG] dist.name = ${dist.name}</echo>
  -                    <echo>[DEBUG] internal.war.path= ${internal.war.path}</echo>
  -                    <echo>[DEBUG] depid= ${depid}</echo>
  -                </j:if>
  -                <!-- extract .war file from distribution -->
  -                <unzip src="${dist.dependency.zip}" dest="${maven.war.src}">
  -                    <!-- This extracts the .war and expands it -->
  -                    <fileset dir=".">
  -                        <include name="**/*.war"/>
  -                        <exclude name="**/${pom.artifactId}.war"/>
  -                    </fileset>
  -                </unzip>
  -                <!-- delete work files from distribution -->
  -                <delete dir="${maven.war.src}/${internal.war.path}"/>
  -            </j:if>
  -        </j:forEach>
  -        <!-- copy application webapp source to stage webapp -->
  -        <copy todir="${maven.war.src}" overwrite="true" filtering="true">
  -            <fileset dir="${war.src}">
  -                <exclude name="**/*CVS*"/>
  -                <exclude name="**/*Entries*"/>
  -                <exclude name="**/*Repository*"/>
  -                <exclude name="**/*Tag*"/>
  -                <exclude name="**/*.log"/>
  -                <exclude name="**/*.log.1"/>
  -            </fileset>
  -        </copy>
  -        <!-- create project .jar file -->
  -        <attainGoal name="java:jar"/>
  -        <!-- copy jar to web app directory -->
  -        <copy file="${maven.build.dir}/${maven.final.name}.jar" todir="${maven.war.src}/WEB-INF/lib"/>
  -        <!-- remove class files -->
  -        <!--delete>
  -            <fileset dir="${maven.build.dir}/classes" includes="**/*.class"/>
  -        </delete-->
  -        <!-- set version tag -->
  -        <attainGoal name="jetspeed:war-version-tag"/>
  -        <!--  merge any property files and copy environment specific local registries -->
  -        <attainGoal name="jetspeed:war-config"/>
  -        <!-- create project .war file -->
  -        <attainGoal name="war:war"/>
  -    </goal>
  -    <!--
  -     ========================================================================
  -       Embed release version tag into bottom navigation
  -     ========================================================================
  -  -->
  -    <goal name="jetspeed:war-version-tag" description="Updates release version tag shown in the bottom navigation">
  -        <replace file="${maven.war.src}/WEB-INF/templates/vm/navigations/html/bottom.vm" token="(release)" value="${pom.currentVersion}"/>
  -    </goal>
  -    <!--
  -     ========================================================================
  -       Override jetspeed property files and add local registries
  -     ========================================================================
  -  -->
  -    <goal name="jetspeed:war-config" description="Override jetspeed property files and add local registries">
  -        <!-- define custom task for oeverriding properties -->
  -        <taskdef name="props_override" classname="org.apache.jetspeed.util.ant.OverwritePropertiesTask">
  -            <classpath>
  -                <path refid="maven.dependency.classpath"/>
  -            </classpath>
  -        </taskdef>
  -        <!-- set proper environment property files -->
  -        <echo>Targeting ${maven.env.name} environment ...</echo>
  -        <j:set var="props.dir" value="${maven.war.src}/WEB-INF/conf"/>
  -        <u:tokenize var="merge.prop.files" delim=",">${maven.merge.properties}</u:tokenize>
  -        <j:forEach items="${merge.prop.files}" var="prop.file">
  -            <j:if test="${maven.jetspeed.debug == 'true'}">
  -                <echo>[DEBUG] Merging ${prop.file}</echo>
  -            </j:if>
  -            <j:if test="${maven.env.name != null}">
  -                <j:if test="${maven.jetspeed.debug == 'true'}">
  -                    <echo>[DEBUG] Merging ${prop.file} for ${maven.env.name}</echo>
  -                </j:if>
  -                <props_override mergeBaseProperties="${props.dir}/${prop.file}.properties" mergeProperties="${props.dir}/${prop.file}-${maven.env.name}.properties.merge" includesDir="${props.dir}" failonerror="false"/>
  -            </j:if>
  -            <props_override mergeBaseProperties="${props.dir}/${prop.file}.properties" mergeProperties="${props.dir}/${prop.file}.properties.merge" includesDir="${props.dir}" failonerror="false"/>
  -        </j:forEach>
  -        <!-- environment specific local registries -->
  -        <j:if test="${maven.env.name == null}">
  -            <u:tokenize var="local.xreg.files" delim=",">${maven.copy.env.xreg}</u:tokenize>
  -            <j:forEach items="${local.xreg.files}" var="xreg.file">
  -                <j:if test="${maven.jetspeed.debug == 'true'}">
  -                    <echo>[DEBUG] Copying local-${xreg.file} for ${maven.env.name}</echo>
  -                </j:if>
  -                <copy file="${props.dir}/local-${xreg.file}-${maven.env.name}.xreg.copy" toFile="${props.dir}/local-${xreg.file}.xreg" failonerror="false"/>
  -            </j:forEach>
  -        </j:if>
  -        <delete>
  -            <fileset dir="${props.dir}" includes="**/*.properties.merge"/>
  -            <fileset dir="${props.dir}" includes="**/local-*.xreg.copy"/>
  -        </delete>
  -    </goal>
  -    <!-- ================================================================== -->
  -    <!--H O T D E P L O Y   W E B A P P                        -->
  -    <!-- ================================================================== -->
  -    <goal name="jetspeed:hotdeploy" prereqs="java:compile" description="Hot deploys webapp classes on a local server">
  -        <attainGoal name="jetspeed:hotdeploy-config"/>
  -        <j:if test="${maven.jetspeed.debug == 'true'}">
  -            <echo>[DEBUG] maven.src.dir = ${maven.src.dir}</echo>
  -            <echo>[DEBUG] maven.war.src = ${maven.war.src}</echo>
  -            <echo>[DEBUG] maven.build.dir = ${maven.build.dir}</echo>
  -            <echo>[DEBUG] maven.war.build.dir = ${maven.war.build.dir}</echo>
  -        </j:if>
  -        <copy todir="${maven.war.appserver.home}/webapps/${pom.artifactId}/WEB-INF/classes">
  -            <fileset dir="${maven.build.dir}/classes">
  -                <!-- Do not include test files in the runtime jar -->
  -                <exclude name="**/Test*.*"/>
  -                <exclude name="**/test*.*"/>
  -                <!-- Also exclude the test cactus.properties file -->
  -                <exclude name="cactus.properties"/>
  -            </fileset>
  -        </copy>
  -        <copy todir="${maven.war.appserver.home}/webapps/${pom.artifactId}">
  -            <fileset dir="./stage/webapp">
  -                <exclude name="**/*.properties.merge"/>
  -            </fileset>
  -        </copy>
  -    </goal>
  -
  -    <goal name="jetspeed:hotdeploy-config"  description="Config Hot deploys webapp classes on a local server">
  -    </goal>
  -
  -    <!--
  -     ========================================================================
  -       Create the Jetspeed WAR
  -     ========================================================================
  -  -->
  -    <goal name="jetspeed:overlay" description="Overlay a vanilla Jetspeed War file on your existing code.">
  -        <!-- this seems required to setup the plugin context -->
  -        <attainGoal name="war:init"/>
  -        <j:set var="maven.jetspeed.prewar.dir" value="${pom.getPluginContext('maven-war-plugin').getVariable('maven.war.build.dir')}"/>
  -        <available file="${maven.jetspeed.prewar.dir}/${pom.artifactId}.war" property="maven.jetspeed.prewar.exists"/>
  -        <j:choose>
  -            <j:when test="${maven.jetspeed.prewar.exists}">
  -                <!-- Expand the project war -->
  -                <unwar src="${maven.jetspeed.prewar.dir}/${pom.artifactId}.war" dest="${maven.jetspeed.build.dir}/${pom.artifactId}"/>
  -                <attainGoal name="jetspeed:webapp-update"/>
  -                <!-- delete the war because it no longer reflects the expanded webapp -->
  -                <delete file="${maven.jetspeed.prewar.dir}/${pom.artifactId}.war"/>
  -            </j:when>
  -            <j:otherwise>
  -                <available file="${maven.jetspeed.prewar.dir}/${pom.artifactId}/WEB-INF" type="dir" property="maven.jetspeed.prewebapp.exists"/>
  -                <j:choose>
  -                    <j:when test="${maven.jetspeed.prewebapp.exists}">
  -                        <copy todir="${maven.jetspeed.build.dir}/${pom.artifactId}">
  -                            <fileset dir="${maven.jetspeed.prewar.dir}/${pom.artifactId}"/>
  -                        </copy>
  -                        <attainGoal name="jetspeed:webapp-update"/>
  -                    </j:when>
  -                    <j:otherwise>
  -                        <echo>
  -              Either a war or a webapp must exist. Please call the War plugin
  -              first.
  -            </echo>
  -                    </j:otherwise>
  -                </j:choose>
  -            </j:otherwise>
  -        </j:choose>
  -    </goal>
  -    <goal name="jetspeed:webapp-update">
  -        <unwar src="${maven.jetspeed.vanilla.war}" dest="${maven.jetspeed.build.dir}/${pom.artifactId}" overwrite="true"/>
  -        <attainGoal name="jetspeed:merge-properties"/>
  -    </goal>
  -    <goal name="jetspeed:merge-properties" description="Merge properties into vanilla property files">
  -        <taskdef name="overwriteproperties" classname="org.apache.jetspeed.util.ant.OverwritePropertiesTask">
  -            <classpath>
  -                <path refid="maven.dependency.classpath"/>
  -            </classpath>
  -        </taskdef>
  -        <echo> merge_jrp required </echo>
  -        <overwriteproperties mergeBaseProperties="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/JetspeedResources.properties" mergeProperties="${maven.jetspeed.merge.dir}/MergeJetspeedResources.properties" includesDir="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/"/>
  -        <echo> merge_security required </echo>
  -        <overwriteproperties mergeBaseProperties="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/JetspeedSecurity.properties" mergeProperties="${maven.jetspeed.merge.dir}/MergeJetspeedSecurity.properties" includesDir="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/"/>
  -        <echo> merge_trp required </echo>
  -        <overwriteproperties mergeBaseProperties="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/TurbineResources.properties" mergeProperties="${maven.jetspeed.merge.dir}/MergeTurbineResources.properties" includesDir="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/"/>
  -        <echo> merge_torque required </echo>
  -        <overwriteproperties mergeBaseProperties="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/Torque.properties" mergeProperties="${maven.jetspeed.merge.dir}/MergeTorque.properties" includesDir="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/"/>
  -    </goal>
  -    
  -    <!-- ================================================================== -->
  -    <!-- D E P L O Y   W E B A P P                                          -->
  -    <!-- ================================================================== -->
  -    <goal name="jetspeed:deploy" prereqs="jetspeed:war" description="Simple deploy of entire webapp to app server">
  -        <j:if test="${maven.jetspeed.debug == 'true'}"> 
  -            <echo>[DEBUG] maven.src.dir = ${maven.src.dir}</echo>
  -            <echo>[DEBUG] maven.war.src = ${maven.war.src}</echo>
  -            <echo>[DEBUG] maven.build.dir = ${maven.build.dir}</echo>
  -            <echo>[DEBUG] pom.artificactId = ${pom.artifactId}</echo>
  -        </j:if>  
  -        <delete dir="${maven.war.appserver.home}/webapps/${pom.artifactId}"/> 
  -        <copy  file="${maven.build.dir}/${pom.artifactId}.war" todir="${maven.war.appserver.home}/webapps/">
  -        </copy>        
  -        <unwar src="${maven.war.appserver.home}/webapps/${pom.artifactId}.war" dest="${maven.war.appserver.home}/webapps/${pom.artifactId}"/>
  -    </goal>
  -    
  -    <define:taglib uri="jetspeed">
  -    <!--
  -     |
  -     | @template
  -     |
  -     -->
  -    <define:tag name="generate">
  -      <!-- Get the template -->
  -      <!-- create a temporary variable with no dots in the name to get around a jexl bug -->
  -      <j:set var="presettemplate" value="${template}"/>
  -      <j:if test="${empty(presettemplate)}">
  -        <i:ask question="${maven.jetspeed.genapp.prompt.template}" answer="template" default="${maven.jetspeed.genapp.default.template}"/>
  -      </j:if>
  -      
  -      <!-- If template is in the user's home directory, use it -->    
  -      <u:available file="${user.home}/.maven/template/${template}">
  -        <j:set var="maven.jetspeed.genapp.template.dir" value="${user.home}/.maven/template/${template}"/>
  -      </u:available>
  -      
  -      <j:set var="currenttemplatedir" value="${maven.jetspeed.genapp.template.dir}"/>
  -      <j:if test="${empty(currenttemplatedir)}">
  -        <!-- The template was not found in user.home, check in the plugin resources -->
  -        <u:available file="${plugin.resources}/${template}">
  -          <j:set var="maven.jetspeed.genapp.template.dir" value="${plugin.resources}/${template}"/>
  -        </u:available>
  -      </j:if>
  -      
  -      <j:set var="currenttemplatedir" value="${maven.jetspeed.genapp.template.dir}"/>
  -      <j:if test="${empty(currenttemplatedir)}">
  -        <fail>
  -          Unable to locate a template named ${template}
  -        </fail>
  -      </j:if>
  -      
  -      <!-- Ensure that the template has a template-resources directory and use it -->
  -      <u:available file="${maven.jetspeed.genapp.template.dir}/template-resources">
  -        <!-- Set resources dir to the template resources directory -->
  -        <j:set var="maven.jetspeed.genapp.resources" value="${maven.jetspeed.genapp.template.dir}/template-resources"/>
  -      </u:available>
  -  
  -      <!-- Check that we have a template-resources directory, if not the template is broken -->
  -      <j:set var="currenttemplateresources" value="${maven.jetspeed.genapp.resources}"/>
  -      <j:if test="${empty(currenttemplateresources)}">
  -        <fail>
  -          Found a template in ${maven.jetspeed.genapp.template.dir}, but it was broken.
  -        </fail>
  -      </j:if>
  -      
  -      <!-- Load template properties if available -->
  -      <u:available file="${maven.jetspeed.genapp.template.dir}/template.properties">
  -        <u:properties file="${maven.jetspeed.genapp.template.dir}/template.properties"/>
  -      </u:available>
  -      
  -      <!-- Ensure we have a project id, name, and package -->
  -      
  -      <j:set var="presetid" value="${maven.jetspeed.genapp.template.id}"/>
  -      <j:if test="${empty(presetid)}">
  -        <i:ask question="${maven.jetspeed.genapp.prompt.id}" answer="maven.jetspeed.genapp.template.id" default="${maven.jetspeed.genapp.default.id}"/>
  -      </j:if>
  -      
  -      <j:set var="presetname" value="${maven.jetspeed.genapp.template.name}"/>
  -      <j:if test="${empty(presetname)}">
  -        <i:ask question="${maven.jetspeed.genapp.prompt.name}" answer="maven.jetspeed.genapp.template.name" default="${maven.jetspeed.genapp.default.name}"/>
  -      </j:if>
  -      
  -      <j:set var="presetpackage" value="${maven.jetspeed.genapp.template.package}"/>
  -      <j:if test="${empty(presetpackage)}">
  -        <i:ask question="${maven.jetspeed.genapp.prompt.package}" answer="maven.jetspeed.genapp.template.package" default="${maven.jetspeed.genapp.default.package}"/>
  -      </j:if>
  -      
  -      <!-- Turn the specified package into a path -->
  -      <u:replace var="appPath" oldChar="." newChar="/" value="${maven.jetspeed.genapp.template.package}"/>
  -      
  -      <!-- We want to substitute in the id, name, and package name. -->
  -      <filter token="ID" value="${maven.jetspeed.genapp.template.id}"/>
  -      <filter token="NAME" value="${maven.jetspeed.genapp.template.name}"/>
  -      <filter token="PACKAGE" value="${maven.jetspeed.genapp.template.package}"/>
  -  
  -      <!-- split the list of dirs that need repackaged -->
  -      <u:tokenize var="maven.jetspeed.genapp.repackage.split" delim=",">${maven.jetspeed.genapp.repackage}</u:tokenize>
  -  
  -      <!-- copy resources that need repackaged, eg java files -->
  -      <j:forEach var="res" items="${maven.jetspeed.genapp.repackage.split}">
  -        <ant:copy todir="${basedir}/src/${res}/${appPath}" 
  -              filtering="true">
  -          <ant:fileset dir="${maven.jetspeed.genapp.resources}/src/${res}" />
  -        </ant:copy>      
  -      </j:forEach>
  -      
  -      <u:tokenize var="maven.jetspeed.genapp.properties.split" delim=",">${maven.jetspeed.genapp.properties}</u:tokenize>
  -      <!-- copy resources that need repackaged, eg java files -->
  -      <j:forEach var="res" items="${maven.jetspeed.genapp.properties.split}">
  -        <ant:copy todir="${basedir}/src/${res}" 
  -              filtering="true">
  -          <ant:fileset dir="${maven.jetspeed.genapp.resources}/src/${res}" />
  -        </ant:copy>
  -      </j:forEach>
  -  
  -      <!-- copy resources that just need filtered, eg project.xml -->
  -      <ant:copy todir="${basedir}" filtering="true">      
  -        <ant:fileset dir="${maven.jetspeed.genapp.resources}">
  -          <j:forEach var="res" items="${maven.jetspeed.genapp.filter}">
  -            <include name="${res}"/>
  -          </j:forEach>
  -        </ant:fileset>
  -      </ant:copy>
  -  
  -      <!-- copy rest of app unfiltered -->
  -      <ant:copy todir="${basedir}">      
  -        <ant:fileset dir="${maven.jetspeed.genapp.resources}">
  -          <ant:exclude name="src/java"/>
  -          <ant:exclude name="src/test"/>
  -          <j:forEach var="res" items="${maven.jetspeed.genapp.filter}">
  -            <exclude name="${res}"/>
  -          </j:forEach>
  -          <j:forEach var="res" items="${maven.jetspeed.genapp.repackage.split}">
  -            <exclude name="src/${res}/**"/>
  -          </j:forEach>
  -        </ant:fileset>
  -      </ant:copy>
  -      
  -      <!-- Run the specific jelly script for the template -->
  -      <u:available file="${maven.jetspeed.genapp.template.dir}/template.jelly">
  -        <echo>Use template.jelly file present in ${maven.jetspeed.genapp.template.dir}.</echo>
  -        <j:import file="${maven.jetspeed.genapp.template.dir}/template.jelly" inherit="true"/> 
  -      </u:available>
  -    </define:tag>
  -  </define:taglib>
  -  
  -  <goal name="jetspeed:genapp">
  -	<!--<attainGoal name="genapp"/>-->
  -	<jetspeed:generate template="${maven.jetspeed.genapp.template}"/>
  -  </goal>
  -  
  -    
  -</project>
  +<?xml version="1.0"?>
  +<!--
  +Copyright 2004 The Apache Software Foundation
  +
  +Licensed under the Apache License, Version 2.0 (the "License");
  +you may not use this file except in compliance with the License.
  +You may obtain a copy of the License at
  +
  +    http://www.apache.org/licenses/LICENSE-2.0
  +
  +Unless required by applicable law or agreed to in writing, software
  +distributed under the License is distributed on an "AS IS" BASIS,
  +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  +See the License for the specific language governing permissions and
  +limitations under the License.
  +-->
  +<!--
  +  =============================================================================
  +    Jetspeed plugin for Maven.
  +  =============================================================================
  +-->
  +<project 
  +  xmlns:j="jelly:core"
  +  xmlns:i="jelly:interaction"
  +  xmlns:ant="jelly:ant" 
  +  xmlns:define="jelly:define"
  +  xmlns:u="jelly:util"
  +  xmlns:jetspeed="jetspeed">
  +    <!--
  +     ========================================================================
  +       Create the custom WAR from binary distribution
  +     ========================================================================
  +  -->
  +    <goal name="jetspeed:war" description="Create custom .war file based on jetspeed binary distribution">
  +        <j:set var="maven.war.src" value="${war.stage.dir}/webapp"/>
  +        <j:if test="${maven.jetspeed.debug == 'true'}">
  +            <echo>[DEBUG] maven.src.dir = ${maven.src.dir}</echo>
  +            <echo>[DEBUG] maven.war.src = ${maven.war.src}</echo>
  +            <echo>[DEBUG] maven.build.dir = ${maven.build.dir}</echo>
  +            <echo>[DEBUG] maven.war.build.dir = ${maven.war.build.dir}</echo>
  +            <echo>[DEBUG] maven.dependency.classpath = ${maven.dependency.classpath}</echo>
  +        </j:if>
  +        <!-- recreate target area -->
  +        <!--attainGoal name="war:init"/-->
  +        <mkdir dir="${maven.war.src}"/>
  +        <!-- recreate stage area -->
  +        <delete dir="${war.stage.dir}"/>
  +        <mkdir dir="${war.stage.dir}"/>
  +        <!-- copy distribution war to stage directory -->
  +        <j:forEach var="dep" items="${pom.dependencies}">
  +            <j:if test="${dep.getType() == 'distribution'}">
  +                <j:set var="dist.name" value="${dep.getArtifactId()}"/>
  +                <j:set var="internal.war.path" value="${dep.getProperty('dist.native.name')}"/>
  +                <j:set var="internal.war.path" value="${dep.getProperty('dist.native.name')}"/>
  +                <u:tokenize var="parts" delim=":">${dep.getId()}</u:tokenize>
  +                <j:set var="depid" value="${parts[0]}"/>
  +                <j:set var="dist.dependency.zip" value="${maven.repo.local}/${depid}/distributions/${dep.getArtifact()}"/>
  +                <j:if test="${maven.jetspeed.debug == 'true'}">
  +                    <echo>[DEBUG] dist.dependency.zip = ${dist.dependency.zip}</echo>
  +                    <echo>[DEBUG] dist.name = ${dist.name}</echo>
  +                    <echo>[DEBUG] internal.war.path= ${internal.war.path}</echo>
  +                    <echo>[DEBUG] depid= ${depid}</echo>
  +                </j:if>
  +                <!-- extract .war file from distribution -->
  +                <unzip src="${dist.dependency.zip}" dest="${maven.war.src}">
  +                    <!-- This extracts the .war and expands it -->
  +                    <fileset dir=".">
  +                        <include name="**/*.war"/>
  +                        <exclude name="**/${pom.artifactId}.war"/>
  +                    </fileset>
  +                </unzip>
  +                <!-- delete work files from distribution -->
  +                <delete dir="${maven.war.src}/${internal.war.path}"/>
  +            </j:if>
  +        </j:forEach>
  +        <!-- copy application webapp source to stage webapp -->
  +        <copy todir="${maven.war.src}" overwrite="true" filtering="true">
  +            <fileset dir="${war.src}">
  +                <exclude name="**/*CVS*"/>
  +                <exclude name="**/*Entries*"/>
  +                <exclude name="**/*Repository*"/>
  +                <exclude name="**/*Tag*"/>
  +                <exclude name="**/*.log"/>
  +                <exclude name="**/*.log.1"/>
  +            </fileset>
  +        </copy>
  +        <!-- create project .jar file -->
  +        <attainGoal name="java:jar"/>
  +        <!-- copy jar to web app directory -->
  +        <copy file="${maven.build.dir}/${maven.final.name}.jar" todir="${maven.war.src}/WEB-INF/lib"/>
  +        <!-- remove class files -->
  +        <!--delete>
  +            <fileset dir="${maven.build.dir}/classes" includes="**/*.class"/>
  +        </delete-->
  +        <!-- set version tag -->
  +        <attainGoal name="jetspeed:war-version-tag"/>
  +        <!--  merge any property files and copy environment specific local registries -->
  +        <attainGoal name="jetspeed:war-config"/>
  +        <!-- create project .war file -->
  +        <attainGoal name="war:war"/>
  +    </goal>
  +    <!--
  +     ========================================================================
  +       Embed release version tag into bottom navigation
  +     ========================================================================
  +  -->
  +    <goal name="jetspeed:war-version-tag" description="Updates release version tag shown in the bottom navigation">
  +        <replace file="${maven.war.src}/WEB-INF/templates/vm/navigations/html/bottom.vm" token="(release)" value="${pom.currentVersion}"/>
  +    </goal>
  +    <!--
  +     ========================================================================
  +       Override jetspeed property files and add local registries
  +     ========================================================================
  +  -->
  +    <goal name="jetspeed:war-config" description="Override jetspeed property files and add local registries">
  +        <!-- define custom task for oeverriding properties -->
  +        <taskdef name="props_override" classname="org.apache.jetspeed.util.ant.OverwritePropertiesTask">
  +            <classpath>
  +                <path refid="maven.dependency.classpath"/>
  +            </classpath>
  +        </taskdef>
  +        <!-- set proper environment property files -->
  +        <echo>Targeting ${maven.env.name} environment ...</echo>
  +        <j:set var="props.dir" value="${maven.war.src}/WEB-INF/conf"/>
  +        <u:tokenize var="merge.prop.files" delim=",">${maven.merge.properties}</u:tokenize>
  +        <j:forEach items="${merge.prop.files}" var="prop.file">
  +            <j:if test="${maven.jetspeed.debug == 'true'}">
  +                <echo>[DEBUG] Merging ${prop.file}</echo>
  +            </j:if>
  +            <j:if test="${maven.env.name != null}">
  +                <j:if test="${maven.jetspeed.debug == 'true'}">
  +                    <echo>[DEBUG] Merging ${prop.file} for ${maven.env.name}</echo>
  +                </j:if>
  +                <props_override mergeBaseProperties="${props.dir}/${prop.file}.properties" mergeProperties="${props.dir}/${prop.file}-${maven.env.name}.properties.merge" includesDir="${props.dir}" failonerror="false"/>
  +            </j:if>
  +            <props_override mergeBaseProperties="${props.dir}/${prop.file}.properties" mergeProperties="${props.dir}/${prop.file}.properties.merge" includesDir="${props.dir}" failonerror="false"/>
  +        </j:forEach>
  +        <!-- environment specific local registries -->
  +        <j:if test="${maven.env.name == null}">
  +            <u:tokenize var="local.xreg.files" delim=",">${maven.copy.env.xreg}</u:tokenize>
  +            <j:forEach items="${local.xreg.files}" var="xreg.file">
  +                <j:if test="${maven.jetspeed.debug == 'true'}">
  +                    <echo>[DEBUG] Copying local-${xreg.file} for ${maven.env.name}</echo>
  +                </j:if>
  +                <copy file="${props.dir}/local-${xreg.file}-${maven.env.name}.xreg.copy" toFile="${props.dir}/local-${xreg.file}.xreg" failonerror="false"/>
  +            </j:forEach>
  +        </j:if>
  +        <delete>
  +            <fileset dir="${props.dir}" includes="**/*.properties.merge"/>
  +            <fileset dir="${props.dir}" includes="**/local-*.xreg.copy"/>
  +        </delete>
  +    </goal>
  +    <!-- ================================================================== -->
  +    <!--H O T D E P L O Y   W E B A P P                        -->
  +    <!-- ================================================================== -->
  +    <goal name="jetspeed:hotdeploy" prereqs="java:compile" description="Hot deploys webapp classes on a local server">
  +        <attainGoal name="jetspeed:hotdeploy-config"/>
  +        <j:if test="${maven.jetspeed.debug == 'true'}">
  +            <echo>[DEBUG] maven.src.dir = ${maven.src.dir}</echo>
  +            <echo>[DEBUG] maven.war.src = ${maven.war.src}</echo>
  +            <echo>[DEBUG] maven.build.dir = ${maven.build.dir}</echo>
  +            <echo>[DEBUG] maven.war.build.dir = ${maven.war.build.dir}</echo>
  +        </j:if>
  +        <copy todir="${maven.war.appserver.home}/webapps/${pom.artifactId}/WEB-INF/classes">
  +            <fileset dir="${maven.build.dir}/classes">
  +                <!-- Do not include test files in the runtime jar -->
  +                <exclude name="**/Test*.*"/>
  +                <exclude name="**/test*.*"/>
  +                <!-- Also exclude the test cactus.properties file -->
  +                <exclude name="cactus.properties"/>
  +            </fileset>
  +        </copy>
  +        <copy todir="${maven.war.appserver.home}/webapps/${pom.artifactId}">
  +            <fileset dir="./stage/webapp">
  +                <exclude name="**/*.properties.merge"/>
  +            </fileset>
  +        </copy>
  +    </goal>
  +
  +    <goal name="jetspeed:hotdeploy-config"  description="Config Hot deploys webapp classes on a local server">
  +    </goal>
  +
  +    <!--
  +     ========================================================================
  +       Create the Jetspeed WAR
  +     ========================================================================
  +  -->
  +    <goal name="jetspeed:overlay" description="Overlay a vanilla Jetspeed War file on your existing code.">
  +        <!-- this seems required to setup the plugin context -->
  +        <attainGoal name="war:init"/>
  +        <j:set var="maven.jetspeed.prewar.dir" value="${pom.getPluginContext('maven-war-plugin').getVariable('maven.war.build.dir')}"/>
  +        <available file="${maven.jetspeed.prewar.dir}/${pom.artifactId}.war" property="maven.jetspeed.prewar.exists"/>
  +        <j:choose>
  +            <j:when test="${maven.jetspeed.prewar.exists}">
  +                <!-- Expand the project war -->
  +                <unwar src="${maven.jetspeed.prewar.dir}/${pom.artifactId}.war" dest="${maven.jetspeed.build.dir}/${pom.artifactId}"/>
  +                <attainGoal name="jetspeed:webapp-update"/>
  +                <!-- delete the war because it no longer reflects the expanded webapp -->
  +                <delete file="${maven.jetspeed.prewar.dir}/${pom.artifactId}.war"/>
  +            </j:when>
  +            <j:otherwise>
  +                <available file="${maven.jetspeed.prewar.dir}/${pom.artifactId}/WEB-INF" type="dir" property="maven.jetspeed.prewebapp.exists"/>
  +                <j:choose>
  +                    <j:when test="${maven.jetspeed.prewebapp.exists}">
  +                        <copy todir="${maven.jetspeed.build.dir}/${pom.artifactId}">
  +                            <fileset dir="${maven.jetspeed.prewar.dir}/${pom.artifactId}"/>
  +                        </copy>
  +                        <attainGoal name="jetspeed:webapp-update"/>
  +                    </j:when>
  +                    <j:otherwise>
  +                        <echo>
  +              Either a war or a webapp must exist. Please call the War plugin
  +              first.
  +            </echo>
  +                    </j:otherwise>
  +                </j:choose>
  +            </j:otherwise>
  +        </j:choose>
  +    </goal>
  +    <goal name="jetspeed:webapp-update">
  +        <unwar src="${maven.jetspeed.vanilla.war}" dest="${maven.jetspeed.build.dir}/${pom.artifactId}" overwrite="true"/>
  +        <attainGoal name="jetspeed:merge-properties"/>
  +    </goal>
  +    <goal name="jetspeed:merge-properties" description="Merge properties into vanilla property files">
  +        <taskdef name="overwriteproperties" classname="org.apache.jetspeed.util.ant.OverwritePropertiesTask">
  +            <classpath>
  +                <path refid="maven.dependency.classpath"/>
  +            </classpath>
  +        </taskdef>
  +        <echo> merge_jrp required </echo>
  +        <overwriteproperties mergeBaseProperties="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/JetspeedResources.properties" mergeProperties="${maven.jetspeed.merge.dir}/MergeJetspeedResources.properties" includesDir="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/"/>
  +        <echo> merge_security required </echo>
  +        <overwriteproperties mergeBaseProperties="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/JetspeedSecurity.properties" mergeProperties="${maven.jetspeed.merge.dir}/MergeJetspeedSecurity.properties" includesDir="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/"/>
  +        <echo> merge_trp required </echo>
  +        <overwriteproperties mergeBaseProperties="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/TurbineResources.properties" mergeProperties="${maven.jetspeed.merge.dir}/MergeTurbineResources.properties" includesDir="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/"/>
  +        <echo> merge_torque required </echo>
  +        <overwriteproperties mergeBaseProperties="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/Torque.properties" mergeProperties="${maven.jetspeed.merge.dir}/MergeTorque.properties" includesDir="${maven.jetspeed.build.dir}/${pom.artifactId}/WEB-INF/conf/"/>
  +    </goal>
  +    
  +    <!-- ================================================================== -->
  +    <!-- D E P L O Y   W E B A P P                                          -->
  +    <!-- ================================================================== -->
  +    <goal name="jetspeed:deploy" prereqs="jetspeed:war" description="Simple deploy of entire webapp to app server">
  +        <j:if test="${maven.jetspeed.debug == 'true'}"> 
  +            <echo>[DEBUG] maven.src.dir = ${maven.src.dir}</echo>
  +            <echo>[DEBUG] maven.war.src = ${maven.war.src}</echo>
  +            <echo>[DEBUG] maven.build.dir = ${maven.build.dir}</echo>
  +            <echo>[DEBUG] pom.artificactId = ${pom.artifactId}</echo>
  +        </j:if>  
  +        <delete dir="${maven.war.appserver.home}/webapps/${pom.artifactId}"/> 
  +        <copy  file="${maven.build.dir}/${pom.artifactId}.war" todir="${maven.war.appserver.home}/webapps/">
  +        </copy>        
  +        <unwar src="${maven.war.appserver.home}/webapps/${pom.artifactId}.war" dest="${maven.war.appserver.home}/webapps/${pom.artifactId}"/>
  +    </goal>
  +    
  +    <define:taglib uri="jetspeed">
  +    <!--
  +     |
  +     | @template
  +     |
  +     -->
  +    <define:tag name="generate">
  +      <!-- Get the template -->
  +      <!-- create a temporary variable with no dots in the name to get around a jexl bug -->
  +      <j:set var="presettemplate" value="${template}"/>
  +      <j:if test="${empty(presettemplate)}">
  +        <i:ask question="${maven.jetspeed.genapp.prompt.template}" answer="template" default="${maven.jetspeed.genapp.default.template}"/>
  +      </j:if>
  +      
  +      <!-- If template is in the user's home directory, use it -->    
  +      <u:available file="${user.home}/.maven/template/${template}">
  +        <j:set var="maven.jetspeed.genapp.template.dir" value="${user.home}/.maven/template/${template}"/>
  +      </u:available>
  +      
  +      <j:set var="currenttemplatedir" value="${maven.jetspeed.genapp.template.dir}"/>
  +      <j:if test="${empty(currenttemplatedir)}">
  +        <!-- The template was not found in user.home, check in the plugin resources -->
  +        <u:available file="${plugin.resources}/${template}">
  +          <j:set var="maven.jetspeed.genapp.template.dir" value="${plugin.resources}/${template}"/>
  +        </u:available>
  +      </j:if>
  +      
  +      <j:set var="currenttemplatedir" value="${maven.jetspeed.genapp.template.dir}"/>
  +      <j:if test="${empty(currenttemplatedir)}">
  +        <fail>
  +          Unable to locate a template named ${template}
  +        </fail>
  +      </j:if>
  +      
  +      <!-- Ensure that the template has a template-resources directory and use it -->
  +      <u:available file="${maven.jetspeed.genapp.template.dir}/template-resources">
  +        <!-- Set resources dir to the template resources directory -->
  +        <j:set var="maven.jetspeed.genapp.resources" value="${maven.jetspeed.genapp.template.dir}/template-resources"/>
  +      </u:available>
  +  
  +      <!-- Check that we have a template-resources directory, if not the template is broken -->
  +      <j:set var="currenttemplateresources" value="${maven.jetspeed.genapp.resources}"/>
  +      <j:if test="${empty(currenttemplateresources)}">
  +        <fail>
  +          Found a template in ${maven.jetspeed.genapp.template.dir}, but it was broken.
  +        </fail>
  +      </j:if>
  +      
  +      <!-- Load template properties if available -->
  +      <u:available file="${maven.jetspeed.genapp.template.dir}/template.properties">
  +        <u:properties file="${maven.jetspeed.genapp.template.dir}/template.properties"/>
  +      </u:available>
  +      
  +      <!-- Ensure we have a project id, name, and package -->
  +      
  +      <j:set var="presetid" value="${maven.jetspeed.genapp.template.id}"/>
  +      <j:if test="${empty(presetid)}">
  +        <i:ask question="${maven.jetspeed.genapp.prompt.id}" answer="maven.jetspeed.genapp.template.id" default="${maven.jetspeed.genapp.default.id}"/>
  +      </j:if>
  +      
  +      <j:set var="presetname" value="${maven.jetspeed.genapp.template.name}"/>
  +      <j:if test="${empty(presetname)}">
  +        <i:ask question="${maven.jetspeed.genapp.prompt.name}" answer="maven.jetspeed.genapp.template.name" default="${maven.jetspeed.genapp.default.name}"/>
  +      </j:if>
  +      
  +      <j:set var="presetpackage" value="${maven.jetspeed.genapp.template.package}"/>
  +      <j:if test="${empty(presetpackage)}">
  +        <i:ask question="${maven.jetspeed.genapp.prompt.package}" answer="maven.jetspeed.genapp.template.package" default="${maven.jetspeed.genapp.default.package}"/>
  +      </j:if>
  +      
  +      <!-- Turn the specified package into a path -->
  +      <u:replace var="appPath" oldChar="." newChar="/" value="${maven.jetspeed.genapp.template.package}"/>
  +      
  +      <!-- We want to substitute in the id, name, and package name. -->
  +      <filter token="ID" value="${maven.jetspeed.genapp.template.id}"/>
  +      <filter token="NAME" value="${maven.jetspeed.genapp.template.name}"/>
  +      <filter token="PACKAGE" value="${maven.jetspeed.genapp.template.package}"/>
  +  
  +      <!-- split the list of dirs that need repackaged -->
  +      <u:tokenize var="maven.jetspeed.genapp.repackage.split" delim=",">${maven.jetspeed.genapp.repackage}</u:tokenize>
  +  
  +      <!-- copy resources that need repackaged, eg java files -->
  +      <j:forEach var="res" items="${maven.jetspeed.genapp.repackage.split}">
  +        <ant:copy todir="${basedir}/src/${res}/${appPath}" 
  +              filtering="true">
  +          <ant:fileset dir="${maven.jetspeed.genapp.resources}/src/${res}" />
  +        </ant:copy>      
  +      </j:forEach>
  +      
  +      <u:tokenize var="maven.jetspeed.genapp.properties.split" delim=",">${maven.jetspeed.genapp.properties}</u:tokenize>
  +      <!-- copy resources that need repackaged, eg java files -->
  +      <j:forEach var="res" items="${maven.jetspeed.genapp.properties.split}">
  +        <ant:copy todir="${basedir}/src/${res}" 
  +              filtering="true">
  +          <ant:fileset dir="${maven.jetspeed.genapp.resources}/src/${res}" />
  +        </ant:copy>
  +      </j:forEach>
  +  
  +      <!-- copy resources that just need filtered, eg project.xml -->
  +      <ant:copy todir="${basedir}" filtering="true">      
  +        <ant:fileset dir="${maven.jetspeed.genapp.resources}">
  +          <j:forEach var="res" items="${maven.jetspeed.genapp.filter}">
  +            <include name="${res}"/>
  +          </j:forEach>
  +        </ant:fileset>
  +      </ant:copy>
  +  
  +      <!-- copy rest of app unfiltered -->
  +      <ant:copy todir="${basedir}">      
  +        <ant:fileset dir="${maven.jetspeed.genapp.resources}">
  +          <ant:exclude name="src/java"/>
  +          <ant:exclude name="src/test"/>
  +          <j:forEach var="res" items="${maven.jetspeed.genapp.filter}">
  +            <exclude name="${res}"/>
  +          </j:forEach>
  +          <j:forEach var="res" items="${maven.jetspeed.genapp.repackage.split}">
  +            <exclude name="src/${res}/**"/>
  +          </j:forEach>
  +        </ant:fileset>
  +      </ant:copy>
  +      
  +      <!-- Run the specific jelly script for the template -->
  +      <u:available file="${maven.jetspeed.genapp.template.dir}/template.jelly">
  +        <echo>Use template.jelly file present in ${maven.jetspeed.genapp.template.dir}.</echo>
  +        <j:import file="${maven.jetspeed.genapp.template.dir}/template.jelly" inherit="true"/> 
  +      </u:available>
  +    </define:tag>
  +  </define:taglib>
  +  
  +  <goal name="jetspeed:genapp">
  +	<!--<attainGoal name="genapp"/>-->
  +	<jetspeed:generate template="${maven.jetspeed.genapp.template}"/>
  +  </goal>
  +  
  +    
  +</project>
  
  
  

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