Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] Webapp development and AJ

Hi Andy,

 

That’s great news re: the AJDT.

 

How does adding code that matches a cflow test or that might otherwise be munged (advised) affect the generated method names?

 

Re: changing order of source processing for advice where no precedence is specified, that to me is problematic. It’s really important that you be able to take in, say, a valid woven injar, reweave it, and not produce changed bytecode. And having unordered advice is the norm in my experience: you typically want to write fairly orthogonal aspects where there isn’t a need to explicitly specify precedence. I’d much rather some predictable way of generating names that doesn’t depend on ordering.

 

I will also take a closer look the next time I see recompilation breaking hotswap: I think it is typically when you change the advised code that things are incompatible, which is actually the case I care about the most. If I change a pointcut, I recognize there may be significant changes…

 

I will also put some more effort into trying to isolate problems I’ve seen where weaving an –aspectpath aspect with cflow tests into a another class resulted in bytecode calls to private cflow methods in the aspect… it seems like it might also be related to this.

 


From: aspectj-users-bounces@xxxxxxxxxxx [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Andy Clement
Sent: Thursday, March 09, 2006 2:12 PM
To: aspectj-users@xxxxxxxxxxx
Subject: Re: [aspectj-users] Webapp development and AJ

 

Hello,

> When AJDT picks up a new AspectJ build, it will have
> much reduced memory use (and I believe it will fix the old leaks that might
> cause crashing)...
>

I am not sure how to read this: newer AJDT builds are better in what
regards memory usage? Is this only available to builds for 3.2, or
should it be the same for 3.1 too?



AJDT has only just *this afternoon* picked up the new AspectJ builds with
greatly improved memory management - the first builds to include it
will be for eclipse 3.1.  When the dust has settled (24hours) and it proves
to us that it basically works, we will put it into AJDT builds for 3.2.

Re this comment:
> Re: hot deploy, I would really like for AspectJ to improve the stability of
> generated method names. Does it even guarantee that compiling the same
> sources in a different order would produce the same bytecode output? In the
> same order?

I'm not sure how we can improve it further? You can change the body of an
advice or add/remove methods/fields from a type and the generated names will
be the same.  If you change the pointcut or the order of advice within a file
then the name will change - and it is now different enough that it would likely
require recompilation of code being affected by it.  We have to guarantee
this so that simple changes to the aspect (perhaps building a new version
of your aspect library with one slight change to an advice body) doesn't
require all code dependent on your aspect to be rebuilt.

The same sources compiled in different order will produce the same output
99.99% of the time - within the rules about application of advice ordering
being undefined if there is no precedence set.

andy

 


Back to the top