Generování funkcí zdroje a modulů plug-in

Sestavení PDE umí generovat funkce zdroje nebo moduly plug-in.  Zvažte následující funkci 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" />

Myšlenka SDK je taková, že obsahuje funkci spolu s jejím zdrojem.  Všimněte si vlastnosti generate.feature v souboru build.properties.  Tato vlastnost říká sestavení PDE, aby generoval funkci pojmenovanou "org.foo.rcp.source" na základě obsahu funkce "org.foo.rcp".  Sestavení PDE vygeneruje funkci org.foo.rcp.source, modul plug-in, jenž bude obsahovat zdroj, a fragmenty obsahující zdroje všech balíků specifických pro různé platformy, které byly obsaženy ve funkci:
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

Přizpůsobení generované funkce zdroje

Vlastnost generate.feature má následující tvar:
generate.feature@<source feature id> = <feature id> [, feature@<feature id>] [, plugin@<plugin id>[;unpack="false"]]
Použijte plugin@ k přidání dalších modulů plug-in, které nebyly částí originální funkce, do generované funkce zdroje.  To je užitečné pro dokumentaci modulů plug-in.  Feature@ spolu se zdrojovou šablonou mohou být použity pro vnoření funkcí zdroje (viz níže).

Zdrojové šablony

Funkce, ze které je generována funkce zdroje, může poskytnout soubory se šablonami, které mají být zahrnuty v generované funkci zdroje:
features/
org.foo.rcp/
sourceTemplateFeature/<files to be included in generated source feature>
sourceTemplatePlugin/<files to be included in generated source plugin>
sourceTemplateFragment/<soubory, které mají být zahrnuty v generovaných fragmentech specifických pro různé platformy>

Všechny souboru umístěné v těchto složkách sourceTemplate budou zahrnuty v příslušné generované funkci/modulu plug-in/fragmentu.  Konkrétně soubory z těchto adresářů nahradí soubory generované sestavením PDE.  Toho lze využít k poskytnutí možnosti přizpůsobení feature.xml, pokud sestavení PDE nepodporuje některé požadavky pro vaši funkci zdroje.

Vnořování generovaných funkcí zdroje

Vnořovat funkce zdroje můžete tím, že pro vaši funkci zdroje obsahující vlastnost generate.feature pro vnořenou funkci zdroje poskytnete soubor sourceTemplateFeature/build.properties.  Také musíte zajistit, aby vaše funkce zdroje nejvyšší úrovně feature.xml obsahovala vnořenou funkci zdroje. Toho docílíte buď použitím feature@, nebo poskytnutím šablony feature.xml:

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/...
V příkladu uvedeném výše obsahuje,  org.foo.sdk generovanou funkci zdroje nazvanou org.foo.rcp.source.  Tato generovaná funkce zdroje bude mít soubor sourceTemplateFeature/build.properties.  Ve svém feature.xml bude také obsahovat org.foo.nested.source  Takže při zpracovávání generovaného org.foo.rcp.source uvidí sestavení PDE zahrnutí funkce org.foo.nested.source a vlastnost generate.feature a vygeneruje pak org.foo.nested.source.

Generování zdrojového modulu plug-in

Také je možné generovat jediný zdrojový modul plug-in na základě jediného modulu plug-in namísto zakládání zdroje na funkci.  Vlastnost, která toto provede je:

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

Příklad:
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