BT

Java 8 e módulos: o estado atual do projeto Jigsaw

por Rafael Sakurai em 27 Dez 2011 |

Mark Reinhold, arquiteto-chefe da plataforma Java na Oracle, publicou uma nota detalhando a situação atual do projeto Jigsaw e apontando novidades nessa área para o Java 8. O projeto Jigsaw tem como objetivo permitir a criação de módulos de sistemas (coleções de classes e interfaces) dentro da Plataforma Java.

Para obter a modularidade foram seguidos alguns princípios:

  • A linguagem Java em si precisa ter suporte à criação de módulos;
  • Os módulos devem controlar quais classes podem ser acessadas externamente a eles;
  • Deve haver uma identificação de versão, caso ocorra a necessidade de os módulos serem adicionados ou removidos durante a execução do programa.

A seguir, são mostrados exemplos de como será o uso de módulos.

O exemplo abaixo cria um módulo, informando a sua versão, e define qual o pacote de classes públicas será compartilhado com outros módulos:

module br.infoq.foo @ 1.0 {
  /* Permite que os outros módulos tenham acesso às classes públicas deste pacote. */
  exports br.infoq;
}

O exemplo a seguir cria um módulo que possui uma dependência com outro módulo (podendo ser especificada a versão):

module zoo {
  requires br.infoq.foo @ 1.0;
}

Note que é informada uma dependência do módulo br.infoq.foo na versão 1.0. Pode-se também especificar uma condição, por exemplo @ >= 2.0, que nesse caso informa a necessidade de uma versão maior ou igual à versão 2.0 do módulo.

O exemplo a seguir cria um módulo que possui uma dependência e aproveita para compartilhar essa dependência com outros módulos. Também demonstra como definir quais módulos podem acessar o módulo em questão:

module bar {
  /* Permite que os módulos dependentes de bar, também acessem o módulo zoo. */
   requires public zoo;
  /* Somente o módulo baz pode acessar este módulo. */   permits baz; }

Mark Reinhold também descreveu tarefas pendentes, além de revisões que serão realizadas no projeto, e futuras implementações que ocorrerão na parte de compilação, empacotamento, bibliotecas, repositórios, API de modularização de sistemas e modularização do JDK. No site do Jigsaw há mais informações sobre o histórico do projeto, além de sua documentaçã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 menssagens dessa discussão
Comentários da comunidade

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

Receber menssagens dessa discussão

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

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT