Define the taglib before to use it

git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@289269 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
aheritier
2005-09-15 15:49:38 +00:00
parent 077f1fcf7b
commit 2302787a82

View File

@@ -29,6 +29,174 @@
xmlns:u="jelly:util"
xmlns:x="jelly:xml"
xmlns:assert="assert">
<define:taglib uri="plugin">
<define:tag name="uninstall">
<ant:delete verbose="false" failonerror="false">
<ant:fileset dir="${maven.plugin.dir}">
<ant:include name="${name}-*.jar" />
</ant:fileset>
<ant:fileset dir="${maven.plugin.user.dir}">
<ant:include name="${name}-*.jar" />
</ant:fileset>
</ant:delete>
<ant:delete includeEmptyDirs="true" verbose="false" failonerror="false">
<ant:fileset dir="${maven.plugin.unpacked.dir}">
<ant:include name="${name}-*/**" />
</ant:fileset>
</ant:delete>
</define:tag>
<define:tag name="clearCache">
<ant:delete includeEmptyDirs="true" verbose="false" failonerror="false">
<ant:fileset dir="${maven.plugin.unpacked.dir}">
<ant:include name="*.cache"/>
<ant:include name="**/.processed" />
</ant:fileset>
</ant:delete>
</define:tag>
<define:tag name="available">
<!-- Check parameters -->
<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}"/>
<!-- 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)}">
<!-- Remove SNAPSHOT -->
<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: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 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>
</define:taglib>
<define:taglib uri="assert">
<define:tag name="assertFileExists">
<!-- @file : Full file path -->
<!-- @msg : optional message to be displayed -->
<u:file var="fileAsFile" name="${file}"/>
<j:if test="${!(fileAsFile.exists())}">
<ant:fail>${file} does not exist.${msg}</ant:fail>
</j:if>
</define:tag>
<define:tag name="assertFileContains">
<!-- @file : Full file path -->
<!-- @match: the matching value expected -->
<!-- @msg : optional message to be displayed -->
<assert:assertFileExists file="${file}" msg="${msg}"/>
<u:loadText var="fileContent" file="${file}"/>
<j:if test="${fileContent.indexOf(match) lt 0}">
<ant:fail>${file} does not contain string [${match}].${msg}</ant:fail>
</j:if>
</define:tag>
<define:tag name="assertFileNotFound">
<!-- @file : Full file path -->
<!-- @msg : optional message to be displayed -->
<u:file var="fileAsFile" name="${file}"/>
<j:if test="${fileAsFile.exists()}">
<ant:fail>${file} found and not expected.${msg}</ant:fail>
</j:if>
</define:tag>
<define:tag name="assertEquals">
<!-- @expected : the expected value -->
<!-- @value : the actual value -->
<!-- @msg : optional message to be displayed -->
<j:if test="${not(expected.equals(value))}">
<ant:fail>Expected [${expected}] but got [${value}].${msg}</ant:fail>
</j:if>
</define:tag>
</define:taglib>
<j:if test="${bootstrapping == null}">
<plugin:available groupId="maven" artifactId="maven-artifact-plugin" minRelease="1.3" neededBy="maven-plugin-plugin"/>
@@ -336,173 +504,5 @@
/>
</goal>
<define:taglib uri="plugin">
<define:tag name="uninstall">
<ant:delete verbose="false" failonerror="false">
<ant:fileset dir="${maven.plugin.dir}">
<ant:include name="${name}-*.jar" />
</ant:fileset>
<ant:fileset dir="${maven.plugin.user.dir}">
<ant:include name="${name}-*.jar" />
</ant:fileset>
</ant:delete>
<ant:delete includeEmptyDirs="true" verbose="false" failonerror="false">
<ant:fileset dir="${maven.plugin.unpacked.dir}">
<ant:include name="${name}-*/**" />
</ant:fileset>
</ant:delete>
</define:tag>
<define:tag name="clearCache">
<ant:delete includeEmptyDirs="true" verbose="false" failonerror="false">
<ant:fileset dir="${maven.plugin.unpacked.dir}">
<ant:include name="*.cache"/>
<ant:include name="**/.processed" />
</ant:fileset>
</ant:delete>
</define:tag>
<define:tag name="available">
<!-- Check parameters -->
<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}"/>
<!-- 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)}">
<!-- Remove SNAPSHOT -->
<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: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 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>
</define:taglib>
<define:taglib uri="assert">
<define:tag name="assertFileExists">
<!-- @file : Full file path -->
<!-- @msg : optional message to be displayed -->
<u:file var="fileAsFile" name="${file}"/>
<j:if test="${!(fileAsFile.exists())}">
<ant:fail>${file} does not exist.${msg}</ant:fail>
</j:if>
</define:tag>
<define:tag name="assertFileContains">
<!-- @file : Full file path -->
<!-- @match: the matching value expected -->
<!-- @msg : optional message to be displayed -->
<assert:assertFileExists file="${file}" msg="${msg}"/>
<u:loadText var="fileContent" file="${file}"/>
<j:if test="${fileContent.indexOf(match) lt 0}">
<ant:fail>${file} does not contain string [${match}].${msg}</ant:fail>
</j:if>
</define:tag>
<define:tag name="assertFileNotFound">
<!-- @file : Full file path -->
<!-- @msg : optional message to be displayed -->
<u:file var="fileAsFile" name="${file}"/>
<j:if test="${fileAsFile.exists()}">
<ant:fail>${file} found and not expected.${msg}</ant:fail>
</j:if>
</define:tag>
<define:tag name="assertEquals">
<!-- @expected : the expected value -->
<!-- @value : the actual value -->
<!-- @msg : optional message to be displayed -->
<j:if test="${not(expected.equals(value))}">
<ant:fail>Expected [${expected}] but got [${value}].${msg}</ant:fail>
</j:if>
</define:tag>
</define:taglib>
</project>