VCS plugin - cannot create VCS root (please help!)


I have created a VCS Plugin and installed it in my Team City directory. The server startup log says that my pluigin has been loaded on startup. But when I go to make a new VCS root, in the "Type of VCS" dropdown does not have a choice for my plugin. Does anyone know what I am doing wrong here?

Thank You!

Comment actions Permalink


What interface do you implement/class extend in your main VCS support class?
Do you define it in the Spring config?

If you can disclose the sources we can look into them to determine what is wrong.

BTW, can you share what VCS support do you write?

Comment actions Permalink

I am working on VCS support for Surround SCM.

This is the main VCS support class:
public class SurroundSCMVcsSupport extends ServerVcsSupport implements BuildPatchByIncludeRules, CollectChangesByIncludeRules, PropertiesProcessor

Then my spring file looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<beans default-autowire="constructor">
  <bean id="SurroundSCMTeamCityServer" />

Comment actions Permalink


> I am working on VCS support for Surround SCM.

Looks fine. Please also make sure you have getName/getDisplayName returning something.

Are there any eror messages in the teamcity-server.log?

Comment actions Permalink

getName is returning "SurroundSCM" and getDisplayName is returning "Surround SCM"

teamcity-server.log has no error messages, and it lists "SurroundSCM" as one of the plugins that was loaded on startup.

i put this statement in the constructor of SurroundSCMVcsSupport -"Surround SCM constructor");
to see if it was being created, but no such statement appears in teamcity-vcs.log. does this mean there is some problem with the way the plugin is packaged? i've attached the zip file of the packaged plugin here.

Comment actions Permalink

PS looking at the git and mercurial plugins, I noticed that the constructors take a variety of different parameters. nothing was mentioned in the plugin development instructions about constructors for VcsSupport classes. mine has no parameters in the constructor of SurroundSCMVcsSupport. is that okay?

Comment actions Permalink


Should actually be
Note the dash instead of underscore.

With this misprint TeamCity was not able to find the XML and no beans were loaded.

With the correction the plugin is loaded, but no settings page is displayed as no JSP resources are included into the plugin package.

>  looking at the git and mercurial plugins, I noticed that the constructors take a variety of different parameters.

That should not affect plugin loading (provided the used constructor parameters are existing Spring beans provided by either plugin or TeamCity core).


Please sign in to leave a comment.