@@ -673,7 +673,7 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor { | |||
private void defineClass(ClassLoader loader, String name, byte[] bytes) { | |||
if (trace.isTraceEnabled()) trace.enter("defineClass",this,new Object[] {loader,name,bytes}); | |||
Object clazz = null; | |||
info("generating class '" + name + "'"); | |||
debug("generating class '" + name + "'"); | |||
try { | |||
//TODO av protection domain, and optimize |
@@ -21,6 +21,7 @@ import org.aspectj.bridge.AbortException; | |||
public class DefaultMessageHandler implements IMessageHandler { | |||
boolean isVerbose = false; | |||
boolean isDebug = false; | |||
boolean showWeaveInfo = false; | |||
boolean showWarn = true; | |||
@@ -43,6 +44,9 @@ public class DefaultMessageHandler implements IMessageHandler { | |||
if (kind.isSameOrLessThan(IMessage.INFO)) { | |||
return !isVerbose; | |||
} | |||
if (kind.isSameOrLessThan(IMessage.DEBUG)) { | |||
return !isDebug; | |||
} | |||
return !showWarn; | |||
} | |||
@@ -35,6 +35,7 @@ public class Options { | |||
private final static String OPTION_noWarnNone = "-warn:none"; | |||
private final static String OPTION_proceedOnError = "-proceedOnError"; | |||
private final static String OPTION_verbose = "-verbose"; | |||
private final static String OPTION_debug = "-debug"; | |||
private final static String OPTION_reweavable = "-Xreweavable";//notReweavable is default for LTW | |||
private final static String OPTION_noinline = "-Xnoinline"; | |||
private final static String OPTION_addSerialVersionUID = "-XaddSerialVersionUID"; | |||
@@ -106,6 +107,8 @@ public class Options { | |||
weaverOption.optionalJoinpoints = arg.substring(OPTIONVALUED_joinpoints.length()).trim(); | |||
} else if (arg.equalsIgnoreCase(OPTION_verbose)) { | |||
weaverOption.verbose = true; | |||
} else if (arg.equalsIgnoreCase(OPTION_debug)) { | |||
weaverOption.debug = true; | |||
} else if (arg.equalsIgnoreCase(OPTION_pinpoint)) { | |||
weaverOption.pinpoint = true; | |||
} else if (arg.startsWith(OPTIONVALUED_messageHandler)) { | |||
@@ -141,6 +144,9 @@ public class Options { | |||
if (weaverOption.verbose) { | |||
weaverOption.messageHandler.dontIgnore(IMessage.INFO); | |||
} | |||
if (weaverOption.debug) { | |||
weaverOption.messageHandler.dontIgnore(IMessage.DEBUG); | |||
} | |||
if (weaverOption.showWeaveInfo) { | |||
weaverOption.messageHandler.dontIgnore(IMessage.WEAVEINFO); | |||
} | |||
@@ -156,6 +162,7 @@ public class Options { | |||
boolean noWarn; | |||
boolean proceedOnError; | |||
boolean verbose; | |||
boolean debug; | |||
boolean notReWeavable = true;//default to notReweavable for LTW (faster) | |||
boolean noInline; | |||
boolean addSerialVersionUID; |
@@ -1,11 +1,13 @@ | |||
<!-- ajc-ant script, not to be used from Ant commant line - see AntSpec --> | |||
<project name="ltw" default="javac.ltw"> | |||
<project name="ltw" default="RunThemAllWithJavacCompiledAndLTW"> | |||
<!-- using this we can debug the forked VM --> | |||
<property | |||
name="jdwp" | |||
value="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/> | |||
<target name="RunThemAllWithJavacCompiledAndLTW" depends="compile:javac, ltw"/> | |||
<target name="compile:javac"> | |||
<!-- compile only javac compilable stuff, exclude the one that needs other dependencies --> | |||
<javac destdir="${aj.sandbox}" classpathref="aj.path" | |||
@@ -68,8 +70,6 @@ | |||
</java> | |||
</target> | |||
<target name="javac.ltw" depends="compile:javac, ltw"/> | |||
<target name="ltw.Aspect2MainTest"> | |||
<!-- javac Aspect2 --> | |||
<javac destdir="${aj.sandbox}" classpathref="aj.path" | |||
@@ -168,7 +168,7 @@ | |||
</java> | |||
</target> | |||
<target name="ltw.oldAspectsDeclared"> | |||
<target name="Compile time aspects declared to ltw weaver"> | |||
<!--Aspects woven at compile time must be declared in an aop.xml file. | |||
If they are not declared, then they will be lost during reweaving--> | |||
@@ -57,9 +57,9 @@ public class TestHelper extends DefaultMessageHandler { | |||
public boolean handleMessage(IMessage message) throws AbortException { | |||
boolean ret = super.handleMessage(message); | |||
if (message.getKind().isSameOrLessThan(IMessage.INFO)) { | |||
; | |||
} else { | |||
if (message.getKind().isSameOrLessThan(IMessage.INFO)); | |||
if (message.getKind().isSameOrLessThan(IMessage.DEBUG)); | |||
else { | |||
// we do exit here since Assert.fail will only trigger a runtime exception that might | |||
// be catched by the weaver anyway | |||
System.err.println("*** Exiting - got a warning/fail/error/abort IMessage"); |
@@ -3,7 +3,7 @@ | |||
<aspects> | |||
<aspect name="ataspectj.EmptyAspect"/> | |||
</aspects> | |||
<weaver options="-XlazyTjp -verbose"> | |||
<weaver options="-XlazyTjp -verbose -debug"> | |||
<dump within="com.foo.bar..*" beforeandafter="true"/> | |||
<include within="com.foo..*"/> | |||
<exclude within="com.foo.bar..*CGLIB*"/> |
@@ -1,5 +1,5 @@ | |||
<aspectj> | |||
<weaver options="-verbose"/> | |||
<weaver options="-verbose -debug"/> | |||
<aspects> | |||
<aspect name="ataspectj.ltwlog.Aspect1"/> | |||
</aspects> |
@@ -1,5 +1,5 @@ | |||
<aspectj> | |||
<weaver options="-showWeaveInfo -verbose"/> | |||
<weaver options="-showWeaveInfo -verbose -debug"/> | |||
<aspects> | |||
<aspect name="ataspectj.ltwlog.Aspect1"/> | |||
</aspects> |
@@ -4,6 +4,6 @@ | |||
<pointcut name="scope" expression="within(Main)"/> | |||
</concrete-aspect> | |||
</aspects> | |||
<weaver options="-verbose"/> | |||
<weaver options="-verbose -debug"/> | |||
</aspectj> | |||
@@ -2,7 +2,7 @@ | |||
<aspects> | |||
<aspect name="EmptyAspect"/> | |||
</aspects> | |||
<weaver options="-verbose"> | |||
<weaver options="-verbose -debug"> | |||
<include within="*1"/> | |||
</weaver> | |||
</aspectj> |
@@ -3,5 +3,5 @@ | |||
<aspect name="Aspect3"/> | |||
</aspects> | |||
<weaver options="-verbose -showWeaveInfo"/> | |||
<weaver options="-verbose -debug -showWeaveInfo"/> | |||
</aspectj> |
@@ -3,5 +3,5 @@ | |||
<aspect name="Aspect3"/> | |||
</aspects> | |||
<weaver options="-verbose -showWeaveInfo -Xlint:warning"/> | |||
<weaver options="-verbose -debug -showWeaveInfo -Xlint:warning"/> | |||
</aspectj> |
@@ -3,5 +3,5 @@ | |||
<aspect name="Aspect3"/> | |||
</aspects> | |||
<weaver options="-verbose -showWeaveInfo -Xlintfile:Xlint-nomatch.properties"/> | |||
<weaver options="-verbose -debug -showWeaveInfo -Xlintfile:Xlint-nomatch.properties"/> | |||
</aspectj> |
@@ -2,7 +2,7 @@ | |||
<suite> | |||
<ajc-test dir="java5/ataspectj" title="RunThemAllWithJavacCompiledAndLTW"> | |||
<ant file="ajc-ant.xml" target="javac.ltw" verbose="true"/> | |||
<ant file="ajc-ant.xml" target="RunThemAllWithJavacCompiledAndLTW" verbose="true"/> | |||
</ajc-test> | |||
<ajc-test dir="java5/ataspectj" title="AjcLTW PerClauseTest -XterminateAfterCompilation"> | |||
@@ -113,8 +113,8 @@ | |||
<line text="info register classloader"/> | |||
<line text="info using"/> | |||
<line text="info register aspect ataspectj.EmptyAspect"/> | |||
<line text="info not weaving 'com.foo.bar.Test$$EnhancerByCGLIB$$12345'"/> | |||
<line text="info weaving 'com.foo.bar.Test'"/> | |||
<line text="debug not weaving 'com.foo.bar.Test$$EnhancerByCGLIB$$12345'"/> | |||
<line text="debug weaving 'com.foo.bar.Test'"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
@@ -182,8 +182,8 @@ | |||
<line text="info register classloader"/> | |||
<line text="info using"/> | |||
<line text="info register aspect ataspectj.ltwlog.Aspect1"/> | |||
<line text="info weaving 'ataspectj.ltwlog.Main'"/> | |||
<line text="info weaving 'ataspectj.ltwlog.Aspect1'"/> | |||
<line text="debug weaving 'ataspectj.ltwlog.Main'"/> | |||
<line text="debug weaving 'ataspectj.ltwlog.Aspect1'"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
@@ -207,9 +207,9 @@ | |||
<line text="info register classloader"/> | |||
<line text="info using"/> | |||
<line text="info register aspect ataspectj.ltwlog.Aspect1"/> | |||
<line text="info weaving 'ataspectj.ltwlog.Main'"/> | |||
<line text="debug weaving 'ataspectj.ltwlog.Main'"/> | |||
<line text="weaveinfo Join point 'method-execution(void ataspectj.ltwlog.Main.target())' in Type 'ataspectj.ltwlog.Main' (Main.java:22) advised by before advice from 'ataspectj.ltwlog.Aspect1' (Aspect1.java)"/> | |||
<line text="info weaving 'ataspectj.ltwlog.Aspect1'"/> | |||
<line text="debug weaving 'ataspectj.ltwlog.Aspect1'"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
@@ -264,7 +264,7 @@ | |||
files="ataspectj/ltwlog/MessageHolder.java,ataspectj/ltwreweavable/MainReweavableLogging.java,ataspectj/ltwreweavable/AspectReweavableLogging.java,ataspectj/ltwreweavable/Advisable.java,ataspectj/ltwreweavable/EmptyAtAspect.java" | |||
options="-1.5" | |||
outjar="main1.jar"/> | |||
<ant file="ajc-ant.xml" target="ltw.oldAspectsDeclared" verbose="true"/> | |||
<ant file="ajc-ant.xml" target="Compile time aspects declared to ltw weaver" verbose="true"/> | |||
</ajc-test> | |||
<ajc-test dir="java5/ataspectj" title="Concrete@Aspect"> |
@@ -6,7 +6,7 @@ | |||
<compile | |||
files="Main.java, Aspect1.aj" | |||
outjar="main1.jar" | |||
options="-showWeaveInfo" | |||
options="-showWeaveInfo -verbose" | |||
> | |||
<message kind="weave" text="method-execution(void Main.test1())' in Type 'Main' (Main.java:17) advised by before advice from 'Aspect1' (Aspect1.aj:16)"/> | |||
</compile> | |||
@@ -14,7 +14,7 @@ | |||
classpath="main1.jar" | |||
files="Aspect2.aj" | |||
outjar="aspect2.jar" | |||
options="-showWeaveInfo" | |||
options="-showWeaveInfo -verbose" | |||
> | |||
</compile> | |||
<run class="Main" ltw="aop-ltwreweavable.xml"> | |||
@@ -227,8 +227,8 @@ | |||
<line text="info AspectJ Weaver Version"/> | |||
<line text="info register classloader"/> | |||
<line text="info using"/> | |||
<line text="info generating class 'ConcreteAspect'"/> | |||
<line text="info weaving 'Main'"/> | |||
<line text="debug generating class 'ConcreteAspect'"/> | |||
<line text="debug weaving 'Main'"/> | |||
<line text="AbstractSuperAspect.before_test1"/> | |||
</stderr> | |||
</run> | |||
@@ -396,7 +396,7 @@ | |||
<line text="info register classloader"/> | |||
<line text="info using"/> | |||
<line text="info register aspect Aspect3"/> | |||
<line text="info weaving 'Main'"/> | |||
<line text="debug weaving 'Main'"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
@@ -419,7 +419,7 @@ | |||
<line text="info using"/> | |||
<line text="info register aspect Aspect3"/> | |||
<line text="can not build thisJoinPoint lazily for this advice"/> | |||
<line text="info weaving 'Main'"/> | |||
<line text="debug weaving 'Main'"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
@@ -442,7 +442,7 @@ | |||
<line text="info using"/> | |||
<line text="info register aspect Aspect3"/> | |||
<line text="can not build thisJoinPoint lazily for this advice"/> | |||
<line text="info weaving 'Main'"/> | |||
<line text="debug weaving 'Main'"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
@@ -465,7 +465,7 @@ | |||
<line text="info using"/> | |||
<line text="info register aspect Aspect3"/> | |||
<line text="can not build thisJoinPoint lazily for this advice"/> | |||
<line text="info weaving 'Main'"/> | |||
<line text="debug weaving 'Main'"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> |
@@ -703,8 +703,8 @@ | |||
<line text="info register classloader org.aspectj.weaver.loadtime.WeavingURLClassLoader"/> | |||
<line text="info using configuration"/> | |||
<line text="info register aspect EmptyAspect"/> | |||
<line text="info weaving"/> | |||
<line text="info not weaving"/> | |||
<line text="debug weaving"/> | |||
<line text="debug not weaving"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> |
@@ -233,17 +233,17 @@ public class WeavingAdaptor implements IMessageContext { | |||
// a valid aspectOf()/hasAspect() generated in them. However - if they are excluded | |||
// (via include/exclude in aop.xml) they really should only get aspectOf()/hasAspect() | |||
// and not be included in the full set of aspects being applied by 'this' weaver | |||
info("weaving '" + name + "'"); | |||
debug("weaving '" + name + "'"); | |||
bytes = getWovenBytes(name, bytes); | |||
} else if (shouldWeaveAnnotationStyleAspect(name, bytes)) { | |||
// an @AspectJ aspect needs to be at least munged by the aspectOf munger | |||
info("weaving '" + name + "'"); | |||
debug("weaving '" + name + "'"); | |||
bytes = getAtAspectJAspectBytes(name, bytes); | |||
} else { | |||
info("not weaving '" + name + "'"); | |||
debug("not weaving '" + name + "'"); | |||
} | |||
} else { | |||
info("cannot weave '" + name + "'"); | |||
debug("cannot weave '" + name + "'"); | |||
} | |||
if (trace.isTraceEnabled()) trace.exit("weaveClass",bytes); | |||
@@ -392,6 +392,10 @@ public class WeavingAdaptor implements IMessageContext { | |||
return ret; | |||
} | |||
protected boolean debug (String message) { | |||
return MessageUtil.debug(messageHandler,message); | |||
} | |||
protected boolean info (String message) { | |||
return MessageUtil.info(messageHandler,message); | |||
} | |||
@@ -542,6 +546,7 @@ public class WeavingAdaptor implements IMessageContext { | |||
super(writer,true); | |||
ignore(IMessage.WEAVEINFO); | |||
ignore(IMessage.DEBUG); | |||
ignore(IMessage.INFO); | |||
this.failKind = IMessage.ERROR; | |||
} |