Pravidla přístupu
Běhová komponenta platformy Eclipse 3.1 poskytuje vývojáři modulu plug-in možnost ovládat viditelnost kódu modulu plug-in pro následné moduly plug-in, a to balíček od balíčku.
Balíček může být klasifikován jako jeden z následujících:
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 uživatel nemůže být 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.
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:
Poznámky:
Je důrazně doporučeno, aby byla závažnost zakázaného odkazu ponechána na úrovni chyba.
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ý.
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í:
Ú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.
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 má přátelský modul plug-in 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é mohou odkazovat na libovolný typ z balíčku org.eclipse.pde.internal.core.bundle se souhlasem kompilátoru.
Pokud ovšem 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 se již postará o zbytek včetně správy cesty ke třídě modulu plug-in.
Pokud modul plug-in neobsahuje soubor MANIFEST.MF, lze tento soubor vytvořit následovně:
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.