//Annotated trace of AjBuildManager.batchBuild... for "ajc Hello.java"

 

 

ajdtcore::Entering execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(

                                AjBuildConfig, IMessageHandler))

                   arguments (org.aspectj.ajdt.internal.core.builder.AjBuildConfig@b1b4c3,MessageHandler: no messages)

  ajdtcore::Entering execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(

                                AjBuildConfig, IMessageHandler, boolean))

            arguments (org.aspectj.ajdt.internal.core.builder.AjBuildConfig@b1b4c3,MessageHandler: no messages,true)

 

    // create an AjState instance to hold state associated with the build

    ajdtcore::Entering execution(org.aspectj.ajdt.internal.core.builder.AjState(AjBuildManager))

                       arguments (AjBuildManager())

    ajdtcore::Exiting execution(org.aspectj.ajdt.internal.core.builder.AjState(AjBuildManager))

 

    // could we do an incremental build if we wanted to...

    ajdtcore::Entering execution(boolean org.aspectj.ajdt.internal.core.builder.AjState.prepareForNextBuild(

                                   AjBuildConfig))

                       arguments (org.aspectj.ajdt.internal.core.builder.AjBuildConfig@b1b4c3)

    ajdtcore::Exiting execution(boolean org.aspectj.ajdt.internal.core.builder.AjState.prepareForNextBuild(

                                   AjBuildConfig))

                      return: false

 

     // check that aspectjrt.jar is present on the classpath and has the right version

    ajdtcore::Entering execution(String org.aspectj.ajdt.internal.core.builder.AjBuildManager.checkRtJar(AjBuildConfig))

                       arguments (org.aspectj.ajdt.internal.core.builder.AjBuildConfig@b1b4c3)

    ajdtcore::Exiting execution(String org.aspectj.ajdt.internal.core.builder.AjBuildManager.checkRtJar(AjBuildConfig))

                      return: null

 

     // remember the build configuration

    ajdtcore::Entering execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.setBuildConfig(

                                            AjBuildConfig))

                       arguments (org.aspectj.ajdt.internal.core.builder.AjBuildConfig@b1b4c3)

    ajdtcore::Exiting execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.setBuildConfig(

                                            AjBuildConfig))

                      return: null

 

    // set up a new, empty structure model ready to receive the results of the compilation

    ajdtcore::Entering execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.setupModel()) arguments ()

      asm::Entering execution(StructureModel org.aspectj.asm.StructureModelManager.getStructureModel()) arguments ()

      asm::Exiting execution(StructureModel org.aspectj.asm.StructureModelManager.getStructureModel())

                   return: org.aspectj.asm.StructureModel@122cdb6

      // if there is a .lst file specified, make that the root (there isn't in this case)

      ajdtcore::Entering execution(File org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getConfigFile())

                         arguments ()

      // create a new ProgramElementNode for the root of the structure model

      asm::Entering execution(org.aspectj.asm.ProgramElementNode(String, ProgramElementNode.Kind, List))

                    arguments (<root>,java source file,[])

      asm::Exiting execution(org.aspectj.asm.ProgramElementNode(String, ProgramElementNode.Kind, List))

      asm::Entering execution(void org.aspectj.asm.StructureModel.setRoot(StructureNode)) arguments (<root>)

      asm::Exiting execution(void org.aspectj.asm.StructureModel.setRoot(StructureNode)) return: null

      // give it an empty file map

      asm::Entering execution(void org.aspectj.asm.StructureModel.setFileMap(HashMap)) arguments ({})

      asm::Exiting execution(void org.aspectj.asm.StructureModel.setFileMap(HashMap)) return: null

      // remember the model we just created

      ajdtcore::Entering execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.setStructureModel(

                                         StructureModel))

                         arguments (org.aspectj.asm.StructureModel@122cdb6)

      ajdtcore::Exiting execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.setStructureModel(

                                         StructureModel))

                        return: null

    ajdtcore::Exiting execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.setupModel()) return: null

 

 

    // create a new BCEL World to use for the batch compile

    ajdtcore::Entering execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld(

                                       IMessageHandler))

                       arguments (MessageHandler: no messages)

      // get the classpath

      ajdtcore::Entering execution(List org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getClasspath()) arguments ()

      ajdtcore::Exiting execution(List org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getClasspath()) return:

                        [C:\ColyerRoot\Programs\SunJDK141\jre\lib\rt.jar, ...,  

                         C:\ColyerRoot\Programs\aspectj1.1b4\lib\aspectjrt.jar]

      // create the BcelWorld

      weaver::Entering execution(org.aspectj.weaver.bcel.BcelWorld(List, IMessageHandler))

                       arguments ([C:\ColyerRoot\Programs\SunJDK141\jre\lib\rt.jar, ...

                                   C:\ColyerRoot\Programs\aspectj1.1b4\lib\aspectjrt.jar],MessageHandler: no messages)

        // superclass constructor creates a new org.aspectj.weaver.CrosscuttingMembersSet - this is a key data structure

        // initialise a ClassPathManager

        weaver::Entering execution(org.aspectj.weaver.bcel.ClassPathManager(List, IMessageHandler))

                arguments ([C:\ColyerRoot\Programs\SunJDK141\jre\lib\rt.jar,    

    C:\ColyerRoot\Programs\SunJDK141\jre\lib\i18n.jar,

    C:\ColyerRoot\Programs\SunJDK141\jre\lib\sunrsasign.jar,

    C:\ColyerRoot\Programs\SunJDK141\jre\lib\jsse.jar,

    C:\ColyerRoot\Programs\SunJDK141\jre\lib\jce.jar,

    C:\ColyerRoot\Programs\SunJDK141\jre\lib\charsets.jar,

    C:\ColyerRoot\Programs\SunJDK141\jre\classes,

    C:\ColyerRoot\Programs\SunJDK141\jre\lib\ext\aspectjrt.jar,

    C:\ColyerRoot\Programs\SunJDK141\jre\lib\ext\dnsns.jar,

    C:\ColyerRoot\Programs\SunJDK141\jre\lib\ext\ldapsec.jar,

    C:\ColyerRoot\Programs\SunJDK141\jre\lib\ext\localedata.jar,

    C:\ColyerRoot\Programs\SunJDK141\jre\lib\ext\sunjce_provider.jar,

    c:\ColyerRoot\Programs\aspectj1.1\lib\aspectjtools_g.jar,

    c:\ColyerRoot\Programs\aspectj1.1\lib\aspectjtools.jar,

    c:\ColyerRoot\Programs\aspectj1.1\lib\log4j-1.2.7.jar,

    c:\ColyerRoot\Programs\aspectj1.1\lib, .,

    C:\ColyerRoot\Programs\aspectj1.1b4\lib\aspectjrt.jar],MessageHandler: no messages)

          // for each entry... validate and add

          weaver::Entering execution(void org.aspectj.weaver.bcel.ClassPathManager.addPath(String, IMessageHandler))

                           arguments (C:\ColyerRoot\Programs\SunJDK141\jre\lib\rt.jar,MessageHandler: no messages)

          weaver::Exiting execution(void org.aspectj.weaver.bcel.ClassPathManager.addPath(String, IMessageHandler))

                          return: null

        weaver::Exiting execution(org.aspectj.weaver.bcel.ClassPathManager(List, IMessageHandler))

      weaver::Exiting execution(org.aspectj.weaver.bcel.BcelWorld(List, IMessageHandler))

 

      // set the XnoInline option

      ajdtcore::Entering execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildConfig.isXnoInline())

                         arguments ()

      ajdtcore::Exiting execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildConfig.isXnoInline())

                         return: false

      weaver::Entering execution(void org.aspectj.weaver.World.setXnoInline(boolean)) arguments (false)

      weaver::Exiting execution(void org.aspectj.weaver.World.setXnoInline(boolean)) return: null

 

      // create a new BcelWeaver for the world

      weaver::Entering execution(org.aspectj.weaver.bcel.BcelWeaver(BcelWorld)) arguments (BcelWorld())

        weaver::Entering execution(CrosscuttingMembersSet org.aspectj.weaver.World.getCrosscuttingMembersSet())

                         arguments ()

        weaver::Exiting execution(CrosscuttingMembersSet org.aspectj.weaver.World.getCrosscuttingMembersSet())

                        return: org.aspectj.weaver.CrosscuttingMembersSet@1f3aa07

      weaver::Exiting execution(org.aspectj.weaver.bcel.BcelWeaver(BcelWorld))

 

      // add each library in the aspectpath to the weaver (none in this case) using BcelWeaver.addLibraryJarFile

      ajdtcore::Entering execution(List org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getAspectpath())

                         arguments ()

      ajdtcore::Exiting execution(List org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getAspectpath()) return: []

 

      // configure the lint options

      ajdtcore::Entering execution(String org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getLintMode())

                         arguments ()

      ajdtcore::Exiting execution(String org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getLintMode())

                        return: default

      ajdtcore::Entering execution(String org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getLintMode())

                         arguments ()

      ajdtcore::Exiting execution(String org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getLintMode())

                        return: default

      weaver::Entering execution(Lint org.aspectj.weaver.World.getLint()) arguments ()

      weaver::Exiting execution(Lint org.aspectj.weaver.World.getLint()) return: org.aspectj.weaver.Lint@c832d2

      weaver::Entering execution(void org.aspectj.weaver.Lint.loadDefaultProperties()) arguments ()

      weaver::Exiting execution(void org.aspectj.weaver.Lint.loadDefaultProperties()) return: null

      ajdtcore::Entering execution(File org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getLintSpecFile())

                         arguments ()

      ajdtcore::Exiting execution(File org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getLintSpecFile())

                         return: null

 

      // add each library in the injars to the weaver (none in this case) using BcelWeaver.addJarFile

      ajdtcore::Entering execution(List org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getInJars()) arguments ()

      ajdtcore::Exiting execution(List org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getInJars()) return: []

 

      // attempt to resolve "org.aspectj.lang.JoinPoint" to verify that all is well in the world

      weaver::Entering execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String))

                       arguments (org.aspectj.lang.JoinPoint)

        weaver::Entering execution(TypeX org.aspectj.weaver.TypeX.forName(String))

                         arguments (org.aspectj.lang.JoinPoint)

          // convert to signature string

          weaver::Entering execution(String org.aspectj.weaver.TypeX.nameToSignature(String))

                           arguments (org.aspectj.lang.JoinPoint)

          weaver::Exiting execution(String org.aspectj.weaver.TypeX.nameToSignature(String))

                           return: Lorg/aspectj/lang/JoinPoint;

          // get the type for this signature, it's either a primitive, array, or an object

          weaver::Entering execution(TypeX org.aspectj.weaver.TypeX.forSignature(String))

                           arguments (Lorg/aspectj/lang/JoinPoint;)

            // its an object signature, create a new TypeX to hold it

            weaver::Entering execution(org.aspectj.weaver.TypeX(String)) arguments (Lorg/aspectj/lang/JoinPoint;)

            weaver::Exiting execution(org.aspectj.weaver.TypeX(String))

          weaver::Exiting execution(TypeX org.aspectj.weaver.TypeX.forSignature(String))

                          return: org.aspectj.lang.JoinPoint

        weaver::Exiting execution(TypeX org.aspectj.weaver.TypeX.forName(String)) return: org.aspectj.lang.JoinPoint

        // now we have a TypeX, resolve it

        weaver::Entering execution(ResolvedTypeX org.aspectj.weaver.World.resolve(TypeX))

                         arguments (org.aspectj.lang.JoinPoint)

          weaver::Entering execution(ResolvedTypeX org.aspectj.weaver.World.resolve(TypeX, boolean))

                           arguments (org.aspectj.lang.JoinPoint,false)

            // get the signature

            weaver::Entering execution(String org.aspectj.weaver.TypeX.getSignature()) arguments ()

            weaver::Exiting execution(String org.aspectj.weaver.TypeX.getSignature())

                            return: Lorg/aspectj/lang/JoinPoint;

            // its not in our typeMap, so better look for it

            weaver::Entering execution(ResolvedTypeX org.aspectj.weaver.World.resolveObjectType(TypeX))

                             arguments (org.aspectj.lang.JoinPoint)

              // create a resolved type name

              weaver::Entering execution(org.aspectj.weaver.ResolvedTypeX.Name(String, World))

                               arguments (Lorg/aspectj/lang/JoinPoint;,BcelWorld())

              weaver::Exiting execution(org.aspectj.weaver.ResolvedTypeX.Name(String, World))

              // and resolve it

              weaver::Entering execution(ResolvedTypeX.ConcreteName org.aspectj.weaver.bcel.BcelWorld.resolveObjectType(

                                               ResolvedTypeX.Name))

                               arguments (org.aspectj.lang.JoinPoint)

                // look up the class in the classpath

                weaver::Entering execution(JavaClass org.aspectj.weaver.bcel.BcelWorld.lookupJavaClass(

                                               ClassPathManager, String))

                                 arguments (C:\ColyerRoot\Programs\SunJDK141\jre\lib\rt.jar;...

                  // find the file that defines the type

                  weaver::Entering execution(ClassPathManager.ClassFile org.aspectj.weaver.bcel.ClassPathManager.find(

                                                TypeX))

                                   arguments (org.aspectj.lang.JoinPoint)

                    // look in the jars on the classpath...

                    weaver::Entering execution(ClassPathManager.ClassFile

                                               org.aspectj.weaver.bcel.ClassPathManager.ZipFileEntry.find(String))

                                     arguments (org.aspectj.lang.JoinPoint)

                    weaver::Exiting execution(ClassPathManager.ClassFile

                                              org.aspectj.weaver.bcel.ClassPathManager.ZipFileEntry.find(String))

                                    return: null

                    ...

                    weaver::Entering execution(ClassPathManager.ClassFile

                                               org.aspectj.weaver.bcel.ClassPathManager.ZipFileEntry.find(String))

                                     arguments (org.aspectj.lang.JoinPoint)

                    weaver::Exiting execution(ClassPathManager.ClassFile

                                              org.aspectj.weaver.bcel.ClassPathManager.ZipFileEntry.find(String))

                                    return: org.aspectj.weaver.bcel.ClassPathManager$ZipEntryClassFile@139eeda

                  weaver::Exiting execution(ClassPathManager.ClassFile  

                                            org.aspectj.weaver.bcel.ClassPathManager.find(TypeX))

                                  return: org.aspectj.weaver.bcel.ClassPathManager$ZipEntryClassFile@139eeda

                  // get the input stream and file path

                  weaver::Entering execution(InputStream

                                             org.aspectj.weaver.bcel.ClassPathManager.ZipEntryClassFile.getInputStream())

                                   arguments ()

                  weaver::Exiting execution(InputStream

                                            org.aspectj.weaver.bcel.ClassPathManager.ZipEntryClassFile.getInputStream())

                                  return: java.util.zip.ZipFile$1@1b4fad5

                  weaver::Entering execution(String org.aspectj.weaver.bcel.ClassPathManager.ZipEntryClassFile.getPath())

                                   arguments ()

                  weaver::Exiting execution(String org.aspectj.weaver.bcel.ClassPathManager.ZipEntryClassFile.getPath())

                                   return: org/aspectj/lang/JoinPoint.class

                  // use bcel.classfile.ClassParser to parse the file and return a BCEL JavaClass

                weaver::Exiting execution(JavaClass org.aspectj.weaver.bcel.BcelWorld.lookupJavaClass(

                                                ClassPathManager, String))

                              return: public abstract interface org.aspectj.lang.JoinPoint extends java.lang.Object

                                      filename        org/aspectj/lang/JoinPoint.class                                     
  compiled from         JoinPoint.java
  compiler version      46.0
  access flags          1537
  constant pool         62 entries
  ACC_SUPER flag        false

  Attribute(s):
                                          SourceFile(JoinPoint.java)
                                          InnerClass:public static abstract

org.aspectj.lang.JoinPoint$StaticPart("org.aspectj.lang.JoinPoint",   

                                       "StaticPart")

11 fields:
      public static final String METHOD_EXECUTION = "method-execution"
      public static final String METHOD_CALL = "method-call"
      public static final String CONSTRUCTOR_EXECUTION = "constructor-execution"
      public static final String CONSTRUCTOR_CALL = "constructor-call"
      public static final String FIELD_GET = "field-get"
      public static final String FIELD_SET = "field-set"
      public static final String STATICINITIALIZATION = "staticinitialization"
      public static final String PREINTIALIZATION = "preinitialization"
      public static final String INITIALIZATION = "initialization"
      public static final String EXCEPTION_HANDLER = "exception-handler"
      public static final String ADVICE_EXECUTION = "advice-execution"

10 methods:
      public abstract String toString()
      public abstract String toShortString()
      public abstract String toLongString()
      public abstract Object getThis()
      public abstract Object getTarget()
      public abstract Object[] getArgs()
      public abstract org.aspectj.lang.Signature getSignature()
      public abstract org.aspectj.lang.reflect.SourceLocation getSourceLocation()
      public abstract String getKind()
      public abstract org.aspectj.lang.JoinPoint$StaticPart getStaticPart()
 

                // make the JavaClass into a ResolvedTypeX.ConcreteName...

                weaver::Entering execution(BcelObjectType org.aspectj.weaver.bcel.BcelWorld.makeBcelObjectType(

                                               ResolvedTypeX.Name, JavaClass, boolean))

                                 arguments (org.aspectj.lang.JoinPoint,public abstract interface ...

                  weaver::Entering execution(org.aspectj.weaver.ResolvedTypeX.ConcreteName(ResolvedTypeX.Name, boolean))

     arguments (org.aspectj.lang.JoinPoint,false)

                  weaver::Exiting execution(org.aspectj.weaver.ResolvedTypeX.ConcreteName(ResolvedTypeX.Name, boolean))

                  weaver::Entering execution(org.aspectj.weaver.bcel.BcelObjectType(

                                                   ResolvedTypeX.Name, JavaClass, boolean))

                                   arguments (org.aspectj.lang.JoinPoint,public abstract interface …

                    // remember the source context (file name, enclosing type, package name)

                    weaver::Entering execution(org.aspectj.weaver.bcel.BcelSourceContext(BcelObjectType))

                                     arguments (org.aspectj.weaver.bcel.BcelObjectType@12a0f6c)

                    weaver::Exiting execution(org.aspectj.weaver.bcel.BcelSourceContext(BcelObjectType))

                    weaver::Entering execution(void org.aspectj.weaver.ResolvedTypeX.Name.setSourceContext(

                                               ISourceContext))

                                     arguments (org.aspectj.weaver.bcel.BcelSourceContext@5a9de6)

                    weaver::Exiting execution(void org.aspectj.weaver.ResolvedTypeX.Name.setSourceContext(

                                               ISourceContext))

                                     return: null

                    // decode pointcuts, type mungers, declares, ... stored as attributes in the class file

                    weaver::Entering execution(void org.aspectj.weaver.bcel.BcelObjectType.unpackAspectAttributes())

 arguments ()

                      weaver::Entering execution(List org.aspectj.weaver.bcel.BcelAttributes.readAjAttributes(

                                                    Attribute[], ISourceContext))

                                      arguments

                                      ([Lorg.apache.bcel.classfile.Attribute;@1c9a690,

                                      org.aspectj.weaver.bcel.BcelSourceContext@5a9de6)

                      weaver::Exiting execution(List org.aspectj.weaver.bcel.BcelAttributes.readAjAttributes(

                                            Attribute[], ISourceContext))

                                      return: []

                    weaver::Exiting execution(void org.aspectj.weaver.bcel.BcelObjectType.unpackAspectAttributes())

                                    return: null

                  weaver::Exiting execution(org.aspectj.weaver.bcel.BcelObjectType(

                                     ResolvedTypeX.Name, JavaClass, boolean))

                  // point the name to its resolved, concrete name

                  weaver::Entering execution(void org.aspectj.weaver.ResolvedTypeX.Name.setDelegate(

                                          ResolvedTypeX.ConcreteName))

                                   arguments (org.aspectj.weaver.bcel.BcelObjectType@12a0f6c)

                  weaver::Exiting execution(void org.aspectj.weaver.ResolvedTypeX.Name.setDelegate(

                                                 ResolvedTypeX.ConcreteName))

                                   return: null

                weaver::Exiting execution(BcelObjectType org.aspectj.weaver.bcel.BcelWorld.makeBcelObjectType(

                                              ResolvedTypeX.Name, JavaClass, boolean))

                                return: org.aspectj.weaver.bcel.BcelObjectType@12a0f6c

              weaver::Exiting execution(ResolvedTypeX.ConcreteName org.aspectj.weaver.bcel.BcelWorld.resolveObjectType(

                                                                        ResolvedTypeX.Name))

                      return: org.aspectj.weaver.bcel.BcelObjectType@12a0f6c

            weaver::Exiting execution(ResolvedTypeX org.aspectj.weaver.World.resolveObjectType(TypeX))

                            return: org.aspectj.lang.JoinPoint

          weaver::Exiting execution(ResolvedTypeX org.aspectj.weaver.World.resolve(TypeX, boolean))

                          return: org.aspectj.lang.JoinPoint

        weaver::Exiting execution(ResolvedTypeX org.aspectj.weaver.World.resolve(TypeX))

                        return: org.aspectj.lang.JoinPoint

      weaver::Exiting execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String))

                      return: org.aspectj.lang.JoinPoint

 

 

    // we now exit initBcelWorld and are going back to doBuild...

    ajdtcore::Exiting execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld(

                                        IMessageHandler))

                      return: null

 

    // do we need to build a structure model?

    ajdtcore::Entering execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildConfig.isEmacsSymMode())

                       arguments ()

    ajdtcore::Exiting execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildConfig.isEmacsSymMode())

                      return: false

    ajdtcore::Entering execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildConfig.isGenerateModelMode())

                       arguments ()

    ajdtcore::Exiting execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildConfig.isGenerateModelMode())

                      return: false

    // get the list of files to compile

    ajdtcore::Entering execution(List org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getFiles()) arguments ()

    ajdtcore::Exiting execution(List org.aspectj.ajdt.internal.core.builder.AjBuildConfig.getFiles())

                      return: [C:\Documents and Settings\colyer\Hello.java]

 

    // here we go! perform the compilation...

    ajdtcore::Entering execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(List))

                       arguments ([C:\Documents and Settings\colyer\Hello.java])

 

      // =======================================================================================

      // details of compilation step in separate annotated trace

      // =======================================================================================

 

    ajdtcore::Exiting execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(List))

                      return: null

 

    // record the fact that the compile succeeded

    ajdtcore::Entering execution(void org.aspectj.ajdt.internal.core.builder.AjState.successfulCompile(AjBuildConfig))

     arguments (org.aspectj.ajdt.internal.core.builder.AjBuildConfig@b1b4c3)

    ajdtcore::Exiting execution(void org.aspectj.ajdt.internal.core.builder.AjState.successfulCompile(AjBuildConfig))

                      return: null

 

    // perform any weaving and output the classfiles to disk

  ajdtcore::Entering execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildManager.

                                           weaveAndGenerateClassFiles())

                     arguments ()

    // add  any aspect class files in AjState to the weaver

    ajdtcore::Entering execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.

                                             addAspectClassFilesToWeaver(List))

                        arguments ([UnwovenClassFile(C:\Documents and Settings\colyer\Hello.class, Hello)])

      weaver::Entering execution(void org.aspectj.weaver.bcel.BcelWeaver.addClassFile(UnwovenClassFile))

                       arguments (UnwovenClassFile(C:\Documents and Settings\colyer\Hello.class, Hello))

        weaver::Entering execution(BcelObjectType org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType(JavaClass))

                         arguments (public class Hello extends java.lang.Object
          // resolve the type (as before) and add to the type map

          // ...

        weaver::Exiting execution(BcelObjectType org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType(JavaClass))

                        return: org.aspectj.weaver.bcel.BcelObjectType@f1fad1

      weaver::Exiting execution(void org.aspectj.weaver.bcel.BcelWeaver.addClassFile(UnwovenClassFile)) return: null

    ajdtcore::Exiting execution(void org.aspectj.ajdt.internal.core.builder.AjBuildManager.

                                      addAspectClassFilesToWeaver(List)) return: null

 

    weaver::Entering execution(Collection org.aspectj.weaver.bcel.BcelWeaver.weave()) arguments ()

      weaver::Entering execution(void org.aspectj.weaver.bcel.BcelWeaver.prepareForWeave()) arguments ()

        // get each class and resolve it

        weaver::Entering execution(String org.aspectj.weaver.bcel.UnwovenClassFile.getClassName()) arguments ()

        weaver::Exiting execution(String org.aspectj.weaver.bcel.UnwovenClassFile.getClassName()) return: Hello

        weaver::Entering execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String)) arguments (Hello)

        weaver::Exiting execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String)) return: Hello

        // if this class is an aspect, we may need to reweave the world

        weaver::Entering execution(boolean org.aspectj.weaver.ResolvedTypeX.Name.isAspect()) arguments ()

          weaver::Entering execution(boolean org.aspectj.weaver.bcel.BcelObjectType.isAspect()) arguments ()

          weaver::Exiting execution(boolean org.aspectj.weaver.bcel.BcelObjectType.isAspect()) return: false

        weaver::Exiting execution(boolean org.aspectj.weaver.ResolvedTypeX.Name.isAspect()) return: false

        // get the list of entities to weave with

        weaver::Entering execution(List org.aspectj.weaver.CrosscuttingMembersSet.getShadowMungers()) arguments ()

        weaver::Exiting execution(List org.aspectj.weaver.CrosscuttingMembersSet.getShadowMungers()) return: []

        weaver::Entering execution(List org.aspectj.weaver.CrosscuttingMembersSet.getTypeMungers()) arguments ()

        weaver::Exiting execution(List org.aspectj.weaver.CrosscuttingMembersSet.getTypeMungers()) return: []

        weaver::Entering execution(List org.aspectj.weaver.CrosscuttingMembersSet.getDeclareParents()) arguments ()

        weaver::Exiting execution(List org.aspectj.weaver.CrosscuttingMembersSet.getDeclareParents()) return: []

      weaver::Exiting execution(void org.aspectj.weaver.bcel.BcelWeaver.prepareForWeave()) return: null

      // for each file to be woven, reset its BcelObjectType state

      weaver::Entering execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String)) arguments (Hello)

      weaver::Exiting execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String)) return: Hello

      weaver::Entering execution(BcelObjectType org.aspectj.weaver.bcel.BcelWorld.getBcelObjectType(ResolvedTypeX))

                       arguments (Hello)

      weaver::Exiting execution(BcelObjectType org.aspectj.weaver.bcel.BcelWorld.getBcelObjectType(ResolvedTypeX))

                       return: org.aspectj.weaver.bcel.BcelObjectType@f1fad1

      weaver::Entering execution(void org.aspectj.weaver.bcel.BcelObjectType.resetState()) arguments ()

        // set all member lists to null, then...

        weaver::Entering execution(void org.aspectj.weaver.bcel.BcelObjectType.unpackAspectAttributes()) arguments ()

        weaver::Exiting execution(void org.aspectj.weaver.bcel.BcelObjectType.unpackAspectAttributes()) return: null

      weaver::Exiting execution(void org.aspectj.weaver.bcel.BcelObjectType.resetState()) return: null

 

      // first pass over all files, calling weave on their resolved types - generates list of applicable

      // inter-type mungers

      weaver::Entering execution(String org.aspectj.weaver.bcel.UnwovenClassFile.getClassName()) arguments ()

      weaver::Exiting execution(String org.aspectj.weaver.bcel.UnwovenClassFile.getClassName()) return: Hello

      weaver::Entering execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String)) arguments (Hello)

      weaver::Exiting execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String)) return: Hello

      weaver::Entering execution(void org.aspectj.weaver.bcel.BcelWeaver.weave(ResolvedTypeX)) arguments (Hello)

        weaver::Entering execution(void org.aspectj.weaver.ResolvedTypeX.clearInterTypeMungers()) arguments ()

        weaver::Exiting execution(void org.aspectj.weaver.ResolvedTypeX.clearInterTypeMungers()) return: null

        // process any declare parents (none in this case),

        // then go through list of inter-type mungers seeing if they match on this type

        // add all matching inter-type mungers to the list for this type

      weaver::Exiting execution(void org.aspectj.weaver.bcel.BcelWeaver.weave(ResolvedTypeX)) return: null

 

      // second pass, weaving into aspects...

      weaver::Entering execution(String org.aspectj.weaver.bcel.UnwovenClassFile.getClassName()) arguments ()

      weaver::Exiting execution(String org.aspectj.weaver.bcel.UnwovenClassFile.getClassName()) return: Hello

      weaver::Entering execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String)) arguments (Hello)

      weaver::Exiting execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String)) return: Hello

      weaver::Entering execution(BcelObjectType org.aspectj.weaver.bcel.BcelWorld.getBcelObjectType(ResolvedTypeX))

                       arguments (Hello)

      weaver::Exiting execution(BcelObjectType org.aspectj.weaver.bcel.BcelWorld.getBcelObjectType(ResolvedTypeX))

                       return: org.aspectj.weaver.bcel.BcelObjectType@f1fad1

      weaver::Entering execution(boolean org.aspectj.weaver.bcel.BcelObjectType.isAspect()) arguments ()

        // not an aspect in this case so we do nothing

      weaver::Exiting execution(boolean org.aspectj.weaver.bcel.BcelObjectType.isAspect()) return: false

 

      // third pass, weaving into non-aspects...

      weaver::Entering execution(String org.aspectj.weaver.bcel.UnwovenClassFile.getClassName()) arguments ()

      weaver::Exiting execution(String org.aspectj.weaver.bcel.UnwovenClassFile.getClassName()) return: Hello

      weaver::Entering execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String)) arguments (Hello)

      weaver::Exiting execution(ResolvedTypeX org.aspectj.weaver.World.resolve(String)) return: Hello

      weaver::Entering execution(BcelObjectType org.aspectj.weaver.bcel.BcelWorld.getBcelObjectType(ResolvedTypeX))

                       arguments (Hello)

      weaver::Exiting execution(BcelObjectType org.aspectj.weaver.bcel.BcelWorld.getBcelObjectType(ResolvedTypeX))

                      return: org.aspectj.weaver.bcel.BcelObjectType@f1fad1

      weaver::Entering execution(boolean org.aspectj.weaver.bcel.BcelObjectType.isAspect()) arguments ()

      // not an aspect so weave...

      weaver::Exiting execution(boolean org.aspectj.weaver.bcel.BcelObjectType.isAspect()) return: false

      weaver::Entering execution(LazyClassGen org.aspectj.weaver.bcel.BcelWeaver.weave(UnwovenClassFile, BcelObjectType))

                       arguments (UnwovenClassFile(C:\Documents and Settings\colyer\Hello.class,  

                                  Hello),org.aspectj.weaver.bcel.BcelObjectType@f1fad1)

        weaver::Entering execution(LazyClassGen org.aspectj.weaver.bcel.BcelWeaver.weave(

                                          UnwovenClassFile, BcelObjectType, boolean))

                         arguments (UnwovenClassFile(C:\Documents and Settings\colyer\Hello.class,

                                        Hello),org.aspectj.weaver.bcel.BcelObjectType@f1fad1,true)

          // is this an ajc generated type? (has $ajc in name)

          weaver::Entering execution(boolean org.aspectj.weaver.bcel.BcelObjectType.isSynthetic()) arguments ()

          weaver::Exiting execution(boolean org.aspectj.weaver.bcel.BcelObjectType.isSynthetic()) return: false

          // get the JavaClass

          weaver::Entering execution(JavaClass org.aspectj.weaver.bcel.BcelObjectType.getJavaClass()) arguments ()

          weaver::Exiting execution(JavaClass org.aspectj.weaver.bcel.BcelObjectType.getJavaClass())

                          return: public class Hello extends java.lang.Object
          // get the set of shadow mungers that may match

          weaver::Entering execution(List org.aspectj.weaver.bcel.BcelWeaver.fastMatch(List, ResolvedTypeX))

                           arguments ([],Hello)

          weaver::Exiting execution(List org.aspectj.weaver.bcel.BcelWeaver.fastMatch(List, ResolvedTypeX)) return: []

          // get the set of inter-type mungers defined for the type

          weaver::Entering execution(List org.aspectj.weaver.ResolvedTypeX.getInterTypeMungers()) arguments ()

          weaver::Exiting execution(List org.aspectj.weaver.ResolvedTypeX.getInterTypeMungers()) return: []

 

          // if there were either shadow or inter-type mungers matching, we would call BcelClassWeaver.weave at this

          // point, but there aren't for compiling hello world.

 

          // dump out the class file

          weaver::Entering execution(void org.aspectj.weaver.bcel.BcelWeaver.dumpUnchanged(UnwovenClassFile))

                           arguments (UnwovenClassFile(C:\Documents and Settings\colyer\Hello.class, Hello))

            weaver::Entering execution(void org.aspectj.weaver.bcel.UnwovenClassFile.writeUnchangedBytes()) arguments ()

              weaver::Entering execution(byte[] org.aspectj.weaver.bcel.UnwovenClassFile.getBytes()) arguments ()

              weaver::Exiting execution(byte[] org.aspectj.weaver.bcel.UnwovenClassFile.getBytes()) return: [B@15b55bc

              weaver::Entering execution(void org.aspectj.weaver.bcel.UnwovenClassFile.writeWovenBytes(byte[], List))

                               arguments ([B@15b55bc,[])

                weaver::Entering execution(void org.aspectj.weaver.bcel.UnwovenClassFile.writeChildClasses(List))

                                 arguments ([])

                  weaver::Entering execution(void org.aspectj.weaver.bcel.UnwovenClassFile.deleteAllChildClasses())

                                   arguments ()

                  weaver::Exiting execution(void org.aspectj.weaver.bcel.UnwovenClassFile.deleteAllChildClasses())

                                  return: null

                weaver::Exiting execution(void org.aspectj.weaver.bcel.UnwovenClassFile.writeChildClasses(List))

                                 return: null

                util::Entering execution(BufferedOutputStream org.aspectj.util.FileUtil.makeOutputStream(File))

                               arguments (C:\Documents and Settings\colyer\Hello.class)

                util::Exiting execution(BufferedOutputStream org.aspectj.util.FileUtil.makeOutputStream(File))

                              return: java.io.BufferedOutputStream@8c858a

              weaver::Exiting execution(void org.aspectj.weaver.bcel.UnwovenClassFile.writeWovenBytes(byte[], List))

                              return: null

            weaver::Exiting execution(void org.aspectj.weaver.bcel.UnwovenClassFile.writeUnchangedBytes()) return: null

          weaver::Exiting execution(void org.aspectj.weaver.bcel.BcelWeaver.dumpUnchanged(UnwovenClassFile)) return: null

 

      weaver::Exiting execution(LazyClassGen org.aspectj.weaver.bcel.BcelWeaver.weave(

                                       UnwovenClassFile, BcelObjectType)) return: null

    weaver::Exiting execution(Collection org.aspectj.weaver.bcel.BcelWeaver.weave()) return: [Hello]

 

    ajdtcore::Exiting execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildManager.

                                   weaveAndGenerateClassFiles()) return: true

 

    // should we generate structure model?

    ajdtcore::Entering execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildConfig.isGenerateModelMode())

                       arguments ()

    ajdtcore::Exiting execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildConfig.isGenerateModelMode())

                      return: false

 

  ajdtcore::Exiting execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(

                                 AjBuildConfig, IMessageHandler, boolean)) return: true

ajdtcore::Exiting execution(boolean org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(

                               AjBuildConfig, IMessageHandler)) return: true