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