Implementing source control management systems with the user interface adapter extension point

You can use the source control management user interface adapter extension point to implement these various source control management systems: CVS, IBM® Rational® ClearCase® (Base and UCM ClearCase), and IBM Rational Team Concert.

About this task

You can use the source control management user interface adapter extension point to integrate the source control management user interface with the Rational Asset Manager Eclipse Client. When an source control management system manages the resource artifacts of an asset that you submit, a contributor is determined. The contributor is based on the teamRepositoryProviderID of the resource artifacts and the artifactReferenceKind information that is recorded on each artifact. Before you can submit an asset, the contributor determines which files are checked out and checks in all files. The files need to be submitted to the source control management system so that the source control management information can be recorded for traceability. The contributor also creates connections to the source control management system that allow files to be checked out from source control management into the Eclipse workspace. You can choose from options to select the branch that the asset was submitted from, select other appropriate branches, or create a new branch.

You can use the source control management user interface adapter extension point to define decorations and properties for artifacts, determine which branches are available for an asset import, and allow users to create connections to respective source control management repositories.

To provide complete integration with an source control management system, you must also use the com.ibm.ram.rich.core.teamContributor extension point. For more information on using the com.ibm.ram.rich.core.teamContributor extension point, see Using the source control management adapter extension point.

API information:

You can use the source control management user interface adapter extension point to define multiple teamUIContributor contributors. Each contributor needs to provide a class that extends to com.ibm.ram.rich.ui.scm.TeamUIContributor.

Each contributor must provide one or more artifactReferenceKind elements. This element is attached to each artifact to identify the source control management system that the artifact comes from. You must use the asset to determine the teamUIContributor that you need to use for the artifacts of that asset. Contributors need to select a qualified globally unique name for this attribute, such as org.organization.product.ram.myscm, so that the attribute does not interfere with other contributors.

Each contributor must provide one teamRepositoryProviderID element. This element identifies the source control management system for that resource in workspace. You can obtain a repository provider with org.eclipse.team.core.RepositoryProvider.getProvider(IProject). You can obtain the ID for each repository provider with org.eclipse.team.core.RepositoryProvider.getID(). You must provide this ID in the repositoryProviderID attribute of the teamRepositoryProviderID element.

Configuration markup:

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

<!ELEMENT teamUIContributor (artifactReferenceKind+ ,teamRepositoryProviderID)>
<!ATTLIST extension
 point CDATA#REQUIRED
 id CDATA #IMPLIED
 name CDATA #REQUIRED>
Use the following extension point to contribute user interface artifacts:
<!ELEMENT artifactReferenceKindEmpty>
<!ATTLIST artifactReferenceKind
kind CDATA #REQUIRED>
The following attribute attaches to each artifact and identifies the source control management system where the artifact originated. Use this attribute when you consume the asset to determine the teamUIContributor or teamContributor that you need to use for artifacts. Contributors must select a qualified globally unique name for this attribute, such as org.organization.product.ram.myscm, so that the attribute does not interfere with other contributors.
<!ELEMENT teamRepositoryProviderID EMPTY>
<!ATTLIST teamRepositoryProviderID
repositoryProviderID CDATA #REQUIRED>
This code identifies the source control management system for a resource in your workspace. You can obtain a repository provider for a resource with org.eclipse.team.core.RepositoryProvider.getProvider(IProject). You can obtain an ID for each repository provider with org.eclipse.team.core.RepositoryProvider.getID(). You must provide this ID in the repositoryProviderID attribute of the teamRepositoryProviderID element.

Example

<extension id="com.ibm.ram.rich.ui.teamUIContributor" 
 name="Team UI Contributor" 
 point="com.ibm.ram.rich.ui.extension.teamUIContributor">

<teamUIContributor class="com.ibm.ram.internal.rich.ui.scm.CVSArtifactUIContributorWrapper"
 id="com.ibm.ram.rich.core.teamContributor.cvs"
 name="Team UI Contributor">

<artifactReferenceKind kind="CVS">

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

</teamRepositoryProviderID>
</teamUIContributor>
</extension>

Feedback