// register the definitions | // register the definitions | ||||
registerDefinitions(weaver, loader, definitions); | registerDefinitions(weaver, loader, definitions); | ||||
if (enabled) { | |||||
//bcelWorld.setResolutionLoader(loader.getParent());//(ClassLoader)null);// | |||||
// after adding aspects | |||||
weaver.prepareForWeave(); | |||||
//bcelWorld.setResolutionLoader(loader.getParent());//(ClassLoader)null);// | |||||
// after adding aspects | |||||
weaver.prepareForWeave(); | |||||
} | |||||
else { | |||||
bcelWorld = null; | |||||
weaver = null; | |||||
} | |||||
} | } | ||||
/** | /** | ||||
} | } | ||||
} | } | ||||
} | } | ||||
/* We didn't register any aspects so disable the adaptor */ | |||||
if (namespace == null) { | |||||
enabled = false; | |||||
info("no aspects registered. Disabling weaver for class loader " + getClassLoaderName(loader)); | |||||
} | |||||
} | } | ||||
/** | /** |
package ataspectj; | |||||
public aspect EmptyAspect { | |||||
} |
<?xml version="1.0"?> | <?xml version="1.0"?> | ||||
<aspectj> | <aspectj> | ||||
<aspects> | |||||
<aspect name="ataspectj.EmptyAspect"/> | |||||
</aspects> | |||||
<weaver options="-XmessageHandlerClass:ataspectj.TestHelper"> | <weaver options="-XmessageHandlerClass:ataspectj.TestHelper"> | ||||
<dump within="ataspectj.DumpTestThe*"/> | <dump within="ataspectj.DumpTestThe*"/> | ||||
</weaver> | </weaver> |
<?xml version="1.0"?> | <?xml version="1.0"?> | ||||
<aspectj> | <aspectj> | ||||
<aspects> | |||||
<aspect name="ataspectj.EmptyAspect"/> | |||||
</aspects> | |||||
<weaver options="-XlazyTjp -verbose"> | <weaver options="-XlazyTjp -verbose"> | ||||
<dump within="com.foo.bar..*" beforeandafter="true"/> | <dump within="com.foo.bar..*" beforeandafter="true"/> | ||||
<include within="com.foo..*"/> | <include within="com.foo..*"/> |
<?xml version="1.0"?> | <?xml version="1.0"?> | ||||
<aspectj> | <aspectj> | ||||
<aspects> | |||||
<aspect name="ataspectj.EmptyAspect"/> | |||||
</aspects> | |||||
<weaver> | <weaver> | ||||
<!-- | <!-- | ||||
<dump within="*..*Proxy*" beforeandafter="true"/> | <dump within="*..*Proxy*" beforeandafter="true"/> |
package ataspectj.ltwreweavable; | |||||
import org.aspectj.lang.annotation.Aspect; | |||||
@Aspect | |||||
public class EmptyAtAspect { | |||||
} | |||||
<weaver options="-XmessageHandlerClass:ataspectj.ltwlog.MessageHolder"/> | <weaver options="-XmessageHandlerClass:ataspectj.ltwlog.MessageHolder"/> | ||||
<aspects> | <aspects> | ||||
<aspect name="ataspectj.ltwreweavable.AspectReweavableLogging"/> | <aspect name="ataspectj.ltwreweavable.AspectReweavableLogging"/> | ||||
<aspect name="ataspectj.ltwreweavable.EmptyAtAspect"/> | |||||
</aspects> | </aspects> | ||||
</aspectj> | </aspectj> |
<aspectj> | <aspectj> | ||||
<weaver options="-XmessageHandlerClass:ataspectj.ltwlog.MessageHolder"/> | <weaver options="-XmessageHandlerClass:ataspectj.ltwlog.MessageHolder"/> | ||||
<!--aspect is not declared here so as to produce an error --> | <!--aspect is not declared here so as to produce an error --> | ||||
<aspects/> | |||||
<aspects> | |||||
<aspect name="ataspectj.ltwreweavable.EmptyAtAspect"/> | |||||
</aspects> | |||||
</aspectj> | </aspectj> |
<aspectj> | |||||
<weaver options="-verbose"/> | |||||
</aspectj> |
</ajc-test> | </ajc-test> | ||||
<ajc-test dir="java5/ataspectj" title="LTW DumpTest"> | <ajc-test dir="java5/ataspectj" title="LTW DumpTest"> | ||||
<compile | |||||
files="ataspectj/EmptyAspect.aj" | |||||
options="-1.5 -Xlint:ignore"/> | |||||
<compile | <compile | ||||
files="ataspectj/DumpTest.java,ataspectj/DumpTestTheDump.java,ataspectj/TestHelper.java" | files="ataspectj/DumpTest.java,ataspectj/DumpTestTheDump.java,ataspectj/TestHelper.java" | ||||
options="-1.5"/> | options="-1.5"/> | ||||
</ajc-test> | </ajc-test> | ||||
<ajc-test dir="java5/ataspectj" title="LTW DumpTest before and after"> | <ajc-test dir="java5/ataspectj" title="LTW DumpTest before and after"> | ||||
<compile | |||||
files="ataspectj/EmptyAspect.aj" | |||||
options="-1.5 -Xlint:ignore"/> | |||||
<compile | <compile | ||||
files="com/foo/bar/Test.java, com/foo/bar/Test$$EnhancerByCGLIB$$12345.java" | files="com/foo/bar/Test.java, com/foo/bar/Test$$EnhancerByCGLIB$$12345.java" | ||||
options="-1.5"/> | options="-1.5"/> | ||||
<line text="info AspectJ Weaver Version"/> | <line text="info AspectJ Weaver Version"/> | ||||
<line text="info register classloader"/> | <line text="info register classloader"/> | ||||
<line text="info using"/> | <line text="info using"/> | ||||
<line text="info register aspect ataspectj.EmptyAspect"/> | |||||
<line text="info weaving 'com.foo.bar.Test'"/> | <line text="info weaving 'com.foo.bar.Test'"/> | ||||
</stderr> | </stderr> | ||||
</run> | </run> | ||||
</ajc-test> | </ajc-test> | ||||
<ajc-test dir="java5/ataspectj" title="LTW DumpTest proxy"> | <ajc-test dir="java5/ataspectj" title="LTW DumpTest proxy"> | ||||
<compile | |||||
files="ataspectj/EmptyAspect.aj" | |||||
options="-1.5 -Xlint:ignore"/> | |||||
<compile | <compile | ||||
files="ataspectj/TestProxyGenerator.java,ataspectj/TestInterface.java" | files="ataspectj/TestProxyGenerator.java,ataspectj/TestInterface.java" | ||||
options="-1.5"/> | options="-1.5"/> | ||||
<ajc-test dir="java5/ataspectj" title="Compile time aspects declared to ltw weaver"> | <ajc-test dir="java5/ataspectj" title="Compile time aspects declared to ltw weaver"> | ||||
<compile | <compile | ||||
files="ataspectj/ltwlog/MessageHolder.java,ataspectj/ltwreweavable/MainReweavableLogging.java,ataspectj/ltwreweavable/AspectReweavableLogging.java,ataspectj/ltwreweavable/Advisable.java" | |||||
files="ataspectj/ltwlog/MessageHolder.java,ataspectj/ltwreweavable/MainReweavableLogging.java,ataspectj/ltwreweavable/AspectReweavableLogging.java,ataspectj/ltwreweavable/Advisable.java,ataspectj/ltwreweavable/EmptyAtAspect.java" | |||||
options="-1.5" | options="-1.5" | ||||
outjar="main1.jar"/> | outjar="main1.jar"/> | ||||
<ant file="ajc-ant.xml" target="ltw.oldAspectsDeclared" verbose="true"/> | <ant file="ajc-ant.xml" target="ltw.oldAspectsDeclared" verbose="true"/> |
import junit.framework.Test; | import junit.framework.Test; | ||||
//import org.aspectj.systemtest.ajc150.GenericsTests; | |||||
import org.aspectj.asm.AsmManager; | import org.aspectj.asm.AsmManager; | ||||
import org.aspectj.asm.IHierarchy; | import org.aspectj.asm.IHierarchy; | ||||
import org.aspectj.asm.IProgramElement; | import org.aspectj.asm.IProgramElement; | ||||
// // public class Pair<F,S> affected by pertarget aspect | // // public class Pair<F,S> affected by pertarget aspect | ||||
// GenericsTests.verifyClassSignature(ajc,"Pair","<F:Ljava/lang/Object;S:Ljava/lang/Object;>Ljava/lang/Object;LIdempotentCache$ajcMightHaveAspect;;"); | // GenericsTests.verifyClassSignature(ajc,"Pair","<F:Ljava/lang/Object;S:Ljava/lang/Object;>Ljava/lang/Object;LIdempotentCache$ajcMightHaveAspect;;"); | ||||
// } | // } | ||||
public void testNoAspects(){ | |||||
// setSystemProperty(WeavingAdaptor.WEAVING_ADAPTOR_VERBOSE,"true"); | |||||
runTest("Ensure no weaving without included aspects"); | |||||
} | |||||
// tests that can't be included for some reason | // tests that can't be included for some reason | ||||
<!-- should check for expected stderr output here --> | <!-- should check for expected stderr output here --> | ||||
</run> | </run> | ||||
</ajc-test> | </ajc-test> | ||||
<ajc-test dir="ltw" | |||||
title="Ensure no weaving without included aspects" | |||||
keywords="reweavable"> | |||||
<compile | |||||
files="TestMain.java, Main.java" | |||||
> | |||||
</compile> | |||||
<run class="TestMain" ltw="aop-optionsonly.xml"> | |||||
<stdout> | |||||
<line text="Main.main"/> | |||||
<line text="Main.test1"/> | |||||
<line text="Main.test2"/> | |||||
</stdout> | |||||
<stderr> | |||||
<line text="info AspectJ Weaver Version"/> | |||||
<line text="info register classloader org.aspectj.weaver.loadtime.WeavingURLClassLoader"/> | |||||
<line text="info using"/> | |||||
<line text="info no aspects registered. Disabling weaver for class loader org.aspectj.weaver.loadtime.WeavingURLClassLoader"/> | |||||
</stderr> | |||||
</run> | |||||
</ajc-test> | |||||
</suite> | </suite> |