Print PRINT
PDF

webMethods subversion Integration


Step by Step webMethods subversion Integration

Versions:

webMethods: 8.2

Subversion Server 1.6.x

Subversion Clinets: Collabnet 1.6(command line), Tortoise SVN 1.6/1.7

 

1)   TortoiseSVN-1.7.11.23600-x64-svn-1.7.8 ) Download Tortoise SVN 64 bit client and install it on a remote system or on your Desktop.

2)   Download subversion client CollabNetSubversion-client-1.6.20-1-Win32 from http://www.collab.net/downloads/subversion and install it on the same computer where your Integration Server(IS) is running. Subversion only supports 1.6.x versions.

3)   SVN Client software must be executable by the user account that is used to start IS.  So, make sure the user should have Admin access to the IS and also to the computer.

4)   Include “C:Program Files:TortoiseSVNin” in the PATH statement for the user account.

5)   Tortoise SVN is a Shell extension to use the client we should always open it in a Repo Browser,  Select a folder  -> Right click on it -> Go to TortoiseSVN and click on Repo Browser.

 

6)  Download Subversion server software CollabNetSubversion-server-1.6.20-1-Win32.exe from http://www.collab.net/downloads/subversion

7) Install the Subversion server software and access it via URL http://localhost/svn/

8)  Start/Stop or restart the Subversion Server via the windows service "Collabnet Subversion Apache "

9)  Browse Repositories and click on Create button to create one “webMethods_SVN”

10)  This Repository will be by default created at C:csvndata:repositories and you can also access your Repository via http://localhost/svn/webMethods_SVN/

Asks for Authentication, provide default username and pwd…”admin”

For command line use $svn create webMethods_SVN --username=<> --password=<>

11)  Go to Repositories access rules and grant “rw” access to SVN users

EX: admin = rw

          Go to C:csvndata:repositories:webMethods_SVN:config and open svnserve.conf and uncomment the lines and save the changes:

[general]

anon-access = read

 auth-access = write

       password-db = passwd

      12)  Open the file password located at webMethods_SVN repository and add Integration Server  and SVN Server users and save the file

Administrator = manage

admin = admin

       Start the Repository using svnserve command

$svnserve -d -r C:csvn:data:repositories

13)  Now you can access all the Repositories from svn://localhost

14)  In Repo Browser access your Repository via svn://localhost

At this moment Authentication dialog might pop out. use your SVN user account to get into the repository. Please keep “Save authentication” option unchecked. Otherwise all changes to SVN are logged under one account.

 

 

       15)  Go to webMethods_SVN Repository create a folder test1/packages via add folder option

       16) Do a SVN Commit to commit your changes to SVN Server and then Do SVN Update to synchronize your working directory with the repository content.

         17)   Now since your changes were committed at SVN server you now have to map SVN link to IS packages folder...see screenshot at the end

         18) Open IS Admin console and Do the below settings at Settings -> extended settings

Add: watt.server.createPackage.ignorePattern=.svn

So, everytime when you do a chekin to your repository, your working directory which is IS/packages will exclude .svn files while placing them in a repository


Remove watt.server.ns.backupNodes Setting

 19) If you have enabled the watt.server.ns.backupNodes setting, you must remove it. This

setting conflicts with the operation of the VCS Integration feature, which essentially

replaces it.

To remove the watt.server.ns.backupNodes setting

  1 In the Integration Server Administrator, go to the Settings > Extended page.

  2 Determine whether the watt.server.ns.backupNodes setting is displayed in the

Extended Settings list. If it is, go to step 4. If the setting is not visible:

  a Click Show and Hide Keys.

  b On the Settings > Extended > Show and Hide Keys page, look for the setting

watt.server.ns.backupNodes. If the setting is present, select the check box next to

watt.server.ns.backupNodes and click Save Changes. If the setting is not visible,

click Return to Extended Settings.

  3 On the Settings > Extended page, click Edit Extended Settings.

  4 In the Extended Settings text box, delete the watt.server.ns.backupNodes setting.

  5. Click Save Changes.

20) Settings at Developer

            1.  Start Developer.

             2. On the Tools menu, click Options, and then click General.

             3. Under the Navigation panel, clear the Automatically unlock upon save check  box, and  then click OK.

21)  Settings at Designer

1) Start Designer.

2 ) Go to Windows > Preferences > Software AG > Service Development > Package Navigator.

3 Clear the Automatically unlock upon save check box, and then click OK.


21) To configure the WmVCS package to work with Subversion

 1 In Integration Server Administrator, go to the Solutions > VCS > Edit Configuration page.

2 In the Select Version Control System list, click Subversion, and then click Save Changes.

3 Restart Integration Server.

 

 

To map one Integration Server user to one VCS user

1 In the Integration Server Administrator, go to the Solutions > VCS > User Mapping >

Create New User Mapping page.

2 In the Integration Server User Name field, type the Integration Server user name and the VCS user name and password. Use the format Integration Server user name;VCS user

name;VCS password. Type the entry for each Integration Server user on its own line.

All user account credentials are case-sensitive.

Note: If you specify an invalid VCS user name and password, when commands are sent to the VCS client, the client will stop responding while awaiting the correct user name and password. As a result, Developer or Designer will also stop responding. Integration Server Administrator does not validate, create, or modify VCS users.

3 Click Save Changes.

The VCS Integration feature encrypts the VCS passwords and stores the VCS user names and encrypted passwords on Integration Server.

 

 

-> Your Repository should have the folder packages in it. Since your working directory would be IS/packages, Subversion expects a “packages” folder in your repository.

Error: svn://localhost/packages, D:webMethods82IntegrationServerpackages]; exit value: 1; output: [svn: E170000: URL 'svn://localhost/packages' doesn't exist]
Go to your repository svn://localhost/ and create a folder and specify the SVN URL accordingly.
For Example: If you are creating svn://localhost/packages then your SVN URL should be svn://localhost/  and if you are creating /wM/packages then your SVN URL should be svn://localhost/wM/packages

Connecting to Subversion for the First Time

1 Go to the Solutions > VCS > Edit Configuration page and click the Advanced Settings link.

2 In the Subversion Repository Location field, type the URL for the Subversion repository.

3 Click Save Changes.

4 Restart Integration Server.

Re-Connecting to Subversion or changing the IP or Deleting:


 

 

Check the optionfirst whenever you delete the existing URL

Now your working copy or Directory /IS/Packages is subversioned.

 

Basic SVN Commands:

SVN Import:

To set an IS, one must first do the initial import in Subversion. This must be done prior to running the WmSubversion package and if you were not able to establish a svnlink from IS Admin console. To import IS into Subversion, run the following commands. (Note that path names and comments are more brief than in most environments.)

    % cd D:webMethods82IntegrationServerpackages

 

 

% svn import -m "Initial import." . http://localhost/svn/webMethods_SVN/test1/packages --username=admin --password=admin

Note that because by default Subversion will import all files, one might first want to remove files that are generated, such as .bak, .class and node.ndf

files.

% cd .. % mv packages D:/archive %

svn checkout http://localhost/svn/webMethods_SVN/test1/packages --username=admin --password=admin packages

.

The subversion server can now be started using the command svnserve -D -r -R /home/user/myrepo/ (this runs on port 631). Since this command needs to be executed every time the system reboots, the user may use the system init scripts. Many linux distributions (like SuSE), which ship with svnserve provide the init script in /etc/init.d/. In this case the server can be started using (after modifying them to adjust the repository path):

svnserve as daemon:

The easiest option is to run svnserve as a standalone “daemon” process. Use the -d option for this:

$ svnserve -d

$ # svnserve is now running, listening on port 3690

When running svnserve in daemon mode, you can use the --listen-port and --listen-host options to customize the exact port and hostname to “bind” to. Once we successfully start svnserve as explained previously, it makes every repository on your system available to the network.

A client needs to specify an absolute path in the repository URL. For example, if a repository is located at /var/svn/project1, a client would reach it via svn://host.example.com/var/svn/project1. To increase security, you can pass the -r option to svnserve, which restricts it to exporting only repositories below that path. For example:

$ svnserve -d -r /var/svn

Using the -r option effectively modifies the location that the program treats as the root of the remote filesystem space.

To start SVN Repository

C:\svnserve -d –r C:\csvn\data\repositories\\

Via Repo browser, we can access through svn://localhost/

Where svn://localhost would be the root for C:\csvn\data\repositories\\

Clients then use URLs that have that path portion removed from them, leaving much shorter (and much less revealing) URLs:

$ svn checkout svn://host.example.com/project1

svnserve as a Windows service:

If your Windows system is a descendant of Windows NT (Windows 2000 or newer), you can run svnserve as a standard Windows service.

This is typically a much nicer experience than running it as a standalone daemon with the --daemon (-d) option. Using daemon mode requires launching a console, typing a command, and then leaving the console window running indefinitely. A Windows service, however, runs in the background, can start at boot time automatically, and can be started and stopped using the same consistent administration interface as other Windows services.

You'll need to define the new service using the command-line tool SC.EXE. Much like the inetd configuration line, you must specify an exact invocation of svnserve for Windows to run at startup time:

C:\> sc create svn

binpath= "C:\svn\bin\svnserve.exe --service -r C:\repos"

displayname= "Subversion Server"

depend= Tcpip

start= auto

This defines a new Windows service named svn which executes a particular svnserve.exe command when started (in this case, rooted at C:\repos). There are a number of caveats in the prior example, however.

First, notice that the svnserve.exe program must always be invoked with the --service option.

Any other options to svnserve must then be specified on the same line, but you cannot add conflicting options such as --daemon (-d), --tunnel,

or --inetd (-i). Options such as -r or --listen-port are fine, though.

Second, be careful about spaces when invoking the SC.EXE command: the key= value patterns must have no spaces between key= and must have exactly one space before the value. Lastly, be careful about spaces in your command line to be invoked. If a directory name contains spaces (or other characters that need escaping), place the entire inner value of binpath in double quotes, by escaping them:

C:\> sc create svn

binpath= "\"C:\program files\svn\bin\svnserve.exe\" --service -r C:\repos"

displayname= "Subversion Server"

depend= Tcpip

start= auto

Also note that the word binpath is misleading—its value is a command line, not the path to an executable.

That's why you need to surround it with quotes if it contains embedded spaces.

Once the service is defined, it can be stopped, started, or queried using standard GUI tools (the Services administrative control panel), or at the command line:

C:\> net stop svn

C:\> net start svn

The service can also be uninstalled (i.e., undefined) by deleting its definition: sc delete svn. Just be sure to stop the service first! The SC.EXE program has many other subcommands and options; run sc /? to learn more about it.

svn unlock --force

http://localhost/svn/webMethods_SVN/packages/Default/ns/Untitled/test/flow.xml

Do not use IS Admin console to unlock the elements used by VCS feature. If the lock status of an element is not correct then If these conditions occur, refresh the Developer Navigation panel. If the condition persists, apply the Check In command. If you are still having problems, check in theelement with the VCS client and restart the Integration Server.

svn resolve --accept working “working copy/filename”

 

 

Comments (7)Add Comment
Vikram
...
written by Vikram, January 08, 2014
Abhijit, yes it's true.. my IS has wmSubversion package when since it was installed.

1. No there is no need to install it in same machine, i was working on a POC...later we achieved integration via different machines.
2. yes, i was using wM 8.2 version which supports till 1.6.x versions..while i was working there was subversion server 1.7.x available so mentioned term only..it should be till 1.6.x and 9.x has support for subversion serve 1.7x
3. Have you done user mapping for “Itegration Server Username” user in Solution > VCS > User Mapping along with the VCS Username..see above screenshots and
also setting the path (path to svn bin folder) into environment variables and restart the IS can resolve this...
abhijit
...
written by abhijit, January 08, 2014
Hi Vikram,

I have few questions.I must thank you for creating wonderful blog before getting into questions.

1. Does the SVN server need to be installed on same machine where IS is installed? In screenshotts above most of the time it is SVN URL is mentioned as localhost.
2. In wmSubversion package read me file, it is mentioned that it supports subversion versions 1.3 and later. But you blog says it supports only 1.6.*. Just wanted to double check.
3. I tried all the steps you mentioned. But when trying to save SVN URL in advanced setting as per step "Connecting to Subversion for the First Time ", it is showing below error:
[8389]2014-01-08 19:19:33 IST [ISC.0077.9998E] Exception --> java.util.MissingResourceException: Can't find resource for bundle com.webmethods.vcs.resources.VCSExceptionBundle, key Cannot run program "svn": CreateProcess error=2, The system cannot find the file specified

Additional Info: The integration server is installed on windows machine. SVN is company server with repository URL and has "packages" directory created at the folder level mentioned in svn url.
abhijit
...
written by abhijit, January 08, 2014
hello Vikram,

I think I should have clarified this before asking my earlier question. I was not able to see "subversion" in drop down list when I was trying step no 21 in your blog. When I researched further, I realised that only those XYZ VCS systems will be visible in drop down for which we have installed corresponding wmXYZ package on IS. Probabaly, your IS has wmSubversion package when since it was installed.
Vikram
...
written by Vikram, January 07, 2014
Abhijit, There is no need to have wMSubversion package if you are using any third party subversion server, you can only look for wMVCS package to configure your subversion, user mapping and specify your repository..see above screenshots and refer complete blog.
abhijit
...
written by abhijit, January 03, 2014
I guess we need to have wmSubversion package installed on the IS. Unfortunately I do not have it on my IS. I tried to download from empower. But I could not locate it on empower. Can you suggest from where I can get it?
Vikram
...
written by Vikram, December 06, 2013
Hi Ameer,

You can use any subversion server, but the server version should be compatible with your IS. Check http://documentation.softwarea...eature.pdf

wM 9.0 sp1 supports only these..

Subversion 1.4, 1.6, and 1.7

Thanks
Ameer
...
written by Ameer, December 06, 2013
Dear Vikram

This is a greate artical.
Actually, we had some issue impliminting the SVN.

Can I use Subversion 1.8.5 (Windows 64-bit)
as a subversion server?


Write comment
You must be logged in to post a comment. Please register if you do not have an account yet.

busy