Реализация систем управления версиями с помощью точки расширения адаптера

Точка расширения адаптера управления версиями предназначена для реализации различных систем управления версиями: CVS, IBM® Rational ClearCase (Base и UCM ClearCase), и IBM Rational Team Concert.

Об этой задаче

Точку расширения управления версиями можно использовать для добавления пользовательского интерфейса управления версиями в клиент Eclipse для Rational Asset Manager. Когда артефактами отправляемого ресурса управляет система управления версиями, определяется дополняющий класс. Дополняющий класс идентифицируется по teamRepositoryProviderID артефактов и информации artifactReferenceKind, которая записываются в каждый артефакт. Перед отправкой ресурса дополняющий класс определяет, какие файлы были изъяты, и возвращает все файлы. Файлы должны отправляться в систему управления версиями, чтобы записать информацию управления версиями для контроля их изменений. Дополняющий класс также создает соединения с системой управления версиями для изъятия файлов в рабочую область Eclipse. Можно выбрать ветвь, откуда был загружен ресурс, выбрать другую подходящую ветвь или создать новую.

Точку расширения адаптера управления версиями можно использовать для доступа к справочной информации об артефактах, находящихся под управлением системы управления версиями. Информация системы управления версиями находится в секции ссылок артефакта. Эта информация позволяет дополняющим классам возвращать ресурсы в систему управления версиями; определять, какие ресурсы необходимо вернуть; импортировать проекты Eclipse из соответствующей системы управления версиями и обеспечивать поддержку ветвей разработки. Для полной интеграции с системой управления версиями необходимо также использовать точку расширения com.ibm.ram.rich.ui.extension.teamUIContributor.

Информация по API:

Точка расширения адаптера управления версиями используется для создания нескольких дополняющих классов teamContributor. Каждый дополняющий класс должен поддерживать интерфейс com.ibm.ram.rich.core.scm.TeamContributor. См. Пакет com.ibm.ram.rich.core.scm.

Каждый дополняющий класс должен иметь один или несколько элементов artifactReferenceKind. Этот элемент прикрепляется к каждому артефакту для идентификации системы управления версиями, откуда артефакт был загружен. Необходимо использовать ресурс, чтобы определить teamUIContributor, который требуется для артефактов данного ресурса. Для этого атрибута следует выбрать глобальное уникальное имя, например org.organization.product.ram.myscm, чтобы исключить конфликт с атрибутами других дополняющих классов.

Каждый дополняющий класс должен иметь элемент teamRepositoryProviderID. Этот элемент идентифицирует систему управления версиями для данного ресурса в рабочей области. Тип хранилища для ресурса можно получить с помощью метода org.eclipse.team.core.RepositoryProvider.getProvider(IProject). ИД для каждого типа хранилища можно получить методом org.eclipse.team.core.RepositoryProvider.getID(). Этот ИД указывается в атрибуте repositoryProviderID элемента teamRepositoryProviderID.

Формат конфигурации:

<!ELEMENT extension (teamContributor+)>
<!ATTLIST extension  
 point CDATA #REQUIRED 
 id CDATA #IMPLIED
 name  CDATA#IMPLIED>

<!ELEMENT teamContributor (artifactReferenceKind+ ,teamRepositoryProviderID)>
<!ATTLIST extension
 point CDATA#REQUIRED
 id CDATA #IMPLIED
 name CDATA #REQUIRED>
  • id: ИД для каждого дополнения.
  • name: Удобочитаемое имя для каждого дополнения.
  • class: Класс, предоставляющий дополнения для взаимодействия Rational Asset Manager с системой управления версиями. Этот класс должен поддерживать интерфейс com.ibm.ram.rich.core.scm.TeamContributor.
<!ELEMENT artifactReferenceKindEmpty>
<!ATTLIST artifactReferenceKind
kind CDATA #REQUIRED>
Этот атрибут прикрепляется к каждому артефакту для идентификации системы управления версиями, откуда артефакт был получен. Этот атрибут определяет, какой teamUIContributor или teamContributor будет использоваться для артефактов. Для этого атрибута следует выбрать глобальное уникальное имя, например org.organization.product.ram.myscm, чтобы исключить конфликт с атрибутами других дополняющих классов.
<!ELEMENT teamRepositoryProviderID EMPTY>
<!ATTLIST teamRepositoryProviderID
repositoryProviderID CDATA #REQUIRED>
Этот код идентифицирует систему управления версиями для ресурса в рабочей области. Тип хранилища для ресурса можно получить с помощью метода org.eclipse.team.core.RepositoryProvider.getProvider(IProject). Каждый тип хранилища имеет ИД, который можно получить методом org.eclipse.team.core.RepositoryProvider.getID(). Этот ИД следует указать в атрибуте repositoryProviderID элемента teamRepositoryProviderID.

Пример

<extension id="com.ibm.ram.rich.core.artifactContributor" 
 name="Core Artifact Contributor" 
 point="com.ibm.ram.rich.core.teamContributor">

<teamContributor class="com.ibm.ram.internal.rich.core.scm.ccvs.CVSArtifactContributorWrapper"
 id="com.ibm.ram.rich.core.teamContributor.cvs"
 name="CVS Team Contributor">

<artifactReferenceKind kind="CVS">

<teamRepositoryProviderID repositoryProviderID="org.eclipse.team.cvs.core.cvsnature">

</teamRepositoryProviderID>
</teamContributor>
</extension>

Комментарии