Règles d'accès

L'environnement d'exécution Eclipse 3.1 permet au développeur de plug-ins de contrôler la visibilité du code des plug-ins en aval pour chaque package.

Un package peut être classé de la manière suivante :

  1. Accessible
  2. Interdit
  3. Interne
  4. Interne avec amis

PDE convertit ces règles de visibilité d'exécution en des règles de restriction d'accès au compilateur lors de la compilation. Par conséquent, le compilateur indique la violation d'une règle de visibilité sous la forme d'un avertissement ou d'une erreur en fonction de la gravité de la violation.

Grâce à ce type d'assistance à la compilation, vous ne pouvez pas être confronté à des erreurs inattendues de chargement de classe lors de l'exécution, et vous êtes toujours informé des références de types internes.

 

Packages accessibles

Les packages accessibles sont visibles de manière inconditionnelle pour les plug-ins en aval.Alors que les packages API entrent clairement dans cette catégorie, il appartient pleinement au développeur de décider quels autres packages exportés par le plug-in doivent recevoir ce niveau de visibilité.

Afin de déclarer un package accessible, vous devez le répertorier dans la section Packages exportés de la phase d'exécution de l'éditeur du manifeste de plug-in et laisser le paramètre de visibilité par défaut tel qu'il est.

Packages accessibles

 

Packages interdits

Vous pouvez masquer un package aux plug-ins en aval à tout moment en l'excluant de la liste dans la section Packages exportés de la page de la phase d'exécution de l'éditeur du manifeste de plug-in.

Les références à des types depuis un package interdit génèrent des erreurs de chargement de classe lors de l'exécution.

 Pour éviter ce type de situations :

  1. Le compilateur indique les références aux packages interdits sous la forme d'une erreur.
  2. Les types des packages interdits NE SONT PAS disponibles sous forme de propositions dans l'assistance de contenu.

Remarques :

  1. Tous les plug-ins dans le kit SDK Eclipse énumèrent tous leurs packages dans la section des packages exportés. Par conséquent, aucun des packages dans le kit SDK n'a des accès interdits.
  2. Pour définir le niveau de gravité des références interdites, utilisez la page des préférences Java > Compilateur > Erreurs/Avertissement > API déconseillée ou restreinte.

    Il est recommandé de considérer la gravité d'une référence interdite comme une erreur.

    Préférences interdites

 

Packages internes

Les packages internes sont des packages qui ne sont pas destinés à être utilisés par des plug-ins en aval. Ces packages sont visibles pour les plug-ins en aval par défaut.

Les packages internes ne sont masqués pour les plug-ins en aval que lorsque Eclipse est lancé dans le mode strict (c'est-à-dire lorsque vous procédez au lancement avec l'argument VM -Dosgi.resolverMode=strict).

Les packages internes doivent être répertoriés dans la section Packages exportés de la page Phase d'exécution de l'éditeur du manifeste de plug-in avec l'option masqué sélectionnée.

accès déconseillé

Deux mesures permettent de déconseiller l'utilisation des plug-ins en aval pour le référencement des packages internes :

accès déconseillé

assistance de contenu déconseillé

Vous pouvez définir le niveau de gravité des références déconseillées dans la page des préférences Java > Compilateur > Erreurs/Avertissements > API déconseillée ou restreinte.

Préférences déconseillées

 

Packages internes avec amis

Il est important pour un plug-in de pouvoir octroyer un accès complet à ses packages internes vers des plug-ins "amis" désignés. Par exemple, le code PDE est fractionné en plusieurs plug-ins et le plug-in org.eclipse.pde.ui doit avoir un accès complet vers les packages internes de org.eclipse.pde.core.

Dans l'exemple ci-dessous, le plug-in ami org.eclipse.pde.ui dispose d'un accès complet au package org.eclipse.pde.internal.core.bundle depuis le plug-in org.eclipse.pde.core .

Amis

Les amis sont libres de référencer n'importe quel type à partir du package org.eclipse.pde.internal.core.bundle avec le consentement du compilateur.

En revanche, si un autre plug-in fait référence à un type du package org.eclipse.pde.internal.core.bundle, le compilateur indique que la référence est une référence déconseillée, comme indiqué dans la section précédente.

 

Activation des restrictions d'accès

Pour tirer parti du support des restrictions d'accès de l'environnement PDE, il est nécessaire que les plug-ins concernés contiennent un bundle OSGi MANIFEST.MF ; c'est la seule restriction. L'environnement PDE se charge du reste, notamment de la gestion du chemin d'accès aux classes des plug-ins.

Si le plug-in ne contient pas un fichier MANIFEST.MF, vous pouvez le créer comme suit :

  1. Ouvrez le fichier plugin.xml dans l'éditeur de manifeste de plug-in.
  2. Dans la section Contenu du plug-in de la page Présentation, cliquez sur le lien 'créer un fichier manifeste de bundle OSGi'.

conversion en manifest.mf

 

Inspection des règles d'accès

Vous pouvez inspecter les règles de restriction d'accès imposées sur chaque entrée du chemin d'accès à la classe par PDE sur la page de propriétés Chemin de compilation Java de votre projet de plug-in.

Propriétés du chemin de génération Java