Δημιουργία λειτουργιών και πρόσθετων λειτουργιών πρωτογενούς κώδικα

Η δόμηση PDE μπορεί να δημιουργήσει λειτουργίες ή πρόσθετες λειτουργίες πρωτογενούς κώδικα.  Δείτε την ακόλουθη λειτουργία 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" />

Η ιδέα που διέπει το SDK είναι η συμπερίληψη των λειτουργιών και του πρωτογενούς κώδικα των λειτουργιών αυτών.  Παρατηρήστε την ιδιότητα generate.feature στο αρχείο της λειτουργίας build.properties. Η ιδιότητα αυτή δίνει εντολή στη δόμηση PDE για τη δημιουργία μιας λειτουργίας "org.foo.rcp.source" που θα βασίζεται στα περιεχόμενα της λειτουργίας "org.foo.rcp". Η δόμηση PDE θα δημιουργήσει μια λειτουργία org.foo.rcp.source, μια πρόσθετη λειτουργία που θα περιέχει τον πρωτογενή κώδικα, καθώς και ένα τμήμα κώδικα που θα περιέχει τον πρωτογενή κώδικα όλων των δεσμών πλατφόρμας που περιέχονταν στη λειτουργία:
  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

Προσαρμογή της δημιουργημένης λειτουργίας πρωτογενούς κώδικα

Η ιδιότητα generate.feature έχει την ακόλουθη μορφή:
generate.feature@<source feature id> = <feature id> [, feature@<feature id>] [, plugin@<plugin id>[;unpack="false"]]
Χρησιμοποιήστε το plugin@ για να πραγματοποιήσετε την προσθήκη επιπλέον πρόσθετων λειτουργιών, οι οποίες δεν αποτελούσαν μέρος της δημιουργίας της λειτουργίας πρωτογενούς κώδικα από την αρχική λειτουργία.  Χρησιμεύει ιδιαίτερα για τις πρόσθετες λειτουργίες τεκμηρίωσης.  Το feature@ μαζί με ένα πρότυπο πρωτογενούς κώδικα μπορούν να χρησιμοποιηθούν για την ένθεση λειτουργιών πρωτογενούς κώδικα (δείτε πιο κάτω).

Πρότυπα πρωτογενούς κώδικα

Η λειτουργία, από την οποία δημιουργείται η λειτουργία πρωτογενούς κώδικα, παρέχει αρχεία προτύπου που θα συμπεριληφθούν στη δημιουργημένη πρόσθετη λειτουργία.
  features/
org.foo.rcp/
sourceTemplateFeature/<αρχεία που πρόκειται να συμπεριληφθούν στη δημιουργημένη λειτουργία πρωτογενούς κώδικα>
sourceTemplatePlugin/<αρχεία που πρόκειται να συμπεριληφθούν στη δημιουργημένη, πρόσθετη λειτουργία πρωτογενούς κώδικα>
sourceTemplateFragment/<αρχεία που πρόκειται να συμπεριληφθούν στα δημιουργημένα τμήματα κώδικα πλατφόρμας>

Όλα τα αρχεία που βρίσκονται στους φακέλους sourceTemplate θα συμπεριληφθούν στην κατάλληλη λειτουργία/πρόσθετη λειτουργία/τμήμα κώδικα που θα δημιουργηθεί.  Συγκεκριμένα, τα αρχεία από τους καταλόγους αυτούς θα αντικαταστήσουν τα αρχεία που έχουν δημιουργηθεί από τη δόμηση PDE. Με τον τρόπο αυτό, μπορεί να παρασχεθεί ένα προσαρμοσμένο αρχείο feature.xml εάν υφίστανται απαιτήσεις για τη λειτουργία πρωτογενούς κώδικα που δεν υποστηρίζονται από τη δόμηση PDE.

Ένθεση δημιουργημένων λειτουργιών πρωτογενούς κώδικα

Μπορείτε να πραγματοποιήσετε την ένθεση των λειτουργιών πρωτογενούς κώδικα μέσω της παροχής ενός αρχείου sourceTemplateFeature/build.properties για τη δημιουργημένη λειτουργία πρωτογενούς κώδικα, η οποία περιέχει μια ιδιότητα generate.feature για την ένθετη λειτουργία πρωτογενούς κώδικα.  Θα πρέπει επίσης να διασφαλίσετε ότι το αρχείο feature.xml στην κορυφή του πρωτογενούς κώδικα περιλαμβάνει την ένθετη λειτουργία πρωτογενούς κώδικα. Αυτό μπορεί να γίνει είτε μέσω της χρήσης του feature@ είτε παρέχοντας ένα αρχείο 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/...
Στο παραπάνω παράδειγμα, η  org.foo.sdk περιέχει μια λειτουργία πρωτογενούς κώδικα με το όνομα org.foo.rcp.source. Αυτή η δημιουργημένη λειτουργία πρωτογενούς κώδικα θα λάβει το αρχείο προτύπου sourceTemplateFeature/build.properties. Θα συμπεριλάβει επίσης την org.foo.nested.source στο αρχείο feature.xml. Έτσι, όταν η δόμηση PDE επεξεργάζεται τη δημιουργημένη λειτουργία org.foo.rcp.source, διαπιστώνει τη συμπερίληλψη της λειτουργίας the org.foo.nested.source και της ιδιότητας generate.feature, δημιουργώντας κατόπιν τη λειτουργία org.foo.nested.source.

Δημιουργία πρόσθετης λειτουργίας πρωτογενούς κώδικα

Είναι επίσης δυνατό να δημιουργήσετε μια, μοναδική πρόσθετη λειτουργία πρωτογενούς κώδικα, βασισμένη σε μια, μοναδική πρόσθετη λειτουργία αντί να βασίσετε τον πρωτογενή κώδικα σε μια λειτουργία.  Η ιδιότητα για αυτό είναι:

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

Παράδειγμα:
  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