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