Так как ресурсы проекта, поддерживающие управление версиями, сохраняются в хранилище, то есть возможность делать проекты общими для членов группы. Это делается путем настройки общей ссылки на информацию в хранилище, необходимую для перестройки проекта в рабочей области. Это делается с помощью особого способа экспорта файлов длянаборов проектов группы.
В версии 3.0 в ProjectSetCapability добавлен API, служащий для того, чтобы типы хранилищ могли объявить класс, реализующий сохранение проектов, находящихся под их управлением. Когда пользователь выбирает экспорт наборов проекта, доступными для экспорта будут только те проекты, которые настроены с хранилищами, определяющими наборы проектов. Такой API заменяет старый API сериализации набора проектов (см. ниже).
Класс для поддержки группы функций набора проектов для типа хранилища получен из класса RepositoryProviderType, зарегистрированного в том же расширении, что и тип хранилища. Например:
<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>
В версиях ранее 3.0 использовалась точка расширения org.eclipse.team.core.projectSets, которая позволяла типам хранилищ объявлять класс, реализующий сохранение проектов, находящихся под их управлением. Когда пользователь выбирает экспорт наборов проекта, доступными для экспорта будут только те проекты, которые настроены с хранилищами, определяющими наборы проектов.
Например, клиент CVS объявляется следующее:
<extension point="org.eclipse.team.core.projectSets"> <projectSets id="org.eclipse.team.cvs.core.cvsnature" class="org.eclipse.team.internal.ccvs.ui.CVSProjectSetSerializer"/> </extension>
Заданный класс должен реализовывать интерфейс IProjectSetSerializer. Использование этого интерфейса до сих пор поддерживается в 3.0, но он уже устарел.