I'm no longer maintaining this plugin because I don't have the time. --Ilkka

Requirements

The plugin requires the StarTeam SDK, StarTeam extensions and jsafe libraries in Hudson's classpath. These files are included in the freely downloadable StarTeam SDK package from Borland (Micro Focus) , and may be installed by e.g. dropping them in Hudson's WEB-INF/lib directory.

Notes

The plugin currently always converts line endings to the host format on checkout.

Usage

There is no global configuration for this plugin. Instead, configure a project to use StarTeam SCM. The following option settings appear:

Hostname - the name of the StarTeam server

Port - the port number

Project - the name of the project in StarTeam

View - the name of the view inside the project (e.g. "VIEW1")

Folder - the name of the root folder of your project, including the view's root folder (e.g. the root folder of view "VIEW1" could be "ROOTFOLDER1". And if your project Root folder lies under this as say "RELEASE1", in this case the entry should be "ROOTFOLDER1\RELEASE1")

Label - name of the StarTeam label for checking out the project

Promotion State - is label actual label or StarTeam promotion state

Username

Password

Building and Passing Unit Tests

Please see the project README. You will need to download some jar files from borland and configure your maven settings.

Labels:

Anonymous says:

It's worth noting in the Usage section that once you have installed the plugin (...

It's worth noting in the Usage section that once you have installed the plugin (and ensured that the required StarTeam related JARs are in Hudson's classpath), there is no system-wide configuration for this plugin. This confused me at first -- I went to the System Configuration page and saw a blank section for StarTeam SCM and figured it didn't have all the necessary JARs.

Reading the Usage section more carefully now I see that it states that you configure a project to use it, but it might be worth noting that no system-wide configuration is required.

Thanks for taking the time to make this plugin. I've been dying to get our team off of CruiseControl for a while and Hudson may be the ticket thanks to this plugin.

This is looking very promising to me - however, I'm having a problem determining...

This is looking very promising to me - however, I'm having a problem determining which StadTeam SDK files need to be put in the WEB-INF/lib directory. I've resorted to putting all files from the in the --StarTeam SDK/lib directory into WEB-INF/lib. I've got this setup on a Windows machine and I'm getting this error when I attempt a build:

=================================================================

started
FATAL: null
java.lang.ExceptionInInitializerError
at com.borland.starteam.impl.ClientContext.<init>(ClientContext.java:119)
at com.borland.starteam.impl.Server.<init>(Server.java:101)
at com.starbase.starteam.Server.<init>(Server.java:274)
at hudson.plugins.starteam.StarTeamConnection.initialize(StarTeamConnection.java:106)
at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:60)
at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:18)
at hudson.FilePath.act(FilePath.java:291)
at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:77)
at hudson.model.AbstractProject.checkout(AbstractProject.java:558)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:223)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:189)
at hudson.model.Run.run(Run.java:656)
at hudson.model.Build.run(Build.java:102)
at hudson.model.ResourceController.execute(ResourceController.java:70)
at hudson.model.Executor.run(Executor.java:65)
Caused by: com.borland.starteam.impl.SDKRuntimeException: The native library "Borland.StarTeam.FileAccess.dll" was not found. Please verify that the StarTeam SDK is properly installed.
at com.borland.starteam.impl.util.NativeFileAccess.init(NativeFileAccess.java:36)
at com.borland.starteam.impl.util.NativeFileAccess.<init>(NativeFileAccess.java:24)
at com.borland.starteam.impl.util.Platform.<clinit>(Platform.java:68)
... 15 more
Caused by: java.lang.UnsatisfiedLinkError: no Borland.StarTeam.FileAccess in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.borland.starteam.impl.util.NativeFileAccess.init(NativeFileAccess.java:33)
... 17 more
=================================================================The Borland.StarTeam.FileAccess.dll is located in the same directory as the StarTeam jar files. I wonder if I'm running a to-new version, as these are St 2006 jars and dlls.

Running on 2005 or 2005R2, I get this error:
=======================================================================
started
FATAL: tried to access method com.starbase.starteam.ServerInfo.<init>()V from class hudson.plugins.starteam.StarTeamConnection
java.lang.IllegalAccessError: tried to access method com.starbase.starteam.ServerInfo.<init>()V from class hudson.plugins.starteam.StarTeamConnection
at hudson.plugins.starteam.StarTeamConnection.<init>(StarTeamConnection.java:69)
at hudson.plugins.starteam.StarTeamCheckoutActor.<init>(StarTeamCheckoutActor.java:44)
at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:74)
at hudson.model.AbstractProject.checkout(AbstractProject.java:558)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:223)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:189)
at hudson.model.Run.run(Run.java:656)
at hudson.model.Build.run(Build.java:102)
at hudson.model.ResourceController.execute(ResourceController.java:70)
at hudson.model.Executor.run(Executor.java:65)
========================================================================= I'd appreciate anyhelp you can give. Thanks, Kevin Ketchum

Looks as if I've figured this out.
If your running StarTeam 2006, you need to p...

Looks as if I've figured this out.

If your running StarTeam 2006, you need to put starteam90.jar into [basehudsonpath]\data\plugins\hudson-starteam-plugin\WEB-INF\lib and Borland.StarTeam.FileAccess.dll in [basehudsonpath]\lib. Or at least that worked for me

I am able to get files to check out of StarTeam when running with the plugin on ...

I am able to get files to check out of StarTeam when running with the plugin on the master machine.

However, when I attempt the same build on a slave machine, I get the following errors:started
Building remotely on kdk
FATAL: remote file operation failed
hudson.util.IOException2: remote file operation failed
at hudson.FilePath.act(FilePath.java:287)
at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:77)
at hudson.model.AbstractProject.checkout(AbstractProject.java:558)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:223)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:189)
at hudson.model.Run.run(Run.java:656)
at hudson.model.Build.run(Build.java:102)
at hudson.model.ResourceController.execute(ResourceController.java:70)
at hudson.model.Executor.run(Executor.java:65)
Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@1ec306b
at hudson.remoting.UserRequest.serialize(UserRequest.java:103)
at hudson.remoting.UserRequest.<init>(UserRequest.java:37)
at hudson.remoting.Channel.call(Channel.java:389)
at hudson.FilePath.act(FilePath.java:284)
... 8 more
Caused by: java.io.NotSerializableException: hudson.plugins.starteam.StarTeamConnection
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at hudson.remoting.UserRequest.serialize(UserRequest.java:100)
... 11 more

I suspect it has to do with the possibility that the StarTeam plugin is not in place on the slave. I messed around with that possibility a bit but I didn't have much luck.

It turns out some version of the StarTeam plugin did not have the StarTeamConnec...

It turns out some version of the StarTeam plugin did not have the StarTeamConnection class implement Serializable. Making this simple change fixed this error and allowed things to work on the slave host.

Is anyone having problems with the reporting of changes by this plugin? I ...

Is anyone having problems with the reporting of changes by this plugin? I was using the original 0.1 release and it never reported changes and it seemed that beyond the initial build it never even checked for changes. The newer 0.1.6 build is now checking for changes upon each build and correctly gets them, however the Changes report for the build does not show any changes. Is that only updated by the polling mechanism? I think it should report changes whether they're discovered by polling or an actual build (regardless of how it is triggered).

I want to personally thank Ilkka for this pluginas it has enabled the use of Hudson on a project that desperately needed it.

I've modified the StarTeam plugin to implement some basic changelog functionality but I don't have access to the codebase so I've submitted my source code to Ilkka. He's pretty busy, so if anyone needs it in the meantime please feel free to contact me.

Features include:

Project level build changes displays the changes in each build including these details per file

the name of the file

the revision of the file after the change

the name of the user who changed the file

the commit comment for the file

Build level status page shows a summary of changes including the details identified above plus the time the file was changed

Build level changes page shows the same as above

Can take advantage of the Hudson post-build task to send separate emails to users who failed the build

Failed build emails display a summary of changes including the name of the user and the commit comment (unfortunately the file name is not shown)

I am no longer working on a project that uses StarTeam SCM so I will likely not have occasion to update this plugin anytime soon, but this bit of information alone has proven very useful on my previous project that used StarTeam. I hope it will be helpful for anyone else out there who is using StarTeam.

Thanks to Eric for providing the changelog enhancement. Its still not in t...

Thanks to Eric for providing the changelog enhancement. Its still not in the official hudson plugin but I was able to take it and make good use of it. There are some implementation tweaks I plan to make, but overall out of the box, this worked great.

Just spent a few hours trying to make Hudson check-out from my StarTeam server. ...

Just spent a few hours trying to make Hudson check-out from my StarTeam server. After some trial and error I got to the point where I just don't understand the meaning of the parameter "Folder".

Setting it to:

empty

/Viewname

/Project/Viewname

.

/

All return the same:started
Couldn't find folder <one of the above here> in view <myview>
StarTeam checkout failed
FATAL: null
java.lang.NullPointerException
at hudson.plugins.starteam.StarTeamConnection.close(StarTeamConnection.java:427)
at hudson.plugins.starteam.StarTeamCheckoutActor.dispose(StarTeamCheckoutActor.java:79)
at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:84)
at hudson.model.AbstractProject.checkout(AbstractProject.java:634)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:260)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:234)
at hudson.model.Run.run(Run.java:793)
at hudson.matrix.MatrixBuild.run(MatrixBuild.java:100)
at hudson.model.ResourceController.execute(ResourceController.java:70)
at hudson.model.Executor.run(Executor.java:88) ================

I'm completely stack. Is there a location in the native starteam gui or a command line that can give me a definitive value I need to put in the "Folder" parameter? Moreover, why is it mandatory at all? I want to checkout the whole view (except maybe a folder or two).

I have the same probleme than A.D.
starteam 2006R2
starteam SDK 93
hudson 1.2...

I have the same probleme than A.D.

starteam 2006R2

starteam SDK 93

hudson 1.257

I'm not sure about the starteam jars to add on the classpath: I've added starteam93.jar, starteam-extensions.jar and jsafe.jar to D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\hudson\WEB-INF\lib.

Where can I show the defects for starteam plugin? I didnt see any starteam subcomponent in the issue tracker?

But what about if I want it to check out my entire view? view_root_folder/...

But what about if I want it to check out my entire view? view_root_folder/your_folder works, but I want view_root_folder to be the top level.

UPDATED:

So I found a decompiler and took a look at the code. Turns out that in order to get your checkout to check out the full view, you have to put the view name as the folder name, even though the view name is not the same as the root folder name.

I seem to have found a bug where the plugin will not remove files that were dele...

I seem to have found a bug where the plugin will not remove files that were deleted from the view in StarTeam or where refactoring happened (i.e. files moved). The code is not proplerly handling these files. I am submitting a bug and will attempt a fix myself. If I can work it out sufficiently, will do what I can to make that available. I also want to see the account password use the new capability to store it encrypted on disk and not in clear text. Our info security folks seem to frown on that.

I've taken Eric and Tim's version and fixed the memory leak associated with the ...

I've taken Eric and Tim's version and fixed the memory leak associated with the polling actor as well as wiring up the change log check to the polling. I'll post the code to the wiki when I get a chance. If you need a quick fix to get rid of the memory leak simply comment out the finalize call inthe StarTeamConnection class.

Hi,
I've the same problem as Dave Silk. I want to build with a clean workspace....

Hi,

I've the same problem as Dave Silk. I want to build with a clean workspace. Because of the small size of my project it would be good if there would be an option to delete the workspace before every new build.

At the moment I've created two Jobs. The first job deletes my workspace and then calls the second job which checks the project out from starteam and builds it.

Is there any plan to implement this feature in future releases of the starteam plugin for hudson?

I've attached the Java source containing the modifications that I made to fix th...

I've attached the Java source containing the modifications that I made to fix the memory leak and the bug which prevented polling from detecting changes in the change set. I've only zipped up the Java source files here so you'll need to drop these into Eric or Tim's maven project in order to build it.

Incidently the memory leak was inside the Borland API classes not the plugin code.

Started by user anonymous
FATAL: com/starbase/starteam/DuplicateServerListEntryException
java.lang.NoClassDefFoundError: com/starbase/starteam/DuplicateServerListEntryException
at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:67)
at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:18)
at hudson.FilePath.act(FilePath.java:676)
at hudson.FilePath.act(FilePath.java:660)
at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:72)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1013)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:486)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:412)
at hudson.model.Run.run(Run.java:1179)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:304)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:122)
Caused by: java.lang.ClassNotFoundException: com.starbase.starteam.DuplicateServerListEntryException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 12 more

Looking at your stack trace you're missing the DuplicateServerListEntryException class. You need to copy the starteam jar to the Hudson classpath. I put my starteam93.jar in <TOMCAT_HOME>/webapps/hudson/WEB-INF/lib

Note your starteam jar may have a different number in it filename.

Generally speaking I'd advise everyone to stay away from starteam and use Subversion or Git instead.

i get the following error:Started by user anonymous
FATAL: com/starbase/starteam/LogonException
java.lang.NoClassDefFoundError: com/starbase/starteam/LogonException
at hudson.plugins.starteam.StarTeamCheckoutActor.<init>(StarTeamCheckoutActor.java:44)
at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:74)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1013)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:486)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:412)
at hudson.model.Run.run(Run.java:1179)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:304)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:122)
Caused by: java.lang.ClassNotFoundException: com.starbase.starteam.LogonException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 9 more

i'm using a valid user/pass since i can login via a starteam client...

Hi,
I want to checkout multiple folders from the starteam. But in the Source C...

Hi,

I want to checkout multiple folders from the starteam. But in the Source Code Management section of this plugin i am able to just specify a single folder name. How can i checkout multiple folders? Does anyone have any inputs?

I have copyed 2006 SDK libs into war\WEB-INF\lib, and also update the classpath....

I have copyed 2006 SDK libs into war\WEB-INF\lib, and also update the classpath. Then I got errors like this:

FATAL: null

java.lang.ExceptionInInitializerError
at com.borland.starteam.impl.ClientContext.<init>(ClientContext.java:119)
at com.borland.starteam.impl.Server.<init>(Server.java:103)
at com.starbase.starteam.Server.<init>(Server.java:274)
at hudson.plugins.starteam.StarTeamConnection.initialize(StarTeamConnection.java:122)
at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:71)
at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:18)
at hudson.FilePath.act(FilePath.java:747)
at hudson.FilePath.act(FilePath.java:729)
at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:74)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1040)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:479)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:411)
at hudson.model.Run.run(Run.java:1240)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:122)
Caused by: com.borland.starteam.impl.SDKRuntimeException: The native library "Borland.StarTeam.FileAccess.dll" was not found. Please verify that the StarTeam SDK is properly installed.
at com.borland.starteam.impl.util.NativeFileAccess.init(NativeFileAccess.java:36)
at com.borland.starteam.impl.util.NativeFileAccess.<init>(NativeFileAccess.java:24)
at com.borland.starteam.impl.util.Platform.<clinit>(Platform.java:68)
... 16 more

at com.borland.starteam.impl.util.NativeFileAccess.init(NativeFileAccess.java:33)

... 18 more

Then click build again, the error changes to this:

FATAL: Could not initialize class com.borland.starteam.impl.util.Platform

java.lang.NoClassDefFoundError: Could not initialize class com.borland.starteam.impl.util.Platform
at com.borland.starteam.impl.ClientContext.<init>(ClientContext.java:119)
at com.borland.starteam.impl.Server.<init>(Server.java:103)
at com.starbase.starteam.Server.<init>(Server.java:274)
at hudson.plugins.starteam.StarTeamConnection.initialize(StarTeamConnection.java:122)
at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:71)
at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:18)
at hudson.FilePath.act(FilePath.java:747)
at hudson.FilePath.act(FilePath.java:729)
at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:74)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1040)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:479)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:411)
at hudson.model.Run.run(Run.java:1240)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:122)

The unofficial version of this plugin is very nice. We have now a list of all fi...

The unofficial version of this plugin is very nice. We have now a list of all files that were changed since the last build. Big up to those making this possible!
But, just like our clients, we always want more For some reason, the mail notifier does not find the users that broke a build. If I put a fixed list of email addresses, the mail is send, but without any information of the last changes in it.
I have 2 questions:
1) Does anyone know if this just doesn't work (so I don't have to search any further)?
2) If it should work, is there a way to have more logging about the mailing process?

When I build the plugin I get this error message, which may be instructive for y...

When I build the plugin I get this error message, which may be instructive for you:

Computing change set WARNING: Looks like this user does not have the permission to access UserAccounts on the StarTeam Server!
WARNING: Please contact your administrator and ask to be given the permission "Administer User Accounts" on the server.
WARNING: Defaulting to just using User Full Names which breaks the ability to send email to the individuals who break the build in Hudson!

The issue is two fold.
1) e-mail is expected to be read from te StarTeam server...

The issue is two fold.

1) e-mail is expected to be read from te StarTeam server setup.
(user checking out project source code needs to be account administrator and administrator has to set the e-mails correctly for all StarTeam users).

2) in case the 1) fails, default name is constructed as first letter of firstname concatenated with lastname

I want to check out multiple folders from starteam. Is this functionality availa...

I want to check out multiple folders from starteam. Is this functionality available in any version? I was not able to find it and though to modify the code.

But I came across http://issues.hudson-ci.org/browse/HUDSON-2879 This link specifies that the multi-folder checkout functionality is available. But when I took code from that link, it is not building up properly. Is this code merged back into main source code and all latest releases are taken care?

I just downloaded the latest version of Jenkins, 1.450. I've installed the late...

I just downloaded the latest version of Jenkins, 1.450. I've installed the latest version of the StarTeam plugin, v 0.6.7. After trying to configure a job to pull source code from StarTeam, I ran across a NoClassDefFoundError calling for com/starbase/starteam/Folder. Seems like a fairly common issue according to Google and the issue was easy to resolve...by reading the plugin instructions and including the StarTeam jars in the right place. However, it's still not fixed. I just noticed, though, that the plugin is looking for com/starbase/starteam/Folder. When I look at my starteam jars, I see that Folder is com/starteam/Folder.

So, I think I've got a versioning issue. What version of StarTeam is the plugin compatible with?