Quel est le statut du JSR 305?

101

J'ai vu la question JSR305 vs JSR308 (Anotations de type Java) - Quel sera le standard? et je comprends la différence entre JSR 308 et JSR 305 .

Je comprends également que, pour le moment, 308 est prévu pour Java 7, et 305 ne l'est pas, et je suis curieux de connaître l'état général de 305.

Plus précisément, j'utilise Google Collections et JSR-305 dans certains de mes projets (d'une manière similaire à ce que préconise l'une des meilleures pratiques de Guice ) et je me demandais si je devrais utiliser une approche plus «future». au lieu. Je prévois également de poser des questions à ce sujet sur le groupe JSR-305, mais ce groupe n'a pas beaucoup d'activité et je me demandais simplement si quelqu'un ici avait plus d'informations.

Charlie Collins
la source
1
J'accepterais la réponse que vous avez laissée à Kevin, mais je ne trouve pas de place dans ces articles où il est dit définitivement qu'ils seront dans Java 7, ou pas? (Et j'avais examiné ces informations, brièvement, avant de publier la question en fait.) Avez-vous vu une mention spécifique là-dedans indiquant qu'elles seront incluses (comme indiqué dans votre réponse)? Merci d'avance pour votre aide.
Charlie Collins
1
Après tout ce temps et quelques autres efforts pour comprendre exactement ce qui se passe, j'attribue la meilleure réponse, la seule réponse, la distinction «réponse». ;)
Charlie Collins
Java 9: stackoverflow.com/questions/37598775/...
Christophe Roussy
Mark Reinhold a récemment commenté sur un autre article de SO que "JSR 305, qui aurait normalisé javax.annotation.NonNull, n'a jamais été terminé parce que son lead spec est devenu AWOL."
Débit le

Réponses:

67

Comme décrit dans cette réponse , JSR-305 propose de nouvelles annotations telles que @NonNull , tandis que JSR-308 propose d'autoriser les annotations dans de nouveaux endroits comme sur les déclarations génériques.

Citant la page JSR 308 :

… Ce document ne propose aucune annotation, spécifiant simplement où elles peuvent apparaître dans le code Java.

JSR 308 (annotations dans de nouveaux endroits) est inclus dans java 8 sous JEP 104 .

Depuis 2017, JSR 305 (nouvelles annotations) continue d'avoir le statut officiel de «dormant». Une question sur son statut dans le groupe Google est restée sans réponse depuis 2010.

Il y a une implémentation de référence des JSR-305 annotations ici qui est utilisé par de nombreux projets, y compris la goyave. Avec maven, vous pouvez utiliser l'implémentation de référence JSR-305 en ajoutant ceci à votre pom:

<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>jsr305</artifactId>
    <version>3.0.0</version>
</dependency>
ponts
la source
2
lien vers com.google.code.findbugs: jsr305 sur maven central (la dernière version est maintenant 3.0.0)
Paolo Fulgoni
Vous pouvez utiliser la même version que pour le findbugs-maven-plugin(de org.codehaus.mojo) pour synchroniser les deux.
Christophe Roussy
2
Java 9 est doté de fonctionnalités complètes mais n'a pas été publié, et il semble que JSR-305 ne soit pas inclus. Y a-t-il un autre JSR qui a ajouté des annotations similaires?
dlamblin
9

Java 8 est décrit par JSR 337: la spécification a atteint le statut final: voir ici .

  • JSR 308 est définitivement dans
  • JSR 305 est définitivement sorti
Glen Best
la source
1

Selon le blog Java 7 d' Alex Millers , JSR-308 (et 305) sont programmés pour entrer dans Java 7. Peut-être qu'il apparaîtra ici et vous donnera plus d'informations.

Kevin
la source
51
Ni l'un ni l'autre n'est entré dans Java 7.
Miles
7
JSR308 sera dans Java 8, mais (mars 2013) JSR 305 est toujours en veille.
Maurice Naftalin