Ramnivas,
Thanks for the quick answer. I did have a follow-up to this if you wouldn't mind.
One way to keep join point selection stable is to use only stable characteristics of program elements: base interfaces, accepted naming conventions, declared exceptions etc
.
This makes perfect sense, and I try to do that when possible.
However, in certain cases such as transaction management and security, finding stable inherent characteristics can become difficult. This is where annotations come into picture. The use of annotations require that classes collaborate with aspects, but in the end, it gives a much simpler and stable solution.
Could you expand on this a little more? Which annotations are you referring to here?
thanks,
Jeff