Author: aheritier
Date: Thu Sep 15 06:46:37 2005
New Revision: 289231
URL: http://svn.apache.org/viewcvs?rev=289231&view=rev
Log:
remove the use of the jelly's tag util:replace with a string to keep the
compatibility with maven 1.0
Modified:
maven/maven-1/plugins/trunk/plugin/plugin.jelly
maven/maven-1/plugins/trunk/plugin/xdocs/changes.xml
maven/maven-1/plugins/trunk/plugin/xdocs/tags.xml
Modified: maven/maven-1/plugins/trunk/plugin/plugin.jelly
URL:
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/plugin/plugin.jelly?rev=289231&r1=289230&r2=289231&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/plugin/plugin.jelly (original)
+++ maven/maven-1/plugins/trunk/plugin/plugin.jelly Thu Sep 15 06:46:37 2005
@@ -375,63 +375,99 @@
<maven:param-check value="${groupId}" fail="true" message="'groupId' must
be specified"/>
<maven:param-check value="${artifactId}" fail="true" message="'artifactId'
must be specified"/>
<maven:param-check value="${minRelease}" fail="true" message="'minRelease'
must be specified"/>
+ <maven:param-check value="${neededBy}" fail="true" message="'neededBy'
must be specified"/>
<j:set var="pluginToTest" value="${artifactId}"/>
- <j:set var="minReleaseToHave" value="${minRelease}"/>
+
+ <!-- Remove SNAPSHOT -->
+ <j:choose>
+ <j:when test="${minRelease.endsWith('-SNAPSHOT')}">
+ <j:set var="minReleaseToHave"
value="${minRelease.substring(0,minRelease.length()-9)}"/>
+ </j:when>
+ <j:otherwise>
+ <j:set var="minReleaseToHave" value="${minRelease}"/>
+ </j:otherwise>
+ </j:choose>
<maven:get plugin="${pluginToTest}" property="plugin"
var="installedPlugin" />
<!-- Check if the plugin is installed -->
<j:choose>
<j:when test="${!empty(installedPlugin)}">
- <j:set var="installedRelease"
value="${installedPlugin.currentVersion}"/>
<!-- Remove SNAPSHOT -->
- <u:replace var="installedRelease" escapeText="true" old="-SNAPSHOT"
new="">${installedRelease}</u:replace>
- <u:replace var="minReleaseToHave" escapeText="true" old="-SNAPSHOT"
new="">${minReleaseToHave}</u:replace>
- <!-- Tokenify -->
- <u:tokenize var="installedReleaseTokens" delim="."
escapeText="true">${installedRelease}</u:tokenize>
- <u:tokenize var="minReleaseToHaveTokens" delim="."
escapeText="true">${minReleaseToHave}</u:tokenize>
- <j:set var="minReleaseToHaveTokensIter"
value="${minReleaseToHaveTokens.iterator()}"/>
-
- <j:forEach var="numberInstalled" items="${installedReleaseTokens}">
- <j:if test="${!minReleaseToHaveTokens.iterator().hasNext()}">
- <j:set var="testFailed" value="true"/>
- <j:break/>
- </j:if>
- <j:set var="numberToHave"
value="${minReleaseToHaveTokensIter.next()}"/>
- <j:invokeStatic var="numberInstalledInteger"
className="java.lang.Integer" method="valueOf">
- <j:arg value="${numberInstalled}"/>
- </j:invokeStatic>
- <j:invokeStatic var="numberToHaveInteger"
className="java.lang.Integer" method="valueOf">
- <j:arg value="${numberToHave}"/>
- </j:invokeStatic>
- <j:choose>
- <j:when
test="${numberInstalledInteger.compareTo(numberToHaveInteger) lt 0}">
- <!--<echo>${numberInstalledInteger} is less than
${numberToHaveInteger}</echo>-->
+ <j:choose>
+ <j:when
test="${installedPlugin.currentVersion.endsWith('-SNAPSHOT')}">
+ <j:set var="installedRelease"
value="${installedPlugin.currentVersion.substring(0,installedPlugin.currentVersion.length()-9)}"/>
+ </j:when>
+ <j:otherwise>
+ <j:set var="installedRelease"
value="${installedPlugin.currentVersion}"/>
+ </j:otherwise>
+ </j:choose>
+
+ <j:set var="testOk" value="false"/>
+ <j:set var="testFailed" value="false"/>
+
+ <!-- Test strings comparaison -->
+ <j:choose>
+ <j:when test="${!installedRelease.equals(minReleaseToHave)}">
+ <!-- If not equals we use a more complex algorithm -->
+
+ <!-- Tokenify -->
+ <u:tokenize var="installedReleaseTokens" delim="."
escapeText="true">${installedRelease}</u:tokenize>
+ <u:tokenize var="minReleaseToHaveTokens" delim="."
escapeText="true">${minReleaseToHave}</u:tokenize>
+ <j:set var="minReleaseToHaveTokensIter"
value="${minReleaseToHaveTokens.iterator()}"/>
+
+ <j:forEach var="numberInstalled" items="${installedReleaseTokens}">
+ <j:if test="${!minReleaseToHaveTokens.iterator().hasNext()}">
<j:set var="testFailed" value="true"/>
<j:break/>
- </j:when>
- <j:when
test="${numberInstalledInteger.compareTo(numberToHaveInteger) eq 0}">
- <!--<echo>${numberInstalledInteger} is equal than
${numberToHaveInteger}</echo>-->
- </j:when>
- <j:when
test="${numberInstalledInteger.compareTo(numberToHaveInteger) gt 0}">
- <!--<echo>${numberInstalledInteger} is greater than
${numberToHaveInteger}</echo>-->
- <j:break/>
- </j:when>
- </j:choose>
- </j:forEach>
+ </j:if>
+ <j:set var="numberToHave"
value="${minReleaseToHaveTokensIter.next()}"/>
+ <j:invokeStatic var="numberInstalledInteger"
className="java.lang.Integer" method="valueOf">
+ <j:arg value="${numberInstalled}"/>
+ </j:invokeStatic>
+ <j:invokeStatic var="numberToHaveInteger"
className="java.lang.Integer" method="valueOf">
+ <j:arg value="${numberToHave}"/>
+ </j:invokeStatic>
+ <j:choose>
+ <j:when
test="${numberInstalledInteger.compareTo(numberToHaveInteger) lt 0}">
+ <j:set var="errorSentence" value="Actually the plugin
${pluginToTest} v${installedRelease} is installed."/>
+ <j:set var="testFailed" value="true"/>
+ <j:break/>
+ </j:when>
+ <j:when
test="${numberInstalledInteger.compareTo(numberToHaveInteger) eq 0}">
+ </j:when>
+ <j:when
test="${numberInstalledInteger.compareTo(numberToHaveInteger) gt 0}">
+ <j:set var="testOk" value="true"/>
+ <j:break/>
+ </j:when>
+ </j:choose>
+ </j:forEach>
+ </j:when>
+ <j:otherwise>
+ <j:set var="testOk" value="true"/>
+ </j:otherwise>
+ </j:choose>
</j:when>
<j:otherwise>
+ <j:set var="errorSentence" value="Actually the plugin ${pluginToTest}
isn't installed."/>
<j:set var="testFailed" value="true"/>
</j:otherwise>
</j:choose>
+ <j:if test="${!testFailed and !testOk and
minReleaseToHaveTokens.iterator().hasNext()}">
+ <!-- A minor release is missing. For example : 1.10 < 1.10.2 -->
+ <j:set var="errorSentence" value="Actually the plugin ${pluginToTest}
v${installedRelease} is installed."/>
+ <j:set var="testFailed" value="true"/>
+ </j:if>
+
<j:if test="${testFailed}">
<ant:fail>
- -
-
=======================================================================================
- Must have ${pluginToTest} plugin v${minReleaseToHave} installed to use
this version of the plugin.
- Try: maven plugin:download -DgroupId=maven -DartifactId=${pluginToTest}
-Dversion=${minReleaseToHave}
-
=======================================================================================
+-
+===============================================================================
+Must have the plugin ${pluginToTest} v${minReleaseToHave} installed to use
this version of ${neededBy}.
+${errorSentence}
+Try: maven plugin:download -DgroupId=maven -DartifactId=${pluginToTest}
-Dversion=${minReleaseToHave}
+===============================================================================
</ant:fail>
</j:if>
</define:tag>
Modified: maven/maven-1/plugins/trunk/plugin/xdocs/changes.xml
URL:
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/plugin/xdocs/changes.xml?rev=289231&r1=289230&r2=289231&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/plugin/xdocs/changes.xml (original)
+++ maven/maven-1/plugins/trunk/plugin/xdocs/changes.xml Thu Sep 15 06:46:37
2005
@@ -24,7 +24,7 @@
</properties>
<body>
<release version="1.7-SNAPSHOT" date="In SVN">
- <action dev="aheritier" type="add">new plugin:available tag to check if
a minimal release of a plugin is present. (for maven 1.1 only)</action>
+ <action dev="aheritier" type="add">new plugin:available tag to check if
a minimal release of a plugin is present.</action>
</release>
<release version="1.6" date="2005-06-03">
<action dev="vmassol" type="add">Added new
Modified: maven/maven-1/plugins/trunk/plugin/xdocs/tags.xml
URL:
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/plugin/xdocs/tags.xml?rev=289231&r1=289230&r2=289231&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/plugin/xdocs/tags.xml (original)
+++ maven/maven-1/plugins/trunk/plugin/xdocs/tags.xml Thu Sep 15 06:46:37 2005
@@ -73,7 +73,6 @@
</subsection>
<subsection name='available Tag'>
<p>Fails the build if the given plugin does not exist or hasn't the
minimal release number. Otherwise no effect.</p>
- <p><b>Works only with maven 1.1.</b></p>
<table>
<tr><th>Attribute</th><th>Optional?</th><th>Description</th></tr>
<tr>
@@ -90,6 +89,11 @@
<td>minRelease</td>
<td>No</td>
<td>The minimum plugin's release</td>
+ </tr>
+ <tr>
+ <td>neededBy</td>
+ <td>No</td>
+ <td>The name of the plugin or project using this tag. It is used
when the tag displays the error for the user.</td>
</tr>
</table>
</subsection>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]