Omezení přístupu

Běhová komponenta platformy Eclipse 3.1 poskytuje vývojáři modulu plug-in možnost na základě balíčku řídit viditelnost kódu modulu plug-in pro následné moduly plug-in.

Balíček může být klasifikován jako jeden z následujících:

  1. Přístupné
  2. Zakázané
  3. Interní
  4. Interní s přáteli

PDE přeloží pravidla viditelnosti v době zpracování do pravidel omezení přístupu kompilátoru v době kompilace. V důsledku toho je porušení pravidla viditelnosti kompilátorem opatřeno příznakem jako varování nebo chyba, v závislosti na závažnosti tohoto porušení.

Díky dostupnosti této podpory v době kompilace není nikdo překvapen chybami načítání tříd v době běhu programu a při odkazování interních typů je vždy informován.

 

Přístupné balíčky

Přístupné balíčky jsou bez podmínek viditelné pro následné moduly plug-in.   I když balíčky API musejí zjevně spadat do této kategorie, je zcela na vývojáři, aby rozhodl, kterým dalším balíčkům exportovaným modulem plug-in by měla být dána tato úroveň viditelnosti.

Abyste deklarovali balíček jako viditelný, musíte jej uvést v sekci Exportované balíčky na stránce Běhová komponenta v editoru manifestu modulu plug-in a ponechat výchozí nastavení viditelnosti tak, jak je.

Přístupné balíčky

 

Zakázané balíčky

Balíčky můžete před následnými moduly plug-in kdykoli skrýt jejich vyloučením ze seznamu v sekci Exportované balíčky na stránce Běhová komponenta editoru manifestu modulu plug-in.

Odkazy na typy ze zakázaného balíčku vedou k chybám načítání tříd v době běhu programu.

 Abyste zabránili těmto nepříjemným situacím:

  1. Kompilátor označí odkazy na zakázané balíčky příznakem CHYBA.
  2. Typy ze zakázaných balíčků NEJSOU dostupné jako návrhy v obsahové asistenci.

Poznámky:

  1. Všechny moduly plug-in v Eclipse SDK vytvářejí výčet všech svých balíčků v sekci Exportované balíčky.  Proto žádný z balíčků v SDK nemá zakázaný přístup.
  2. Úroveň závažnosti pro zakázané odkazy je nastavena na stránce předvoleb Java > Kompilátor > Chyby/Varování > Nepřípustná a omezená rozhraní API.

    Je důrazně doporučeno, aby byla závažnost zakázaného odkazu ponechána na úrovni CHYBA.

    Zakázané předvolby

Interní balíčky

Interní balíčky jsou balíčky, které nejsou určeny k použití následnými moduly plug-in. Tyto balíčky jsou pro následné moduly plug-in viditelné standardně.

Interní balíčky jsou skryty před následnými moduly plug-in pouze tehdy, když je Eclipse spuštěno v režimu striktní (tj. když spouštíte s argumentem VM -Dosgi.resolverMode=strict).

Interní balíčky musejí být uvedeny v sekci Exportované balíčky na stránce Běhová komponenta editoru manifestu modulu plug-in s vybranou volbou skrytý.

Nevhodný přístup

Pro to, bylo u následných modulů plug-in označeno odkazování na interní balíčky jako nevhodné, jsou provedena dvě opatření:

Nevhodný přístup

Nevhodná obsahová asistence

Úroveň závažnosti pro nevhodné odkazy je nastavena na stránce předvoleb Java > Kompilátor > Chyby/Varování > Nepřípustná a omezená rozhraní API.

Nevhodné předvolby

 

Interní balíčky s přáteli

Je důležité, aby modul plug-in mohl poskytnout plný přístup ke svým interním balíčkům určeným "přátelským" modulům plug-in. Například kód PDE je rozdělen mezi více modulů plug-in a modul plug-in org.eclipse.pde.ui by měl mít plný přístup k interním balíčkům org.eclipse.pde.core.

V níže uvedeném příkladu mají přátelské moduly plug-in (org.eclipse.pde a org.eclipse.pde.ui) plný přístup k balíčku org.eclipse.pde.internal.core.bundle z modulu plug-in org.eclipse.pde.core .

Přátelé

Přátelé mohou odkazovat na libovolný typ z balíčku org.eclipse.pde.internal.core.bundle se souhlasem kompilátoru.

Pokud na druhé straně nějaký jiný modul plug-in odkazuje na typ z balíčku org.eclipse.pde.internal.core.bundle, kompilátor označí odkaz příznakem jako nevhodný odkaz, jak je popsáno v předchozí části.

 

Jak zpřístupnit omezení přístupu

Aby bylo možné využít podporu omezení přístupu PDE, jediným požadavkem je, aby dotyčné moduly plug-in obsahovaly manifest balíku OSGi manifest.mf. PDE, který spravuje cestu modulu plug-in ke třídě, se potom postará o zbytek.

Pokud modul plug-in neobsahuje soubor manifest.mf, lze tento soubor vybrat následovně:

  1. Otevřete plugin.xml v editoru manifestů modulů plug-in.
  2. V sekci Obsah modulu plug-in na stránce Přehled klepněte na odkaz 'Vytvořit manifest balíku OSGi'.

Převést na manifest.mf

 

Kontrola pravidel přístupu

Pravidla omezení přístupu předepsaná každé položce cesty ke třídě můžete zkontrolovat na stránce vlastnosti Cesta sestavení Java vašeho projektu modulu plug-in.

Vlastnosti cesty sestavení Java