From e3043fddcaf5e3ea4beb022c04d411661a3499bd Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Tue, 14 Mar 2017 14:27:13 +0000 Subject: [PATCH] Syntax-Check fuer Java, Gutter Marker fuer Fehler, Tooltips fuer Fehlermeldungen --- src/java/de/uhilger/filecms/api/CompileService.java | 41 +++++++++++++++++++++++------------------ 1 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/java/de/uhilger/filecms/api/CompileService.java b/src/java/de/uhilger/filecms/api/CompileService.java index f596dd6..d65fba2 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,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; -- Gitblit v1.9.3