Provider teamrepository

org.eclipse.team.core.repository

2.0

De Teamplugin bevat het concept van repository's. De taak van een repository is het leveren van ondersteuning voor het delen van resources tussen de teamleden. De repository's worden per project geconfigureerd. Aan een project kan slechts één repository tegelijk worden toegewezen.

De repository's die dit extensiepunt uitbreiden, kunnen implementaties leveren voor repositoryspecifieke regels voor het wijzigen, verplaatsen en wissen van resources. Voor meer details kunt u de volgende interfaces raadplegen: IFileModificationValidator en MoveDeleteHook.

Ook kan een repositorytype worden opgegeven om niet-projectspecifieke functionaliteit te leveren, bijvoorbeeld org.eclipse.team.core.ProjectSetCapability.

Optioneel kan voor een repositoryprovider-type worden bepaald dat dit type projecten kan importeren van een tweede provider, wanneer de plugin van de tweede provider niet beschikbaar is in de huidige installatie. Dit wordt geleverd als ondersteuning van migratie van de ene providerimplementatie naar de andere, wanneer het gebruik van hetzelfde ID voor de twee providers niet mogelijk is gebleken.

Een repositoryprovidertype kan ook een of meer metabestand-paden opgeven (gescheiden door komma's) die relatief zijn aan een bovenliggende container. Als niet-gedeelde projecten of mappen bestanden bevatten die overeenkomen met alle metabestand-paden die horen bij een repositorydefinitie, wordt de methode RepositoryProviderType#metaFilesDetected opgeroepen met de bovenliggende container als argument. Op deze manier krijgt het repositorytype de kans bestanden te markeren als alleen voor het team en het project ook potentieel kunnen delen. Zie de javadoc van de hierboven genoemde methode voor meer informatie.

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

fileSystemScheme CDATA #IMPLIED>


<extension point=

"org.eclipse.team.core.repository"

>

<repository class=

"org.eclipse.myprovider.MyRepositoryProvider"

typeClass=

"org.eclipse.myprovider.MyRepositoryProviderType"

id=

"org.eclipse.myprovider.myProviderID"

canImportId=

"org.eclipse.myprovider.myOldProviderID"

metaFilePaths=

".meta/files,.meta/version"

>

</repository>

</extension>

De waarde van het kenmerk class moet een subklasse van org.eclipse.team.core.RepositoryProvider zijn en de waarde van het kenmerk typeClass moet een subklasse van org.eclipse.team.core.RepositoryProviderType zijn.

De geleverde implementatie van RepositoryProvider levert hulpmethoden en algemene code om providers aan projecten toe te wijzen of de toewijzing ongedaan te maken. Het optionele RepositoryProviderType maakt het im- en exporteren van projectensets mogelijk door middel van ProjectSetCapability.