プラグインは、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="%javaSourceLocator"/> </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>