Team-Repository-Provider

org.eclipse.team.core.repository

2.0

Das Team-Plug- enthält das Konzept von 'Repositories'. Aufgabe eines Repositories ist die Unterstützung der gemeinsamen Benutzung von Ressourcen durch Teammitglieder. Repositories werden projektbezogen konfiguriert. Einem Projekt kann jeweils nur ein Repository zugeordnet sein.

Repositories, die diesen Erweiterungspunkt erweitern, können Implementierungen allgemeiner repositoryspezifischer Regeln für das Ändern, Bearbeiten und Löschen von Ressourcen bereitstellen. Die Schnittstellen IFileModificationValidator und MoveDeleteHook enthalten weitere Details.

Ein Repository-Typ kann auch angegeben werden, um eine nicht projektbezogene spezische Funktionailtät, wie zum Beispiel org.eclipse.team.core.ProjectSetCapability, zur Verfügung zu stellen.

Optional kann ein Repository-Provider-Typ bestimmen, dass er Projekte von einem zweiten Provider importieren kann, für den Fall, dass das Plug-in des zweiten Providers in der aktuellen Installation nicht verfügbar ist. Dies wird zur Verfügung gestellt, um die Migration von einer Provider-Implementierung in eine andere zu unterstützen, wenn die erneute Verwendung derselben ID für die beiden Provider nicht möglich war.

Ein Repository-Provider-Typ kann auch einen oder mehrere Metadatei-Pfade (getrennt durch Kommas) angeben, die sich auf einen übergeordneten Container beziehen. Wenn ein nicht gemeinsam genutztes Projekt oder Ordner Dateien enthält, die allen Metadatei-Pfaden entsprechen, die einer Repositorydefinition zugeordnet sind, wird die Methode RepositoryProviderType#metaFilesDetected mit dem übergeordneten Container als Argument aufgerufen. Dies erfolgt, um dem Repositorytyp die Chance zu geben, die Dateien als teamintern zu markieren und möglicherweise auch das Projekt gemeinsam zu nutzen. Weitere Informationen finden Sie in der Javadoc der oben genannten Methode.

<!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>

Der Wert des Attributs 'class' muss eine Unterklasse von org.eclipse.team.core.RepositoryProvider sein und der Wert des Attributs 'typeClass' muss eine Unterklasse von org.eclipse.team.core.RepositoryProviderType sein.

Die bereitgestellte Implementierung von 'RepositoryProvider' stellt Helpermethoden und einen allgemeinen Code zum Zuordnen von Providern zu Projekten bzw. Aufheben einer Zuordnung von Providern zu Projekten zur Verfügung. Der optionale 'RepositoryProviderType' stellt einen Import und Export des Projektsets über eine ProjectSetCapability zur Verfügung.