Browse Source

Add a failOnNoResources attribute to xslt. PR 46274.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@720862 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 16 years ago
parent
commit
def52dd8af
4 changed files with 66 additions and 4 deletions
  1. +5
    -0
      WHATSNEW
  2. +8
    -0
      docs/manual/CoreTasks/style.html
  3. +20
    -1
      src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
  4. +33
    -3
      src/tests/antunit/taskdefs/xslt-test.xml

+ 5
- 0
WHATSNEW View File

@@ -565,6 +565,11 @@ Other changes:
process proceed if an error occurs.
Bugzilla Report 36260.

* <xslt> has a new attribute failOnNoResources that can be used to
make the build fail/continue if the collection of resources to
transform is empty.
Bugzilla Report 46274.

Changes from Ant 1.7.0 TO Ant 1.7.1
=============================================



+ 8
- 0
docs/manual/CoreTasks/style.html View File

@@ -247,6 +247,14 @@ element which is used to perform Entity and URI resolution.</p>
<em>Since Ant 1.8.0</em>.</td>
<td valign="top" align="center">No, default is true.</td>
</tr>
<tr>
<td valign="top">failOnNoResources</td>
<td valign="top">Whether the build should fail if the nested
resource collection is empty. Note that this attribute has no
effect of <code>failOnError</code> is false.
<em>Since Ant 1.8.0</em>.</td>
<td valign="top" align="center">No, default is true.</td>
</tr>
</table>
<h3>Parameters specified as nested elements</h3>



+ 20
- 1
src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java View File

@@ -190,6 +190,14 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
*/
private boolean failOnError = true;

/**
* Whether the build should fail if the nested resource collection
* is empty.
*
* @since Ant 1.8.0
*/
private boolean failOnNoResources = true;

/**
* Creates a new XSLTProcess Task.
*/
@@ -389,7 +397,9 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
}
} else { // only resource collections, there better be some
if (resources.size() == 0) {
handleError("no resources specified");
if (failOnNoResources) {
handleError("no resources specified");
}
return;
}
}
@@ -576,6 +586,15 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
failOnError = b;
}

/**
* Whether the build should fail if the nested resource collection is empty.
*
* @since Ant 1.8.0
*/
public void setFailOnNoResources(boolean b) {
failOnNoResources = b;
}

/**
* Load processor here instead of in setProcessor - this will be
* called from within execute, so we have access to the latest


+ 33
- 3
src/tests/antunit/taskdefs/xslt-test.xml View File

@@ -91,7 +91,7 @@ undefined='<xsl:value-of select="$undefined"/>'
</au:expectfailure>
</target>

<target name="testTransformationError">
<target name="testTransformationError" depends="setUp">
<au:expectfailure expectedmessage="Fatal error during transformation">
<xslt in="${legacy.dir}/../input.stdin"
out="${output}/out.xml"
@@ -100,7 +100,7 @@ undefined='<xsl:value-of select="$undefined"/>'
</au:expectfailure>
</target>

<target name="testTransformationErrorNoFail">
<target name="testTransformationErrorNoFail" depends="setUp">
<xslt in="${legacy.dir}/../input.stdin"
out="${output}/out.xml"
style="${legacy.dir}/printParams.xsl"
@@ -108,7 +108,7 @@ undefined='<xsl:value-of select="$undefined"/>'
<au:assertFileDoesntExist file="${output}/out.xml"/>
</target>

<target name="testTransformationErrorNoFailOnTransformation">
<target name="testTransformationErrorNoFailOnTransformation" depends="setUp">
<xslt in="${legacy.dir}/../input.stdin"
out="${output}/out.xml"
style="${legacy.dir}/printParams.xsl"
@@ -116,4 +116,34 @@ undefined='<xsl:value-of select="$undefined"/>'
<au:assertFileDoesntExist file="${output}/out.xml"/>
</target>

<target name="testNoResources" depends="setUp">
<au:expectfailure expectedmessage="no resources specified">
<xslt destdir="${output}" style="${legacy.dir}/printParams.xsl"
useImplicitFileset="false">
<fileset dir=".">
<include name="I don't exist"/>
</fileset>
</xslt>
</au:expectfailure>
</target>

<target name="testNoResourcesNoFail" depends="setUp">
<xslt destdir="${output}" style="${legacy.dir}/printParams.xsl"
useImplicitFileset="false"
failOnNoResources="false">
<fileset dir=".">
<include name="I don't exist"/>
</fileset>
</xslt>
</target>

<target name="testNoResourcesNoError" depends="setUp">
<xslt destdir="${output}" style="${legacy.dir}/printParams.xsl"
useImplicitFileset="false"
failOnError="false">
<fileset dir=".">
<include name="I don't exist"/>
</fileset>
</xslt>
</target>
</project>

Loading…
Cancel
Save