morciuch 2003/04/04 11:13:26
Modified: src/plugins-build/jetspeed project.xml plugin.properties
plugin.jelly
Log:
Added a new goal, jetspeed:war, for creating a custom .war using jetspeed's binary
distribution (product of dist:build-bin goal). Work in progress, maven plugin
documentation is not up to date.
Revision Changes Path
1.2 +1 -77 jakarta-jetspeed/src/plugins-build/jetspeed/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/plugins-build/jetspeed/project.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- project.xml 11 Feb 2003 23:32:16 -0000 1.1
+++ project.xml 4 Apr 2003 19:13:26 -0000 1.2
@@ -1,77 +1 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<project>
- <pomVersion>3</pomVersion>
- <id>maven-jetspeed-plugin</id>
- <name>Maven Jetspeed Plug-in</name>
- <currentVersion>1.0-SNAPSHOT</currentVersion>
- <organization>
- <name>Apache Software Foundation</name>
- <url>http://jakarta.apache.org/</url>
-
<logo>http://jakarta.apache.org/turbine/maven/images/jakarta-logo-blue.gif</logo>
- </organization>
- <inceptionYear>2002</inceptionYear>
- <package>org.apache.jetspeed</package>
- <logo>http://jakarta.apache.org/turbine/maven/images/maven.jpg</logo>
-
- <description>
- Plugin for Jetspeed (http://jakarta.apache.org/jetspeed) that
- allows you to build to build a WAR for Cactus (http://jakarta.apache.org/cactus)
- testing
- </description>
-
- <shortDescription>Jetspeed plugin</shortDescription>
-
- <url></url>
- <issueTrackingUrl></issueTrackingUrl>
- <siteAddress>jakarta.apache.org</siteAddress>
- <siteDirectory></siteDirectory>
- <distributionDirectory></distributionDirectory>
-
- <developers>
- <developer>
- <name>David Eric Pugh</name>
- <id>dep4b</id>
- <email>[EMAIL PROTECTED]</email>
- <organization>Upstate</organization>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
- </developers>
-
- <repository>
- <connection>scm:cvs:pserver:[EMAIL
PROTECTED]:/home/cvspublic:jakarta-jetspeed/src/plugins-build/jetspeed/</connection>
-
<url>http://cvs.apache.org/viewcvs/jakarta-jetspeed/src/plugins-build/jetspeed/</url>
- </repository>
-
-
- <build>
- <sourceDirectory>${basedir}/src/main</sourceDirectory>
- <unitTestSourceDirectory>${basedir}/src/test</unitTestSourceDirectory>
-
- <unitTest>
- <includes>
- <include>**/*Test.java</include>
- </includes>
- </unitTest>
-
- <resources>
- <resource>
- <directory>${basedir}/src/plugin-resources</directory>
- <targetPath>plugin-resources</targetPath>
- </resource>
- <resource>
- <directory>${basedir}</directory>
- <includes>
- <include>plugin.jelly</include>
- <include>plugin.properties</include>
- <include>project.properties</include>
- <include>project.xml</include>
- </includes>
- </resource>
- </resources>
-
- </build>
-
-</project>
-
+<?xml version="1.0" encoding="ISO-8859-1"?>
<project>
<pomVersion>3</pomVersion>
<id>maven-jetspeed-plugin</id>
<name>Maven Jetspeed Plug-in</name>
<currentVersion>1.0-SNAPSHOT</currentVersion>
<organization>
<name>Apache Software Foundation</name>
<url>http://jakarta.apache.org/</url>
<logo>http://jakarta.apache.org/turbine/maven/images/jakarta-logo-blue.gif</logo>
</organization>
<inceptionYear>2002</inceptionYear>
<package>org.apache.jetspeed</package>
<logo>http://jakarta.apache.org/turbine/maven/images/maven.jpg</logo>
<description>
Plugin for Jetspeed (http://jakarta.apache.org/jetspeed) that
allows you to build to build a WAR for Cactus (http://jakarta.apache.org/cactus)
testing
</description>
<shortDescription>Jetspeed plugin</shortDescription>
<url/>
<issueTrackingUrl/>
<siteAddress>jakarta.apache.org</siteAddress>
<siteDirectory/>
<distributionDirectory/>
<developers>
<developer>
<name>David Eric Pugh</name>
<id>dep4b</id>
<email>[EMAIL PROTECTED]</email>
<organization>Upstate</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Mark Orciuch</name>
<id>morciuch</id>
<email>[EMAIL PROTECTED]</email>
<organization>Apache</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
</developers>
<repository>
<connection>scm:cvs:pserver:[EMAIL
PROTECTED]:/home/cvspublic:jakarta-jetspeed/src/plugins-build/jetspeed/</connection>
<url>http://cvs.apache.org/viewcvs/jakarta-jetspeed/src/plugins-build/jetspeed/</url>
</repository>
<build>
<sourceDirectory>${basedir}/src/main</sourceDirectory>
<unitTestSourceDirectory>${basedir}/src/test</unitTestSourceDirectory>
<unitTest>
<includes>
<include>**/*Test.java</include>
</includes>
</unitTest>
<resources>
<resource>
<directory>${basedir}/src/plugin-resources</directory>
<targetPath>plugin-resources</targetPath>
</resource>
<resource>
<directory>${basedir}</directory>
<includes>
<include>plugin.jelly</include>
<include>plugin.properties</include>
<include>project.properties</include>
<include>project.xml</include>
</includes>
</resource>
</resources>
</build>
</project>
\ No newline at end of file
1.2 +21 -1 jakarta-jetspeed/src/plugins-build/jetspeed/plugin.properties
Index: plugin.properties
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/plugins-build/jetspeed/plugin.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- plugin.properties 11 Feb 2003 23:32:16 -0000 1.1
+++ plugin.properties 4 Apr 2003 19:13:26 -0000 1.2
@@ -10,4 +10,24 @@
maven.jetspeed.build.dir = ${maven.build.dir}
# Location where the various Merge* merge files are
-maven.jetspeed.merge.dir = ./src/conf/
\ No newline at end of file
+maven.jetspeed.merge.dir = ./src/conf/
+
+# Location of app-specific files to include in the .war file
+war.src = ${basedir}/webapp
+
+# Location where temporary files used for the .war file are stored
+war.stage.dir = ${basedir}/stage
+
+# Target environment (LOCAL,DEV,TEST,PROD, default NONE)
+maven.env.name =
+
+# Comma separated list of property files to merge (default NONE).
+# Extension assumed to be .properties.
+# Filename format when ${maven.env.name} is NOT used:
[property.filename].properties.merge
+# Filename format when ${maven.env.name} is used:
[property.filename]-${maven.env.name}.properties.merge
+maven.merge.properties =
+
+# Comma separated list of environment specific registries to copy (default NONE).
+# Filename format: local-[registry.name]-${maven.env.name}.xreg.copy
+# For example, to copy local-security-${maven.env.name}.xreg.copy to
local-security.xreg, set it to 'security'
+maven.copy.xreg =
1.2 +168 -96 jakarta-jetspeed/src/plugins-build/jetspeed/plugin.jelly
Index: plugin.jelly
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/plugins-build/jetspeed/plugin.jelly,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- plugin.jelly 11 Feb 2003 23:32:16 -0000 1.1
+++ plugin.jelly 4 Apr 2003 19:13:26 -0000 1.2
@@ -1,110 +1,182 @@
<?xml version="1.0"?>
-
<!--
=============================================================================
Jetspeed plugin for Maven.
=============================================================================
-->
-<project xmlns:j="jelly:core"
- >
- <!--
+<project xmlns:j="jelly:core" xmlns:u="jelly:util">
+ <!--
+ ========================================================================
+ 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"/>
+ <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>
+ <!-- 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.getId()}"/>
+ <j:set var="internal.war.path"
value="${dep.getProperty('dist.native.name')}"/>
+ <j:set var="dist.dependency.zip"
value="${maven.repo.local}/${dep.getId()}/distributions/${dep.getArtifact()}"/>
+ <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>
+ <!-- extract .war file from distribution -->
+ <unzip src="${dist.dependency.zip}"
dest="${maven.war.src}">
+ <!-- This only extracts the .war -->
+ <patternset>
+ <!--include name="**/*.war"/-->
+ <include name="**/webapp/*.*"/>
+ </patternset>
+ <!-- This extracts the .war and expands it -->
+ <!--fileset dir=".">
+ <include name="**/*.war"/>
+ <exclude name="**/${pom.id}.war"/>
+ </fileset-->
+ </unzip>
+ <move todir="${maven.war.src}">
+ <fileset
dir="${maven.war.src}/${internal.war.path}/webapp"/>
+ </move>
+ <!-- delete work files from distribution -->
+ <delete dir="${maven.war.src}/${internal.war.path}"/>
+ <!--delete dir="${maven.war.src}/META-INF"/>
+ <delete dir="${maven.war.src}/WEB-INF/lib"/-->
+ </j:if>
+ </j:forEach>
+ <!-- copy application webapp source to stage webapp -->
+ <copy todir="${maven.war.src}" overwrite="true">
+ <fileset dir="${war.src}">
+ <exclude name="**/*CVS*"/>
+ <exclude name="**/*Entries*"/>
+ <exclude name="**/*Repository*"/>
+ <exclude name="**/*Tag*"/>
+ </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">
+ <echo>[DEBUG] Merging ${prop.file}</echo>
+ <j:if test="${maven.env.name == null}">
+ <echo>[DEBUG] Merging ${prop.file} for
${maven.env.name}</echo>
+ <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">
+ <echo>[DEBUG] Copying local-${xreg.file} for
${maven.env.name}</echo>
+ <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>
+ <!--
========================================================================
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>
+ <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>
-
-
+ </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>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]