Implementing source control management systems with the adapter extension point

Use the source control management 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 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 adapter extension point to provide reference information about artifacts that are under source control management control. The source control management information is located in the reference section of an artifact. The information allows contributors to check in resources to source control management, determine which resources need to be checked in, import Eclipse projects from the respective source control management system, and provide support for branching. To provide complete integration with an source control management system, you must also use the com.ibm.ram.rich.ui.extension.teamUIContributor extension point.

API information:

You can use the source control management adapter extension point to define multiple teamContributor contributors. Each contributor needs to provide a class that extends to com.ibm.ram.rich.core.scm.TeamContributor. See Package com.ibm.ram.rich.core.scm .

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 the workspace. You can obtain the repository provider for a resource 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 (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: The ID for each contribution.
  • name: A human readable name for each contribution.
  • class: The class provides contributions for the Rational Asset Manager interaction with the source control management system. You must extend the com.ibm.ram.rich.core.scm.TeamContributor class to provide contributions.
<!ELEMENT artifactReferenceKindEmpty>
<!ATTLIST artifactReferenceKind
kind CDATA #REQUIRED>
This attribute attaches to each artifact to identify which source control management system the artifact comes from. The attribute is used when consuming the asset to determine which teamUIContributor or teamContributor to use for artifacts. 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.
<!ELEMENT teamRepositoryProviderID EMPTY>
<!ATTLIST teamRepositoryProviderID
repositoryProviderID CDATA #REQUIRED>
Thiscode identifies the source control management system for the resource in the workspace. You can obtain arepository provider for each resource by using the org.eclipse.team.core.RepositoryProvider.getProvider(IProject). Each repository provider has an ID that you can obtain by using the org.eclipse.team.core.RepositoryProvider.getID(). Provide this ID in the repositoryProviderID attribute of the teamRepositoryProviderID element.

Example

<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>

Feedback