Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] RE: newbie: wildcards in pointcuts

Joost,

although this challenge has been discussed on the mailing list before, it won't get old until there's a solution or a well established set of practices for dealing with it. In fact, it was because of users like you that we now have a greatly expanded -Xlint feature. The compiler in 1.0.x did not warn you when you typed Printstream.*. (error = lowercase s) Consider looking into the various -Xlint options if you want more feedback from the compiler.

I think the metadata facility will really help AspectJ. In the meantime, consider using other Java information (modifiers, inheritance relationships) to determine which joinpoints should be included:

declare parents : This || That || TheOther implements ServiceBoundary;
pointcut boundaryMethods() : call(public * ServiceBoundary+.*(..));

Cheers,
Nick
On Mar 8, 2004, at 7:27 AM, Joost de Vries wrote:

Ok, sorry if I misunderstood and represented your thoughts falsely. I'm
aware I'm a newbie in this field.
I understand what you're saying: in my case annotating with a tag
"to_be_publicized_on_queue" would be not suitable for reuse while the tag
"boundary_service" would be correct.

It's just that I really like the immediate feedback the javacompiler gives
when I refer to a class or method that does not exist.
Using wildcards I get the feeling that I suddenly dropped from the world of Java to Javascript where I only find out at runtime if the system that
we deployed does include the aspect correctly. Since I'm the only
developer on the project right now who has some grasp of aspects the build
could easily be broken without anybody finding out until the system is
running. As you can imagine this makes me uneasy.
Is there something in the works for the aspect-compiler that provides this kind of immediate feedback, in the appropriate cases, for pointcuts that
do not refer to any joinpoints?

I hope I'm not rekindling an argument that has already been beaten to
death on the mailing-list.
*ducks* Don't hit me, I'm just a newbie!  :-)

groetjes uit nederland,

Joost de Vries


From: Joost de Vries
Sent: Monday, March 08, 2004 1:06 AM

Or just refer to a unique
metadata tag just like when I'm referencing a class.
Of course the new metadata spec in JDK 1.5 is ideal for this.
I seem to
recall that Gregor is opposed to using metadata since the code that is
being enhanced should not have knowledge of the fact that it is being
enhanced.

I'm not opposed to using metadata tags in pointcuts. I think there
are cases where that is exactly what you want. What I have tried to
say, but not very clearly, is that doing this all the time would be
a shame, because it violates the nice non-invasive property of using
other kinds of pointcuts. And that when you do use such tags, the
tags should be named for a property of what is true of those methods,
not for what the aspect will do. That makes the tags more reusable
by other aspects, in other configurations etc.


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/aspectj-users


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/aspectj-users




Back to the top