プラグインは、org.eclipse.debug.core.launchConfigurationTypes 拡張ポイントを使用して、プラットフォームへ起動構成型を追加できます。この拡張ポイントを使用すると、固有の ID を使用して構成型を宣言できます。プラグインには、ILaunchConfigurationDelegate の対応するインプリメンテーションを提供する必要があります。また、ランチャーがサポートするモード (実行、デバッグ)、およびこのタイプのランチャーをユーザー向けに表示するときに使用する名前を指定することもできます。
次のマークアップは、Java ツールが、ローカル Java プログラムを起動するための Java 起動構成を宣言する方法を示しています。
<extension point = "org.eclipse.debug.core.launchConfigurationTypes"> <launchConfigurationType id="org.eclipse.jdt.launching.localJavaApplication" name="%localJavaApplication" delegate="org.eclipse.jdt.internal.launching.JavaLocalApplicationLaunchConfigurationDelegate" modes= "run, debug"> </launchConfigurationType> </extension>
デバッグ・モードをサポートする起動構成のタイプごとに、コード内の現行実行ポイントに対応するソース・コードを見つける方法を定義することは重要です。 ISourceLocator および IPersistableSourceLocator は、実行プログラムからソース・コードへ戻るマッピングのインターフェースを定義します。
ソース・ロケーターは一般的に、対応する起動構成および起動構成代行とともに機能するようにインプリメントされます。 起動構成は保持できるので、ソース・ロケーターも起動構成とともに保管できます。 これには、起動構成の属性をソース・ロケーターの ID に設定します。 起動構成がディスクから読み取られるときは、ソース・ロケーターの ID をインプリメンテーション・クラスにマップし直す必要があります。 これには、org.eclipse.debug.core.sourceLocators 拡張ポイントを使用します。
拡張ポイントを使用すると、IPersistableSourceLocator をインプリメントするクラスを登録でき、起動構成とともに保管される ID に関連付けることができます。 これにより、デバッグ・プラグインは、起動構成をインスタンス化するときに、ソース・ロケーター・クラスを ID で検索できます。
次のマークアップは、Java ツールからのものです。
<extension point = "org.eclipse.debug.core.sourceLocators"> <sourceLocator id = "org.eclipse.jdt.debug.ui.javaSourceLocator" class="org.eclipse.jdt.debug.ui.JavaUISourceLocator" name="Prompting Java Source Locator"/> </extension>
プラグインは、名前付き属性と値を使用して、起動構成とともに重要なデータを保管します。 属性の解釈はプラットフォームには認識されないので、特定の属性用のコンパレーターを提供できる拡張ポイントが用意されています。 このコンパレーターは、指定された名前の属性が等しいかどうかを判別するために使用されます。 多くの場合、java.lang.Object.equals(Object) が提供する単純なストリング比較が、属性の比較に適しています。 このメソッドは、コンパレーターが提供されなかった場合に使用されます。 ただし、一部の属性値には、特殊な処理 (たとえば、等価性を比較する前にテキストから空白文字値を除去するなど) が必要である場合があります。
コンパレーターは、org.eclipse.debug.core.launchConfigurationComparators 拡張ポイントを使用して提供されます。
Java ツールは、プログラム・ソース・パスおよびクラスパスを比較するための起動構成コンパレーターを提供します。
<extension point = "org.eclipse.debug.core.launchConfigurationComparators"> <launchConfigurationComparator id = "org.eclipse.jdt.launching.classpathComparator" class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator" attribute = "org.eclipse.jdt.launching.CLASSPATH"/> <launchConfigurationComparator id = "org.eclipse.jdt.launching.sourcepathComparator" class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator" attribute = "org.eclipse.jdt.launching.SOURCE_PATH"/> </extension>