[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] declare parents syntax

Hi Eugene,

It would be great to have a way to reuse type patterns in AspectJ... that's
something I've advocated for a while. That's how I'd improve on redundancy.

But if you are using declare parents you could use the new type in your
pointcut, i.e., use this pointcut execution(* *(..)) && within(XyzType+)
instead of execution(* *(..)) && within(com.xyz..*)

-----Original Message-----
From: aspectj-users-bounces@xxxxxxxxxxx
[mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Eugene Kuleshov
Sent: Friday, September 29, 2006 11:04 AM
To: aspectj-users@xxxxxxxxxxx
Subject: Re: [aspectj-users] declare parents syntax

  Thanks Ron, I know that. But the thing is that the same pattern is 
used in pointcuts to apply additional aspects to the very same classes. 
Hence a duplication that may lead to some unexpected typos.


Ron Bodkin wrote:
> Hi Eugene,
> declare parents accepts a type pattern, not a pointcut. A type pattern
> out types, whereas a pointcut picks out join points. The expression inside
> within pointcut are is a type pattern.
> Here's an example of using declare parents to match a type pattern, which
> surely what you wanted to do with within:
> declare parents: com.xyz..* implements XyzType;
> -----Original Message-----
> From: aspectj-users-bounces@xxxxxxxxxxx
> [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Eugene Kuleshov
> Sent: Thursday, September 28, 2006 12:06 PM
> To: aspectj-users@xxxxxxxxxxx
> Subject: [aspectj-users] declare parents syntax
> Hi,
>   I wonder why "declare parents" introduction syntax does not allow to 
> use within(*) pointcut expression?
>   This limitation lead to significant amount of duplication in the 
> aspect code and/or makes xml-based aspect definitions more verbose. The 
> only workaround I know is to "bridge" trough annotation introduction, 
> but that approach does not work on 1.4 and looks like a hack.
>   I thought I saw that it was possible to use within pointcuts for this 
> in some old version of AspectJ but it was removed. I might be mistaken 
> though...
>   Thanks
>   Eugene

aspectj-users mailing list