Arquivo da tag: openjdk

Canonical vai remover Java do sistema de usuários

A Canonical anunciou na semana passada que vai remover sistematicamente o Java do Ubuntu, deixando espaço para alternativas livres. A decisão tem base nos problemas de segurança encontrados nos pacotes JDK do Java, usados também em navegadores. Várias das vulnerabilidades foram descobertas em outubro e até hoje permanecem sem solução, oferecendo risco aos usuários. Dessa forma a Canonical achou mais fácil desabilitar o plugin e cortar o mal pela raíz.

As primeiras versões do Ubuntu a serem afetadas serão a 10.04 LTS, 10.10 e 11.04. A ideia envolve substituir os pacotes disponíveis atualmente no repositório de Parceiros com pacotes vazios. Assim, ao fazer a atualização, o próprio Ubuntu removeria todos os arquivos do sistema.

A Canonical já está alertando aos usuários para que migrem para OpenJDK e desinstalem o JDK da Oracle (caso eles o tenham baixado e instalado manualmente), ou eles poderão “experimentar falhas após a atualização dos pacotes”.

Marc Deslauriers, da Canonical, disse que eles podiam remover os pacotes dos repositórios e deixar os pacotes inseguros nos sistemas dos usuários, ou remover tanto dos repositórios, quanto dos sistemas, de forma remota. “Não há uma forma perfeita de lidar com isso”, ele disse, “mas infelizmente essa é melhor maneira de lidar com o problema e garantir que nossos usuários permaneçam seguros, ao custo de quebrar algumas instalações”.

Portanto, se você ainda não usa o OpenJDK ou o icedtea, é bom começar a se preparar, ou muito em breve terá problemas para acessar páginas que tenham código Java.

Por Paulo Graveheart

Fonte: IMasters

JEPs: aperfeiçoamento colaborativo do OpenJDK

Criado pela Oracle com o objetivo de permitir que contribuidores submetam ideias e extensões para melhorar o ecossistema OpenJDK, o conjunto de propostas de aperfeiçoamento do JDK (JEPs) já conta com 28 documentos, incluindo a definição do processo e um template. Embora o JCP permaneça como órgão maior da padronização das tecnologias Java, os JEPs são considerados por alguns como uma versão leve das JSRs.

O propósito das JEPs é descrito no documento JEP 1: Processo de aperfeiçoamento da JDK. No documento um aperfeiçoamento é definido como uma mudança não trivial, ou seja que demande um esforço de mais de duas semanas, como uma mudança significativa na JDK ou algo muito solicitado por desenvolvedores ou clientes.

Assim como o Propostas de Aperfeiçoamento do Python (PEPs) e o Processo de Melhoria do Scala, o intuito é definir, em termos de funcionalidades, quais melhorias ou mudanças são necessárias. De forma similar ao que acontece no Python, a JEP0 (zero) é na verdade um índice das propostas de melhoria já submetidas, que no momento de escrita lista 26 JEPs, além de duas meta-JEPs, a JEP 1 já citada e a JEP 2: JEP Template, um modelo para a criação das propostas.

O documento que descreve o processo ressalta que os JEPs não têm como objetivo substituir o Java Community Process (JCP). Embora várias das JEPs submetidas estejam alinhadas com a API Java, algumas são especificamente relacionadas à JVM, como a JEP 122: Remover a Geração Permanente.

As JEPs passam por vários estados:

  • Draft: Em progresso, sendo discutida abertamente
  • Posted: Incluída nos arquivos de JEPs
  • Submitted: Declarada como pronta para avaliação
  • Active: Aprovada para publicação
  • Candidate: Aceita para inclusão no roadmap (plano geral) da OpenJDK
  • Funded: Julgada viável, em termos de recursos, pelos líderes do projeto
  • Completed: Finalizada e entregue
  • Withdrawn: Retirada de circulação (possivelmente para futura reinclusão)
  • Rejected: Considerada que não vale continuar o trabalho (por exemplo, por falta de apoio dos líderes).

Os estados Completed e Rejected são os estados terminais. Embora Withdraw possa ser considerado também um estado terminal, neste caso ainda existe a possibilidade de que a JEP seja reativada no futuro. Algumas JEPs, como a JEP0 e a JEP1, ficarão permanentemente no estado Active, sem transicionar para um estado terminal.

Uma das principais diferenças entre as JEPs e as JSRs do Java Community Process (JCP) é o nível de formalidade envolvido. O JCP define um processo rígido que deve ser seguido, enquanto que as JEPs são uma forma mais leve para elaborar ideias e de ter um identificador que possa ser usado para referenciá-las e sincronizar comentários e outros processos. Há também o conceito de “funding”, que indica se há recursos alocados para o projeto, além de estabelecer a organização responsável pela entrega.

Até agora todas as JEPs são patrocinadas pela Oracle, sendo a JEP 104: Anotações em Tipos Java copatrocinada pela Universidade de Washington, onde o coautor Michael Ernst é professor de Ciência da Computação. Os verificadores de tipos são uma das áreas de pesquisa de Ernst, e a JEP 104 é resultado de experimentos publicados no ICSE’11.

Embora a maioria das JEPs estejam no estado Posted, três estão no estado Submitted no momento de escrita. Isso inclui a JEP 104 já citada, assim como a JEP 118: Acesso a Nomes de Parâmetros em Tempo de Execução e a JEP 119: Implementação de javax.lang.model Suportada por Reflection. Essas propostas estão “prontas para avaliação” em vez de estarem simplesmente em discussão, mas precisam ainda passar pelos estados Candidate e Funded antes de serem desenvolvidads de fato.

Para conhecer mais sobre as JEPs, veja o índice das 28 propostas, a descrição do processo, e o modelo definido para a criação de novas propostas.

Fonte: Alex Blewitt, traduzido por Rafael Liu/InfoQ

Oracle lança primeira versão do Java sob seu comando

A Oracle anunciou nesta segunda-feira (15/08) a disponibilidade do Java Platform, Standard Edition 7 (Java SE 7), a primeira versão do programa sob administração da companhia. A plataforma de desenvolvimento aberto foi para a mãos da companhia ema abril de 2009, junto ao pacote da Sun, empresa responsável pela sua criação.

Conforme comunicado encaminhado à imprensa, “a versão é resultado do desenvolvimento que envolveu revisão aberta, compilações semanais e extensa colaboração entre engenheiros da Oracle e membros do ecossistema Java em todo o mundo por meio da comunidade OpenJDK e do Java Community Process (JCP)”.

O material detalha que o Java SE 7, que é compatível com as versões anteriores, possui, conforme a Oracle:

  • Mudanças na linguagem para ajudar a aumentar a produtividade dos desenvolvedores e simplificar as tarefas comuns de programação, reduzindo o volume de código necessário, esclarecendo a sintaxe e facilitando a leitura do código. (JSR 334: Project Coin);
  • Suporte aprimorado para linguagens dinâmicas (como, Ruby, Python e JavaScript), resultando em melhoria substancial no desempenho do JVM. (JSR 292: InvokeDynamic);
  • A nova API multicore-ready oferece aos desenvolvedores maior facilidade para detalhar falhas em tarefas que podem ser executadas em paralelo por números arbitrários de núcleos do processador. (JSR 166: Fork/Join Framework)
  • A interface de I/O (entrada/saída) completa para trabalhar com sistemas de arquivos permite acesso a uma ampla variedade de atributos de arquivos e oferece mais informações quando ocorrem erros. (JSR 203: NIO.2)
  • Novos recursos de rede e segurança.
  • Suporte ampliado para internacionalização inclui suporte ao Unicode 6.0.

Fonte: ItWeb