自己ホスティングとは、コンピューター・プログラムが、 同じプログラムの新規バージョンを作成するために使用するアクティビティーです。 自己ホスティングは、コンパイラーの開発にしばしば出てくるもので、 そこで、コンパイラーの新規バージョンがコンパイラーのターゲット言語で作成され、 テストの一部としてそれ自体がコンパイルされます。 Eclipse では、自己ホスティングとは、Eclipse プラグインを開発するための Eclipse の使用を指します。 PDE のミッション・ステートメントのように聞こえる場合は、そのようにすべきです。 PDE の使用によって、すでに自己ホスティングを行っていることになります。
PDE は、自己ホスティングの 2 つの特殊スタイルをサポートします。 これらには利点も欠点もあり、 さまざまな使用シナリオ用に設計されています。 これらは、プラグイン依存性を管理する方法が異なります。
単純 (スタンドアロン) 自己ホスティングは、 プラグイン参照を解決するための外部プラグインを使用します。 これは管理および理解が簡単で、容易であり、 (コードを他と共用するリモート・リポジトリーを使用しない) スタンドアロン開発者用にまったく十分です。
バイナリー・プロジェクトの自己ホスティング は、 外部プラグインがバイナリー・プロジェクトとしてワークスペースにインポートされるステップを紹介します。 これらは依然として変更されることはなく、通常はパッケージ・エクスプローラーでバイナリー・プロジェクト・フィルターを使用して隠されます。
PDE は、2.1 リリースでの新しいフィーチャーとして追加のスタイルを提案していますが、 これは、単純プロジェクト自己ホスティングとバイナリー・プロジェクト自己ホスティングの間の混合物とも言うべきものです。 このモードでは、JDT によって提供されているクラスパス・コンテナーが、 従属プラグインのエントリーを表すために使用されます。 これらのエントリーは、プラットフォーム内の現行状態に基づいて動的に計算されます。 参照されるプラグインが外部で検出された場合、 参照は外部 JAR として解決されます。 プラグインがワークスペース内で検出された場合、 プロジェクト参照への解決が行われます。 ワークスペース内の変更は自動的にコンテナー内のクラスパスに影響を与えます。 最後に、エントリーが必要なときに計算される (ハードコーディングされて保管されるのではない) ため、 ターゲット・プラットフォーム内の変更によってクラスパスの不整合が発生することがありません。