You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by tc...@apache.org on 2005/10/21 01:16:43 UTC
svn commit: r327035 - in
/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci:
compilers/ compilers/eclipse/ compilers/groovy/ compilers/janino/ problems/
Author: tcurdt
Date: Thu Oct 20 16:16:35 2005
New Revision: 327035
URL: http://svn.apache.org/viewcvs?rev=327035&view=rev
Log:
support for the compilation problem handler
Modified:
jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java
jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java
jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java
jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java
jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/problems/CompilationProblemHandler.java
Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java?rev=327035&r1=327034&r2=327035&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java Thu Oct 20 16:16:35 2005
@@ -28,12 +28,6 @@
void setCompilationProblemHandler( final CompilationProblemHandler pHandler );
- // addCompilationProblemHandler( CompilationProblemHandler pHandler );
- // removeCompilationProblemHandler( CompilationProblemHandler pHandler );
-
- // addCompilationProblemListener( CompilationProblemListener pListener );
- // removeCompilationProblemListener( CompilationProblemListener pListener );
-
CompilationResult compile(
final String[] pClazzNames,
final ResourceReader pReader,
Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java?rev=327035&r1=327034&r2=327035&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java Thu Oct 20 16:16:35 2005
@@ -27,6 +27,7 @@
import java.util.Set;
import java.util.StringTokenizer;
import org.apache.commons.jci.compilers.AbstractJavaCompiler;
+import org.apache.commons.jci.problems.CompilationProblem;
import org.apache.commons.jci.readers.ResourceReader;
import org.apache.commons.jci.stores.ResourceStore;
import org.apache.commons.lang.StringUtils;
@@ -235,8 +236,11 @@
final IProblem[] iproblems = result.getProblems();
for (int i = 0; i < iproblems.length; i++) {
final IProblem iproblem = iproblems[i];
- // call handler
- problems.add(new EclipseCompilationProblem(iproblem));
+ final CompilationProblem problem = new EclipseCompilationProblem(iproblem);
+ if (problemHandler != null) {
+ problemHandler.handle(problem);
+ }
+ problems.add(problem);
}
}
if (!result.hasErrors()) {
Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java?rev=327035&r1=327034&r2=327035&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java Thu Oct 20 16:16:35 2005
@@ -7,6 +7,7 @@
import java.util.List;
import org.apache.commons.jci.compilers.AbstractJavaCompiler;
import org.apache.commons.jci.compilers.CompilationResult;
+import org.apache.commons.jci.problems.CompilationProblem;
import org.apache.commons.jci.readers.ResourceReader;
import org.apache.commons.jci.stores.ResourceStore;
import org.apache.commons.logging.Log;
@@ -69,7 +70,11 @@
if (warnings != null) {
for (final Iterator it = warnings.iterator(); it.hasNext();) {
final WarningMessage warning = (WarningMessage) it.next();
- problems.add(new GroovyCompilationProblem(warning));
+ final CompilationProblem problem = new GroovyCompilationProblem(warning);
+ if (problemHandler != null) {
+ problemHandler.handle(problem);
+ }
+ problems.add(problem);
}
}
@@ -77,7 +82,11 @@
if (errors != null) {
for (final Iterator it = errors.iterator(); it.hasNext();) {
final Message message = (Message) it.next();
- problems.add(new GroovyCompilationProblem(message));
+ final CompilationProblem problem = new GroovyCompilationProblem(message);
+ if (problemHandler != null) {
+ problemHandler.handle(problem);
+ }
+ problems.add(problem);
}
}
} catch (CompilationFailedException e) {
Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java?rev=327035&r1=327034&r2=327035&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java Thu Oct 20 16:16:35 2005
@@ -27,6 +27,7 @@
import java.util.Map;
import org.apache.commons.jci.compilers.AbstractJavaCompiler;
import org.apache.commons.jci.compilers.CompilationResult;
+import org.apache.commons.jci.problems.CompilationProblem;
import org.apache.commons.jci.problems.CompilationProblemHandler;
import org.apache.commons.jci.readers.ResourceReader;
import org.apache.commons.jci.stores.ResourceStore;
@@ -55,7 +56,7 @@
private final static Log log = LogFactory.getLog(JaninoJavaCompiler.class);
- private static class CompilingIClassLoader extends IClassLoader {
+ private class CompilingIClassLoader extends IClassLoader {
private final Map types = new HashMap();
private final ResourceReader resourceReader;
@@ -92,12 +93,20 @@
final UnitCompiler uc = new UnitCompiler(unit, this);
uc.setCompileErrorHandler(new ErrorHandler() {
public void handleError(final String pMessage, final Location pOptionalLocation) throws CompileException {
- problems.add(new JaninoCompilationProblem(pOptionalLocation, pMessage, true));
+ final CompilationProblem problem = new JaninoCompilationProblem(pOptionalLocation, pMessage, true);
+ if (problemHandler != null) {
+ problemHandler.handle(problem);
+ }
+ problems.add(problem);
}
});
uc.setWarningHandler(new WarningHandler() {
public void handleWarning(final String pHandle, final String pMessage, final Location pOptionalLocation) {
- problems.add(new JaninoCompilationProblem(pOptionalLocation, pMessage, false));
+ final CompilationProblem problem = new JaninoCompilationProblem(pOptionalLocation, pMessage, false);
+ if (problemHandler != null) {
+ problemHandler.handle(problem);
+ }
+ problems.add(problem);
}
});
log.debug("compile " + className);
Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/problems/CompilationProblemHandler.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/problems/CompilationProblemHandler.java?rev=327035&r1=327034&r2=327035&view=diff
==============================================================================
--- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/problems/CompilationProblemHandler.java (original)
+++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/problems/CompilationProblemHandler.java Thu Oct 20 16:16:35 2005
@@ -17,9 +17,19 @@
/**
+ * A CompilationProblemHandler gets access to a problem
+ * as soon as the problem is available while the
+ * CompilationResult only represents a summary at the
+ * end.
+ * The handler can be used to asynchronously update a
+ * GUI or stop compilation by returning false (e.g.
+ * when a maximum number of erros has been reached)
+ *
+ * NOTE:
+ * has to be supported by the compiler implementation!!
+ *
* @author tcurdt
- *
*/
public interface CompilationProblemHandler {
- void handle( final CompilationProblem pProblem );
+ boolean handle( final CompilationProblem pProblem );
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org