Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 30279 Details for
Bug 117189
Contribution: reduce overhead when no aspects define
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
patch as described
weavingAdaptorDisabled.patch (text/plain), 4.53 KB, created by
Ron Bodkin
on 2005-11-19 13:06:25 EST
(
hide
)
Description:
patch as described
Filename:
MIME Type:
Creator:
Ron Bodkin
Created:
2005-11-19 13:06:25 EST
Size:
4.53 KB
patch
obsolete
>Index: ClassLoaderWeavingAdaptor.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java,v >retrieving revision 1.29 >diff -u -r1.29 ClassLoaderWeavingAdaptor.java >--- ClassLoaderWeavingAdaptor.java 15 Nov 2005 14:34:45 -0000 1.29 >+++ ClassLoaderWeavingAdaptor.java 19 Nov 2005 18:05:47 -0000 >@@ -14,6 +14,7 @@ > > import org.aspectj.asm.IRelationship; > import org.aspectj.bridge.IMessage; >+import org.aspectj.bridge.IMessageHandler; > import org.aspectj.bridge.ISourceLocation; > import org.aspectj.bridge.Message; > import org.aspectj.bridge.MessageUtil; >@@ -99,6 +100,11 @@ > weavingContext = wContext ; > } > >+ List definitions = parseDefinitions(loader, messageHandler); >+ if (!enabled) { >+ return; >+ } >+ > bcelWorld = new BcelWorld( > loader, messageHandler, new ICrossReferenceHandler() { > public void addCrossReference(ISourceLocation from, ISourceLocation to, IRelationship.Kind kind, boolean runtimeTest) { >@@ -106,7 +112,6 @@ > } > } > ); >- > // //TODO this AJ code will call > // //org.aspectj.apache.bcel.Repository.setRepository(this); > // //ie set some static things >@@ -116,14 +121,13 @@ > weaver = new BcelWeaver(bcelWorld); > > // register the definitions >- registerDefinitions(weaver, loader); >+ registerDefinitions(weaver, loader, definitions); >+ messageHandler = bcelWorld.getMessageHandler(); > >- // AV - see #113511 - not sure it is good to skip message handler >- if (enabled) { >- messageHandler = bcelWorld.getMessageHandler(); >- // after adding aspects >- weaver.prepareForWeave(); >- } >+ //bcelWorld.setResolutionLoader(loader.getParent());//(ClassLoader)null);// >+ >+ // after adding aspects >+ weaver.prepareForWeave(); > } > > /** >@@ -132,11 +136,11 @@ > * @param weaver > * @param loader > */ >- private void registerDefinitions(final BcelWeaver weaver, final ClassLoader loader) { >- try { >- MessageUtil.info(messageHandler, "register classloader " + getClassLoaderName(loader)); >+ private List parseDefinitions(final ClassLoader loader, IMessageHandler handler) { >+ List definitions = new ArrayList(); >+ try { >+ MessageUtil.info(messageHandler, "register classloader " + ((loader!=null)?loader.getClass().getName()+"@"+loader.hashCode():"null")); > //TODO av underoptimized: we will parse each XML once per CL that see it >- List definitions = new ArrayList(); > > //TODO av dev mode needed ? TBD -Daj5.def=... > if (ClassLoader.getSystemClassLoader().equals(loader)) { >@@ -160,7 +164,18 @@ > definitions.add(DocumentParser.parse(xml)); > } > } >- >+ if (definitions.isEmpty()) { >+ enabled = false; >+ } >+ } catch (Exception e) { >+ handler.handleMessage( >+ new Message("Register definition failed", IMessage.WARNING, e, null)); >+ } >+ return definitions; >+ } >+ >+ private void registerDefinitions(final BcelWeaver weaver, final ClassLoader loader, List definitions) { >+ try { > // still go thru if definitions is empty since we will configure > // the default message handler in there > registerOptions(weaver, loader, definitions); >@@ -177,8 +192,9 @@ > info("no configuration found. Disabling weaver for class loader " + getClassLoaderName(loader)); > } > } catch (Exception e) { >- enabled = false;// will allow very fast skip in shouldWeave() >- warn("register definition failed",e); >+ weaver.getWorld().getMessageHandler().handleMessage( >+ new Message("Register definition failed", IMessage.WARNING, e, null) >+ ); > } > } > >@@ -437,6 +453,10 @@ > } > > protected boolean accept(String className, byte[] bytes) { >+ >+ if (!enabled) { >+ return false; >+ } > // avoid ResolvedType if not needed > if (m_excludeTypePattern.isEmpty() && m_includeTypePattern.isEmpty()) { > return true; >@@ -586,5 +606,4 @@ > public void flushGeneratedClasses(){ > generatedClasses = new HashMap(); > } >- > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
aclement
:
iplog+
Actions:
View
|
Diff
Attachments on
bug 117189
: 30279 |
30364