チーム・リポジトリー・プロバイダー

org.eclipse.team.core.repository

2.0

チーム・プラグインにはリポジトリーの概念が含まれます。 リポジトリーは、チーム・メンバー間におけるリソースの共有をサポートします。 リポジトリーはプロジェクトごとに構成されます。 一度にプロジェクトにマップできるリポジトリーは 1 つだけです。

この拡張ポイントを拡張するリポジトリーは、 リソースの変更、移動、および削除に対する共通リポジトリー特有のルールの実装を提供します。 詳しくは IFileModificationValidator および MoveDeleteHook のインターフェースを参照してください。

リポジトリー・タイプは、org.eclipse.team.core.ProjectSetCapability などの非プロジェクト固有の機能を 提供する場合にも指定することができます。

別のプロバイダーのプラグインを現行インストール環境で使用できない場合、リポジトリー・プロバイダー・タイプは、別のプロバイダーからプロジェクトをインポート可能なことを指定することもできます。この方法では、2 つのプロバイダーで同じ ID を再利用できない場合に、プロバイダー実装間のマイグレーションをサポートできます。

リポジトリー・プロバイダー・タイプは、親コンテナーに対して相対的な 1 つ以上のメタファイル・パス (コンマで区切られている) も指定できます。非共用のプロジェクトまたはフォルダーに、リポジトリー定義に関連したすべてのメタファイル・パスとマッチングするファイルが含まれている場合、メソッド RepositoryProviderType#metaFilesDetected が起動され、親コンテナーが引数として渡されます。この処理を実行すると、リポジトリー・タイプはファイルにチーム専用のマークを付けて、プロジェクトも共用できるようになります。詳しくは、上記メソッドの javadoc を参照してください。

<!ELEMENT extension (repository)>

<!ATTLIST extension

point CDATA #REQUIRED>


<!ELEMENT repository EMPTY>

<!ATTLIST repository

id            CDATA #IMPLIED

class         CDATA #REQUIRED

typeClass     CDATA #IMPLIED

canImportId   CDATA #IMPLIED

metaFilePaths CDATA #IMPLIED>


<extension point=

"org.eclipse.team.core.repository"

>

<repository class=

"org.eclipse.myprovider.MyRepositoryProvider"

typeClass=

"org.eclipse.myprovider.MyRepositoryProvider"

id=

"org.eclipse.myprovider.myProviderID"

canImportId=

"org.eclipse.myprovider.myOldProviderID"

metaFilePaths=

".meta/files,.meta/version"

>

</repository>

</extension>

class 属性の値は org.eclipse.team.core.RepositoryProvider の サブクラスを、typeClass 属性の値は org.eclipse.team.core.RepositoryProviderType のサブクラスを表す必要があります。

RepositoryProvider で提供される実装は、 プロバイダーをプロジェクトにマップおよびマップ解除するためのヘルパー・メソッドおよび共通コードを提供します。 オプションの RepositoryProviderType では、ProjectSetCapability を使用したプロジェクト・セットの インポートとエクスポートが提供されます。