Dateiverwaltung für die WebBox
ulrich
2017-03-14 e3043fddcaf5e3ea4beb022c04d411661a3499bd
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,7 @@
  private ServletContext ctx;
  private HttpServletRequest request;
  
  public String compile(String relPath, List fileNames) throws IOException {
  public List<CompilerIssue> compile(String relPath, List fileNames) throws IOException {
    //Files[] files1 = ... ; // input for first compilation task
    //Files[] files2 = ... ; // input for second compilation task
    
@@ -79,13 +79,16 @@
    Iterable<? extends JavaFileObject> compilationUnits1 = fileManager.getJavaFileObjectsFromFiles(files);
    
    /*
    final Iterable<String> options =
            Arrays.asList(new String[]{"-Xlint",
              /*"-cp", project.getClassPath(),*/
              "-cp", project.getClassPath(),
              "-d", targetDir.getAbsolutePath()
              });
    
    compiler.getTask(null, fileManager, diagnostics, options, null, compilationUnits1).call();
    */
    compiler.getTask(null, fileManager, diagnostics, null, null, compilationUnits1).call();
    /*
    Iterable<? extends JavaFileObject> compilationUnits2
@@ -95,23 +98,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;