You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2009/01/29 15:55:31 UTC

svn commit: r738872 - in /ant/core/trunk: WHATSNEW src/main/org/apache/tools/ant/Diagnostics.java

Author: bodewig
Date: Thu Jan 29 14:55:31 2009
New Revision: 738872

URL: http://svn.apache.org/viewvc?rev=738872&view=rev
Log:
Include information about the XSLT processor found (if any) in -diagnostics.  PR 46612.

Modified:
    ant/core/trunk/WHATSNEW
    ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java

Modified: ant/core/trunk/WHATSNEW
URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=738872&r1=738871&r2=738872&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Thu Jan 29 14:55:31 2009
@@ -664,6 +664,10 @@
    using gcj.
    Bugzilla Issue 46617.
 
+ * ant -diagnostics now outputs information about the default XSLT
+   processor.
+   Bugzilla Issue 46612.
+
 Changes from Ant 1.7.0 TO Ant 1.7.1
 =============================================
 

Modified: ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java?rev=738872&r1=738871&r2=738872&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java Thu Jan 29 14:55:31 2009
@@ -27,6 +27,8 @@
 
 import javax.xml.parsers.SAXParserFactory;
 import javax.xml.parsers.SAXParser;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.Transformer;
 import java.io.File;
 import java.io.FilenameFilter;
 import java.io.PrintStream;
@@ -172,7 +174,7 @@
      * what parser are we using.
      * @return the classname of the parser
      */
-    private static String getXmlParserName() {
+    private static String getXMLParserName() {
         SAXParser saxParser = getSAXParser();
         if (saxParser == null) {
             return "Could not create an XML Parser";
@@ -183,6 +185,20 @@
     }
 
     /**
+     * what parser are we using.
+     * @return the classname of the parser
+     */
+    private static String getXSLTProcessorName() {
+        Transformer transformer = getXSLTProcessor();
+        if (transformer == null) {
+            return "Could not create an XSLT Processor";
+        }
+        // check to what is in the classname
+        String processorName = transformer.getClass().getName();
+        return processorName;
+    }
+
+    /**
      * Create a JAXP SAXParser
      * @return parser or null for trouble
      */
@@ -202,10 +218,28 @@
     }
 
     /**
+     * Create a JAXP XSLT Transformer
+     * @return parser or null for trouble
+     */
+    private static Transformer getXSLTProcessor() {
+        TransformerFactory transformerFactory = TransformerFactory.newInstance();
+        if (transformerFactory == null) {
+            return null;
+        }
+        Transformer transformer = null;
+        try {
+            transformer = transformerFactory.newTransformer();
+        } catch (Exception e) {
+            // ignore
+            ignoreThrowable(e);
+        }
+        return transformer;
+    }
+
+    /**
      * get the location of the parser
      * @return path or null for trouble in tracking it down
      */
-
     private static String getXMLParserLocation() {
         SAXParser saxParser = getSAXParser();
         if (saxParser == null) {
@@ -238,6 +272,19 @@
     }
 
     /**
+     * get the location of the parser
+     * @return path or null for trouble in tracking it down
+     */
+    private static String getXSLTProcessorLocation() {
+        Transformer transformer = getXSLTProcessor();
+        if (transformer == null) {
+            return null;
+        }
+        String location = getClassLocation(transformer.getClass());
+        return location;
+    }
+
+    /**
      * ignore exceptions. This is to allow future
      * implementations to log at a verbose level
      * @param thrown
@@ -305,6 +352,9 @@
         header(out, "XML Parser information");
         doReportParserInfo(out);
 
+        header(out, "XSLT Processor information");
+        doReportXSLTProcessorInfo(out);
+
         header(out, "System properties");
         doReportSystemProperties(out);
 
@@ -494,13 +544,23 @@
      * @param out
      */
     private static void doReportParserInfo(PrintStream out) {
-        String parserName = getXmlParserName();
+        String parserName = getXMLParserName();
         String parserLocation = getXMLParserLocation();
         printParserInfo(out, "XML Parser", parserName, parserLocation);
         printParserInfo(out, "Namespace-aware parser", getNamespaceParserName(),
                 getNamespaceParserLocation());
     }
 
+    /**
+     * tell the user about the XSLT processor
+     * @param out
+     */
+    private static void doReportXSLTProcessorInfo(PrintStream out) {
+        String processorName = getXSLTProcessorName();
+        String processorLocation = getXSLTProcessorLocation();
+        printParserInfo(out, "XSLT Processor", processorName, processorLocation);
+    }
+
     private static void printParserInfo(PrintStream out, String parserType, String parserName,
             String parserLocation) {
         if (parserName == null) {