Verplichte wijzigingen bij het toepassen van 3.2-methoden en -API's

Deze sectie bevat de wijzigingen die u moet doorvoeren voordat de 3.1-plugins geschikt zijn voor de 3.2-methoden en -API's.

  1. Startconfiguraties
  2. Startwerkstanden
  3. Internationale componenten voor Unicode voor Java (ICU4J)
  4. Runtime-split

Startconfiguraties

Toewijzing van startconfiguraties aan resources

Eclipse 3.2 biedt een nieuwe infrastructuur voor het koppelen van startconfiguraties aan resources. Dankzij deze toewijzing kan het platform op resources gebaseerd filteren op startconfiguraties toepassen en kan het platform eventueel een startconfiguratie wissen als het bijbehorende project wordt gewist. Het dialoogvenster voor startconfiguraties biedt nu ook ondersteuning voor een reeks filters waarmee configuraties van gesloten en gewiste projecten kunnen worden verborgen. Het dialoogvenster voor startconfiguraties ondersteunt bovendien filters op basis van geselecteerde werksets in het actieve workbenchvenster, die u ook vanuit het venster kunt selecteren.

Het beheren van de resourcetoewijzing aan startconfiguraties moet door de client worden geregeld. Aan ILaunchConfigurationWorkingCopy is API toegevoegd om de resources in te stellen die aan een configuratie zijn gekoppeld, en aan ILaunchConfiguration is API toegevoegd om de resources op te halen die aan een configuratie zijn gekoppeld. Tijdens de migratie moet u bijvoorbeeld rekening houden met starttabs, startsnelkoppelingen en herstructureringsdeelnemers. Ook moet code voor het maken of wijzigen van startconfiguraties de resourcetoewijzingen bijwerken.

Ondersteuning voor migratie van startconfiguraties

Eclipse 3.2 biedt een nieuwe infrastructuur voor het migreren van startconfiguraties, zodat deze compatibel met de nieuwe tools zijn. In Eclipse 3.2 is bijvoorbeeld ondersteuning toegevoegd om in startconfiguraties op resources te filteren. Als u deze feature met resourcetoewijzingen wilt gebruiken, moet u de startconfiguraties bijwerken. Dit kan handmatig worden gedaan door op de voorkeurenpagina Uitvoeren/fouten opsporen> Starten > Startconfiguraties op de knop Migreren te klikken.

Er is een nieuw niet-verplicht kenmerk voor een migratiegemachtigde toegevoegd aan het extensiepunt launchConfigurationTypes, dat een klasse verstrekt die de nieuwe interface ILaunchConfigurationMigrationDelegate implementeert. Een migratiegemachtigde spoort items op die kunnen worden gemigreerd en voert de migratie van deze items uit.

Startwerkstanden

Er is een nieuw niet-verplicht kenmerk toegevoegd aan de extensie launchModes waarmee de externalisering van trapsgewijze actielabels juist kan worden ondersteund. Clients die startwerkstanden aanleveren, moeten het juiste label voor uitvouwmenu's verstrekken, zoals "Uitvoeren als". Het nieuwe kenmerk heet launchAsLabel. Het platform verstrekt juiste labels voor de startwerkstanden uitvoeren, fouten opsporen en profileren. Wanneer het nieuwe kenmerk niet wordt opgegeven voor een startwerkstand, worden de menulabels omwille van de compatibiliteit met eerdere versies gegenereerd in de vorm van "{0} als". Zie de bijbehorende programmafout 105235.

Internationale componenten voor Unicode voor Java (ICU4J)

ICU4J is een set Java-bibliotheken met bredere ondersteuning voor Unicode, softwareglobalisatie en internationalization. Om deze functionaliteit aan te bieden aan de gebruikers van Eclipse is ICU4J aan de platformbuild voor Eclipse 3.2 toegevoegd. ICU4J is onder de naam com.ibm.icu als een plugin in de build opgenomen. Het Eclipse-platform gebruikt ICU API's in Eclipse 3.2.

Migreren

Migratie van toepassingcode kan stapsgewijs plaatsvinden, wat betekent dat het niet nodig is om in een keer de volledige ICU4J-functie over te nemen om voordeel te hebben van het gebruik van ICU4J. Raadpleeg de ICU4J-pagina voor meer informatie over het migreren van uw code voor gebruik van ICU4J.

Vervangende ICU4J-plugin

Het toevoegen van de ICU4J-plugin voegt ongeveer 3MB aan de programmagrootte toe. Sommige toepassingen kunnen ICU4J mogelijk niet opnemen wanneer programmagrootte prevaleert boven het overnemen van de ICU4J-functie. Als dat het geval is, is er een vervangende plugin (com.ibm.icu.base) beschikbaar op de pagina Eclipse-platformbuild. Download de plugin, verwijder decom.ibm.icu-plugin en het bronequivalent uit de plugins-directory en plaats hier de vervangende plugin. Dit is vereist omdat het Eclipse-platform de ICU API's voor 3.2 heeft overgenomen waardoor het alleen verwijderen van de ICU-plugin zal leiden tot compilatiefouten in de platformcode. De vervangende plugin is ongeveer 100 KB groot en roept de standaard-JDK-implementatie aan van de meest gebruikte klassen en API's in ICU4J. Voor meer informatie over het gebruik van de vervangende plugin kunt u ook terecht op de ICU4J-pagina.

Effect op JFace - ViewerSorter en StructuredViewer

Om ICU4J in JFace te ondersteunen, waren er bepaalde creatieve API-toevoegingen vereist om te voorkomen dat in API naar ICU-klassen wordt verwezen. Dit resulteerde in de toevoeging van:

  1. een nieuwe klasse met de naam org.eclipse.jface.viewers.ViewerComparator waarvan org.eclipse.jface.viewers.ViewerSorter nu een subklasse is.
  2. twee nieuwe methoden aan org.eclipse.jface.viewers.StructuredViewer ter ondersteuning van de toevoeging van org.eclipse.jface.viewers.ViewerComparator.

Achtergrond

De klasse ViewerSorter heeft een public-methode getCollator() die een java.text.Collator retourneert. Aangezien deze methode API is, kan hij niet eenvoudig worden veranderd voor gebruik van een ICU Collator. ICU-klassen kunnen ook geen onderdeel van de API (handtekeningen) zijn, omdat een rechtstreekse plugin-dependency van ICU in de weg staat dat JFace zelfstandig wordt gebruikt (met SWT). Om rekening te houden met deze beperkingen, is de klasse ViewerComparator die gebruikmaakt van een java.util.Comparator toegevoegd, in plaats van een ICU Collator. Dit is gebeurd omdat de Collator-klasse van ICU java.util.Comparator implementeert, zodat elke StructuredViewer nu ICU's Collator kan gebruiken in plaats van java.text.Collator, maar JFace hoeft geen dependency van de ICU4J-plugin toe te voegen. De twee nieuwe methoden die zijn toegevoegd aan StructuredViewer ondersteunen het gebruik van ICU's Collator om de inhoud van de viewer te sorteren via een ViewerComparator in plaats van een ViewerSorter. Aanbevolen wordt dat elke StructuredViewer nu deze methoden gebruikt om de sorter van de viewer (comparator) op te halen/in te stellen, in plaats van de methoden getSorter() en de setSorter(ViewerSorter).

Runtime-split

Nieuwe runtime-API's

De bundel org.eclipse.equinox.common bevat diverse nieuwe API-klassen (bijvoorbeeld Assert en ListenerList) die gemeenschappelijke namen hebben. Als uw code een klasse met dezelfde naam heeft en import *-instructies gebruikt voor het importeren van zowel de lokale klasse en de klassen van de runtime, kunt u de volgende foutmelding krijgen:

   Het type ABC is dubbelzinnig
  

U kunt dit probleem oplossen door de imports te organiseren en de juiste importbron te kiezen.

Expliciete klassenpaden in de aangepaste buildscripts

Als resultaat van verplaatsing van de code naar nieuwe runtime-plugins, moeten aangepaste scripts die expliciet verwijzen naar org.eclispe.core.runtime mogelijk een of meer van de volgende plugins toevoegen: