Community
Participate
Working Groups
to be implemented note: some key difference with code style where a fake metod is used as: ajc_declare_<n>, one per declare @xxx, no matter x for @style, we can't have the user do that, so the user need to use explicit fake structure: field, method, ctor(<n Fake arg !? empty ctor.. BAD), type (<n> nested Fake type not so bad (we can say it must be an inner interface f.e.) hence diff. in binary form with code style, + troubles witht the lang.reflect API ...
M4 due to the language choice not that clean yet
detailling some more class A {} say we have @Service for class and @Trace for method and ctor. @Aspect class MyAspect { @DeclareAnnotation(typePattern)//checks need to make sure this is a type pattern and not a pointcut in that case @Service class Fake {}//ugly @DeclareAnnotation(method pattern)//checks.. @Trace void fakeMethod() {}; // etc for ctor and field - very very ugly all those fakeXXX especially ctor // we need to find a better way for that feature } }
some other sample: say @Trace has target on ctor only.. @Aspect class MyAspect { @DeclareAnnotation(ctor pattern)//checks.. @Trace MyAspect() {} // really odd don't you think ? // we usually don't code the aspect ctor }
Alex also posted this example of multiple declare @constructors in the same aspect: @Aspect class MyAspect { @DeclareAnnotation(ctor pattern) @AnnoA MyAspect() { } //dumb but acceptable @DeclareAnnotation(ctor pattern) @AnnoB MyAspect(int fake) {} // BAD - will never be call, and is even error prone } which is even more horrible. I can't see an immediate nice way of doing this, and I'd prefer to do nothing than do something we regret and have to support going forwards. I propose that we don't implement support for declare annotation in the @AJ style for 1.5.0. That gives us the chance to see how strongly users request it, and to think about a better strategy for implementation in a 1.5.1 release. If you agree, let's move this bug to "RESOLVED LATER" and take off the M4 flag. Andy, I've put you on cc for this too....
we all agreed to defer post 1.5 for now there is no post 1.5 so assign to 1.5
moving to 1.5.1 as per Alex's last comment....