Author: mbenson Date: Tue Sep 19 14:58:19 2006 New Revision: 447990 URL: http://svn.apache.org/viewvc?view=rev&rev=447990 Log: Have to fix fix from bug 39407, because a nested resource and a nested resource collection are ambiguous; all resources are resource collections. Added addConfiguredStyle(Resources) for maximum ease of use; user can specify a nested resource e.g. <file> or <url>, or any resource collection known to evaluate to a single result e.g. <fileset file="foo" /> OR <style refid="somesingleelementcollection" /> is supported OOTB. Docs to come.
Modified: ant/core/trunk/src/etc/testcases/taskdefs/style/build.xml ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java Modified: ant/core/trunk/src/etc/testcases/taskdefs/style/build.xml URL: http://svn.apache.org/viewvc/ant/core/trunk/src/etc/testcases/taskdefs/style/build.xml?view=diff&rev=447990&r1=447989&r2=447990 ============================================================================== --- ant/core/trunk/src/etc/testcases/taskdefs/style/build.xml (original) +++ ant/core/trunk/src/etc/testcases/taskdefs/style/build.xml Tue Sep 19 14:58:19 2006 @@ -109,15 +109,18 @@ </target> <target name="testWithStyleAttrAndResource"> - <property name="value" value="myvalue"/> + <!-- also testing style as resources, with refid --> + <file id="xslFile" file="printParams.xsl"/> <xslt in="data.xml" out="${out.dir}/out.xml" style="printParams.xsl"> - <file file="printParams.xsl"/> + <style refid="xslFile" /> </xslt> </target> <target name="testWithFileResource"> <xslt in="data.xml" out="${out.dir}/out.xml"> - <file file="printParams.xsl"/> + <style> + <file file="printParams.xsl"/> + </style> <param name="set" expression="value"/> </xslt> </target> @@ -125,7 +128,9 @@ <target name="testWithUrlResource"> <makeurl file="printParams.xsl" property="printParams.xsl.url"/> <xslt in="data.xml" out="${out.dir}/out.xml"> - <url url="${printParams.xsl.url}"/> + <style> + <url url="${printParams.xsl.url}"/> + </style> <param name="set" expression="value"/> </xslt> </target> @@ -180,4 +185,4 @@ /> <!-- without 'filenameparameter' to check, that the xsl:param is NOT set --> </target> -</project> \ No newline at end of file +</project> Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java?view=diff&rev=447990&r1=447989&r2=447990 ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java Tue Sep 19 14:58:19 2006 @@ -34,6 +34,7 @@ import org.apache.tools.ant.types.ResourceCollection; import org.apache.tools.ant.types.XMLCatalog; import org.apache.tools.ant.types.resources.FileResource; +import org.apache.tools.ant.types.resources.Resources; import org.apache.tools.ant.types.resources.Union; import org.apache.tools.ant.util.FileNameMapper; import org.apache.tools.ant.util.FileUtils; @@ -222,13 +223,25 @@ } /** - * Adds the XSLT stylesheet as a resource - * @param xslResource the stylesheet as a - * [EMAIL PROTECTED] org.apache.tools.ant.types.Resource} + * Add a nested <style> element. + * @param rc the configured Resources object represented as <style>. * @since Ant 1.7 */ - public void addConfigured(Resource xslResource) { - this.xslResource = xslResource; + public void addConfiguredStyle(Resources rc) { + if (rc.size() != 1) { + throw new BuildException("The style element must be specified" + + " with exactly one nested resource."); + } + setXslResource((Resource) rc.iterator().next()); + } + + /** + * API method to set the XSL Resource. + * @param xslResource Resource to set as the stylesheet. + * @since Ant 1.7 + */ + public void setXslResource(Resource xslResource) { + this.xslResource = xslResource; } /** @@ -1204,4 +1217,4 @@ } } -} \ No newline at end of file +} Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java?view=diff&rev=447990&r1=447989&r2=447990 ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java Tue Sep 19 14:58:19 2006 @@ -229,7 +229,8 @@ XSLTProcess xsltTask = new XSLTProcess(); xsltTask.bindToOwner(task); - xsltTask.addConfigured(getStylesheet()); + xsltTask.setXslResource(getStylesheet()); + // acrobatic cast. xsltTask.setIn(((XMLResultAggregator) task).getDestinationFile()); File outputFile = null; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]