Regras de Acesso

O tempo de execução do Eclipse 3.1 fornece ao desenvolvedor de plug-ins a opção para controlar a visibilidade do código do plug-in para plug-ins de recebimento de dados por pacote.

Um pacote pode ser classificado como um dos seguintes:

  1. Acessível
  2. Proibido
  3. Interno
  4. Interno com amigos

O PDE traduz essas regras de visibilidade do tempo de execução em regras de restrição de acesso no tempo de compilação. Como resultado, uma violação de regra de visibilidade é sinalizada pelo compilador como um aviso ou erro - dependendo da gravidade dessa violação.

Com esse tipo de suporte no tempo de compilação, alguém nunca é surpreendido pelos erros de carregamento da classe de tempo de execução e está sempre ciente das referências de tipos internos.

 

Pacotes Acessíveis

Pacotes acessíveis são visíveis para plug-ins de recebimento de dados incondicionalmente.    Embora os pacotes de API devem claramente cair nessa categoria, o desenvolvedor é quem decide quais outros pacotes exportados pelo plug-in devem receber esse nível de visibilidade.

Para declarar um pacote como acessível, você deve listá-lo na seção Pacotes Exportados no Tempo de Execução do manifesto do plug-in e deixar a configuração de visibilidade padrão como está.

Pacotes Acessíveis

 

Pacotes Proibidos

Você pode ocultar um pacote dos plug-ins de recebimento de dados todas as vezes, excluindo-o da lista na seção Pacotes Exportados na página Tempo de Execução do editor de manifesto do plug-in.

As referências a tipos de um pacote proibido resultam em erros de carregamento de classe no tempo de execução.

 Para evitar esse tipo de situação desagradável:

  1. O compilador sinalizará referências a pacotes proibidos com um erro.
  2. Os tipos de pacotes proibidos NÃO estão disponíveis como sugestões no assistente de conteúdo.

Notas:

  1. Todos os plug-ins no Eclipse SDK enumeram todos os seus pacotes na seção Pacotes Exportados; portanto, nenhum dos pacotes no SDK possui acesso proibido.
  2. O nível de gravidade para referências proibidas é configurado na página de preferências Java > Compilador > Erros/Avisos > API Reprovada e Restrita.

    É altamente recomendável que a gravidade de uma referência proibida seja mantida na condição de erro.

    Preferências Proibidas

 

Pacotes Internos

Pacotes internos são pacotes que não são destinados ao uso por plug-ins de recebimento de dados. Esses pacotes são visíveis para plug-ins de recebimento de dados por padrão.

Pacotes internos são ocultos dos plug-ins de recebimento de dados apenas quando o Eclipse é ativado no modo estrito (ou seja, quando você ativa com o argumento de VM -Dosgi.resolverMode=strict).

Pacotes internos devem ser listados na seção Pacotes Exportados na página Tempo de Execução do editor de manifesto do plug-in com a opção oculto selecionada.

acesso desencorajado

Duas medidas são tomadas para desencorajar plug-ins de recebimento de dados de fazer referência a pacotes internos:

acesso desencorajado

assistente de conteúdo desencorajado

O nível de gravidade para referências desencorajadas pode ser configurado na página de preferências Java > Compilador > Erros/Avisos > API Reprovada e Restrita.

Preferências desencorajadas

 

Pacotes Internos com Amigos

É importante que um plug-in seja capaz de conceder acesso completo a seus pacotes internos a plug-ins "amigos" designados. Por exemplo, o código do PDE é dividido entre vários plug-ins e o plug-in org.eclipse.pde.ui deve ter acesso completo aos pacotes internos do org.eclipse.pde.core.

No exemplo a seguir, o plug-in amigo org.eclipse.pde.ui possui acesso completo ao pacote org.eclipse.pde.internal.core.bundle a partir do plug-in org.eclipse.pde.core.

Amigos

Os amigos são livres para fazer referência a qualquer tipo do pacote org.eclipse.pde.internal.core.bundle com a bênção do compilador.

Por outro lado, se algum outro plug-in referenciar um tipo do pacote org.eclipse.pde.internal.core.bundle, o compilador sinalizará a referência como uma referência desencorajada, conforme descrito na seção anterior.

 

Como Ativar Restrições de Acesso

Para aproveitar as vantagens do suporte de restrição de acesso do PDE, o único requisito é que os plug-ins em questão contenham um pacote configurável OSGi MANIFEST.MF. O PDE cuidará do restante, incluindo o gerenciamento do caminho de classe do plug-in.

Se o plug-in não contiver um arquivo MANIFEST.MF, esse arquivo poderá ser criado conforme a seguir:

  1. Abra o plugin.xml no editor de manifesto de plug-ins.
  2. Na seção Conteúdo do Plug-in da página Visão Geral, clique no link 'Criar um Manifesto de Pacote Configurável do OSGi'.

converter para o manifest.mf

 

Inspecionando Regras de Acesso

É possível inspecionar as regras de restrição de acesso impostas em cada caminho de classe pelo PDE na página de propriedade Caminho de Construção Java do projeto do plug-in.

Propriedades do Caminho de Construção Java