Miksi Eclipse-sovellusohjelmaliittymä muuttui yhteensopimattomilla tavoilla versioiden 2.1 ja 3.0 välillä?
Eclipse 3.0 on kehitetty Eclipse 2.1 -versiosta. Muutamilla osa-alueilla Eclipse-ympäristöä ei voitu kehittää yhteensopivasti. Neljä tärkeintä yhteensopimatonta osa-aluetta ovat seuraavat:
Erityisten yhteensopimattomuuksien luettelo.
Toimiiko 2.1-lisäosa Eclipse 3.0 -versiossa?
Kyllä, muutamia poikkeuksia lukuun ottamatta. Jos lisäosa perustuu ainoastaan Eclipse 2.1 -sovellusohjelmaliittymiin, se toimii edelleen versiossa 3.0. Harvat poikkeukset ovat sellaisia, joissa muutoksia versioiden 2.1 ja 3.0 välillä ei ole voitu tehdä yhteensopivasti; jos lisäosa käyttää jotakin näistä, se ei toimi.
2.1-lisäosani käyttää sisäisten pakettien luokkia. Toimiiko se se edelleen Eclipse 3.0 -versiossa?
Jos lisäosa perustuu sisäisiin luokkiin tai toimintaan, jota ei ole määritetty Eclipse 2.1 -sovellusohjelmaliittymässä, ei voida sanoa varmasti, toimiiko lisäosa versiossa 3.0. Sen toimivuus pitää kokeilla.
Miten voin ajaa lisäosan Eclipse 3.0 -versiossa koskematta siihen?
Asenna 2.1-lisäosa Eclipse 3.0 -pohjaisen tuotteen alihakemistoon eclipse/plugins/ ja käynnistä Eclipse uudelleen. Eclipse tunnistaa, että lisäosa on muuntamaton 2.1-lisäosa (tiedoston plugin.xml ylätunnisteen mukaan) ja tekee automaattisesti säädöt, jotka tekevät sovituksenympäristön lisäosariippuvuuksiin ja uudelleennimettyihin ympäristön laajennuspisteisiin tehtyihin muutoksiin.
Pitääkö 2.1-lisäosia muuttaa, että niiden käännös onnistuu Eclipse 3.0 -versiossa?
Kyllä kaikissa tapauksissa. Eclipse 2.1- ja 3.0 -versioiden välillä on joitakin eroja, joiden vuoksi kaikkiin välitettyihin lisäosiin tarvitaan muutoksia. Jos sinulla on lisäosa, joka on kirjoitettu versiolle 2.1 ja haluat kääntää sen uudelleen, se on siirrettävä versioon 3.0, ennen kuin sitä voi kehittää edelleen versiota 3.0 varten.
Miten siirrän lisäosan Eclipse 3.0 -versioon?
Kun olet ladannut (tai tuonut) lisäosaprojektin Eclipse 3.0 -työympäristöön, muunna lisäosan manifest-tiedosto 3.0-muotoon ja säädä automaattisesti tarvittavien ympäristön lisäosien luettelo ja viittaukset uudelleen nimettyihin ympäristön laajennuspisteisiin valitsemalla PDE-työkalut > Päivitä 3.0-versioon (projektin kontekstivalikko). Useimmissa tapauksissa lisäosan koodin käännös ja ajo onnistuu tämän jälkeen. Seuraavaksi lisäosan koodi tulee tarkistaa ja varmistaa, ettei se ole riippuvainen jostakin yhteensopimattomista sovellusohjelmaliittymän muutoksen alueista.
Voinko luottaa siihen, että lisäosassa on käännösvirheitä, jos se perustuu yhteensopimattomasti muuttuneeseen sovellusohjelmaliittymään?
Et. Java-kääntäjä ei merkitse joitakin yhteensopimattomien muutosten osa-alueita.
Voinko ohittaa turvallisesti koodin varoitukset, jotka aiheutuvat vanhentuneen sovellusohjelmaliittymän käytöstä?
Kyllä, lyhyellä aikavälillä. Aina kun se on mahdollista, käytöstä pois jääneet sovellusohjelmaliittymät merkitään vanhentuneiksi suoran poiston ja käsittelyn jatkamisen sijaan (lukuun ottamatta mahdollisesti joitakin rajoitettuja poikkeuksia). Niinpä vaikka yleensä ei olekaan kiirettä päästä eroon vanhentuneesta sovellusohjelmaliittymästä, sen jääminen pois käytöstä tarkoittaa, että nykyään jonkin tekemiseen on parempi tapa. Lisäosien tulisi luopua kaikesta vanhentuneen sovellusohjelmaliittymän käytöstä mahdollisimman pian.
Kun siirrän lisäosani Eclipse 3.0 -versioon, voinko edelleen asentaa ja ajaa tuloksena olevan binaarisen lisäosan Eclipse 2.1 -versiossa?
Et. Tätä ei tueta, eikä se luultavasti toimisi uudelleennimettyjen laajennuspisteiden vuoksi.
Mikä on org.eclipse.core.runtime.compatibility-lisäosan tarkoitus?
Siirtyminen OSGi-pohjaisiin ohjelmatiedostoihin versiossa 3.0 poisti käytöstä osan olemassa olevista ydinosan ajonaikaisista sovellusohjelmaliittymistä. Aina kun se oli mahdollista, org.eclipse.core.runtime.*-paketeissa olevat käytöstä pois jääneet sovellusohjelmaliittymät ja niiden taustalla oleva toteutus siirrettiin org.eclipse.core.runtime-lisäosasta uuteen org.eclipse.core.runtime.compatibility-lisäosaan. Oletusarvon mukaan uudet luotavat lisäosat perustuvat org.eclipse.core.runtime-lisäosaan, ja niiden odotetaan käyttävän vain käytössä olevia ajonaikaisia sovellusohjelmaliittymiä. Toisaalta olemassa olevat lisäosat, jotka siirretään versiosta 2.1, perustuvat oletusarvon mukaan org.eclipse.core.runtime.compatibility-lisäosaan, ja ne voivat käyttää myös vanhoja sovellusohjelmaliittymiä (org.eclipse.core.runtime.compatibility-lisäosa vie uudelleen org.eclipse.core.runtime-lisäosan sovellusohjelmaliittymät). Vaikka org.eclipse.core.runtime.compatibility-lisäosa todennäköisesi sisällytetään Eclipse IDE -kokoonpanoihin, se on turhaa painolastia, jota tuskin sisällytetään RCP-kokoonpanoihin perustuviin tuotteisiin.
Mikä on org.eclipse.ui.workbench.compatibility-fragmentin tarkoitus?
org.eclipse.ui.workbench.compatibility on lisäosafragmentti, joka tuottaa parannetun binaarisen yhteensopivuuden 2.1-lisäosille, jotka ajetaan Eclipse 3.0 -versioon perustuvassa tuotteessa. Version 3.0 kuusi metodia, joilla on eksplisiittinen riippuvuussuhde IFile- tai IMarker-rajapintaan, on siirretty org.eclipse.ui.IWorkbenchPage-rajapinnasta, joten työympäristö voidaan erottaa paremmin työtilasta ja resursseista. org.eclipse.ui.workbench.compatibility-fragmentti lisää nämä metodit takaisin, että olemassa olevat 2.1-lisäosat voidaan ajaa ilman muutoksia. Huomaa, että versioon 3.0 siirretyt lisäosat, jotka viittaavat siirrettyihin metodeihin, aiheuttavat kuitenkin käännösvirheitä. Ne voi ratkaista (ainoastaan) kutsumalla korvaavia metodeja, joiden sijainti on nykyään org.eclipse.ui.ide.IDE.
Kyseiset IWorkbenchPage-metodit ovat openEditor(IFile), openEditor(IFile, String), openEditor(IFile, String, boolean), openEditor(IMarker), openEditor(IMarker, boolean) ja openSystemEditor(IFile).