You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/10/03 16:02:48 UTC

svn commit: r1393496 - /cxf/trunk/api/src/main/java/org/apache/cxf/common/util/Compiler.java

Author: dkulp
Date: Wed Oct  3 14:02:48 2012
New Revision: 1393496

URL: http://svn.apache.org/viewvc?rev=1393496&view=rev
Log:
Add some extra diagnostics to the java6 compilation

Modified:
    cxf/trunk/api/src/main/java/org/apache/cxf/common/util/Compiler.java

Modified: cxf/trunk/api/src/main/java/org/apache/cxf/common/util/Compiler.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/common/util/Compiler.java?rev=1393496&r1=1393495&r2=1393496&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/common/util/Compiler.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/common/util/Compiler.java Wed Oct  3 14:02:48 2012
@@ -25,8 +25,11 @@ import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.LinkedList;
 import java.util.List;
 
+import javax.tools.Diagnostic;
+import javax.tools.DiagnosticListener;
 import javax.tools.JavaCompiler;
 import javax.tools.JavaCompiler.CompilationTask;
 import javax.tools.JavaFileObject;
@@ -44,10 +47,19 @@ public class Compiler {
     private String encoding;
     private boolean forceFork = Boolean.getBoolean(Compiler.class.getName() + "-fork");
     private File classpathTmpFile;
+    private List<String> errors = new LinkedList<String>();
+    private List<String> warnings = new LinkedList<String>();
     
     public Compiler() {
     }
     
+    public List<String> getErrors() {
+        return errors;
+    }
+    public List<String> getWarnings() {
+        return warnings;
+    }
+    
     public void setMaxMemory(long l) {
         maxMemory = l;
     }
@@ -181,7 +193,28 @@ public class Compiler {
         
         List<String> args = new ArrayList<String>();
         addArgs(args);
-        CompilationTask task = compiler.getTask(null, fileManager, null, args, null, fileList);
+        DiagnosticListener<JavaFileObject> listener = new DiagnosticListener<JavaFileObject>() {
+            public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
+                switch (diagnostic.getKind()) {
+                case ERROR:
+                    errors.add(diagnostic.toString());
+                    if (verbose) {
+                        System.err.println(diagnostic.toString());
+                    }
+                    break;
+                case WARNING:
+                case MANDATORY_WARNING:
+                    warnings.add(diagnostic.toString());
+                    if (verbose) {
+                        System.err.println(diagnostic.toString());
+                    }
+                    break;
+                default:
+                    break;
+                }   
+            }
+        };
+        CompilationTask task = compiler.getTask(null, fileManager, listener , args, null, fileList);
         Boolean ret = task.call();
         try {
             fileManager.close();
@@ -189,6 +222,7 @@ public class Compiler {
             System.err.print("[ERROR] IOException during compiling.");
             e.printStackTrace();
         }
+        
         return ret;
     }