Miért változik az Eclipse API inkompatibilis módon a 2.1 és 3.0 verzió között?
Az Eclipse 3.0 az Eclipse 2.1 továbbfejlesztése. Maradt néhány terület, amelyen nem tudtuk kialakítani az Eclipse-et a panelen a tökéletes kompatibilitás fenntartása mellett. Az inkompatibilitás négy fő forrása az alábbi:
Specifikus inkompatibilitások listája.
A 2.1 bedolgozó működik az Eclipse 3.0 verzióban?
Néhány eset kivételével igen. Ha a bedolgozó csak Eclipse 2.1 alkalmazás programozási felületekre épül, akkor a 3.0 verzióban is működni fog. Néhány kivétel található az alkalmazás programozási felületen, amelyek esetén a 2.1 és 3.0 közötti változás nem hajtható végre kompatibilis módon; ha a bedolgozó ezek egyikét használja, akkor nem fog működni.
A saját 2.1 bedolgozó a belső csomagokban lévő osztályokat használja. Ezek működni fognak Eclipse 3.0 verzióban is?
Ha egy bedolgozó belső osztályokra, vagy az Eclipse 2.1 API-ban nem meghatározott viselkedésre támaszkodik, akkor lehetetlen előre biztosra megmondani, hogy a bedolgozó fog-e működni a 3.0 kiadás alatt. Ki kell próbálni.
Hogyan futtatható a saját Eclipse 3.0 módosítás nélkül?
Telepítse a 2.1 bedolgozót egy Eclipse 3.0 alapú termék eclipse/plugins/ alkönyvtárába és indítsa újra az Eclipse szoftvert. Az Eclipse felismeri, hogy e bedolgozó átalakítatlan 2.1 bedolgozó (a plugin.xml fejléce alapján), és automatikusan beállításokat végez a Platform bedolgozófüggőségek és átnevezett Platform kiterjesztési pontok változások kompenzálása érdekében.
A 2.1 verziószámú bedolgozókat módosítani kell ahhoz, hogy megfelelően leforduljanak az Eclipse 3.0 verziójában?
Igen, minden esetben. Van néhány különbség az Eclipse 2.1 és 3.0 verzió között, amelyet meg kell változtatni annak érdekében, hogy az összes bedolgozó továbbléphessen. Ha van a 2.1 verzióhoz írt bedolgozó, és újra kívánja fordítani, akkor a 3.0-hoz továbbfejlesztés előtt át kell állítani 3.0 verzióra.
Hogyan kell átállítani a saját bedolgozót az Eclipse 3.0 verziójához?
Ha betöltötte (vagy importálta) a bedolgozóprojektet az Eclipse 3.0 munkaterületre, akkor a PDE eszközök > Átállítás 3.0 verzióra (projekt előugró menü) lehetőség segítségével alakítsa át a bedolgozó leírófájlját 3.0 formátumra és automatikusan szabályozza a szükséges Platform bedolgozók listáját és az átnevezett Platform kiterjesztési pontokra mutató hivatkozásokat. A legtöbb esetben a bedolgozó kódot ezután le kell fordítani és sikeresen lefuttatni. A bedolgozó kódját ezután át kell tekinteni annak ellenőrzése érdekében, hogy nem függ az inkompatibilis API módosítás egy területétől sem.
Bízhatok abban, hogy a bedolgozó fordítási hibákat vagy figyelmeztetéseket ír ki, ha inkompatibilis módon módosított alkalmazás programozási felületre épül?
Nem. Számos olyan inkompatibilis változás van, amelyet a Java fordító nem jelez.
Biztonságosan figyelmen kívül hagyhatók az elavult API használatából származó kódban lévő figyelmeztetések?
Igen, egy rövid ideig. Ahol csak lehetséges, az elavult alkalmazás programozási felületek az azonnali törlés helyett elavultként lesznek megjelölve és folytatják a működést (csak korlátozott körülmények között). Általában nem sürgős az elavult API eltávolítása, de az a tény, hogy elavultként van megjelölve azt jelenti, hogy ennél van jobb módszer. A bedolgozóknak minél előbb ki kell iktatniuk az elavult API használatot.
Ha átállítottam a saját bedolgozómat Eclipse 3.0 verzióra, akkor továbbra is telepíthetem és futtathatom az eredményül kapott bináris bedolgozót Eclipse 2.1 verzióban?
Nem. Ez nem támogatott, és az átnevezett kiterjesztési pontok miatt valószínűleg nem is működik.
Mi az org.eclipse.core.runtime.compatibility célja?
A 3.0 verzió OSGi alapú futási környezetbe áthelyezése a meglévő alap futási alkalmazás programozási felületek egy részét elavulttá tette. Ahol csak lehetséges, az org.eclipse.core.runtime.* csomagokban lévő elavult alkalmazás programozási felületek a mögöttes megvalósítással együtt át lettek helyezve az org.eclipse.core.runtime bedolgozóból egy új org.eclipse.core.runtime.compatibility bedolgozóba. Alapértelmezés szerint az újonnan létrehozott bedolgozók az org.eclipse.core.runtime bedolgozótól függenek és csak nem elavult futási alkalmazás programozási felületeket használhatnak. Másrészről a meglévő bedolgozó 2.1 verzióról átállítása alapértelmezés szerint az org.eclipse.core.runtime.compatibility bedolgozótól függ, és használhatja a régi alkalmazás programozási felületeket is (az org.eclipse.core.runtime.compatibility bedolgozó újból exportálja az org.eclipse.core.runtime alkalmazás programozási felületeit). Bár az org.eclipse.core.runtime.compatibility bedolgozó feltehetőleg része az Eclipse IDE konfigurációknak, biztosra veheti, hogy az RCP konfigurációkra épülő termékeknek nem.
Mi az org.eclipse.ui.workbench.compatibility célja?
Az org.eclipse.ui.workbench.compatibility egy bedolgozótöredék, amely kiterjesztett bináris kompatibilitást biztosít az Eclipse 3.0 alapú termékben futtatandó 2.1 bedolgozók számára. A 3.0 verzióban hat - explicit IFile vagy IMarker függőségű - metódus került áthelyezésre az org.eclipse.ui.IWorkbenchPage felületről annak érdekében, hogy a munkaterület teljesen el legyen különítve a munkafelülettől és az erőforrásoktól. Az org.eclipse.ui.workbench.compatibility töredék elrendeződik, hogy visszaadja ezeket a metódusokat, így a meglévő 2.1 bedolgozók módosítás nélkül futhatnak. A 3.0 verzióra átállított bedolgozók, amelyek az áthelyezett metódusokra mutatnak, fordítási hibákat észlelnek, amelyek (csak) az org.eclipse.ui.ide.IDE címen található helyettesítési metódusok meghívásával oldhatók meg.
Az érintett IWorkbenchPage metódusok: openEditor(IFile), openEditor(IFile, String), openEditor(IFile, String, boolean), openEditor(IMarker), openEditor(IMarker, boolean) és openSystemEditor(IFile).