You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sn...@apache.org on 2006/06/07 20:22:29 UTC
svn commit: r412476 - in /maven/maven-1/plugins/trunk/war: plugin.jelly
project.xml xdocs/changes.xml
Author: snicoll
Date: Wed Jun 7 11:22:28 2006
New Revision: 412476
URL: http://svn.apache.org/viewvc?rev=412476&view=rev
Log:
MPWAR-47: Specification and Implementation attributes of the manifest are now defined as main attributes.
Modified:
maven/maven-1/plugins/trunk/war/plugin.jelly
maven/maven-1/plugins/trunk/war/project.xml
maven/maven-1/plugins/trunk/war/xdocs/changes.xml
Modified: maven/maven-1/plugins/trunk/war/plugin.jelly
URL: http://svn.apache.org/viewvc/maven/maven-1/plugins/trunk/war/plugin.jelly?rev=412476&r1=412475&r2=412476&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/war/plugin.jelly (original)
+++ maven/maven-1/plugins/trunk/war/plugin.jelly Wed Jun 7 11:22:28 2006
@@ -43,10 +43,16 @@
<!-- Builds a war file -->
<!--==================================================================-->
<goal name="war:war" prereqs="war:webapp" description="Build a war file">
+
+ <j:choose>
+ <j:when test="${pom.currentVersion == null}">
+ <ant:fail>You must define currentVersion in your POM.</ant:fail>
+ </j:when>
+ </j:choose>
<ant:echo>Building WAR ${pom.artifactId}</ant:echo>
- <!-- build dependency list -->
+ <!-- build dependency list -->
<j:forEach var="dep" items="${pom.dependencies}">
<j:if test="${dep.getProperty('war.manifest.classpath')=='true'}">
<j:set var="maven.war.classpath" value="${maven.war.classpath} ${dep.artifact}"/>
@@ -56,6 +62,12 @@
<ant:available property="maven.war.manifest.available"
file="${maven.war.manifest}"/>
+ <j:set var="specificationTitle" value="${pom.shortDescription.trim()}"/>
+ <j:if test="${specificationTitle.length() gt 49}">
+ <ant:echo>Warning: shortDescription is greater than 49 characters - trimming for specification title.</ant:echo>
+ <j:set var="specificationTitle" value="${specificationTitle.substring(0,46)}..."/>
+ </j:if>
+
<ant:mkdir dir="${maven.war.build.dir}" />
<ant:jar
destfile="${maven.war.build.dir}/${maven.war.final.name}"
@@ -73,25 +85,48 @@
</j:if>
<ant:manifest>
+ <ant:attribute name="Built-By" value="${user.name}"/>
+
+ <j:set var="mavenVersion" value="${maven.application.version}"/>
+ <j:if test="${mavenVersion != null}">
+ <ant:attribute name="Maven-Version" value="${mavenVersion}"/>
+ </j:if>
+
<j:set var="classPath" value="${maven.war.classpath}"/>
<j:if test="${!empty(classPath)}">
<ant:attribute name="Class-Path" value="${maven.war.classpath}"/>
</j:if>
- <ant:attribute name="Built-By" value="${user.name}" />
- <ant:section name="${pom.package}">
- <ant:attribute name="Specification-Title" value="${pom.artifactId}" />
- <ant:attribute name="Specification-Version"
- value="${pom.currentVersion}" />
- <ant:attribute name="Specification-Vendor"
- value="${pom.organization.name}" />
- <ant:attribute name="Implementation-Title"
- value="${pom.package}" />
- <ant:attribute name="Implementation-Version"
- value="${pom.currentVersion}" />
- <ant:attribute name="Implementation-Vendor"
- value="${pom.organization.name}" />
- </ant:section>
+ <!-- Remove SNAPSHOT -->
+ <j:choose>
+ <j:when test="${pom.currentVersion.endsWith('-SNAPSHOT')}">
+ <j:invokeStatic className="org.apache.commons.lang.StringUtils" method="substringBeforeLast" var="pomCurrentVersion">
+ <j:arg value="${pom.currentVersion}" type="java.lang.String"/>
+ <j:arg value="-SNAPSHOT" type="java.lang.String"/>
+ </j:invokeStatic>
+ </j:when>
+ <j:otherwise>
+ <j:set var="pomCurrentVersion" value="${pom.currentVersion}"/>
+ </j:otherwise>
+ </j:choose>
+
+ <util:tokenize var="versionItems" delim="." trim="true">${pomCurrentVersion}</util:tokenize>
+ <j:if test="${size(versionItems) > 0}">
+ <j:set var="specificationVersion" value="${versionItems[0]}" />
+ </j:if>
+ <j:if test="${size(versionItems) > 1}">
+ <j:set var="specificationVersion" value="${specificationVersion}.${versionItems[1]}" />
+ </j:if>
+ <j:if test="${size(versionItems) > 2}">
+ <j:set var="specificationVersion" value="${specificationVersion}.${versionItems[2]}" />
+ </j:if>
+
+ <ant:attribute name="Specification-Title" value="${specificationTitle}"/>
+ <ant:attribute name="Specification-Vendor" value="${pom.organization.name}"/>
+ <ant:attribute name="Specification-Version" value="${specificationVersion}"/>
+ <ant:attribute name="Implementation-Title" value="${pom.package}"/>
+ <ant:attribute name="Implementation-Vendor" value="${pom.organization.name}"/>
+ <ant:attribute name="Implementation-Version" value="${pom.currentVersion}"/>
</ant:manifest>
</ant:jar>
Modified: maven/maven-1/plugins/trunk/war/project.xml
URL: http://svn.apache.org/viewvc/maven/maven-1/plugins/trunk/war/project.xml?rev=412476&r1=412475&r2=412476&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/war/project.xml (original)
+++ maven/maven-1/plugins/trunk/war/project.xml Wed Jun 7 11:22:28 2006
@@ -85,5 +85,15 @@
<timezone>-3</timezone>
</developer>
</developers>
- <dependencies/>
+ <dependencies>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.0</version>
+ <url>http://jakarta.apache.org/commons/lang/</url>
+ <properties>
+ <comment>This library is already loaded by maven's core. Be careful to use the same version number as in the core.</comment>
+ </properties>
+ </dependency>
+ </dependencies>
</project>
Modified: maven/maven-1/plugins/trunk/war/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/maven/maven-1/plugins/trunk/war/xdocs/changes.xml?rev=412476&r1=412475&r2=412476&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/war/xdocs/changes.xml (original)
+++ maven/maven-1/plugins/trunk/war/xdocs/changes.xml Wed Jun 7 11:22:28 2006
@@ -25,6 +25,7 @@
</properties>
<body>
<release version="1.6.2-SNAPSHOT" date="in SVN">
+ <action dev="snicoll" type="fix" issue="MPWAR-47">Specification and Implementation attributes of the manifest are now defined as main attributes.</action>
<action dev="snicoll" type="add" issue="MPWAR-43">Aded the ability to customize the Class-Path entry of the manifest</action>
<action dev="snicoll" type="update" issue="MPWAR-49">Added property <code>maven.war.resources.overwrite</code> to control is resources overwrites the ones in the generated webapp directory.</action>
<action dev="snicoll" type="update" issue="MPWAR-37" due-to="Troy Poppe">Added ability to expand properties when copying war resources.</action>