Qual é o status do JSR 305?


101

Eu vi a pergunta JSR305 vs. JSR308 (Java Type Anotations) - Qual será o padrão? e eu entendo a diferença entre JSR 308 e JSR 305 .

Eu também entendo que, neste momento, 308 está programado para Java 7 e 305 não, e estou curioso sobre o status geral do 305.

Especificamente, estou usando o Google Collections e o JSR-305 em alguns dos meus projetos (de maneira semelhante ao que um dos defensores das práticas recomendadas do Guice ) e queria saber se há uma abordagem mais amigável para "direção futura" que eu deveria usar em vez de. Também estou planejando perguntar sobre isso no grupo JSR-305, mas esse grupo não tem muita atividade e eu queria saber se alguém aqui tem mais informações.


1
Eu aceitaria a resposta que você deixou Kevin, mas não consigo encontrar um lugar nesses artigos onde diz que definitivamente eles estarão em Java 7, ou não? (E eu revisei essas informações, brevemente, antes de postar a pergunta de fato.) Você viu uma menção específica lá de que elas serão incluídas (conforme indicado em sua resposta)? Agradeço antecipadamente por sua ajuda.
Charlie Collins

1
Depois de tanto tempo, e alguns outros esforços para descobrir exatamente o que está acontecendo, estou atribuindo a melhor resposta, a única resposta, a distinção "resposta". ;)
Charlie Collins


Mark Reinhold comentou recentemente em outro post do SO que "JSR 305, que padronizaria javax.annotation.NonNull, nunca foi concluído porque seu líder de especificações desapareceu."
Fluxo de

Respostas:


67

Conforme descrito nesta resposta , JSR-305 propõe novas anotações como @NonNull , enquanto JSR-308 propõe permitir anotações em novos lugares, como em declarações genéricas.

Citando a página JSR 308 :

… Este documento não propõe quaisquer anotações, apenas especificando onde elas podem aparecer no código Java.

JSR 308 (anotações em novos lugares) está incluído no java 8 em JEP 104 .

A partir de 2017, a JSR 305 (novas anotações) continua com o status oficial de “Inativo”. Uma pergunta sobre seu status no grupo do google não tem resposta desde 2010.

Há uma implementação de referência das anotações JSR-305 aqui, que é usada por muitos projetos, incluindo goiaba. Com o maven, você pode usar a implementação de referência JSR-305 adicionando ao seu pom:

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

2
link para com.google.code.findbugs: jsr305 no maven central (a versão mais recente agora é 3.0.0)
Paolo Fulgoni

Você pode usar a mesma versão do findbugs-maven-plugin(de org.codehaus.mojo) para sincronizar ambos.
Christophe Roussy

2
O Java 9 está completo, mas não foi lançado, e parece que o JSR-305 não está incluído. Houve outro JSR que adicionou anotações semelhantes?
dlamblin


9

Java 8 é descrito por JSR 337: a especificação atingiu o status Final: veja aqui .

  • JSR 308 está definitivamente na
  • JSR 305 definitivamente fora de questão

1

De acordo com o blog Alex Millers Java 7 , JSR-308 (e 305) estão programados para ir para o Java 7. Talvez ele apareça aqui e lhe dê mais informações.


51
Nenhum deles conseguiu entrar no Java 7.
Miles

7
JSR308 estará em Java 8, mas (março de 2013) JSR 305 ainda está inativo.
Maurice Naftalin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.