Index: src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java =================================================================== RCS file: /home/technology/org.aspectj/modules/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java,v retrieving revision 1.37 diff -u -r1.37 ClassLoaderWeavingAdaptor.java --- src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java 20 Jan 2006 11:23:09 -0000 1.37 +++ src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java 24 Feb 2006 08:17:48 -0000 @@ -41,6 +41,7 @@ import org.aspectj.weaver.bcel.Utility; import org.aspectj.weaver.loadtime.definition.Definition; import org.aspectj.weaver.loadtime.definition.DocumentParser; +import org.aspectj.weaver.ltw.LTWWorld; import org.aspectj.weaver.patterns.PatternParser; import org.aspectj.weaver.patterns.TypePattern; import org.aspectj.weaver.tools.GeneratedClassHandler; @@ -53,6 +54,7 @@ private final static String AOP_XML = "META-INF/aop.xml"; + private LTWWorld ltwWorld; private List m_dumpTypePattern = new ArrayList(); private boolean m_dumpBefore = false; private List m_includeTypePattern = new ArrayList(); @@ -104,7 +106,8 @@ return; } - bcelWorld = new BcelWorld( + //bcelWorld = new BcelWorld( + bcelWorld = ltwWorld = new LTWWorld( loader, getMessageHandler(), new ICrossReferenceHandler() { public void addCrossReference(ISourceLocation from, ISourceLocation to, IRelationship.Kind kind, boolean runtimeTest) { ;// for tools only @@ -119,13 +122,15 @@ weaver = new BcelWeaver(bcelWorld); + ltwWorld.setLoadingAspects(true); // register the definitions registerDefinitions(weaver, loader, definitions); //bcelWorld.setResolutionLoader(loader.getParent());//(ClassLoader)null);// // after adding aspects - weaver.prepareForWeave(); + weaver.prepareForWeave(); + ltwWorld.setLoadingAspects(false); } /** @@ -637,4 +642,22 @@ warn("define generated class failed",e); } } + + protected byte[] getWovenBytes(String name, byte[] bytes) throws IOException { + try { + ltwWorld.startLoading(name); + return super.getWovenBytes(name, bytes); + } finally { + ltwWorld.stopLoading(name); + } + } + + protected byte[] getAtAspectJAspectBytes(String name, byte[] bytes) throws IOException { + try { + ltwWorld.startLoading(name); + return super.getAtAspectJAspectBytes(name, bytes); + } finally { + ltwWorld.stopLoading(name); + } + } }