@@ -50,7 +50,6 @@ public class CompilerAdapter { | |||
private BuildNotifierAdapter currNotifier = null; | |||
private boolean initialized = false; | |||
private boolean structureDirty = true; | |||
private boolean showInfoMessages = false; | |||
// set to false in incremental mode to re-do initial build | |||
private boolean nextBuild = false; | |||
@@ -58,14 +57,7 @@ public class CompilerAdapter { | |||
super(); | |||
} | |||
public void showInfoMessages(boolean show) { // XXX surface in GUI | |||
showInfoMessages = show; | |||
} | |||
public boolean getShowInfoMessages() { | |||
return showInfoMessages; | |||
} | |||
public void nextBuildFresh() { | |||
public void nextBuildFresh() { | |||
if (nextBuild) { | |||
nextBuild = false; | |||
} | |||
@@ -616,15 +608,15 @@ public class CompilerAdapter { | |||
public MessageHandlerAdapter() { | |||
this.taskListManager = Ajde.getDefault().getTaskListManager(); | |||
ignore(IMessage.INFO); | |||
} | |||
public boolean handleMessage(IMessage message) throws AbortException { | |||
IMessage.Kind kind = message.getKind(); | |||
if (kind == IMessage.ABORT) return handleAbort(message); | |||
if (isIgnoring(kind) | |||
|| (!showInfoMessages && IMessage.INFO.equals(kind))) { | |||
if (isIgnoring(kind)) { | |||
return true; | |||
} | |||
} | |||
taskListManager.addSourcelineTask(message); | |||
return true;// return super.handleMessage(message); // also store... | |||
@@ -641,6 +633,9 @@ public class CompilerAdapter { | |||
} | |||
public IMessageHandler getMessageHandler() { | |||
if (messageHandler == null) { | |||
init(); | |||
} | |||
return messageHandler; | |||
} | |||
@@ -74,7 +74,6 @@ public class BuildCancellingTest extends AjdeTestCase { | |||
public void testCancelFirstCompile() { | |||
if (debugTests) System.out.println("\n\n\ntestCancelFirstCompile: Building with LoadsaCode.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(false); | |||
BuildProgMon programmableBPM = new BuildProgMon(); | |||
programmableBPM.cancelOn("compiled:",1); // Force a cancel after the first compile occurs | |||
@@ -105,7 +104,6 @@ public class BuildCancellingTest extends AjdeTestCase { | |||
public void testCancelThirdCompile() { | |||
if (debugTests) System.out.println("\n\n\ntestCancelThirdCompile: Building with LoadsaCode.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(false); | |||
BuildProgMon programmableBPM = new BuildProgMon(); | |||
programmableBPM.cancelOn("compiled:",3); // Force a cancel after the third compile occurs | |||
@@ -135,7 +133,6 @@ public class BuildCancellingTest extends AjdeTestCase { | |||
public void testCancelFirstAspectWeave() { | |||
if (debugTests) System.out.println("\n\n\ntestCancelFirstAspectWeave: Building with LoadsaCode.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(false); | |||
BuildProgMon programmableBPM = new BuildProgMon(); | |||
programmableBPM.cancelOn("woven aspect ",1); // Force a cancel after the first weave aspect occurs | |||
@@ -163,7 +160,6 @@ public class BuildCancellingTest extends AjdeTestCase { | |||
public void testCancelThirdAspectWeave() { | |||
if (debugTests) System.out.println("\n\n\ntestCancelThirdAspectWeave: Building with LoadsaCode.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(false); | |||
BuildProgMon programmableBPM = new BuildProgMon(); | |||
// Force a cancel after the third weave occurs. | |||
@@ -207,7 +203,6 @@ public class BuildCancellingTest extends AjdeTestCase { | |||
public void testCancelFirstClassWeave() { | |||
if (debugTests) System.out.println("testCancelFirstClassWeave: Building with EvenMoreCode.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(false); | |||
BuildProgMon programmableBPM = new BuildProgMon(); | |||
programmableBPM.cancelOn("woven class",1); | |||
@@ -248,7 +243,6 @@ public class BuildCancellingTest extends AjdeTestCase { | |||
public void testCancelSecondClassWeave() { | |||
if (debugTests) System.out.println("testCancelSecondClassWeave: Building with EvenMoreCode.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(false); | |||
BuildProgMon programmableBPM = new BuildProgMon(); | |||
programmableBPM.cancelOn("woven class",2); |
@@ -19,6 +19,7 @@ import java.util.List; | |||
import java.util.Set; | |||
import org.aspectj.ajde.internal.CompilerAdapter; | |||
import org.aspectj.bridge.IMessage; | |||
import org.aspectj.util.FileUtil; | |||
public class ReweavableTestCase extends AjdeTestCase { | |||
@@ -77,7 +78,7 @@ public class ReweavableTestCase extends AjdeTestCase { | |||
public void testNonReweavableCompile() { | |||
if (debugTests) System.out.println("testNonReweavableCompile: Building with NonReweavable1.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.getMessageHandler().dontIgnore(IMessage.INFO); | |||
compilerAdapter.compile((String) openFile("NonReweavable1.lst").getAbsolutePath(),new BPM(),false); | |||
assertFalse("Did not expect to find a message about the weaver operating in reweavable mode", | |||
@@ -115,7 +116,7 @@ public class ReweavableTestCase extends AjdeTestCase { | |||
public void testReweavableCompile() { | |||
if (debugTests) System.out.println("testReweavableCompile: Building with Reweavable1.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.getMessageHandler().dontIgnore(IMessage.INFO); | |||
compilerAdapter.compile((String) openFile("Reweavable1.lst").getAbsolutePath(),new BPM(),false); | |||
assertTrue("Expected a message about operating in reweavable mode, but didn't get one", | |||
@@ -162,7 +163,7 @@ public class ReweavableTestCase extends AjdeTestCase { | |||
public void testReweavableCompressCompile() { | |||
if (debugTests) System.out.println("testReweavableCompressCompile: Building with ReweavableCompress1.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.getMessageHandler().dontIgnore(IMessage.INFO); | |||
compilerAdapter.compile((String) openFile("ReweavableCompress1.lst").getAbsolutePath(),new BPM(),false); | |||
assertTrue("Expected a message about operating in reweavable mode, but didn't get one", | |||
@@ -222,7 +223,7 @@ public class ReweavableTestCase extends AjdeTestCase { | |||
public void testReweavableSimpleCompile() { | |||
if (debugTests) System.out.println("testReweavableSimpleCompile: Building with Reweavable1.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.getMessageHandler().dontIgnore(IMessage.INFO); | |||
compilerAdapter.compile((String) openFile("Reweavable1.lst").getAbsolutePath(),new BPM(),false); | |||
assertTrue("Expected a message about operating in reweavable mode, but didn't get one", | |||
@@ -276,7 +277,7 @@ public class ReweavableTestCase extends AjdeTestCase { | |||
public void testForReweavableSimpleErrorCompile() { | |||
if (debugTests) System.out.println("testForReweavableSimpleErrorCompile: Building with Reweavable2.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.getMessageHandler().dontIgnore(IMessage.INFO); | |||
compilerAdapter.compile((String) openFile("Reweavable1.lst").getAbsolutePath(),new BPM(),false); | |||
assertTrue("Expected a message about operating in reweavable mode, but didn't get one", | |||
@@ -332,7 +333,7 @@ public class ReweavableTestCase extends AjdeTestCase { | |||
public void testErrorScenario2Compile() { | |||
if (debugTests) System.out.println("testErrorScenario2: Building with TJP1.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.getMessageHandler().dontIgnore(IMessage.INFO); | |||
compilerAdapter.compile((String) openFile("TJP1.lst").getAbsolutePath(),new BPM(),false); | |||
assertTrue("Expected a message about operating in reweavable mode, but didn't get one", | |||
@@ -364,7 +365,7 @@ public class ReweavableTestCase extends AjdeTestCase { | |||
public void testWorkingScenario2Compile() { | |||
if (debugTests) System.out.println("testWorkingScenario2: Building with TJP1.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.getMessageHandler().dontIgnore(IMessage.INFO); | |||
compilerAdapter.compile((String) openFile("TJP1.lst").getAbsolutePath(),new BPM(),false); | |||
assertTrue("Expected a message about operating in reweavable mode, but didn't get one", |
@@ -106,7 +106,6 @@ public class ShowWeaveMessagesTestCase extends AjdeTestCase { | |||
public void testWeaveMessagesAdvice() { | |||
if (debugTests) System.out.println("testWeaveMessagesAdvice: Building with One.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.compile((String) openFile("One.lst").getAbsolutePath(),new BPM(),false); | |||
verifyWeavingMessages("advice",true); | |||
} | |||
@@ -120,7 +119,6 @@ public class ShowWeaveMessagesTestCase extends AjdeTestCase { | |||
public void testWeaveMessagesITD() { | |||
if (debugTests) System.out.println("\ntestWeaveMessagesITD: Building with Two.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.compile((String) openFile("Two.lst").getAbsolutePath(),new BPM(),false); | |||
verifyWeavingMessages("itd",true); | |||
} | |||
@@ -132,7 +130,6 @@ public class ShowWeaveMessagesTestCase extends AjdeTestCase { | |||
public void testWeaveMessagesDeclare() { | |||
if (debugTests) System.out.println("\ntestWeaveMessagesDeclare: Building with Three.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.compile((String) openFile("Three.lst").getAbsolutePath(),new BPM(),false); | |||
verifyWeavingMessages("declare1",true); | |||
} | |||
@@ -144,7 +141,6 @@ public class ShowWeaveMessagesTestCase extends AjdeTestCase { | |||
public void testWeaveMessagesDeclareExtends() { | |||
if (debugTests) System.out.println("\ntestWeaveMessagesDeclareExtends: Building with Four.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.compile((String) openFile("Four.lst").getAbsolutePath(),new BPM(),false); | |||
verifyWeavingMessages("declare.extends",true); | |||
} | |||
@@ -155,7 +151,6 @@ public class ShowWeaveMessagesTestCase extends AjdeTestCase { | |||
public void testWeaveMessagesDeclareSoft() { | |||
if (debugTests) System.out.println("\ntestWeaveMessagesDeclareSoft: Building with Five.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.compile((String) openFile("Five.lst").getAbsolutePath(),new BPM(),false); | |||
verifyWeavingMessages("declare.soft",true); | |||
} | |||
@@ -167,7 +162,6 @@ public class ShowWeaveMessagesTestCase extends AjdeTestCase { | |||
if (!LangUtil.is15VMOrGreater()) return; // annotation classes won't be about pre 15 | |||
if (debugTests) System.out.println("\ntestWeaveMessagesDeclareAnnotation: Building with Six.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.compile((String) openFile("Six.lst").getAbsolutePath(),new BPM(),false); | |||
verifyWeavingMessages("declare.annotation",true); | |||
} | |||
@@ -178,7 +172,6 @@ public class ShowWeaveMessagesTestCase extends AjdeTestCase { | |||
public void testWeaveMessagesDeclareAnnotationWeaveInfoOff() { | |||
if (debugTests) System.out.println("\ntestWeaveMessagesDeclareAnnotation: Building with Seven.lst"); | |||
compilerAdapter = new CompilerAdapter(); | |||
compilerAdapter.showInfoMessages(true); | |||
compilerAdapter.compile((String) openFile("Seven.lst").getAbsolutePath(),new BPM(),false); | |||
verifyWeavingMessages("declare.annotationNoWeaveInfo",true); | |||
} |
@@ -75,6 +75,15 @@ public class CountingMessageHandler implements IMessageHandler { | |||
delegate.dontIgnore(kind); | |||
} | |||
/** | |||
* Delegate | |||
* @see org.aspectj.bridge.IMessageHandler#ignore(org.aspectj.bridge.IMessage.Kind) | |||
* @param kind | |||
*/ | |||
public void ignore(IMessage.Kind kind) { | |||
delegate.ignore(kind); | |||
} | |||
/** @return delegate.toString() */ | |||
public String toString() { | |||
return delegate.toString(); | |||
@@ -149,4 +158,5 @@ public class CountingMessageHandler implements IMessageHandler { | |||
if (proxy != null) proxy.reset(); | |||
counters.clear(); | |||
} | |||
} |
@@ -52,6 +52,8 @@ public interface IMessageHandler { | |||
public void dontIgnore(IMessage.Kind kind) { | |||
; | |||
} | |||
public void ignore(IMessage.Kind kind) { | |||
} | |||
}; | |||
/** | |||
@@ -77,4 +79,11 @@ public interface IMessageHandler { | |||
* @param kind | |||
*/ | |||
void dontIgnore(IMessage.Kind kind); | |||
/** | |||
* Allow fine grained configuration after initialization. | |||
* | |||
* @param kind | |||
*/ | |||
void ignore(IMessage.Kind kind); | |||
} |
@@ -369,6 +369,8 @@ public class MessageUtil { | |||
public void dontIgnore(IMessage.Kind kind) { | |||
; | |||
} | |||
public void ignore(Kind kind) { | |||
} | |||
}; | |||
return visitMessages(holder, selector, true, false); | |||
} | |||
@@ -599,6 +601,9 @@ public class MessageUtil { | |||
String text = message.getMessage(); | |||
return ((null != message) && (-1 != text.indexOf(infix))); | |||
} | |||
public void ignore(Kind kind) { | |||
} | |||
} | |||
// ------------------ components to render messages |
@@ -68,6 +68,14 @@ public class MessageWriter implements IMessageHandler { | |||
; | |||
} | |||
/** | |||
* No-op | |||
* @see org.aspectj.bridge.IMessageHandler#ignore(org.aspectj.bridge.IMessage.Kind) | |||
* @param kind | |||
*/ | |||
public void ignore(IMessage.Kind kind) { | |||
} | |||
/** @return null to not print, or message rendering (including newlines) */ | |||
protected String render(IMessage message) { | |||
return message.toString(); |
@@ -67,6 +67,14 @@ public class PinpointingMessageHandler implements IMessageHandler { | |||
public void dontIgnore(Kind kind) { | |||
delegate.dontIgnore(kind); | |||
} | |||
/* (non-Javadoc) | |||
* @see org.aspectj.bridge.IMessageHandler#ignore(org.aspectj.bridge.IMessage.Kind) | |||
*/ | |||
public void ignore(Kind kind) { | |||
delegate.ignore(kind); | |||
} | |||
private static class PinpointedMessage implements IMessage { | |||
@@ -60,4 +60,14 @@ public class DefaultMessageHandler implements IMessageHandler { | |||
} | |||
} | |||
public void ignore(IMessage.Kind kind) { | |||
if (kind.equals(IMessage.WEAVEINFO)) { | |||
showWeaveInfo = false; | |||
} else if (kind.equals(IMessage.DEBUG)) { | |||
isVerbose = false; | |||
} else if (kind.equals(IMessage.WARNING)) { | |||
showWarn = true; | |||
} | |||
} | |||
} |
@@ -122,15 +122,11 @@ public class BuildArgParser extends Main { | |||
// Now jump through firey hoops to turn them on/off | |||
if (handler instanceof CountingMessageHandler) { | |||
IMessageHandler delegate = ((CountingMessageHandler)handler).delegate; | |||
// Without dontIgnore() on the IMessageHandler interface, we have to do this *blurgh* | |||
if (delegate instanceof MessageHandler) { | |||
if (swi) | |||
((MessageHandler)delegate).dontIgnore(IMessage.WEAVEINFO); | |||
else | |||
((MessageHandler)delegate).ignore(IMessage.WEAVEINFO); | |||
} | |||
if (swi) | |||
delegate.dontIgnore(IMessage.WEAVEINFO); | |||
else | |||
delegate.ignore(IMessage.WEAVEINFO); | |||
} | |||
boolean incrementalMode = buildConfig.isIncrementalMode() | |||
|| buildConfig.isIncrementalFileMode(); |
@@ -152,6 +152,14 @@ public class WeaverMessageHandler implements IMessageHandler { | |||
; | |||
} | |||
/** | |||
* No-op | |||
* @see org.aspectj.bridge.IMessageHandler#ignore(org.aspectj.bridge.IMessage.Kind) | |||
* @param kind | |||
*/ | |||
public void ignore(Kind kind) { | |||
} | |||
private int getStartPos(ISourceLocation sLoc,CompilationResult result) { | |||
int pos = 0; | |||
if (sLoc == null) return 0; | |||
@@ -234,5 +242,6 @@ public class WeaverMessageHandler implements IMessageHandler { | |||
IProblem[] retValue = (IProblem[])ret.toArray(new IProblem[]{}); | |||
return retValue; | |||
} | |||
} | |||
@@ -240,7 +240,10 @@ public class AspectJBuilder extends JavaBuilder implements ICompilerAdapterFacto | |||
*/ | |||
public void dontIgnore(IMessage.Kind kind) { | |||
; | |||
} | |||
} | |||
public void ignore(Kind kind) { | |||
} | |||
} | |||
@@ -33,6 +33,7 @@ import org.aspectj.bridge.MessageHandler; | |||
import org.aspectj.bridge.MessageUtil; | |||
import org.aspectj.bridge.ReflectionFactory; | |||
import org.aspectj.bridge.Version; | |||
import org.aspectj.bridge.IMessage.Kind; | |||
import org.aspectj.bridge.context.CompilationAndWeavingContext; | |||
import org.aspectj.util.FileUtil; | |||
import org.aspectj.util.LangUtil; | |||
@@ -657,6 +658,14 @@ public class Main { | |||
return null; | |||
} | |||
} | |||
/** | |||
* No-op | |||
* @see org.aspectj.bridge.IMessageHandler#ignore(org.aspectj.bridge.IMessage.Kind) | |||
* @param kind | |||
*/ | |||
public void ignore(Kind kind) { | |||
} | |||
} | |||
public static class LogModeMessagePrinter extends MessagePrinter { |
@@ -529,4 +529,7 @@ class AbortInterceptor implements IMessageHandler { | |||
public void dontIgnore(Kind kind) { | |||
} | |||
public void ignore(Kind kind) { | |||
} | |||
} |
@@ -89,4 +89,11 @@ public class TestMessageHolder implements IMessageHolder { | |||
} | |||
/* (non-Javadoc) | |||
* @see org.aspectj.bridge.IMessageHandler#ignore(org.aspectj.bridge.IMessage.Kind) | |||
*/ | |||
public void ignore(Kind kind) { | |||
// TODO Auto-generated method stub | |||
} | |||
} |
@@ -2112,6 +2112,12 @@ private static class AntMessageHandler implements IMessageHandler { | |||
*/ | |||
public void dontIgnore(Kind kind) { | |||
} | |||
/* (non-Javadoc) | |||
* @see org.aspectj.bridge.IMessageHandler#ignore(org.aspectj.bridge.IMessage.Kind) | |||
*/ | |||
public void ignore(Kind kind) { | |||
} | |||
} | |||
} |
@@ -207,11 +207,13 @@ public class TesterTest extends TestCase { | |||
; | |||
} | |||
public void ignore(IMessage.Kind kind) { | |||
} | |||
public boolean handleMessage(IMessage message) { | |||
(message.isFailed() ? failures : passes).add(message); | |||
return true; | |||
} | |||
} | |||
} | |||
// /** |
@@ -282,6 +282,10 @@ public class RunStatus implements IRunStatus { | |||
messageHolder.dontIgnore(kind); | |||
} | |||
public void ignore(IMessage.Kind kind) { | |||
messageHolder.ignore(kind); | |||
} | |||
/** | |||
* @see org.aspectj.bridge.IMessageHolder#hasAnyMessage(org.aspectj.bridge.IMessage.Kind, boolean) | |||
*/ |
@@ -24,4 +24,7 @@ public class MessageHandler implements IMessageHandler { | |||
} | |||
public void ignore(IMessage.Kind kind) { | |||
} | |||
} |
@@ -174,6 +174,10 @@ public class ReflectionWorld extends World implements IReflectionWorld { | |||
public void dontIgnore(org.aspectj.bridge.IMessage.Kind kind) { | |||
// empty | |||
} | |||
public void ignore(org.aspectj.bridge.IMessage.Kind kind) { | |||
// empty | |||
} | |||
} | |||
@@ -523,6 +523,12 @@ public class WeavingAdaptor implements IMessageContext { | |||
delegate.dontIgnore(kind); | |||
} | |||
} | |||
public void ignore(Kind kind) { | |||
if (null != kind) { | |||
delegate.ignore(kind); | |||
} | |||
} | |||
private boolean addMessage (IMessage message) { | |||
messages.add(message); | |||
@@ -541,6 +547,7 @@ public class WeavingAdaptor implements IMessageContext { | |||
public void setDelegate (IMessageHandler messageHandler) { | |||
delegate = messageHandler; | |||
} | |||
} | |||
protected class WeavingAdaptorMessageWriter extends MessageWriter { |
@@ -103,6 +103,7 @@ public class AnnotationPatternMatchingTestCase extends TestCase { | |||
} | |||
public boolean isIgnoring(Kind kind) {return false;} | |||
public void dontIgnore(IMessage.Kind kind) {;} | |||
public void ignore(Kind kind) {} | |||
} | |||
public void testReferenceToNonAnnotationType() { |
@@ -311,6 +311,9 @@ public class PointcutParserTest extends TestCase { | |||
public void dontIgnore(Kind kind) { | |||
} | |||
public void ignore(Kind kind) { | |||
} | |||
} | |||
} |