BT

Nova versão do Java não será JDK 1.9

| por Bienvenido David Seguir 1 Seguidores , traduzido por Rafael Sakurai Seguir 35 Seguidores em 29 dez 2014. Tempo estimado de leitura: 4 minutos |

A proposta de melhoria do JDK 223 (JDK Enhancement Proposal - JEP) é um novo esquema para versionamento do JDK que facilita a distinção entre as versões maiores, menores e de segurança. Sendo mais simples, intuitivo, fácil de analisar e alinhar com as práticas atuais da indústria, em particular com o versionamento semântico. Por exemplo, se o JDK 1.7.0_65-b20 (7u65) usar esse novo esquema de versionamento, o texto da versão poderia ser JDK 7.6.15+20 (7.6.15).

No esquema atual de versionamento da JDK: "JDK 7 Update 65", "JDK 1.7.0_65" e "JDK 7u65" são nomes diferentes para a mesma versão. Para identificar e comparar versões, uma simples analise pontual dos padrões não é suficiente e um algoritmo mais sofisticado é necessário. O uso da letra 'u' em minúsculo também não é usado como padrão na indústria e não é uma linguagem neutra. No atual esquema de numeração do JDK, as versões menores contendo mudanças além de bugs de segurança são múltiplos de 20. As versões de segurança com base nas menores versões anteriores são números estranhos incrementados em cinco ou seis. Aqueles que não conhecem esse esquema de numeração podem pensar que o "JDK 7 Update 60" são cinco versões após o "JDK 7 Update 55" e incorretamente assumem que o primeiro tem mais correções de segurança. Essa prática de codificar as versões menores e de segurança no mesmo número não é fácil de decifrar e também resulta em saltos de muitas versões.

Os objetivos do JEP 223 são: a versão deve ser fácil de entender e fácil de analisar; deve alinhar com as práticas atuais da indústria de versionamento de semântica; deve ser adotado pelos pacotes existentes e sistemas publicados. O JEP também fornecerá uma API para analise do texto da versão, validação e comparação. Não é objetivo dessa JEP mudar os formatos de textos das versões usadas nas versões anteriores do JDK.

Um número de versão é uma sequência não vazia de números inteiros positivos separados pelos caracteres do período. Ele não contém zeros a esquerda e combina com a expressão regular [1-9][0-9]*(\.(0|[1-9][0-9]*))*. Os três primeiros elementos são $MAJOR.$MINOR.$SECURITY. O $MAJOR é incrementado para uma versão maior que contém novas funcionalidades significantes como especificadas na nova Especificação da Plataforma Java SE. O $MINOR é incrementado para as atualizações menores que podem conter correções de bugs compatíveis, revisões para padronizar APIs e funcionalidades de implementações como os novos coletores de lixo ou suporte para arquitetura de novos hardwares. O $SECURITY é incrementado para uma versão de atualização de segurança que contém correções críticas. $MINOR e $SECURITY são redefinidos com zero quando uma $MAJOR é incrementado. Um alto valor do $SECURITY para um determinado valor de $MAJOR indica uma versão mais segura, independentemente do valor de $MINOR.

Um texto de versão consiste do número de versão, opcionalmente seguido de um pré-lançamento e informação de construção. O identificador do pré-lançamento ea é para uma versão de acesso prévio (early-access) que está em desenvolvimento ativo. O número da construção é incrementado para cada construção promovida, e redefine para 1 quando qualquer porção do número de versão é incrementado. O texto da versão com elementos zeros à direita omitidos é chamado de texto de versão curta. A tabela a seguir compara os textos das versões potenciais para o JDK 9 usando os formatos atuais e propostos. Observe que os códigos existentes que assumem a versão do JDK sempre iniciam com o valor 1 deixará de funcionar corretamente.

                                  Existente                     Proposto

Tipo Lançamento          longo                curto        longo            curto

---------------------    ------------------------------    ----------------------
Acesso Prévio             1.9.0-ea-b19          9-ea        9.0.0-ea+19      9-ea
Maior                     1.9.0-b100            9           9.0.0+100        9
Segurança #1              1.9.0_5-b20           9u5         9.0.1+20         9.0.1
Segurança #2              1.9.0_11-b12          9u11        9.0.2+12         9.0.2
Menor #1                  1.9.0_20-b62          9u20        9.1.2+62         9.1.2
Segurança #3              1.9.0_25-b15          9u25        9.1.3+15         9.1.3
Segurança #4              1.9.0_31-b08          9u31        9.1.4+8          9.1.4
Menor #2                  1.9.0_40-b45          9u40        9.2.4+45         9.2.4

O JEP foi criado em 20 de outubro de 2014 e está na condição de Candidato para o lançamento do JDK 9. Para mais informações incluindo um exemplo da API Java do JDK, por favor leia o JEP 223 e Sistema de bugs do JDK (JBS) 8061493.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT