Zespołowy dostawca repozytorium

org.eclipse.team.core.repository

2.0

Moduł dodatkowy Zespół wiąże się z pojęciem repozytoriów. Zadaniem repozytorium jest obsługa współużytkowania zasobów przez członków zespołu. Repozytoria konfiguruje się dla konkretnych projektów. W danym momencie do projektu może być przypisane tylko jedno repozytorium.

Repozytoria rozszerzające omawiany punkt rozszerzenia mogą udostępniać implementacje dla typowych, specyficznych dla danego repozytorium reguł określających sposoby modyfikowania, przenoszenia i usuwania zasobów. Aby uzyskać więcej szczegółowych informacji, należy zapoznać się z interfejsami IFileModificationValidator i MoveDeleteHook.

Typ repozytorium można również określić w celu udostępniania funkcji niepowiązanych z konkretnymi zasobami, np. org.eclipse.team.core.ProjectSetCapability.

Opcjonalnie typ dostawcy repozytorium może również wskazywać, że jest w stanie importować projekty od innego dostawcy w sytuacji, gdy moduł dodatkowy tego innego dostawcy jest niedostępny w ramach bieżącej instalacji. Dzięki temu można przeprowadzić migrację z jednej implementacji dostawcy do innej, gdy ponowne użycie tego samego identyfikatora dla dwóch dostawców nie jest możliwe.

Typ dostawcy repozytorium może również wskazywać jedną lub wiele ścieżek do metaplików (rozdzielonych przecinkami), które są określane względem nadrzędnego kontenera. Jeśli współużytkowany projekt lub folder zawiera pliki, które są zgodne z powiązanymi z definicją repozytorium ścieżkami do metaplików, metoda RepositoryProviderType#metaFilesDetected będzie wywoływana z nadrzędnym kontenerem podawanym jako argument. Dzięki temu typ repozytorium ma możliwość oznaczania plików jako prywatne zasoby zespołu oraz pozwala na współużytkowanie projektu. Więcej informacji o wspomnianej wyżej metodzie można znaleźć w dokumentacji 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>

Wartość atrybutu class musi przedstawiać podklasę klasy org.eclipse.team.core.RepositoryProvider, a wartość atrybutu typeClass musi przedstawiać podklasę klasy org.eclipse.team.core.RepositoryProviderType.

Dostarczana implementacja klasy RepositoryProvider obejmuje metody pomocnicze i wspólny kod umożliwiający odwzorowywanie i cofanie odwzorowania na projekty. Opcjonalna klasa RepositoryProviderType udostępnia możliwość importu i eksportu zbioru projektów przy użyciu funkcji ProjectSetCapability.