From 1f550a4fce54040aa41f6351b0ba1fe1c404652d Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Sat, 18 Mar 2017 16:26:15 +0000
Subject: [PATCH] WebBox-Basis und -Daten-Ordner fuer wbxAdmin in Dateimanager aufgenommen

---
 src/java/de/uhilger/filecms/api/CompileService.java |   56 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 36 insertions(+), 20 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/CompileService.java b/src/java/de/uhilger/filecms/api/CompileService.java
index f596dd6..21f3464 100644
--- a/src/java/de/uhilger/filecms/api/CompileService.java
+++ b/src/java/de/uhilger/filecms/api/CompileService.java
@@ -21,6 +21,7 @@
 import static de.uhilger.filecms.api.FileMgr.HOME_DIR_PATH;
 import static de.uhilger.filecms.api.FileMgr.PUB_DIR_NAME;
 import static de.uhilger.filecms.api.FileMgr.PUB_DIR_PATH;
+import de.uhilger.filecms.data.CompilerIssue;
 import de.uhilger.filecms.data.FileRef;
 import de.uhilger.filecms.web.Initialiser;
 import de.uhilger.transit.web.RequestKontext;
@@ -42,7 +43,6 @@
 import javax.tools.JavaFileObject;
 import javax.tools.StandardJavaFileManager;
 import javax.tools.ToolProvider;
-import org.apache.commons.io.FileUtils;
 
 /**
  *
@@ -54,7 +54,15 @@
   private ServletContext ctx;
   private HttpServletRequest request;
   
-  public String compile(String relPath, List fileNames) throws IOException {
+  /**
+   * 
+   * @param relPath
+   * @param fileNames
+   * @param mode 0 = test, 1 = build
+   * @return
+   * @throws IOException 
+   */
+  public List<CompilerIssue> compile(String relPath, List fileNames, String mode) throws IOException {
     //Files[] files1 = ... ; // input for first compilation task
     //Files[] files2 = ... ; // input for second compilation task
     
@@ -79,13 +87,19 @@
 
     Iterable<? extends JavaFileObject> compilationUnits1 = fileManager.getJavaFileObjectsFromFiles(files);
     
-    final Iterable<String> options =
-            Arrays.asList(new String[]{"-Xlint",
+    
+    
+    if( mode.equals("1")) {
+      final Iterable<String> options = Arrays.asList(new String[]{"-Xlint",
               /*"-cp", project.getClassPath(),*/
               "-d", targetDir.getAbsolutePath()
               });
+      compiler.getTask(null, fileManager, diagnostics, options, null, compilationUnits1).call();
+    } else {
+      compiler.getTask(null, null, diagnostics, null, null, compilationUnits1).call();
+    }     
     
-    compiler.getTask(null, fileManager, diagnostics, options, null, compilationUnits1).call();
+    //compiler.getTask(null, fileManager, diagnostics, null, null, compilationUnits1).call();
 
     /*
     Iterable<? extends JavaFileObject> compilationUnits2
@@ -95,23 +109,25 @@
     */
     fileManager.close();
 
-    StringBuilder msg = new StringBuilder();
-    msg.append("Result of compile to Java bytecode (empty means no error):");
-    for (Diagnostic<? extends JavaFileObject> err : diagnostics.getDiagnostics()) {
-      msg.append('\n');
-      msg.append(err.getKind());
-      msg.append(": ");
-      if (err.getSource() != null) {
-        msg.append(err.getSource().getName());
+    List compileResults = diagnostics.getDiagnostics();
+    List<CompilerIssue> compilerIssues = new ArrayList();
+    Iterator i = compileResults.iterator();
+    while(i.hasNext()) {
+      Object o = i.next();
+      Diagnostic<? extends JavaFileObject> err;
+      if(o instanceof Diagnostic) {
+        err = (Diagnostic) o;
+        CompilerIssue issue = new CompilerIssue();
+        issue.setKind(err.getKind().name());
+        issue.setLineNumber(err.getLineNumber());
+        issue.setMessage(err.getMessage(Locale.GERMANY));
+        issue.setSoureName(err.getSource().getName());
+        compilerIssues.add(issue);
       }
-      msg.append(':');
-      msg.append(err.getLineNumber());
-      msg.append(": ");
-      msg.append(err.getMessage(Locale.GERMANY));
-    }    
-    
-    return msg.toString();
+    }
+    return compilerIssues;
   }
+  
   private File getTargetDir(String relPath) {
     logger.fine(relPath);
     String targetPath = null;

--
Gitblit v1.9.3