this seems reasonable to me, starting basic with the most important case and 
able to extend in the future

I just checked how it is done in Eclipse: Eclipse has its own annotations [1], 
and null check seems to be configurable [2], but only with one null annotation 
at a time.

Now back to proposed annotations.
While looking at Eclipse annotations, I noticed that:
- same annotation attributes: none :)
- different retention strategy
- restricted target
I didn't look at JSR 305 equivalent annotations, nor Findbugs ones, but I 
suppose there is a right definition to choose.

Regards,

Hervé

[1] 
http://git.eclipse.org/c/jdt/eclipse.jdt.core.git/tree/org.eclipse.jdt.annotation/src/org/eclipse/jdt/annotation

[2] http://wiki.eclipse.org/JDT_Core/Null_Analysis#Usage

Le vendredi 17 mai 2013 23:32:55 Kristian Rosenvold a écrit :
> I had a little chat with the guys at the findbugs mailing list which has
> made this all a lot easier, even to thickheads like me:
> 
> It turns out we do not have to "subscribe" to anything like JSR-305 at all.
> I probably watched the movie "Highlander" too much in my teens, which had
> me searching too much for the "there can be only one" kind of solution.
> 
> Since I love source code, I'll just point you all at the findbugs source I
> was given:
> 
> http://code.google.com/p/findbugs/source/browse/trunk/findbugs/src/java/edu/
> umd/cs/findbugs/ba/NullnessAnnotation.java#55
> 
> This shows the part where findbugs searches for /any/ kind of @Nonnull
> annotation and also @Nullable. The guys at findbugs realized that there
> does not have to be only one. And it turns out the IntelliJ guys also
> understood this, so we can add any arbitrary annotation to the
> "nullability" section of the idea code-style file. (As for eclipse, well -
> ahem - I'm sure the eclipse users out there will solve this. It' s OSS  :)
> 
> So the proposal is really simple:
> 
> We make "maven-annotations" under maven-shared. RC for this can be found at
> https://github.com/krosenvold/maven-annotations.git
> 
> this implementation does /not/ depend on any specific "jsr" or any other
> dependency, so we can freely leak this from maven core into plugins.
> 
>  We specifically leak
> 
> org.apache.maven.shared.annotations.Nonnull
> org.apache.maven.shared.annotations.Nullable
> 
> from maven core into plugins. From the moment we publish these, they cannot
> ever change.
> 
> If core exposes version "1.0" of "maven-annotations" and a plugin includes
> version "1.1" of maven-annotations, the *additional* definitions in 1.1
> will be loaded from the 1.1 jar, while Nonnull and Nullable will leak in
> their 1.0 versions from core.
> 
> Kristian

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to