¿Cuál es el estado de JSR 305?


101

He visto la pregunta JSR305 vs. JSR308 (Anotaciones de tipo Java): ¿Cuál será el estándar? y entiendo la diferencia entre JSR 308 y JSR 305 .

También entiendo que, en este momento, 308 está programado para Java 7 y 305 no, y tengo curiosidad sobre el estado general de 305.

Específicamente, estoy usando Google Collections y JSR-305 en algunos de mis proyectos (de manera similar a lo que defiende una de las mejores prácticas de Guice ) y me preguntaba si hay un enfoque más amigable con la "dirección futura" que debería usar. en lugar. También planeo preguntar sobre esto en el grupo JSR-305, pero ese grupo no tiene mucha actividad y me preguntaba si alguien aquí tenía más información.


1
Aceptaría la respuesta que dejaste Kevin, pero no puedo encontrar un lugar en esos artículos donde diga definitivamente que estarán en Java 7, ¿o no? (Y yo había revisado esa información, brevemente, antes de publicar la pregunta en realidad.) ¿Has visto una mención específica en la que hay que van a ser incluidos (como se indica en su respuesta)? Gracias de antemano por tu ayuda.
Charlie Collins

1
Después de tanto tiempo, y de algunos otros esfuerzos para averiguar exactamente qué pasa, estoy otorgando la mejor respuesta, la única respuesta, la distinción de "respuesta". ;)
Charlie Collins


Mark Reinhold comentó recientemente en otra publicación de SO que "JSR 305, que habría estandarizado javax.annotation.NonNull, nunca se completó porque su líder de especificaciones se quedó sin permiso".
Flujo

Respuestas:


67

Como se describe en esta respuesta , JSR-305 propone nuevas anotaciones como @NonNull , mientras que JSR-308 propone permitir anotaciones en nuevos lugares, como en declaraciones genéricas.

Citando la página JSR 308 :

… Este documento no propone anotaciones, simplemente especifica dónde pueden aparecer en el código Java.

JSR 308 (anotaciones en lugares nuevos) se incluye en java 8 bajo JEP 104 .

A partir de 2017, JSR 305 (nuevas anotaciones) sigue teniendo el estado oficial de "inactivo". Una pregunta sobre su estado en el grupo de Google no ha recibido respuesta desde 2010.

Hay una implementación de referencia de los JSR-305 anotaciones aquí que es utilizado por muchos proyectos, incluyendo guayaba. Con maven puede usar la implementación de referencia JSR-305 agregando esto a su pom:

<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>jsr305</artifactId>
    <version>3.0.0</version>
</dependency>

2
enlace a com.google.code.findbugs: jsr305 en maven central (la última versión ahora es 3.0.0)
Paolo Fulgoni

Puede utilizar la misma versión que para el findbugs-maven-plugin(desde org.codehaus.mojo) para sincronizar ambos.
Christophe Roussy

2
Java 9 tiene funciones completas pero no se ha lanzado, y parece que JSR-305 no está incluido. ¿Hubo otro JSR que agregó anotaciones similares?
dlamblin


9

Java 8 está descrito por JSR 337: la especificación ha alcanzado el estado final: consulte aquí .

  • JSR 308 definitivamente está en
  • JSR 305 definitivamente está fuera

1

Según el blog de Alex Millers sobre Java 7 , JSR-308 (y 305) están programados para entrar en Java 7. Quizás aparezca aquí y le dé más información.


51
Ninguno de los dos llegó a Java 7.
Miles

7
JSR308 estará en Java 8, pero (marzo de 2013) JSR 305 todavía está inactivo.
Maurice Naftalin
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.