Změny požadované při adoptování mechanizmů a rozhraní API verze 3.2

Tento oddíl popisuje změny, které jsou nezbytné, pokud se pokoušíte změnit svůj modul plug-in pro verzi 3.1 tak, aby adoptoval mechanizmy a rozhraní API verze 3.2.

  1. Konfigurace spuštění
  2. Režimy spuštění
  3. International Components for Unicode for Java (ICU4J)
  4. Dělení běhové komponenty

Konfigurace spuštění

Mapování prostředků konfigurace spuštění

Eclipse 3.2 nabízí novou infrastrukturu pro přidružování konfigurací spuštění k prostředkům. Toto mapování umožňuje platformě provádět filtrování založené na prostředcích na konfiguracích prostředí a umožňuje platformě volitelně odstranit konfigurace spuštění, když bude odstraněn přidružený projekt. Dialogové okno spuštění bylo rozšířeno o podporu sady filtrů za účelem volitelného skrytí konfigurací asociovaných s uzavřenými a odstraněnými projekty. Dialogové okno spuštění rovněž podporuje filtrování založené na vybraných pracovních sadách v aktivním okně pracovní plochy, které lze v dialogovém okně spuštění rovněž vybrat.

Správa mapování prostředků pro konfigurace spuštění je zodpovědností klienta. Do ILaunchConfigurationWorkingCopy bylo přidáno rozhraní API za účelem nastavení prostředků asociovaných s konfigurací. Do ILaunchConfiguration bylo přidáno rozhraní API za účelem získání prostředků asociovaných s konfigurací. Při migraci byste měli zvážit například karty spuštění, zástupce pro spuštění a účastníky opětovné deklarace. Kód, který vytváří nebo upravuje konfigurace spuštění, by měl rovněž aktualizovat mapování prostředků.

Podpora migrace konfigurace spuštění

Za účelem kompatibility s novými nástroji nabízí Eclipse 3.2 novou infrastrukturu pro migraci konfigurací spuštění. Do Eclipse 3.2 byla například přidána podpora pro provádění filtrování na bázi prostředků u konfigurací spuštění. Aby bylo možné této nové funkce využít, konfigurace spuštění musí přejít na vyšší verzi, aby poskytovaly mapování prostředků. Uživatelé mohou ručně migrovat konfigurace spuštění ve svém pracovním prostoru ze stránky předvoleb Spustit/ladit > Spouštění > Konfigurace spuštění stisknutím tlačítka Migrovat.

Do bodu rozšíření launchConfigurationTypes byl přidán nový volitelný atribut delegáta migrace určující třídu, která implementuje nové rozhraní ILaunchConfigurationMigrationDelegate. Delegát migrace je zodpovědný za identifikaci kandidátů migrace a jejich migraci.

Režimy spuštění

Do bodu rozšíření launchModes byl přidán nový volitelný atribut, který řádně podporuje externalizaci štítků akcí kaskádové nabídky spuštění. Klienti, kteří přispívají režimy spuštění, by měli uvést náležitý štítek, který se má použít pro kaskádové nabídky spuštění, jako např. "Spustit jako". Nový atribut je pojmenován launchAsLabel. Platforma poskytuje náležité štítky pro režimy spuštění, ladění a spuštění profilu. Kvůli zpětné kompatibilitě v případě, kdy není pro režim spuštění nový atribut určen, jsou štítky kaskádové nabídky generovány jako předtím, tj. prostřednictvím MessageFormat s "{0} As". Viz související chyba 105235.

International Components for Unicode for Java (ICU4J)

ICU4J je množina knihoven Java, která poskytuje komplexnější podporu pro Unicode, globalizaci a internacionalizaci softwaru. Aby byla tato funkčnost poskytnuta komunitě Eclipse, byly do sestavení platformy pro Eclipse 3.2 přidány ICU4J. V sestavení se zobrazí jako modul plug-in s názvem com.ibm.icu. V Eclipse 3.2 bude platforma Eclipse využívat rozhraní API ICU.

Migrace

Migrace aplikačního kódu může být provedena přírůstkově, což znamená, že plné adoptování funkce všech ICU4J není pro využití výhod plynoucích z použití ICU4J nezbytné. Další podrobnosti o způsobu migrace kódu k použití ICU4J najdete na stránce ICU4J v Eclipse Wiki.

Náhradní modul plug-in ICU4J

Přidání modulu plug-in ICU4J přidá k obsazenému prostoru 3 MB. Pokud má velikost aplikace přednost před adoptováním funkce ICU4J, některé aplikace možná nebudou chtít ICU4J absorbovat. V tom případě je na stránce sestavení platformy Eclipse k dispozici náhradní modul plug-in (com.ibm.icu.base). Stáhněte modul plug-in, odeberte modul plug-in com.ibm.icu a jeho zdrojový protějšek z adresáře /plugins a vložte náhradní modul plug-in. To je nezbytné, protože platforma Eclipse převzala ve verzi 3.2 rozhraní API ICU, takže pouhé odebrání modulu plug-in ICU by vedlo k chybám kompilace kódu platformy. Náhradní modul plug-in má velikost asi 100 kB a jednoduše průběžně volá výchozí implementaci JDK nejčastěji používaných tříd a rozhraní API v ICU4J. Další podrobnosti o použití náhradního modulu plug-in ICU si můžete znovu přečíst na stránce ICU4J v Eclipse Wiki.

Efekt na modul JFace - ViewerSorter a StructuredViewer

Podpora ICU4J v modulu JFace vyžadovala některé kreativní dodatky rozhraní API, které zabraňovaly odkazování tříd ICU v rozhraní API. To vedlo k přidání:

  1. nové třídy nazývané org.eclipse.jface.viewers.ViewerComparator, jíž je org.eclipse.jface.viewers.ViewerSorter nyní podtřídou.
  2. dvou nových metod do org.eclipse.jface.viewers.StructuredViewer za účelem podpory přidání org.eclipse.jface.viewers.ViewerComparator.

Odůvodnění

Třída ViewerSorter má veřejnou metodu getCollator(), která vrací java.text.Collator. Protože tato metoda je rozhraním API, nelze ji jednoduše změnit tak, aby používala modul Collator ICU. Rovněž třídy ICU nemohou být součástí rozhraní API (signatur), protože přímá závislost modulů plug-in na ICU by zabránila samostatnému použití modulu JFace (s SWT). Aby bylo těmto omezením vyhověno, byla přidána třída ViewerComparator, která používá java.util.Comparator místo modulu Collator ICU. To bylo provedeno, protože třída Collator ICU implementuje java.util.Comparator, takže libovolný StructuredViewer nyní může používat modul Collator ICU místo java.text.Collator, ale modul JFace nemusí přidat závislost na modulu plug-in ICU4J. Dvě nové metody přidané do StructuredViewer podporují použití modulu Collator ICU k řazení obsahů prohlížeče prostřednictvím ViewerComparator místo ViewerSorter. Doporučuje se, aby libovolný StructuredViewer nyní používal k získání/nastavení řadiče (komparátoru) prohlížeče místo metod getSorter() a setSorter(ViewerSorter) tyto metody.

Dělení běhové komponenty

Nová rozhraní API běhové komponenty

Balík org.eclipse.equinox.common zahrnuje několik nových tříd API (např. Assert a ListenerList) mající obecné názvy. Pokud váš kód obsahuje třídu se stejným názvem a používá k importu lokální třídy a třídy z běhové komponenty příkazy import *, můžete obdržet následující chybovou zprávu:

   Typ ABC je nejednoznačný
  

Tento problém by mělo vyřešit uspořádání importů a výběr příslušného zdroje importu.

Přímé cesty ke třídě ve skriptech vlastního sestavení

V důsledku přesouvání kódu do nových běhových modulů plug-in budou uživatelské skripty, které výslovně odkazovaly na org.eclispe.core.runtime, možná potřebovat přidat minimálně jeden z následujících modulů plug-in: