Lähdetuoteominaisuuksien ja -lisäosien muodostus

PDE-koonti voi muodostaa lähdetuoteominaisuuden tai -lisäosan.  Tutustu seuraavaan SDK-tuoteominaisuuteen:
features/
org.foo.sdk/
feature.xml: <includes id="org.foo.rcp" />
<includes id="org.foo.rcp.source" />
build.properties: generate.feature@org.foo.rcp.source = org.foo.rcp
org.foo.rcp/
feature.xml: <plugin id="org.foo.BundleA" />
<plugin id="org.foo.BundleB" />
<plugin id="org.foo.BundleB.win32" fragment="true" os="win32" />

Kyseinen SDK-tuoteominaisuus sisältää niin tuoteominaisuuden kuin kyseisen tuoteominaisuuden lähteen.  Huomaagenerate.feature-ominaisuus tuoteominaisuuden build.properties-tiedostossa.  Kyseinen ominaisuus ohjeistaa PDE-koonnin muodostamaan "org.foo.rcp.source"-nimisen tuoteominaisuuden, joka perustuu tuoteominaisuuden "org.foo.rcp" sisältöön.  PDE-koonti muodostaa org.foo.rcp.source-tuoteominaisuuden, lähdekoodin sisältävän lisäosan ja tuoteominaisuuden mahdollisesti sisältämien käyttöympäristökohtaisten resurssijoukkojen lähteen sisältävät fragmentit:
features/
org.foo.rcp.source/
feature.xml: <plugin id="org.foo.rcp.source"/>
<plugin id="org.foo.rcp.source.win32" fragment="true" os="win32" />
plugins/
org.foo.rcp.source/src/
org.foo.BundleA/src.zip
org.foo.BundleB/src.zip
org.foo.rcp.source.win32/src/
org.foo.BundleB.win32/src.zip

Muodostetun lähdetuoteominaisuuden mukautus

Ominaisuuden generate.feature muoto on seuraavanlainen:
generate.feature@<source feature id> = <feature id> [, feature@<feature id>] [, plugin@<plugin id>[;unpack="false"]]
Käyttämällä plugin@-ominaisuutta voit lisätä ylimääräisiä lisäosia, jotka eivät kuulu muodostetun lähdetuoteominaisuuden alkuperäiseen tuoteominaisuuteen.  Tämä on hyödyllinen ominaisuus dokumentaatiolisäosissa.  Ominaisuuden feature@ ja lähdemallipohjan avulla voidaan lähdetuoteominaisuuksia sijoittaa sisäkkäin (tutustu jäljempänä oleviin ohjeisiin).

Lähdemallipohjat

Tuoteominaisuus, jonka perusteella lähdetuoteominaisuus muodostetaan, voi toimittaa muodostettavaan lähdetuoteominaisuuteen sisällytettäviä mallipohjatiedostoja:
features/
org.foo.rcp/
sourceTemplateFeature/<muodostettavaan lähdetuoteominaisuuteen sisällytettävät tiedostot>
sourceTemplatePlugin/<muodostettavaan lähdelisäosaan sisällytettävät tiedostot>
sourceTemplateFragment/<muodostettaviin käyttöympäristökohtaisiin fragmentteihin sisällytettävät tiedostot>

Mahdolliset kyseisissä sourceTemplate-kansioissa sijaitsevat tiedostot sisällytetään vastaavaan muodostettuunfeature/plug-in/fragment-kansioon.  Kyseisten hakemistojen tiedostot korvaavat PDE-koonnin muodostamat tiedostot.  Tämän avulla voi toimittaa mukautetun feature.xml-tiedoston, jos lähdetuoteominaisuudella on edellytyksiä, joita PDE-koonti ei tue.

Muodostettujen lähdetuoteominaisuuksien sisäkkäin sijoitus

Lähdetuoteominaisuuksia voi sijoittaa sisäkkäin toimittamalla sourceTemplateFeature/build.properties-tiedoston muodostetulle lähdetuoteominaisuudelle. Kyseisen tiedoston tulee sisältää generate.feature-ominaisuus sisäkkäin sijoitettavaa lähdetuoteominaisuutta varten.  Sinun tulee myös varmistaa, että ylätason feature.xml-lähdetiedosto sisältää sisäkkäisen lähdetuoteominaisuuden. Tämän voi tehdä feature@-ominaisuuden avulla tai toimittamalla feature.xml-mallipohjatiedoston:

features/
org.foo.sdk/
sourceTemplateFeature/
build.properties: generate.feature@org.foo.nested.source = org.foo.nested

feature.xml: <includes id="org.foo.rcp" />
<includes id="org.foo.rcp.source" />

build.properties: generate.feature@org.foo.rcp.source = org.foo.rcp, feature@org.foo.nested.source

org.foo.rcp/...
org.foo.nested/...
Edellisessä esimerkissä  org.foo.sdk-tuoteominaisuus sisältää org.foo.rcp.source-nimisen muodostetun lähdetuoteominaisuuden.  Kyseinen muodostettu lähdetuoteominaisuus saa sourceTemplateFeature/build.properties-mallipohjatiedoston.  Se sisältää myös tuoteominaisuuden org.foo.nested.source feature.xml-tiedostossaan.  Näin ollen PDE-koonnin käsitellessä muodostettua lähdetuoteominaisuutta org.foo.rcp.source se havaitsee org.foo.nested.source-tuoteominaisuuden lisäyksen sekä generate.feature-ominaisuuden ja muodostaa tämän jälkeen lähdetuoteominaisuuden org.foo.nested.source.

Lähdelisäosan muodostus

On myös mahdollista muodostaa yksittäinen lähdelisäosa yksittäisen lisäosan perusteella sen sijaan, että lähde perustuisi kokonaiseen tuoteominaisuuteen.  Tämän voi tehdä seuraavan ominaisuuden avulla:

generate.plugin@<lähdelisäosan tunnus>=<lisäosan tunnus>

Esimerkki:
features/
org.foo.sdk/
feature.xml: <plugin id="org.foo.rcp" />
<plugin id="org.foo.rcp.source" />

build.properties: generate.plugin@org.foo.rcp.source = org.foo.rcp