Package org.aspectj.weaver.ltw
Class LTWWorld
java.lang.Object
org.aspectj.weaver.World
org.aspectj.weaver.bcel.BcelWorld
org.aspectj.weaver.ltw.LTWWorld
- All Implemented Interfaces:
Repository
,Dump.INode
,IReflectionWorld
- Author:
- adrian, Ron Bodkin For use in LT weaving Backed by both a BcelWorld and a ReflectionWorld Needs a callback when a woven class is defined This is the trigger for us to ditch the class from Bcel and cache it in the reflective world instead. Create by passing in a classloader, message handler
-
Nested Class Summary
Nested classes/interfaces inherited from class org.aspectj.weaver.World
World.TypeMap
-
Field Summary
Fields inherited from class org.aspectj.weaver.World
bcelRepositoryCaching, BOOLEAN, BYTE, CHAR, createInjarHierarchy, DOUBLE, FLOAT, forDEBUG_bridgingCode, forDEBUG_structuralChangesCode, generateNewLvts, infoMessagesEnabled, INT, LONG, optimizedMatching, RUNTIME_LEVEL_DEFAULT, SHORT, timersPerJoinpoint, timersPerType, typeMap, VOID, xsetAVOID_FINAL, xsetBCEL_REPOSITORY_CACHING, xsetBCEL_REPOSITORY_CACHING_DEFAULT, xsetCAPTURE_ALL_CONTEXT, xsetCOMPLETE_BINARY_TYPES, xsetCOMPLETE_BINARY_TYPES_DEFAULT, xsetDEBUG_BRIDGING, xsetDEBUG_STRUCTURAL_CHANGES_CODE, xsetFAST_PACK_METHODS, xsetGENERATE_NEW_LVTS, xsetGENERATE_STACKMAPS, xsetITD_VERSION, xsetITD_VERSION_2NDGEN, xsetITD_VERSION_DEFAULT, xsetITD_VERSION_ORIGINAL, xsetMINIMAL_MODEL, xsetOPTIMIZED_MATCHING, xsetOVERWEAVING, xsetPIPELINE_COMPILATION, xsetPIPELINE_COMPILATION_DEFAULT, xsetRUN_MINIMAL_MEMORY, xsetTARGETING_RUNTIME_1610, xsetTIMERS_PER_FASTMATCH_CALL, xsetTIMERS_PER_JOINPOINT, xsetTRANSIENT_TJP_FIELDS, xsetTYPE_DEMOTION, xsetTYPE_DEMOTION_DEBUG, xsetTYPE_REFS, xsetWEAVE_JAVA_PACKAGES, xsetWEAVE_JAVAX_PACKAGES
-
Constructor Summary
ConstructorDescriptionLTWWorld(ClassLoader loader, IWeavingContext weavingContext, IMessageHandler handler, ICrossReferenceHandler xrefHandler)
Build a World from a ClassLoader, for LTW support -
Method Summary
Modifier and TypeMethodDescriptionvoid
accept(Dump.IVisitor visitor)
Dump processing when a fatal error occursprotected void
Called when a type is resolved - enables its type hierarchy to be finished off before we proceedprotected ResolvedType
boolean
boolean
isLocallyDefined(String classname)
Return true if the classloader relating to this world is definetly the one that will define the specified class.boolean
void
loadedClass(Class clazz)
Remove this class from the typeMap.protected boolean
protected ReferenceTypeDelegate
Overrideprotected ReferenceTypeDelegate
void
storeClass(JavaClass clazz)
Store the provided class under "clazz.getClassName()"Methods inherited from class org.aspectj.weaver.bcel.BcelWorld
addAspectRequires, addPath, addScopedAspect, addSourceObjectType, addSourceObjectType, addSourceObjectType, addTypeDelegateResolver, buildBcelDelegate, classWriteEvent, clear, demote, determineRelKind, ensureRepositorySetup, findClass, fromBcel, getAspectScope, getBcelObjectType, getClassLoaderRepositoryFor, getModelAsAsmManager, getTypeMap, getWeavingSupport, getXmlConfiguration, hasUnsatisfiedDependency, isAspectIncluded, isXmlConfigured, loadClass, loadClass, makeBcelType, makeBcelType, makeBcelTypes, makeFieldJoinPointSignature, makeJoinPointSignatureForArrayConstruction, makeJoinPointSignatureForMethodInvocation, makeJoinPointSignatureForMonitorEnter, makeJoinPointSignatureForMonitorExit, makeJoinPointSignatureFromMethod, removeClass, reportCheckerMatch, reportMatch, resolve, setXmlConfigured, setXmlFiles, tidyUp, toString, validateType, weaveInterTypeDeclarations
Methods inherited from class org.aspectj.weaver.World
areAllLintIgnored, areInfoMessagesEnabled, areSynchronizationPointcutsInUse, compareByPrecedence, compareByPrecedenceAndHierarchy, couldIncrementalCompileFollow, createAdviceMunger, demote, ensureAdvancedConfigurationProcessed, flush, forgetTypeVariablesCurrentlyBeingProcessed, getCoreType, getCrosscuttingMembersSet, getCrossReferenceHandler, getDeclareAnnotationOnFields, getDeclareAnnotationOnMethods, getDeclareAnnotationOnTypes, getDeclareParents, getDeclareSoft, getDeclareTypeEows, getExclusionMap, getExpendable, getExtraConfiguration, getFixed, getItdVersion, getLint, getMessageHandler, getModel, getPrecedenceIfAny, getRegisteredPointcutHandlers, getTargetAspectjRuntimeLevel, getTypeVariableLookupScope, getTypeVariablesCurrentlyBeingProcessed, isAddSerialVerUID, isDemotionActive, isExpendable, isHasMemberSupportEnabled, isIgnoringUnusedDeclaredThrownException, isInJava5Mode, isInPinpointMode, isJoinpointArrayConstructionEnabled, isJoinpointSynchronizationEnabled, isMinimalModel, isOverWeaving, isRunMinimalMemorySet, isTargettingAspectJRuntime12, isTargettingRuntime1_6_10, isTimingEnabled, isTransientTjpFields, isXlazyTjp, isXnoInline, lookupBySignature, lookupOrCreateName, performExtraConfiguration, record, recordFastMatch, recordTypeVariablesCurrentlyBeingProcessed, registerPointcutHandler, reportTimers, reset, resolve, resolve, resolve, resolve, resolve, resolve, resolve, resolve, resolveGenericTypeFor, resolveToReferenceType, setAddSerialVerUID, setAllLintIgnored, setBehaveInJava5Way, setCrossReferenceHandler, setErrorAndWarningThreshold, setIncrementalCompileCouldFollow, setLint, setMessageHandler, setModel, setOptionalJoinpoints, setPinpointMode, setSynchronizationPointcutsInUse, setTargetAspectjRuntimeLevel, setTiming, setTypeVariableLookupScope, setXHasMemberSupportEnabled, setXlazyTjp, setXnoInline, shouldFastPackMethods, shouldGenerateStackMaps, shouldPipelineCompilation, showMessage, useFinal
-
Field Details
-
concurrentMapClass
-
bootstrapTypes
-
-
Constructor Details
-
LTWWorld
public LTWWorld(ClassLoader loader, IWeavingContext weavingContext, IMessageHandler handler, ICrossReferenceHandler xrefHandler)Build a World from a ClassLoader, for LTW support
-
-
Method Details
-
getClassLoader
-
resolveDelegate
Override- Overrides:
resolveDelegate
in classBcelWorld
-
resolveIfBootstrapDelegate
-
loadedClass
Remove this class from the typeMap. Call back to be made from a publishing class loader The class loader should, ideally, make this call on each not yet working- Parameters:
clazz
-
-
getAnnotationFinder
- Specified by:
getAnnotationFinder
in interfaceIReflectionWorld
-
resolve
- Specified by:
resolve
in interfaceIReflectionWorld
-
isRunMinimalMemory
public boolean isRunMinimalMemory()- Overrides:
isRunMinimalMemory
in classWorld
-
completeBinaryType
Description copied from class:World
Called when a type is resolved - enables its type hierarchy to be finished off before we proceed- Overrides:
completeBinaryType
in classWorld
-
needsCompletion
protected boolean needsCompletion() -
isLocallyDefined
Description copied from class:World
Return true if the classloader relating to this world is definetly the one that will define the specified class. Return false otherwise or we don't know for certain.- Overrides:
isLocallyDefined
in classWorld
-
completeNonLocalType
-
storeClass
Description copied from interface:Repository
Store the provided class under "clazz.getClassName()"- Specified by:
storeClass
in interfaceRepository
- Overrides:
storeClass
in classBcelWorld
-
accept
Description copied from class:World
Dump processing when a fatal error occurs- Specified by:
accept
in interfaceDump.INode
- Overrides:
accept
in classWorld
-
isLoadtimeWeaving
public boolean isLoadtimeWeaving()- Overrides:
isLoadtimeWeaving
in classBcelWorld
-