From a450f233393a9e3297fea633373635d060a3c709 Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Mon, 20 Mar 2017 13:46:41 +0000
Subject: [PATCH] Compile all mitsamt Resultaten

---
 src/java/de/uhilger/filecms/api/CompileService.java |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/CompileService.java b/src/java/de/uhilger/filecms/api/CompileService.java
index ceb507e..b0ce388 100644
--- a/src/java/de/uhilger/filecms/api/CompileService.java
+++ b/src/java/de/uhilger/filecms/api/CompileService.java
@@ -34,6 +34,7 @@
 import javax.tools.JavaFileObject;
 import javax.tools.StandardJavaFileManager;
 import javax.tools.ToolProvider;
+import org.apache.commons.io.FileUtils;
 
 /**
  *
@@ -53,16 +54,27 @@
       DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector();
       StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
       Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromFiles(files);
-      compiler.getTask(null, null, diagnostics, null, null, compilationUnits).call();
+      
+      File buildDir = new File(targetDir.getParentFile(), "build");
+      final Iterable<String> options = Arrays.asList(new String[]{"-Xlint",
+                    /*"-cp", project.getClassPath(),*/
+                    /*
+                      ausgehend von src eins hoeher, dann nach build
+                    */
+                    "-d", buildDir.getAbsolutePath()
+                    });      
+      FileUtils.deleteDirectory(buildDir);
+      buildDir.mkdir();
+      compiler.getTask(null, null, diagnostics, options, null, compilationUnits).call();
       fileManager.close();
-      collectResults(diagnostics, compilerIssues);
+      collectResults(diagnostics, compilerIssues, relPath);
     } catch(Exception ex) {
       logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
     }
     return compilerIssues;
   }
   
-  private void collectResults(DiagnosticCollector<JavaFileObject> diagnostics, List<CompilerIssue> compilerIssues) {
+  private void collectResults(DiagnosticCollector<JavaFileObject> diagnostics, List<CompilerIssue> compilerIssues, String relPath) {
     List compileResults = diagnostics.getDiagnostics();
     Iterator i = compileResults.iterator();
     while (i.hasNext()) {
@@ -74,7 +86,13 @@
         issue.setKind(err.getKind().name());
         issue.setLineNumber(err.getLineNumber());
         issue.setMessage(err.getMessage(Locale.GERMANY));
-        issue.setSoureName(err.getSource().getName());
+        
+        String srcName = err.getSource().getName().replace("\\", "/");
+        String cleanRelPath = relPath.replace(HOME_DIR_NAME + "/", "").replace(PUB_DIR_NAME + "/", "");
+        int pos = srcName.indexOf(cleanRelPath);
+        String className = srcName.substring(pos + cleanRelPath.length());
+        issue.setSourceName(className.replace("/", ".").substring(1));
+        //issue.setSourceName(srcName + "\r\n" + relPath);
         compilerIssues.add(issue);
       }
     }
@@ -142,7 +160,7 @@
     }     
     fileManager.close();
     List<CompilerIssue> compilerIssues = new ArrayList();
-    collectResults(diagnostics, compilerIssues);
+    collectResults(diagnostics, compilerIssues, relPath);
     return compilerIssues;
   }
   

--
Gitblit v1.9.3