3.2-version toimintojen ja sovellusohjelmaliittymien käyttöönoton yhteydessä edellytetyt muutokset

Tässä osassa kuvataan muutoksia, jotka ovat pakollisia, jos yrität muuttaa 3.1-lisäosan ottamaan käyttöön 3.2-version toiminnot ja sovellusohjelmaliittymät.

  1. Aloituskokoonpanot
  2. Aloitustilat
  3. International Components for Unicode for Java (ICU4J)
  4. Ajonaikainen jako

Aloituskokoonpanot

Aloituskokoonpanon resurssivastaavuusmääritys

Eclipse 3.2 sisältää uusia infrastruktuureja, joiden avulla voi liittää aloituskokoonpanoja resursseihin. Tämän vastaavuusmäärityksen avulla käyttöympäristö voi resursseihin perustuen suodattaa aloituskokoonpanot. Lisäksi käyttöympäristö voi valinnaisesti poistaa aloituskokoonpanot, kun niihin liittyvä projekti poistetaan. Aloituksen valintaikkunaa on paranneltu niin, että se tukee suodattimia, joiden avulla voit valinnaisesti piilottaa suljettuihin ja poistettuihin projekteihin liittyvät kokoonpanot. Aloituksen valintaikkuna tukee myös aktiivisen työympäristöikkunan valittuihin työaineistoihin perustuvaa suodatusta, jonka voi valita myös aloituksen valintaikkunassa.

On työaseman tehtävä hallita aloituskokoonpanojen resurssin vastaavuusmääritystä. Kohteeseen ILaunchConfigurationWorkingCopy on lisätty sovellusohjelmaliittymä, joka määrittää kokoonpanoon liittyvät resurssit, ja kohteeseen ILaunchConfiguration on lisätty sovellusohjelmaliittymä, joka noutaa kokoonpanoon liittyvät resurssit. Esimerkiksi aloituksen välilehdet, aloituksen pikanäppäimet ja koodinparannuksen osapuolet on otettava huomioon siirrossa. Koodin, joka luo aloituskokoonpanoja tai muokkaa niitä, on myös päivitettävä resurssien vastaavuusmääritykset.

Aloituskokoonpanon siirtymistuki

Eclipse 3.2 sisältää uuden infrastruktuurin, jonka avulla voit siirtää aloituskokoonpanoja yhteensopiviksi uusien työvälineiden kanssa. Esimerkiksi Eclipsen versioon 3.2 on lisätty tuki resurssiperustaiseen aloituskokoonpanojen suodatukseen. Aloituskokoonpanot on päivitettävä, jotta resurssien vastaavuusmäärityksissä voidaan hyödyntää tätä uutta ominaisuutta. Käyttäjät voivat siirtää työtilan aloituskokoonpanot manuaalisesti valitsemalla vaihtoehdot Aja/Tee vianmääritys > Aloitus > Aloituskokoonpanot oletusasetussivulta Siirrä-painiketta napsauttamalla.

Uusi valinnainen siirron delegaattimäärite on lisätty laajennuspisteeseen launchConfigurationTypes. Se määrittää luokan, joka toteuttaa uuden liittymän ILaunchConfigurationMigrationDelegate. Siirron delegaatti vastaa siirtoehdokkaiden yksilöinnistä ja siirrosta.

Aloitustilat

Laajennuspisteeseen launchModes on lisätty uusi valinnainen määrite, joka varmistaa, että aloituksen alivalikkojen toimintojen nimikkeiden ulkoistamisen tuki toimii oikein. Aloitustiloja toimittavien työasemien on määritettävä oikea nimiö aloituksen alivalikkoon, esimerkiksi "Aja muodossa". Uusi määrite on nimeltään launchAsLabel. Käyttöympäristö toimittaa oikeat nimiöt ajon, vianmäärityksen ja profiilin aloituksen tiloja varten. Yhteensopivuus aiempien versioiden kanssa varmistetaan siten, että kun aloitustilan uutta määritettä ei määritetä, alivalikkojen nimiöt muodostetaan samoin kuin aiemmin, MessageFormatin ja määrityksen "{0} muodossa" avulla. Tietoja aiheeseen liittyvästä viasta on kohdassa105235.

International Components for Unicode for Java (ICU4J)

ICU4J Java-kirjastojoukko, joka tuo käyttöön kattavan Unicode-, siirrettävyys- ja kansainvälistystuen. Nämä toiminnot tuotiin Eclipse-yhteisön käyttöön lisäämällä ICU4J-kirjastot käyttöympäristön koontiin Eclipse-versiossa 3.2. ICU4J näkyy koonnissa lisäosana, jonka nimi on com.ibm.icu. Eclipse-ympäristö käyttää ICU-ohjelmointirajapintoja Eclipse-versiossa 3.2.

Siirtyminen versiosta toiseen

Sovellusten koodin siirto voidaan tehdä täydentävästi, mikä merkitsee, että ICU4J-toiminnoista saa hyötyä, vaikka kaikkia niistä ei otettaisikaan täysimääräisesti käyttöön. Lisätietoja koodin siirrosta ICU4J-toimintojen käyttöä varten on Eclipse-wikin ICU4J page -sivulla.

ICU4J-korvauslisäosa

ICU4J-lisäosa kasvattaa tallennustilan tarvetta noin 3 Mt:n verran. Jotkin sovellukset saattavat jättää ICU4J-lisäosan sulauttamatta, jos sovelluksen koko ajaa tärkeysjärjestyksessä ICU4J-toimintojen käyttöönoton edelle. Tässä tapauksessa korvauslisäosa (com.ibm.icu.base) on saatavilla Eclipse platform build page -sivulta. Lataa kyseinen lisäosa, poista com.ibm.icu-lisäosa sekä sen lähdevastine /plugins-hakemistosta ja sijoita sinne korvauslisäosa. Näin on toimittava, koska Eclipse-ympäristössä ICU-ohjelmointirajapinnat on otettu käyttöön versioon 3.2, joten pelkkä ICU-lisäosan poisto johtaisi käännösvirheisiin ympäristön koodissa. Korvauslisäosa on noin 100 kt:n kokoinen, ja se kutsutaan JDK-kehitysympäristön yleisimmin käytettyjen ICU4J-luokkien ja -ohjelmointirajapintojen oletustoteutuksen yhteydessä. Lisätietoja ICU-korvauslisäosan käytöstä on myös Eclipse-wikin ICU4J page -sivulla.

Vaikutus JFace-käyttöliittymään - ViewerSorter ja StructuredViewer

Jotta JFace-käyttöliittymä tukisi ICU4J-toimintoja, oli estettävä ICU-luokkien kutsuminen ohjelmointirajapinnoissa lisäämällä tiettyjä luovia ohjelmointirajapintoja. Tämä johti seuraaviin lisäyksiin:

  1. uusi luokka org.eclipse.jface.viewers.ViewerComparator, jonka aliluokka org.eclipse.jface.viewers.ViewerSorter nyt on.
  2. kaksi uutta metodia luokkaan org.eclipse.jface.viewers.StructuredViewer tukemaan luokan org.eclipse.jface.viewers.ViewerComparator lisäystä.

Perustelut

Luokalla ViewerSorter on julkinen metodi getCollator(), joka palauttaa luokan java.text.Collator. Kyseinen metodi on ohjelmointirajapinta, joten sitä ei voi muuttaa yksinkertaisesti käyttämään ICU-luokkaa Collator. Vastaavasti ICU-luokat eivät voi olla ohjelmointirajapintojen (allekirjoitusten) osia, koska suora lisäosariippuvuus ICU-luokkiin estäisi JFace-ympäristön erillisen käytön (SWT-työkalujen kanssa). Näiden rajoitteiden noudattaminen varmistettiin lisäämällä ViewerComparator-luokka, joka käyttää luokkaa java.util.Comparator eikä ICU-luokkaa Collator. Kyseinen muutos tehtiin, koska ICU-luokka Collator toteuttaa luokan java.util.Comparator, joten mikä tahansa StructuredViewer-luokka voi nyt käyttää ICU-luokkaa Collator java.text.Collator-luokan sijaan, mutta JFace-käyttöliittymän ei tarvitse lisätä riippuvuutta ICU4J-lisäosaan. Kaksi uutta StructuredViewer-luokkaan lisättyä metodia tukevat ICU-luokan Collator käyttöä katseluohjelman sisällön lajitteluun ViewerComparator-luokan kautta ViewerSorter-luokan sijaan. On suositeltavaa, että StructuredViewer-luokat käyttäisivät nyt kyseisiä metodeja katseluohjelman lajittelutoiminnon (comparator) hakuun ja määritykseen getSorter()- ja setSorter(ViewerSorter)-metodien sijaan.

Ajonaikainen jako

Uudet ajonaikaiset ohjelmointirajapinnat

Resurssijoukko org.eclipse.equinox.common sisältää useita uusia yleisnimisiä ohjelmointirajapintaluokkia (esimerkiksi Assert ja ListenerList). Jos koodissasi on samanniminen luokka ja käytät sitä paikallisten ja ajonaikaisten luokkien tuontiin *-lauseiden avulla, saatat saada seuraavan virhesanoman:

   Tyyppi ABC on monitulkintainen
  

Ongelma ratkeaa useimmiten järjestämällä tuonnit ja valitsemalla oikea tuontilähde.

Eksplisiittiset luokkapolut mukautetuissa koontikomentosarjoissa

Koska koodia on siirretty uusiin ajonaikaisiin lisäosiin, mukautettuihin eksplisiittisiä org.eclispe.core.runtime-viittauksia sisältäviin komentosarjoihin täytyy ehkä lisätä yksi tai useampia seuraavista lisäosista: