come up with a better name). This provides a workaround for a bug in Xalan-J - the version that gets distributed with JDK 1.4.1. PR: 13859 based on a patch submitted by: Jens Elkner <elkner at linofee.org> git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273545 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -106,6 +106,9 @@ Other changes: | |||||
| * Shipped XML parser is now Xerces 2.2.1 | * Shipped XML parser is now Xerces 2.2.1 | ||||
| * <style> has a new attribute reuseloadedstylesheet to work around a | |||||
| bug in widespread Xalan versions. | |||||
| Changes from Ant 1.5.1Beta1 to 1.5.1 | Changes from Ant 1.5.1Beta1 to 1.5.1 | ||||
| ==================================== | ==================================== | ||||
| @@ -151,6 +151,14 @@ element which is used to perform Entity and URI resolution</p> | |||||
| directories. Default is <code>true</code></td> | directories. Default is <code>true</code></td> | ||||
| <td valign="top" align="center">No</td> | <td valign="top" align="center">No</td> | ||||
| </tr> | </tr> | ||||
| <tr> | |||||
| <td valign="top">reuseloadedstylesheet</td> | |||||
| <td valign="top">Reuse the same transformer when transforming | |||||
| multiple files. If you set this to false, performance will | |||||
| suffer, but you may work around a bug in certain Xalan-J versions. | |||||
| Default is <code>true</code>. <em>Since Ant 1.6</em>.</td> | |||||
| <td valign="top" align="center">No</td> | |||||
| </tr> | |||||
| </table> | </table> | ||||
| <h3>Parameters specified as nested elements</h3> | <h3>Parameters specified as nested elements</h3> | ||||
| <h4>classpath</h4> | <h4>classpath</h4> | ||||
| @@ -157,6 +157,12 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger { | |||||
| */ | */ | ||||
| private Factory factory = null; | private Factory factory = null; | ||||
| /** | |||||
| * whether to reuse Transformer if transforming multiple files. | |||||
| * @since 1.6 | |||||
| */ | |||||
| private boolean reuseLoadedStylesheet = true; | |||||
| /** | /** | ||||
| * Creates a new XSLTProcess Task. | * Creates a new XSLTProcess Task. | ||||
| */ | */ | ||||
| @@ -175,6 +181,19 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger { | |||||
| performDirectoryScan = b; | performDirectoryScan = b; | ||||
| } | } | ||||
| /** | |||||
| * Whether to reuse the transformer instance when transforming | |||||
| * multiple files. | |||||
| * | |||||
| * <p>Setting this to false may get around a bug in certain | |||||
| * Xalan-J version, default is true.</p> | |||||
| * | |||||
| * @since Ant 1.6 | |||||
| */ | |||||
| public void setReuseLoadedStylesheet(boolean b) { | |||||
| reuseLoadedStylesheet = b; | |||||
| } | |||||
| /** | /** | ||||
| * Executes the task. | * Executes the task. | ||||
| * | * | ||||
| @@ -713,7 +732,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger { | |||||
| * @exception BuildException if the stylesheet cannot be loaded. | * @exception BuildException if the stylesheet cannot be loaded. | ||||
| */ | */ | ||||
| protected void configureLiaison(File stylesheet) throws BuildException { | protected void configureLiaison(File stylesheet) throws BuildException { | ||||
| if (stylesheetLoaded) { | |||||
| if (stylesheetLoaded && reuseLoadedStylesheet) { | |||||
| return; | return; | ||||
| } | } | ||||
| stylesheetLoaded = true; | stylesheetLoaded = true; | ||||