Generazione di funzioni e di plug-in di origine

La generazione PDE può generare una funzione oppure un plug-in di origine.  Si consideri la seguente funzione SDK:
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" />

L'idea dell'SDK è che includa una funzione oltre che l'origine per questa funzione.  Si noti la proprietà generate.feature nel file build.properties della funzione.  Questa proprietà indica alla generazione PDE di generare una funzione denominata "org.foo.rcp.source" che si basa sul contenuto della funzione "org.foo.rcp".  La generazione PDE genererà una funzione org.foo.rcp.source, un plug-in che conterrà il codice sorgente e frammenti che contengono l'origine di qualsiasi bundle specifico della piattaforma incluso nella funzione:
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

Personalizzazione della funzione di origine generata

La proprietà generate.feature presenta il seguente formato:
generate.feature@<source feature id> = <feature id> [, feature@<feature id>] [, plugin@<plugin id>[;unpack="false"]]
Utilizzare plugin@ per aggiungere ulteriori plug-in che non facevano parte della funzione originale alla funzione di origine generata.  È utile per i plug-in di documentazione.  È possibile utilizzare feature@ insieme a un modello di origine per nidificare le funzioni di origine (vedre sotto).

Modelli di origine

La funzione dalla quale la funzione di origine viene generata; può fornire file di modello da includere nella funzione di origine generata:
features/
org.foo.rcp/
sourceTemplateFeature/<file da includere nella funzione di origine generata>
sourceTemplatePlugin/<file da includere nel plugin di origine generato>
sourceTemplateFragment/<file da includere nei frammenti specifi della piattaforma generati>

Qualsiasi file che si trova in questa cartella sourceTemplate verrà incluso nella funzione/plugin/frammento generata appropriata.  Specificamente, i file di queste directory sostituiranno i file generati dalla generazione PDE.  È possibile utilizzarlo per fornire un feature.xml personalizzato nel caso in cui ci siano requisiti per la funzione di origine che la generazione PDE non supporta.

Nidificazione delle funzioni di origine generate

È possibile nidificare le funzioni di origine fornendo un file sourceTemplateFeature/build.properties per la funzione di origine generata che contiene un generate.feature per la funzione di origine nidificata. Inoltre sarà necessario assicurare che il file feature.xml superiore includa la funzione di origine nidificata; a tale scopo, utilizzare feature@ oppure fornendo un feature.xml modello:

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/...
Nell'esempio riportato sopra,   org.foo.sdk contiene una funzione di origine generata denominata org.foo.rcp.source.  Questa funzione di origine generato acquisirà il file sourceTemplateFeature/build.properties.  Includerà org.foo.nested.source nel relativo file feature.xml.  Pertanto, quando la generazione PDE elabora la funzione org.foo.rcp.source, vede l'inclusione della funzione org.foo.nested.source e la proprietà generate.feature, quindi genera org.foo.nested.source.

Generazione di un plugin di origine

È anche possibile generare un singolo plugin di origine basato su un singolo plugin anziché basare l'origine su una funzione.  La proprietà per fare ciò:

generate.plugin@<source plug-in id>=<plug-in id>

Esempio:
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