Провайдер хранилища группы

org.eclipse.team.core.repository

2.0

Модуль Группа поддерживает понятие хранилища. Предназначение хранилища - обеспечить работу членов группы с общими ресурсами. Хранилища настраиваются отдельно для каждого проекта. В каждый момент у проекта может быть только одно хранилище.

Хранилища, расширяющие эту точку расширения, могут предоставлять реализации для общих правил работы с хранилищами, которые определяют порядок изменения, перемещения и удаления ресурсов. Дополнительные сведения приведены в интерфейсах IFileModificationValidator и MoveDeleteHook.

Можно указать также тип хранилища, чтобы предоставить определенную функцию, не связанную с проектом, например org.eclipse.team.core.ProjectSetCapability.

Тип провайдера хранилища может (необязательно) указывать, что он может импортировать проекты из другого провайдера, если модуль последнего недоступен в текущей установке. Это делается с целью обеспечить перенос из одной реализации провайдера в другую в случае, когда повторно использовать один и тот же идентификатор для двух провайдеров невозможно.

Тип провайдера хранилища может также указывать один или несколько путей к файлам метаданных (через запятую) относительно родительского контейнера. Если в локальном проекте или папке есть файлы, соответствующие всем таким путям, то будет вызван метод RepositoryProviderType#metaFilesDetected, которому будет передана ссылка на родительский контейнер. Это производится для того, чтобы позволить данному типу хранилища сделать файлы частными для возможного последующего ввода проекта в групповую разработку. Для подробностей обратитесь к документации упомянутого выше метода в 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>

Значение атрибута class должно представлять производный класс для класса org.eclipse.team.core.RepositoryProvider, а значение атрибута typeClass - производный класс для класса org.eclipse.team.core.RepositoryProviderType

Поставляемая реализация RepositoryProvider предоставляет методы справки и общий код для установления и аннулирования соответствия между провайдерами и проектами. Необязательный RepositoryProviderType обеспечивает импорт и экспорт набора проектов посредством ProjectSetCapability.