Author: chatellier Date: 2009-03-06 13:22:06 +0000 (Fri, 06 Mar 2009) New Revision: 464 Modified: lutingenerator/trunk/src/main/java/org/codelutin/generator/GeneratorTask.java Log: Load XSLT tranformer with JDK service loader. Modified: lutingenerator/trunk/src/main/java/org/codelutin/generator/GeneratorTask.java =================================================================== --- lutingenerator/trunk/src/main/java/org/codelutin/generator/GeneratorTask.java 2009-03-06 10:51:39 UTC (rev 463) +++ lutingenerator/trunk/src/main/java/org/codelutin/generator/GeneratorTask.java 2009-03-06 13:22:06 UTC (rev 464) @@ -27,6 +27,7 @@ import java.util.Iterator; import java.util.List; import java.util.Properties; +import java.util.ServiceLoader; import java.util.logging.Level; import java.util.logging.Logger; import java.util.zip.ZipEntry; @@ -456,8 +457,7 @@ // Transformation XSL try { - //AntClassLoader loader = getProject().createClassLoader(classpath); - //loader.setThreadContextLoader(); + String[] jars = classpath.list(); URL[] jarsURL = new URL[jars.length]; for (int i = 0; i < jars.length; i++) { @@ -470,13 +470,17 @@ urlLoader).newInstance(); // FIXME remove hard coded factory name - TransformerFactory tfabrique = TransformerFactory.newInstance( - "org.apache.xalan.processor.TransformerFactoryImpl", - urlLoader); + Iterator<TransformerFactory> itTransformerFactory = + ServiceLoader.load(TransformerFactory.class, urlLoader).iterator(); + if (!itTransformerFactory.hasNext()) { + throw new BuildException("No XLTS Transformer found"); + } + // take first impl found + TransformerFactory transformerFactory = itTransformerFactory.next(); URL uxsl = Resource.getURL(xsl); StreamSource stylesource = new StreamSource(uxsl.openStream()); - Transformer transformer = tfabrique.newTransformer(stylesource); + Transformer transformer = transformerFactory.newTransformer(stylesource); transformer.setParameter("fullPackagePath", properties .getProperty("fullPackagePath")); transformer.setParameter("extraPackages", properties