Einfaches Self-Hosting ist für die meisten Standalone-Situationen ausreichend und besonders gut für die Entwicklung unter Verwendung großer Produkte als Ziel geeignet. Es gibt jedoch Szenarios, bei denen eine fortgeschrittene Lösung erforderlich ist:
Da sich keine externen Plug-ins im Arbeitsbereich befinden, sind Sie nicht Teil des Suchbereichs. Daher geben verschiedene Suchen (nach Schnittstellen- und Klassenverweisen, Implementierungen usw.) weniger Ergebnisse als erwartet zurück. Lediglich externe Bibliotheken, die Teil des Klassenpfads des Arbeitsbereichs-Plug-ins sind, sind für das Java-Plug-in sichtbar.
Ähnlich wie unter 1) ist das Durchsuchen des Quellcodes von externen Plug-ins nur für Plug-ins möglich, die für Arbeitsbereichs-Plug-ins erforderlich sind. Andere Plug-ins sind nicht sichtbar.
Der Klassenpfad ist nicht stabil. Wenn Sie an mehreren untereinander abhängigen Plug-ins im Arbeitsbereich arbeiten, drückt PDE diese Abhängigkeiten als Projektverweise aus. Auf der anderen Seite werden externe Plug-ins mit der Variable ECLIPSE_HOME und externen JAR-Dateien ausgedrückt. Wenn diese Projekte mit Hilfe des Repositories gemeinsam benutzt werden, müssen andere Entwickler dieses Element replizieren, obwohl Sie nicht alle Plug-ins unbedingt benötigen, die Sie im Arbeitsbereich haben.
Folglich müssten diese Schwierigkeiten nicht behandelt werden, wenn sich alle Plug-ins im Arbeitsbereich befänden. Die Suche liefe erwartungsgemäß ab, der Quellcode wäre für alle Klassen sichtbar und der Klassenpfad wäre einheitlich, d. h. er enthielte lediglich Projektverweise. Allerdings würde das Hinzufügen des gesamten Produkts von einem gemeinsam benutzten Repository in Quellenform das Herunterladen und Umwandeln erheblich verlangsamen. Aus diesem Grund wurden Binär-Projekte eingeführt.
Binär-Projekte sind reguläre Plug-in-Projekte, die keinen Quellcode enthalten. Daher werden sie während der Umwandlung umgangen und werden lediglich zum Lösen der oben beschriebenen Schwierigkeiten verwendet. Externe Plug-ins werden mit Hilfe des PDE-Importassistenten in den Arbeitsbereich importiert.
Vor dem Importieren von Binär-Projekten ist es wichtig, PDE für das binäre Self-Hosting zu konfigurieren. Da externe Plug-ins nicht zum Auflösen von Verweisen verwendet werden, müssen diese in den Benutzervorgaben inaktiviert werden. Anschließend wird der Importassistent mit Hilfe von Datei->Importieren...->Externe Plug-ins und Fragmente aufgerufen.
In den meisten Fällen werden die Standardwerte auf der ersten Seite übernommen. Standardmäßig werden externe Plug-ins aus der Ziellaufzeit-Workbench importiert, wie in den Benutzervorgaben festgelegt. Auf der ersten Seite des Importassistenten können Sie die Position der Laufzeitworkbench ändern, indem Sie über die Schaltfläche Ändern... eine Verknüpfung zur Seite Plug-in-Entwicklung> Zielplattform bereitstellen.
Durch das Importieren binärer Projekte kann der Arbeitsbereich sehr umfangreich werden, und auch die Importoperation selbst kann abhängig von der Anzahl und dem Inhalt der importierten Plug-ins sehr zeitaufwendig werden. Um diese Probleme zu umgehen, hat PDE das Konzept des Imports mit Linkerstellung eingeführt. Falls Sie das Markierungsfeld "Plug-in-Inhalt in Arbeitsbereichsposition kopieren" abwählen, importiert PDE den Inhalt der ausgewählten Plug-ins nicht in den Arbeitsbereich. Stattdessen müssen Sie dann Projekte für diese Plug-ins in Ihrem Arbeitsbereich erstellen und für jede Datei, die importiert werden sollte, eine verlinkte Ressource erstellen. Diese verlinkten Ressourcen zeigen auf die eigentlichen Dateien in der Installation und werden im Arbeitsbereich so angezeigt, als ob sie tatsächlich importiert worden wären. Sie können sie zwar durchsuchen, aber nicht ändern, da eine Änderung dieser Dateien zur Änderung der Originaldateien führen würde. Beim Löschen eines binären Projekts werden alle im Projekt enthaltenen verlinkten Dateien ebenfalls gelöscht.
Wenn Quellcode automatisch zu einer JAR-Datei zugeordnet und die Option für das Extrahieren der Quellenarchive verwendet wird, muss PDE nach der ZIP-Datei suchen, die die Quelle enthält. PDE setzt für diese Task zweierlei voraus:
1. Die ZIP-Datei muss richtig benannt sein. Falls der Bibliotheksname "xyz.jar" lautet, muss die ZIP-Datei, die die Quelle für diese Bibliothek enthält, mit "xyzsrc.jar" benannt sein.
2. Die ZIP-Datei muss neben der JAR-Datei oder in einer der deklarierten Quellcodepositionen vorhanden sein. In Eclipse wird Quellcode in separaten Plug-ins gepackt, und Quellcodepositionen werden unter Verwendung des Erweiterungspunktes "org.eclipse.pde.core.source" deklariert. PDE durchsucht automatisch alle Erweiterungen in der Zielplattform, berechnet alle Quellcodepositionen, die in dieser Plattform gefunden wurden, und fügt diese zur Benutzervorgabenseite Plug-in-Entwicklung > Quellcodepositionen hinzu.
Falls Sie den Import aus einer anderen Position als der Zielplattform ausführen, die Sie auf der Seite Plug-in-Entwicklung > Zielplattform angegeben haben, und der Quellcode unter Verwendung der Erweiterungspunkte "org.eclipse.pde.core.source" gepackt wurde, müssen Sie daran denken, diese Quellcodepositionen manuell zur Seite Plug-in-Entwicklung > Quellcodepositionen hinzuzufügen, damit PDE die Quelle wirklich findet.
Bibliothekspfade enthalten manchmal Variablen, z. B. $ws$. PDE ersetzt diese Variablen durch Werte, die auf der Seite Plug-in-Entwicklung > Zielumgebung festgelegt werden. Wenn diese Wert nicht mit der Plattform kompatibel sind, von der aus der Import vorgenommen wird, bietet die erste Seite des Importassistenten über die Schaltfläche Ändern... eine Verknüpfung zu dieser Benutzervorgabenseite, auf der Sie die Werte ändern können.
Wenn Sie auf "Weiter" drücken, berechnet der Assistent alle Kandidaten für den Import. Diese werden anschließend in einer Markierungsfeldliste verfügbar. Das tatsächliche Plug-in-Set, das Sie auswählen, hängt von der Art des Self-Hosting ab.
Wenn Sie an Plug-ins arbeiten, die nicht bereits in der Zielplattform vorhanden sind, müssen Sie alle Auswahlen auswählen (Alles auswählen). Wenn sich einige Plug-ins aus der Liste bereits in Quellenform im Arbeitsbereich befinden, drücken Sie Vorhandene Projekte und anschließend Auswahl umkehren. Dadurch werden alle Plug-ins ausgewählt, die sich nicht bereits im Arbeitsbereich befinden.
Wenn Sie Fertig stellen drücken, werden die ausgewählten Plug-ins in den Arbeitsbereich importiert. PDE legt außerdem den Klassenpfad fest und ordnet Bibliotheken Quellenarchive zu, damit Sie sie durchsuchen oder debuggen können.
Wenn sich eine große Anzahl von Binär-Projekten im Arbeitsbereich befindet, können sie nur schwer von Quellenprojekten unterschieden werden. PDE bietet zwei komplementäre Wege, die dieses Problem behandeln. Die Dekorationen für Bezeichnungen fügen ein Symbol "binär" hinzu, das das normale Projektsymbol überlagert, um es als Binär-Projekt zu markieren. Sie können diese Funktion in den Benutzervorgaben über "Workbench->Dekorationen für Bezeichnungen" einschalten. PDE bietet außerdem Binär-Projektfilter für die Sicht "Java Explorer". Wenn diese aktiviert sind, werden die Binär-Projekte verdeckt, an denen Sie nicht arbeiten.