||
Skip to end of metadata
Go to start of metadata

SCM Connections are one of many well-defined extension points supported by the WSO2 Governance Registry. Read more on Supported Extension Points for a complete list of extension points supported by WSO2 Governance Registry.

Governance Registry can interact directly with external file systems and a variety of version control systems that support Maven through the Maven SCM plugin. With the SCM support in Governance Registry, users can fulfill the following scenarios:

  • Directly manage a resource that resides in a version control system from the registry. The user can browse Resources/Collections and perform operations such as adding, updating or deleting resources from the registry so it will affect the version control system as well. 
  • A user can add WSDLs and other schema-like artifacts to the registry and store all their dependency structures in the mounted version control system. This would allow the user to use those dependencies with some other third-party product as well, such as build systems.
  • If a user works with different types of multiple corporate repositories such as SVN, GIT, Perforce, and VSS, and if the user wants to create a single view that allows you to browse and manage the resources, it is possible to use the registry for this aspect by enabling SCM support.

As the resources are maintained in the file system, it is not possible to add properties to any of the checked out resources; therefore, operations such as Mounting, Symbolic Links, and Governance will not work on resources within an SCM mount.

The Governance Registry can be easily mounted with an external version control system by following the steps given below.

Configuration to enable SCM support

In order to create an SCM mounting in Governance Registry, stop the Governance Registry server, uncomment the following configuration in the $GREG_HOME/repository/conf/registry.xml and properly configure it by providing correct values for the parameters, and then restart the server.

If you want to view the content from another mounted node, you must configure SCM support in that node, too.

Uncomment and configure this section in registry.xml
<scm>
  <connection checkOutURL="scm:svn:http://svn.wso2.org/repos/wso2" workingDir="/valid/filesystem/path" mountPoint="/_system/foo" checkInURL="" readOnly="" updateFrequency="">
      <username>admin</username>
      <password>admin</password>
  </connection>
</scm>

Following are descriptions of these attributes:

  • checkOutURL - The URL of the version repository control system to integrate with the registry. From this location the resources will get checked out to the registry. The URL should be preceded with:  scm:
  • workingDir - The file system location where the resources from the version repository control system initially check out to. This should be an existing location in the file system.
  • mountPoint - The registry location where the resources from the version repository control system check out to. 
  • username - The user name of the version repository control system.
  • password- The password of the version repository control system. 
  • checkInURL-  The URL of the version repository control system where the check in should happen if any resource addition, update, or deletion occurred. 
  • readOnly - This is set to true by default. This is to define whether to check out only or check in and check out only. if readOnly is true, resources will only be checked out to the location specified by checkOutURL, if set to false the check in would also happen to the svn location specified by checkInURL. Therefore, when readOnly is set to false, you must specify the checkInURL. Also note that when readOnly is set to false, any modification, addition, or deletion that you do on resources will be commited to the defined svn location.
  • updateFrequency - Defines how frequently the registry and version repository control system should be synchronized with each other. The value is defined in minutes. 

Additional configuration for SCM providers can be done using separate configuration files. To learn more, click on the respective SCM in the Apache Maven SCM Overview document and navigate to the Provider Configuration section. For example, the provider configuration for Subversion (SVN) can be found in here.

After the server is started, the resources from the version repository control system will be in the specified location of the registry in the same hierarchical order. 

  • No labels