Sachant que les ressources d'un projet sous contrôle de version sont conservées dans le référentiel, des projets peuvent être partagés avec des membres de l'équipe grâce au partage d'une référence à des informations spécifiques au référentiel, nécessaires à la reconstruction d'un projet dans l'espace de travail. Pour ce faire, un type spécial d'exportation de fichier est requis pour les ensembles de projets d'équipe.
Dans la version 3.0, l'API a été ajoutée à ProjectSetCapability pour permettre aux fournisseurs de référentiel de déclarer une classe qui implémente l'enregistrement de projet pour les projets qu'ils contrôlent. Lorsque l'utilisateur choisit d'exporter des ensembles de projets, seuls les projets configurés avec les référentiels qui définissent des ensembles de projets sont affichés comme candidats à l'exportation. Cette API remplace l'ancienne API de sérialisation d'ensembles de projets (voir ci-dessous).
La classe de fonction d'ensemble de projets pour une fournisseur de référentiel est obtenue à partir de la classe RepositoryProviderType enregistrée dans la même extension que le fournisseur de référentiel. Par exemple :
<extension point="org.eclipse.team.core.repository"> <repository typeClass="org.eclipse.team.internal.ccvs.core.CVSTeamProviderType" class="org.eclipse.team.internal.ccvs.core.CVSTeamProvider" id="org.eclipse.team.cvs.core.cvsnature"> </repository> </extension>
Avant la version 3.0, le point d'extension org.eclipse.team.core.projectSets permettait aux fournisseurs de référentiel de déclarer une classe qui implémente l'enregistrement des projets qu'ils contrôlent. Lorsque l'utilisateur choisit d'exporter des ensembles de projets, seuls les projets configurés avec les référentiels qui définissent des ensembles de projets sont affichés comme candidats à l'exportation.
Par exemple, le client CVS déclare ce qui suit :
<extension point="org.eclipse.team.core.projectSets"> <projectSets id="org.eclipse.team.cvs.core.cvsnature" class="org.eclipse.team.internal.ccvs.ui.CVSProjectSetSerializer"/> </extension>
La classe spécifiée doit implémenter IProjectSetSerializer. L'utilisation de cette interface est toujours prise en charge dans la version 3.0, mais elle est déconseillée.