Dimensions Plugin

Skip to end of metadata
Go to start of metadata

Overview

This plugin integrates Jenkins with Dimensions, the Serena CM solution.

Please note - the maintainer for this plugin is no longer myself (TPayne), but is being changed. Until it has been updated, please forward any issues to Paul Caruana (pcaruana@serena.com).

The plugin allows a Jenkins job to be associated with a Dimensions Project or Stream, automatically updating the Jenkins workspace with content from the Dimensions repository.

The plugin currently supports

  • Polling
  • Checkout
  • Build change log reporting
  • Tagging
  • Artifact Upload
  • Tag Deployment
  • Launching Tagged Builds via Dimensions Builder

Plugin Information

Plugin ID dimensionsscm Changes In Latest Release
Since Latest Release
Latest Release
Latest Release Date
Required Core
Dependencies
0.8.6
Jan 31, 2014
1.549
Source Code
Issue Tracking
Maintainer(s)
GitHub
Open Issues
Tim Payne (id: TPayne)
Usage Installations 2013-Apr 116
2013-May 121
2013-Jun 122
2013-Jul 127
2013-Aug 130
2013-Sep 122
2013-Oct 135
2013-Nov 132
2013-Dec 128
2014-Jan 143
2014-Feb 143
2014-Mar 147

Pre-requisites

This plugin primarily supports Dimensions CM 2009R1.x, 2009R2.x, 12.1.x, 12.2.x, and Serena will continue to support major versions of Dimensions CM going forward. The plugin uses the Dimensions Java client API to interface against a specified Dimensions server installation and so requires that the Jenkins installation be updated with a number of JAR files from the Dimensions installation as documented below.

Installation

To run this plugin against a Jenkins installation, the following steps need to be taken:-

  • The plugin needs to be installed and enabled using the Jenkins plugin manager using the Available tab in the usual manner. The name of the Dimensions plugin to select and install is Dimensions SCM plugin.
  • The following Dimensions Java client API JAR files need to be placed into the Jenkins class path or dropped into the <Jenkins_Home>/WEB-INF/lib directory. These JAR files can be copied from the <DM_ROOT>/java_api/lib/ and <DM_ROOT>/AdminConsole/lib/ directory of your Dimensions server installation.
    • darius.jar
    • dmclient.jar
    • dmfile.jar
    • dmnet.jar

Failure to follow the above steps will mean the plugin will not operate correctly.

Configuring the Plugin

The plugin can be configured to work with Dimensions at both the System level and at the individual job definition level.

System Configuration

Configuring the plugin at the system level allows you to define a default Dimensions installation which can be used as the default for every job. This default installation can be configured by opening the Manage Jenkins->Configure system configuration page and looking for the Dimensions configuration pane shown below.

Dimensions Login Details

The standard Dimensions login details need to be provided in the above fields. This is the Dimensions login that will be used by Jenkins to connect to the Dimensions repository and retrieve any updated files. A Check Connection... button is provided for your convenience to ensure the connection details you have specified are correct and can be used by Jenkins.



Checking the Use update toggle will get the plugin to automatically populate your Jenkins workspace with content from Dimensions. If the checkbox is not selected, then the plugin will not automatically populate your workspace.

Advanced Options

The Advanced... tag shown below allows you to specify if the Dimensions server installation is running in a different time zone than the current Jenkins installation. This is useful if you are running in a geographically distributed environment.



The Advanced... tag also allows you to specify an optional Dimensions Web client installation that can be used to directly access files in Dimensions to perform Dimensions operations on them via the Web client.

Job Configuration

When you create a new Jenkins job, you need to configure the Dimensions stream or project that this job will be monitoring. This can be done using the standard job Configure. page.

Using the Source Code Management pane, select the Dimensions option and fill in the details shown below with the Dimensions project that this job will use.



The Project Name must refer to the Dimensions project or stream that this job will monitor. This is a mandatory field.

The Folder Name refers to a specific folder name in the Dimensions project or stream that the job can monitor. This should be specified in UNIX format and represent the high-level folder from which files will be monitored. If you leave this field blank or specify '/', then all the contents of the project/stream will be monitored. You can specify multiple folders to monitor or just leave it blank to monitor everything.

The Workspace Location specifies a particular workspace location to which Dimensions will put any updated files. If this field is left blank, then the default Jenkins-provided workspace will be used. (Note: As of release 0.7.7, this option has been removed from the GUI and is now ignored. You can configure a custom workspace location using the Jenkins Advanced Project Options).

A number of options are provided that can be used to control the behavior of the plugin. These are:

  • Clear the contents of the workspace – checking this option will delete the full contents of the workspace before using Dimensions to repopulate it. The use of this option is not recommended for very large projects as it can significantly increase the build time
  • Always force a build to occur – checking this option will ignore any errors or file conflicts reported by the plugin and always force the build to be started. If this option is not selected, then any errors or conflicts reported by the plugin will automatically abort the build.
  • Overwrite any locally modified files in workspace – checking this option will automatically overwrite any files that may have been modified in the local workspace with files that come from Dimensions. The use of this option is not recommended if you are using Jenkins to build workspaces that have content that might conflict with that stored in the Dimensions repository.

An Advanced... tag allows you to override any of the default Dimensions installation details specified in the system configuration. The options provided are the same as document in the System Configuration section above. Options are also provided to control the permissions on files that are checked out into the Jenkins workspace and specify if item header substitution is to be used.

Job Build Options

In version 0.6 onwards of the plugin, enhanced support has been added for release builds that provide tighter control over the content that goes into a Jenkins build. Options have been added that allow you to:

  • Lock a project or stream while a build is in progress
  • Tag a successful build such that a baseline is automatically created in the Dimensions repository on build completion
  • Use a parameterized build to specify a baseline to build, rather than a project
  • Use a parameterized build to specify a list of requests to build, rather than a project.

These options are described in the following sections below.

Locking a Project while a build is running

It is now possible to lock a Dimensions project or stream while a build is being run, such that no changes maybe made to that project (or stream) until the build has finished. This option is provided so that long running builds can be assured that the state of the Dimensions project that they are building does not change while the build is in progress. This option should be set if the build process interacts with Dimensions once the initial checkout is complete and the state of the project needs to be consistent with the assets being built.

An example of this might be if the build process does a deployment or release step from Dimensions as part of the build.

This option can be enabled or disabled via the Lock Dimensions project while the build is in progress flag under the Build Environment options.

(Note - This option must be set if you intend to tag a successful build. Failure to do so will automatically fail that build).

Tagging a Successful build in Dimensions

It is now possible to tag a successful build in Dimensions, such that a baseline is automatically created to represent the state of the project or stream that was just built. This option is provided so that release or checkpoint builds can automatically be tagged in Dimensions to have an asset that represents that build.

This option can be enabled or disabled via the Tag successful builds in Dimensions as a baseline flag under the Post-build Actions options.

An Advanced... tag is present that allows you to change the type of baseline that is created by the tagging process. By default, the tagging process will create a project baseline, but support is also present for creating template driven baselines as well. The options that are currently supported are:

  • Owning baseline part - This is the name of the Dimensions part that will own the baseline
  • Baseline template - This is the name of the baseline template which will be used to create the baseline. Currently, only item templates are supported. Other template types maybe added in a future release.
  • Baseline Scope - This states the type of baseline to be created - either a part scoped, project scoped or revised baseline. Currently, you should only use baseline templates and owning parts with part scoped baselines. Project driven baselines do not support templates or owning parts and specifying these options will be ignored by the plugin. Revised baselines will only work if you have setup your build to be parameterized and provide DM_BASELINE and DM_TARGET_REQUEST as input into the build. DM_BASELINE will be used as the source baseline and DM_TARGET_REQUEST will be used as the list of requests that are used to create the new revised baseline.
  • Baseline Type - This is the name of the user defined baseline type against which the baseline will be created. The default is baseline.
Using Parameterized Builds

It is now possible to use a Jenkins build project to build both baselines and requests using parameters that are provided to each build when it is being run. This functionality has been added to allow a common build configuration to be used for repeated release and patch type builds if necessary, rather than using a named project which may also contain other unwanted changes. This functionality can be enabled by adding the following parameters to a Jenkins project using the This build is parameterized option:

  • DM_BASELINE - this string parameter will allow you to specify a Dimensions baseline which will be used as the source for the build, rather than the usual project. Specifying this option will override any project sources that might have been defined, all other options however will be honored as per usual. This option should be used if you intend to perform a release build from a known baseline of code.
  • DM_REQUEST - this string parameter will allow you to specify a list of Dimensions requests (comma separated) which will be used as the source for the build, rather than the usual project. Specifying this option will override any project or baseline sources that might have been defined, all other options however - with the exception of folder filters - will be honored as per usual. This option should be used if you intend to apply a patch or list of patches to an existing area or are building specific controlled features that have been controlled by requests. Dependency relationships between requests will automatically be processed and any child requests be included in the build. When using this option, the Dimensions project specified in the job configuration will be used to select those in-response-to items that are relevant. If a request has changed files related to it that are not in the Dimensions project, then these changes will be ignored. Note - If you are using this functionality against a Dimensions 10.1.3 server, then the functionality that is offered by this parameter is limited to the capabilities present in Dimensions 10.1.3. For example, refactoring support is not offered, files will always be checked out as read-only and if you specify multiple requests to process, then each request will be checked out separately which might cause file versions to conflict with each other. If you wish to use this functionality, it is strongly suggested that you upgrade to Dimensions 2009 R1+.
  • DM_TARGET_REQUEST - this string parameter will allow you to specify a list of Dimensions requests (comma separated) which will be used to relate any assets against that get checked into Dimensions as a result of a build. This refers primarily to build steps that use Dimensions Builder and post build actions such as building a tagged baseline and loading assets into Dimensions.

Other Job Build Options

This section lists other build options that are available in this plugin.

Deploying Tagged Baselines in Dimensions

It is now possible to automatically deploy a tagged baseline from the plugin as the last stage of the Jenkins build process. This will initiate a deployment of the contents of the baseline to all the deployment nodes associated with a deployment stage and the running of any deployment pre/post scripts. The plugin does this by running the Deploy Baseline command (DPB) and returning any results that this command generates.

This option can be enabled or disabled via the Automatically deploy the baseline flag under the Post-build Actions options. This option will only be presented if the Tag successful builds in Dimensions as a baseline flag is checked.  You will also be able to specify the stage you want the baseline to be deployed to. If you do not specify a stage, then the next one will be used automatically.

(Note - For the deployment to succeed the project being used as a source for the build must be configured to allow baseline deployment).

Actioning Tagged Baselines in Dimensions

It is now possible to automatically action a tagged baseline from the plugin as the last stage of the Jenkins build process. This will action the tagged baseline to a given lifecycle state in Dimensions. The plugin does this by running the Action Baseline command (ABL) and returning any results that this command generates.

This option can be enabled or disabled via the Automatically action the baseline flag under the Post-build Actions options. This option will only be presented if the Tag successful builds in Dimensions as a baseline flag is checked.  You will also be able to specify the lifecycle state you want the baseline to be actioned to. If you do not specify a state, then the next one will be used automatically.

Launching Dimension Builder with Tagged Baselines

It is now possible to automatically launch a build in Dimensions Builder using the tagged baseline as part of the last stage of the Jenkins build process. This will initiate a baseline build in Dimensions Builder using build parameters setup in the Jenkins job configuration. The plugin does this by running the Build Baseline command (BLDB) and returning any results that this command generates.

This option can be enabled or disabled via the Automatically build the baseline flag under the Post-build Actions options. This option will only be presented if the Tag successful builds in Dimensions as a baseline flag is checked.  You are also able to specify -

  • the Dimensions Build area you want to use
  • the Dimensions Build configuration to use
  • the Dimensions Build options
  • the Dimensions Build targets
  • if to run the build in background mode
  • if to perform a clean build
  • if to capture build outputs and build dependencies under Dimensions.

This option should be selected if you want to use Dimensions Builder within your build process. For example, to perform multi-platform release builds for the tagged baseline under strict Dimensions control.

Saving Build Artifacts into Dimensions

It is now possible to save assets that have been created as a result of a build process into Dimensions. This option can be enabled or disabled via the Load any build artifacts into the Dimensions repository flag under the Post-build Actions options.

Regular Expressions

Activating this checkbox will give you the opportunity to enter a series of Java style regular expression patterns that will be used to determine which files in your workspace you want to consider for saving into Dimensions. For example, patterns like

  • .*.obj - will consider all .obj files
  • .*.h - will consider all .h files
  • src/.*.h - will consider all .h files in the src/ subdirectory (UNIX).

All file and sub-directory patterns specified should be made relative to the workspace root. For example, if your workspace root is /usr/hudson/project/build/ and you want to save files from /usr/hudson/project/build/src/include, then specify a pattern like src/include/.*.h.

All directory and sub-directory references must use native OS directory separators.

Artifacts which have been identified for loading into Dimensions will then be put into the project that the plugin is monitoring using DELIVER or UPLOAD command as appropriate. If you specify files that are already under control and have not changed, then these files will be ignored. If you wish to specify a request to save these changes against, then you should set a project default request using SCWS or use DM_TARGET_REQUEST as commented on above.

(Note - For specifying rules on a Windows system, please refer to the plugin help for how to use '\'. It needs to be protected by doubling the '\' up).

For more information on the capabilities of regular expression pattern matching, please refer to the appropriate help documentation.

In version 0.6.8 of the plugin onwards, you can specify the following advanced options when checking in a file

  • Force files to be checked onto the tip - This will force uncontrolled files with the same name as existing Dimensions files to be loaded into the repository and placed onto the tip even if they are completely unrelated to files already present
  • Force files to be recorded as merged- This will force files which might contain revision conflicts to be loaded into the repository and recorded as being merged even though no physical code merge has taken place
  • Owning part for files - this will put all new files under the Dimensions part specified.

This setting can be configured in the Advanced tab of the job configuration.

Ant-Style Pattern Matches

In version 0.8.5 of the plugin onwards, you also have the option to use Ant include-set pattern matches for saving assets to Dimensions. As with the Java style regular expressions, this option allows you to enter a number of patterns based on Ant pattern matches. In some cases, this option allows more power in the patterns you can use.

Inclusion and Exclusion Rules

As of version 0.8.6 of the plugin onwards, you can now also specify file exclusions as well as inclusions to apply to the files selected for upload.

Specifying Dimensions Requests to Capture Uploaded Artifacts or Build Assets

If you are loading build artifacts into Dimensions using the Load any build artifacts into the Dimensions repository or Automatically build the baseline options and want to specify Dimensions requests against which to capture these changes, you can now do so by defining a Jenkins build parameter called DM_TARGET_REQUEST. When you then start a build, populate this parameter with the comma separated list of requests that you wish to use and these will be passed on to the appropriate Dimensions commands.

Specifying Permissions of Checked Files

In version 0.6.8 of the plugin onwards, it is possible to specify the permissions of the files which are being checked out as part of the job configuration. This includes

  • Default permissions - the file's default permissions stored in Dimensions
  • Read-only - setting all the files to read only
  • Writeable - setting all the files to writeable.

This setting can be configured in the Advanced tab of the job configuration.

Distributed Build Support

In version 0.6.7 onwards of the plugin, support has been added for using the distributed build facilities within Jenkins. There are two main capabilities that the plugin provides which can potentially be run on a remote node. These are

  • Checking files out of the project/stream being monitored into a workspace, and
  • Checking files into the project/stream being monitored from the workspace

To use these distributed capabilities, each remote Jenkins node must have a Dimensions client installation available and in the path. The remote Jenkins support is provided through dmcli, so that remote node must be a platform against which Dimensions is natively supported. If you wish to run Jenkins on an unsupported platform - such as Mac OS - then you can only use that platform as a master node. The master node support is Java based, so as long as that platform supports Java (and Jenkins), it should work. However, running the plugin on an unsupported platform in this way is purely at your own risk. No responsibility is taken or implied about how the plugin will behave in these conditions.

Security limitations

If you run in a secure environment, then you need to be aware of one current limitation which is present in the plugin for distributed support. As the plugin is using dmcli on the slave to run Dimensions commands, the login details of the Dimensions user configured in the build job are temporarily written to a parameter file on the slave which is then used to run Dimensions commands. This parameter file is persisted until the job finishes. The location of this parameter file is displayed as the build progresses, so a knowledgeable individual with access to the slave could access this file whilst the job is in progress and obtain these login credentials. If this is a security concern, then it is advised that either:-

  • you make the slave machine user's default temporary-file directory inaccessible to unauthorized users
  • configure the Dimensions user referenced in the job to have a very limited set of privileges, or
  • run the build on the master only

This limitation is resolved in version 0.7.1 of the plugin.

Known Issues

The following are a list of the current known issues and limitations with this plugin.

  • Versions up to 0.8.x of the plugin have had limited validation in distributed environment using Windows masters/slaves running Dimensions 2009 R2 through 12.2.x. The plugin has not been validated in a distributed environment using Dimensions 10.x, 2009 R1 or Unix slaves.
  • Versions up to 0.8.x of the plugin work against Dimensions 10.x and 2009 R1 servers, but require Dimensions Java client API JAR files from a Dimensions 2009 R1 server installation to work correctly. Otherwise you should use Dimensions Java client API JAR files from the same version of Dimensions as your Dimensions server installation.
  • Upgrading between plugin versions may give an error like FATAL: Unable to run checkout callout - null when running a job. If this happens, open the job configuration and save it again to resolve the issue.
  • Dimensions operations must be run by a user who has the necessary privileges to do that operation. If a user does not have the necessary privileges, then the Dimensions operation will fail as one would expect.
  • Loading build artifacts into Dimensions will not process controlled files which have been deleted, i.e. the deleted files will not be removed from the repository.
  • Upgrading to 0.8.5 of the plugin means you will have to reconfigure any plugin which uses the check-in functionality. Failure to do so will lead to the check-in feature either failing or being ignored.
  • Specifying a reg-ex pattern ".*" (the default) does not filter out all the Dimensions metadata and .dm directories that it should. This is a bug which has been around a for a while, but only seems to surface occasionally. When using the regex option, it would be best to be very specific in the artefacts that you wish to check-in.
  • SSO is supported as long as your deployment container (e.g. Tomcat) supports Jenkins' "delegate to servlet container" authentication model.

Hudson & Jenkins - An initial statement of intent

Given the fork in Hudson to become Hudson and Jenkins, a number of questions have been asked about which fork this plugin will continue to support. While the situation is still a little unclear about how Hudson and Jenkins will interact with each other and what their associated infrastructures will be, the intention is to continue to support both forks as long as it is practically feasible.

Going by what is currently being said by both camps, the plugin architecture will remain pretty much unchanged, so as long as it is practical - and the code bases do not fork significantly - both will be supported going forward. Of course, this intention will be reviewed on an ongoing basis as the situation between Hudson and Jenkins continues to evolve.

Up and Coming Changes

The following are a list of possible fixes and enhancement(s) to be added to the next version of the plugin

  • Documentation: Update the wiki with new screen dumps for improved options and document best practices
  • Enhancement: Code diff'ing from the change logs
  • Enhancement: Timeout on job polling
  • Bugfix: Change-set generation to handle HTTPS
  • Enhancement: Check-in artifacts to support requests

Version History

0.8.6.0 – Jan, 2014

  • Enhancement: Check-in artifacts to support exclusion as well as inclusion rules

0.8.5.0 – Dec, 2013

  • Enhancement: Check-in artifacts to support ANT regex

Warning - Upgrading to this version means you will have to reconfigure any job which uses the check-in artefact functionality.
Failure to do so will end up with the check-in process either failing for being ignored. 

0.8.3.1 – Nov, 2013

  • Bugfix: Minor bug fixes, Dimensions compatibility enhancements, improved multi-threading support.

0.8.0/1 – Mar, 2010

  • Bugfix: Incorporate fix for copying Dimensions plugin information around between jobs
  • Enhancement: Support for NOTOUCH option

0.7.11 – Mar, 2010

  • Bugfix: Compatibility issues with 1.391+
  • Enhancement: Support for Dimensions 12.1

0.7.8/9 – Dec, 2010

  • Enhancement: Add DM_BASELINE to the baseline id template
  • Enhancement: Incorporate EOL changes
  • Enhancement: Polling to support 1.345+
  • Enhancement: Upgrade Hudson architecture support to latest version
  • Bugfix/Enhancement: Allow slave processing to also be run on the master
  • Bugfix: Correct command handling on Unix slaves for checkout/checkin tasks, e.g. /TMP invalid qualifier error.

0.7.7 – May, 2010

  • Enhancement: Remove "workspace location" text box. It is not needed and just confuses issues. This option has been removed from the GUI and is now ignored. You can configure a custom workspace location using the Hudson Advanced Project Options
  • Enhancement: Using a template pattern to allow the customization of the baseline identifier and type that gets created

0.7.6 – April, 2010

  • Bugfix/Enhancement: Changes to polling support for monitoring sub-directories.

0.7.5 – April, 2010

  • Enhancement: Enable no metadata as an option for checkout

0.7.4 – April, 2010

  • Enhancement: Support for revised baselines using DM_BASELINE (source) and DM_TARGET_REQUEST
    (revised with)

0.7.3 – April, 2010

  • Enhancement: Enable IHS expansion as an option for checkout

0.7.2 – April, 2010

  • Bugfix: Request based download does not work for Dimensions 10.1.3 as there is a command incompatibility. A different mechanism is needed for 10.1.3 servers using FCDI
  • Enhancement: Add baseline type parameter for tagging
  • Bugfix: When create new job, set update to match what is in the global config on "Save"

0.7.1 – February, 2010

  • Bugfix: Remove project baseline references from some help/error tags and call baseline instead
  • Enhancement: Mask command parameters where appropriate for DMCLI slave node operations
  • Enhancement: If project baseline specified, then ignore invalid parameters when executing the command. Avoids unnecessary build failure. Update help to show this

0.7.0 – February, 2010

  • Enhancement: When tagging a project, optionally specify a template, part and scope that could be used

0.6.9 – February, 2010

  • Bugfix: Request based checkouts with multiple directory filters does multiple checkouts. It should not as request checkout ignores directories
  • Bugfix: Correct issue with config cache when project id changed
  • Bugfix: Artifact upload has a compatibility issue with Dimensions 10.1.3, generates
    "FATAL: Unable to load build artifacts into Dimensions - Invalid attribute: -AdmAttrNames.wset_is_stream" error
  • Enhancement: Add support for distributed build environments - artifact uploading

0.6.8 – February, 2010

  • Enhancement: When checking out from a project allow the permissions on the file to be set to readonly, writable or default
  • Enhancement: When checking in from a workspace, allow the check to be forced if file conflicts are detected
  • Enhancement: When checking in from a workspace, allow the owning part to be specified rather than the defaults setup in the upload rules

0.6.7 – February, 2010

  • Enhancement: Adding Dimensions Builder as a valid build step
  • Enhancement: Be more verbose about what steps the plugin is currently doing during checkout process
  • Enhancement: Add support for distributed build environments - checkout operations only
  • Bugfix: The order of the GUI "Automatically build the baseline" and "Automatically deploy the baseline"in the job configuration needs to be swapped around. The deploy is done before the build and the order in the GUI implies the other order.
  • Bugfix: Resolve a problem with the Dimensions connection getting nulled when long jobs are running and polls on that same job are performed in rapid succession resulting in strange exceptions being fired.
  • Enhancement: Generate a set of change logs even when the plugin is not being used to update the Hudson workspace.
  • Bugfix: Fix spelling mistake with "Files to Montor" in main job config.jelly.

0.6.6 – January, 2010

  • Enhancement: When Dimensions post-action fails, fail the build

0.6.4 – January, 2010

  • Bugfix: Fix compatibility issue with Maven Integration Plugin.

0.6.3 – January, 2010

  • Enhancement: Add integration to Dimensions Build to allow the launching of a Dimensions build on the tagged baseline
  • Enhancement: Actioning of baseline in Dimensions

0.6.2 – January, 2010

  • Enhancement: Deployment of baseline in Dimensions

0.6.1 – December, 2009

  • Bugfix: Don't overwrite change log for build if multiple project directories are being used - append them, so full change list is given for all directories
  • Enhancement: Give the ability to upload build artifacts into Dimensions stream/project based on 1:N regex patterns
  • Bugfix: If plugins attempted to use with non-Dimensions SCM engine, then abort.

0.6.0 – December, 2009

  • Enhancement: Add the ability to checkout a given baseline or request instead of a project/stream
  • Bugfix: Report no changes when no changes made in a build rather than Failed to determine log
  • Enhancement: Add the ability to lock a project during the build process
  • Enhancement: Add the ability to tag a successful build
  • Enhancement: For a given build, enhance the change set processing to list the requests that were used to create the new files that went into a build.
  • Enhancement: Make the change set reporting use drop down lists rather than static lists. Easier to hide unwanted content.
  • Bugfix: Correctly unregister connections from the Dimensions java thread pool.
  • Enhancement: Tag all messages from the plugin with the [DIMENSIONS] prefix
  • Bugfix: Tidy up output of messages
  • Enhancement: When performing an initial build for the first time, cleanup the target workspace so that only assets from the build are present, not other uncontrolled files
  • Enhancement: Expand on what update means in the boiler plate

(Acknowledgments - many thanks to Keith for all his contributions to the above features. His help was much appreciated!)

0.5.8 – December, 2009

  • Enhancement: Add ability to monitor multiple directories in the repository

0.5.7 – November, 2009

  • Bugfix: Fixed broken URL link issue
  • Enhancement: Removed unnecessary exception stack printing on Dimensions errors

0.5.6 – November, 2009

  • Enhancement: Support added for Dimensions 10.x servers

0.5.4 – November, 2009

  • Release of the initial version

Labels

plugin-post-build plugin-post-build Delete
plugin-upload plugin-upload Delete
plugin-notifier plugin-notifier Delete
plugin-scm plugin-scm Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Dec 02, 2009

    Matthew Edwards says:

    Eagerly awaited. Thanks Tim :) FYI - I found those jar files residing at <DM...

    Eagerly awaited. Thanks Tim :)

    FYI - I found those jar files residing at <DM_ROOT>/AdminConsole/lib ...

    1. Dec 04, 2009

      Tim Payne says:

      Thanks! I've updated the Wiki with the alt. location as well. Tim

      Thanks! I've updated the Wiki with the alt. location as well.

      Tim

  2. Dec 30, 2009

    Tim Payne says:

    I've been asked how to get more tracing information out of the plugin if somethi...

    I've been asked how to get more tracing information out of the plugin if something goes wrong. There is a tracing facility which can be activated by setting the environment variable

    DM_HUDSON_LOGGING=y

    into the environment of the user running the Hudson process and then restarting the process. This will send a lot of tracing information to stdout. This does slow down the build execution time, but can be used if you need to track down any odd behavior that the plugin might be doing.

    To turn the tracing off, remove the variable and restart the Hudson process.

    Tim

  3. Jan 05, 2010

    Dam says:

    Hi Im trying to use hudsons dimension plugin,  after y check dimensions con...

    Hi
    Im trying to use hudsons dimension plugin,  after y check dimensions connection at job level everything is fine.
    it says:
    Check Connection...
    Checking...
    Connection test succeeded!
    but when i run the build process says:
    Console output says:
    "Started by user anonymous
    FATAL: Unable to run checkout callout - hudson.maven.MavenModuleSet
    Finished: FAILURE"
    In the plugin page at the wiki : http://wiki.jenkins-ci.org/display/HUDSON/Dimensions+Plugin
    theres some comments about it:
    "Known Issues:
    Upgrading between plugin versions may sometimes give an error like FATAL: Unable to run checkout callout - null, when running a job. If this occurs, simply open the job configuration and resave it. This should resolve the issue."
    Im always having this error , after and before updating ... and resaving job configuration is not fixing the issue.
    the log only show:
    Jan 5, 2010 5:39:02 PM hudson.model.Run
    FINE: Build ads-core-build #3 aborted
    hudson.model.Run$RunnerAbortedException
            at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:505)
            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)
     .. any suggestion ?   ill try DM_HUDSON_LOGGING=y ...
    Regards
    Dam

    1. Jan 05, 2010

      Tim Payne says:

      Hi Dam It's not one I've seen before - no. It looks like some internal exceptio...

      Hi Dam

      It's not one I've seen before - no. It looks like some internal exception fired somewhere and the only message the

      exception handlers got was that rather cryptic "hudson.maven.MavenModuleSet". I doubt it has anything to do with

      the "Upgrading between plugin versions may sometimes give an error like FATAL:..." issue documented, that only occurred between

      one very specific version of the plugin and the next, and was only for jobs which had been created prior to that version.

      If you send me some details of your job configuration or the jobs directory for this job (under HUDSON_HOME/jobs/<jobName>)

      I can have a play and see if I can reproduce it myself. Only other thing I can suggest is try upgrading your Hudson to the latest version.

      I always tend to do my testing and development with that rather than older versions. I'm currently on version 1.339.

      Thanks, Tim

  4. Jan 05, 2010

    Dam says:

    On -> system information -> enviroment variables , i can check "DM...

    On -> system information -> enviroment variables , i can check "DM_HUDSON_LOGGING  = y"  and theres nothing extra logged ... even in FINEST

    Regards

    1. Jan 05, 2010

      Tim Payne says:

      This variable has to be set either at the system level or for the user running t...

      This variable has to be set either at the system level or for the user running the Hudson process so that it is exposed to the plugin and the process restarted. I usually set it as the user running the Tomcat process myself and run Hudson via Tomcat.

      The output gets sent to stdout, so make sure stdout is not being redirected to a file or null device. I run Hudson through Tomcat and my output appears in the logs/stdout<date> file. It will not appear in the Hudson console window as there is rather a lot of it.

      Hope that helps, Tim

      1. Jan 06, 2010

        Dam says:

        Hi Tim thanks,  Im using this products versions: Hudson: 1.339 Dimensions...

        Hi Tim thanks,  Im using this products versions:

        Hudson: 1.339
        Dimensions plugin:   0.6.3
        Dimensions CM Server: Version: 10.1.3.0.2, Schema Revision: 2

        and the jar files: ive been trying with:
         10.1.3.0.2 jars located in client installation
         10.1.3.0.2 jars located in server installation
         2009R1 jars located in client installation

        after set DM_HUDSON_LOGGING=y on tomcat startup script i get on stdout:

        DEBUG (2010-01-05T18:15:02Z) :Loading hudson.plugins.dimensionsscm.DimensionsSCM$DescriptorImpl
        DEBUG (2010-01-05T18:15:07Z) :Loading hudson.plugins.dimensionsscm.ArtifactUploader$DescriptorImpl
        DEBUG (2010-01-05T18:15:07Z) :Loading hudson.plugins.dimensionsscm.DimensionsBuilder$DescriptorImpl
        DEBUG (2010-01-05T18:15:07Z) :Loading hudson.plugins.dimensionsscm.DimensionsBuildNotifier$DescriptorImpl
        DEBUG (2010-01-05T18:15:07Z) :Loading hudson.plugins.dimensionsscm.DimensionsBuildWrapper$DescriptorImpl
        DEBUG (2010-01-05T18:17:13Z) :Invoking checkout - hudson.plugins.dimensionsscm.DimensionsSCM
        and nothing more.
        i can mail you my job configuration.
        Thanks again for your help Tim.
        Dam

        1. Jan 06, 2010

          Tim Payne says:

          Np. To get the best from the logging, try and do a build on the job and see what...

          Np. To get the best from the logging, try and do a build on the job and see what you get. It can help narrow down where the exception is firing.

          Tim

          1. Jan 06, 2010

            Dam says:

            The last line is after running a build :S DEBUG (2010-01-05T18:17:13Z) :Invokin...

            The last line is after running a build :S

            DEBUG (2010-01-05T18:17:13Z) :Invoking checkout - hudson.plugins.dimensionsscm.DimensionsSCM

            Thanks again

            1. Jan 07, 2010

              Tim Payne says:

              This issue is now fixed in 0.6.4. It was a compatibility problem with the Maven ...

              This issue is now fixed in 0.6.4. It was a compatibility problem with the Maven Integration Plugin.

              Tim

              1. Jan 08, 2010

                Dam says:

                Thank you very much Tim, ill wait for the release 0.6.4 to test it. Dam

                Thank you very much Tim,

                ill wait for the release 0.6.4 to test it.

                Dam

  5. Jan 22, 2010

    prashanth says:

    Tim thanks for adding the dimension plugin.  I have a issue when using dime...

    Tim thanks for adding the dimension plugin.  I have a issue when using dimension with slave servers it is not copying the source to workspace and errors out both on windows and linux slave servers.  But the same works fine on master server.  I do not know whether this is problem with the slave or dimensions plugin.

    Using windows slave server below is the error

    [DIMENSIONS|../../pages/createpage.action?spaceKey=HUDSON&title=DIMENSIONS] Removing 'file:/C:/Hudson/workspace/PROJ1_DEV1/'...
    [DIMENSIONS|../../pages/createpage.action?spaceKey=HUDSON&title=DIMENSIONS] Checking out project "Test_DEV:PROJ1_DEV1"...
    [DIMENSIONS|../../pages/createpage.action?spaceKey=HUDSON&title=DIMENSIONS] (Note: Dimensions command output was -

    [DIMENSIONS|../../pages/createpage.action?spaceKey=HUDSON&title=DIMENSIONS] SUCCESS: Operation completed
    [DIMENSIONS|../../pages/createpage.action?spaceKey=HUDSON&title=DIMENSIONS] Operation completed
    [DIMENSIONS|../../pages/createpage.action?spaceKey=HUDSON&title=DIMENSIONS] )
    [DIMENSIONS|../../pages/createpage.action?spaceKey=HUDSON&title=DIMENSIONS] Dimensions project was successfully locked
    FATAL: Unable to find build script at C:\Hudson\workspace\PROJ1_DEV1\\proj1\build\build.xml
    [DIMENSIONS|../../pages/createpage.action?spaceKey=HUDSON&title=DIMENSIONS] Dimensions project was successfully unlocked
    Finished: FAILURE

    Using linux below is the error Started by user anonymous
    Building remotely on 10.158.98.181
    [DIMENSIONS] Dimensions project was successfully locked
    FATAL: Unable to find build script at /dnbusr1/hudson/workspace/PROJ1_DEV1/\proj1\build\build.xml
    [DIMENSIONS] Dimensions project was successfully unlocked
    Finished: FAILURE

    1. Jan 22, 2010

      Tim Payne says:

      Hi Prashanth Thanks for the comment. If you look under the Known Issues list, ...

      Hi Prashanth

      Thanks for the comment.

      If you look under the Known Issues list, you will see that support for distributed builds currently has issues that need to be resolved. I have not validated the plugin in distributed environments and as you can see, it has issues

      "The plugin has not been validated using a Hudson distributed environment. It looks like there are issues that need to be resolved to fully support distributed environments."

      I am planning to add this support for an up and coming release, so watch this space! The best I can suggest for the moment, is try to run the build on your Hudson server - that should work fine.

      Thanks

      Tim

      1. Feb 11, 2010

        Tim Payne says:

        This support will be added to 0.6.7, the next release of the plugin. Thanks, Ti...

        This support will be added to 0.6.7, the next release of the plugin.

        Thanks, Tim

  6. Jan 28, 2010

    Keith Ballantyne says:

    It appears that the dimensions scm client's polling can hang.  I regularly ...

    It appears that the dimensions scm client's polling can hang.  I regularly get There are more SCM polling activities scheduled than handled from the server.  In my configuration, I'm running an older server (pre 2009R1), and I believe my network may occasionally 'hiccup' and reset the connection.  However, I was wondering if a timeout can be implemented that would simply fail if the polling log or checkout took too long.  As it stands now, I have to reset hudson at least once daily to clear the errors.

    1. Jan 28, 2010

      Tim Payne says:

      Hi Keith There is a defect fix in the next release for an issue which might ver...

      Hi Keith

      There is a defect fix in the next release for an issue which might very well be causing this

      "Bugfix: Resolve a problem with the Dimensions connection getting nulled when long jobs are running and polls on that same job are performed in rapid succession resulting in strange exceptions being fired. (targeted for 0.6.7)"

      Basically, there are situations where long running updates and rapid polling in the same job can step on each others toes and the connection cache within the job is getting nulled. It sounds like you might be hitting something very similar. The new version is able to cope with rapid polling and long jobs.

      If the wrong connection object does get nulled, then side-effects could affect either the checkout or the polling jobs depending on which object was being used by which process. These could include - reset connection errors, possibly hanging (although that is not one I saw when I first hit the issue) or "null" errors on the checkout or polling.

      Hope that helps

      Thanks, Tim

      1. Feb 12, 2010

        Tim Payne says:

        Hi Keith Try the latest version of the plugin (0.6.7) to see if this issue is n...

        Hi Keith

        Try the latest version of the plugin (0.6.7) to see if this issue is now resolved. If it is still happening, then it is possibly a network issue that I can implement a polling timeout for as you request.

        Anyway, let me know if the issue goes away or not with the latest plugin and I'll look at adding the polling timeout if needed.

        Thanks, Tim

        1. Sep 10, 2010

          Keith Ballantyne says:

          Just a head's up, I'm running 0.7.7 and this issue still exists.  I think i...

          Just a head's up, I'm running 0.7.7 and this issue still exists.  I think it may have to do with us running an older version of dimensions (prior to 2009Rx).  Is it possible to implement a timeout on polling per project?

          1. Sep 14, 2010

            Tim Payne says:

            Hi Keith I will look into this for you and see what can be done in the next ver...

            Hi Keith

            I will look into this for you and see what can be done in the next version of the plugin.

            Thanks, Tim

  7. Mar 04, 2010

    Pawel Iwaszko says:

    Hi Tim, I'm using your plugin with 10.1.2.0 FT1 version of Dimensions server. I...

    Hi Tim,

    I'm using your plugin with 10.1.2.0 FT1 version of Dimensions server. It works just great when I force a build, but there is some problem with polling. Polling log always says:

    Started on Mar 4, 2010 12:41:24 PM
    Done. Took 30 sec
    No changes
    

    even though I know there were some changes made.

    When build is forced:

    [DIMENSIONS] Running checkout on master...
    [DIMENSIONS] Running build in 'C:\hudson\jobs\SCT_WN70_tester\workspace'...
    [DIMENSIONS] Checking out project "XXX"...
    [DIMENSIONS] Checking out directory 'YYY'...
    [DIMENSIONS] (Note: Dimensions command output was -
    [DIMENSIONS] SUCCESS: Using Current Project 'XXX'
    [DIMENSIONS] Using 'C:\hudson\jobs\SCT_WN70_tester\workspace\' as the Project root directory
    [DIMENSIONS] Calculating differences: 2.781000 sec
    [DIMENSIONS] Updated 'C:\hudson\jobs\SCT_WN70_tester\workspace\YYY\hcsm.mp' using Item 'ZZZ#103'
    [DIMENSIONS] Getting files: 7.203000 sec
    [DIMENSIONS] Getting Project: 14.109000 sec
    [DIMENSIONS] Operation completed
    [DIMENSIONS] Operation completed
    

    ...as you see - some item is updated, but build summary also shows: No changes detected.

    Any ideas?

    Best regards,

    Pawel

    1. Mar 07, 2010

      Tim Payne says:

      Hi Pawel The plugin is only intended to support Dimensions 10.1.3 and 2009R.x+....

      Hi Pawel

      The plugin is only intended to support Dimensions 10.1.3 and 2009R.x+. There is a good possibility the Java API may have compatibility issues with earlier versions. Are you sure it is an FT1 release? Usually those are tags used for Dimensions beta or internal releases.

      Can you upgrade your server to 10.1.3 and try using that? It may resolve the issue.

      Thanks, Tim

      1. Mar 10, 2010

        Pawel Iwaszko says:

        Hi Tim, thank you for your answer. We are really using this version of Dimensi...

        Hi Tim,

        thank you for your answer. We are really using this version of Dimensions server and unfortunately I am not allowed to upgrade it. Looks like I will have to try to walk around this problem :)

        Best regards,

        Pawel

        1. Mar 10, 2010

          Tim Payne says:

          Hi Pawel I don't mind having a quick look at the issue if you can send me an ea...

          Hi Pawel

          I don't mind having a quick look at the issue if you can send me an easy reproduction case.

          I can at least then check it works on 10.1.3 and make sure it is not some sort of bug. If it is, then I can schedule it for a fix when I get some time to work on the next version of the plugin  :)

          I did think of one additional possibility which might be worth considering...

          The polling does have one restriction which I'm aware of which is actually a limitation with the Java API in that it doesn't expose a method to query some types of refactoring changes. So if a file older than the last successful build gets added to a project or renamed, then the polling cannot detect it as there is no API mechanism to allow this on the project. In 10.1.2, I believe most of these refactoring changes get detected by DOWNLOAD - AIWS operations for example, so those would get downloaded.

          Does that sound a possibility?

          Tim

  8. Mar 12, 2010

    Rodolphe Dariol says:

    Hi, It seems there is a problem with the checkbox "Use Update" when creating a...

    Hi,

    It seems there is a problem with the checkbox "Use Update" when creating a job with version 0.7.1 of the plugin: the checkbox is always unchecked even if it is checked at the system level of Hudson.

    Thus, by default, the plugin doesn't populate the workspace for a new job.

    This problem is not with version 0.6.6 of the plugin.

    Best regards.

    Rodolphe

    1. Mar 17, 2010

      Tim Payne says:

      Hi Rodolphe Thanks for spotting this. I'll fix it in the next version of the pl...

      Hi Rodolphe

      Thanks for spotting this. I'll fix it in the next version of the plugin.

      Regards

      Tim

      1. Apr 08, 2010

        Tim Payne says:

        Fixed in 0.7.2 Tim

        Fixed in 0.7.2

        Tim

  9. Apr 12, 2010

    spikeykaz525 says:

    fixed in 0.8.2

    fixed in 0.8.2

    1. Apr 13, 2010

      Tim Payne says:

      Cool. A voice from the future. At least the plugin has 10 more versions of life ...

      Cool. A voice from the future. At least the plugin has 10 more versions of life in it >_<

  10. Apr 29, 2010

    Sergi says:

    Hi, I've a problem with the polling. I've configured a job. With clean workspa...

    Hi,

    I've a problem with the polling.

    I've configured a job. With clean workspace option  it works fine, but with the build trigger/poll SCM don't detected changes in the repository.

    The Dimensions polling log ever says
    Started on Apr 29, 2010 8:41:48 AM
    Done. Took 0.9 sec
    No changes

    In Dimensions client I can see that there are changes in the repository.

    The installed plugin version is 0.7.3 and Dimensions Server is 10.1.3. Hudson have 2009 R2 libraries (from client ../admincosole), in other tries had a
    2009R1 server libraries with the same effect.

    With the traces activates I can see:

    ...
    DEBUG (2010-04-29T08:46:49Z) :Now have 0 connections in use...
    DEBUG (2010-04-29T08:47:48Z) :Invoking pollChanges - hudson.plugins.dimensionssc
    m.DimensionsSCM
    DEBUG (2010-04-29T08:47:48Z) :Checking job - Prodcut1 PROJECT1
    DEBUG (2010-04-29T08:47:48Z) :Checking for any updates between 2010-04-26T17:46:
    28Z -> 2010-04-29T08:47:48Z (Europe/Paris)
    DEBUG (2010-04-29T08:47:48Z) :Checking Dimensions login parameters...
    DEBUG (2010-04-29T08:47:48Z) :Logging into Dimensions: bmcadmin dimensions.dim..int dim@dimbd00
    DEBUG (2010-04-29T08:47:48Z) :Getting Dimensions connection...
    DEBUG (2010-04-29T08:47:49Z) :Storing details for key 1272523668901...
    DEBUG (2010-04-29T08:47:49Z) :Polling using key 1272523668901
    DEBUG (2010-04-29T08:47:49Z) :Polling '/'...
    DEBUG (2010-04-29T08:47:49Z) :Looking for key 1272523668901
    DEBUG (2010-04-29T08:47:49Z) :Found database
    DEBUG (2010-04-29T08:47:49Z) :Looking for key 1272523668901
    DEBUG (2010-04-29T08:47:49Z) :Found database
    DEBUG (2010-04-29T08:47:49Z) :Looking between 26-Apr-2010 17:46:28 -> 29-Apr-201
    0 08:47:48
    DEBUG (2010-04-29T08:47:49Z) :Looking for changed files in '' in project: PRODUCT:
    PROJECT1
    DEBUG (2010-04-29T08:47:49Z) :Exception detected from the Java API: Error: faile
    d to query database. (OK)
    DEBUG (2010-04-29T08:47:49Z) :Looking for key 1272523668901
    DEBUG (2010-04-29T08:47:49Z) :Found database
    DEBUG (2010-04-29T08:47:49Z) :Closing connection to Dimensions...
    DEBUG (2010-04-29T08:47:49Z) :Now have 0 connections in use...

    Any idea ?

    Thank you.

    1. Apr 30, 2010

      Tim Payne says:

      Hi Sergi Thanks for the post. This is not an issue I've seen before, but the ex...

      Hi Sergi

      Thanks for the post. This is not an issue I've seen before, but the exception is being thrown from the Dimensions Java API for some reason. Could you send me via email (or post here) some details of your job configuration or a little sample that shows the problem? In that way I can have a go at reproducing it.

      Many thanks, Tim

  11. Jun 02, 2010

    Saad says:

    I get the following error when trying to test the connection (The 4 jars from my...

    I get the following error when trying to test the connection (The 4 jars from my dimensions server are on the hudson classpath so that's not the issue). Using Dimensions CM 10.1.2:

    java.lang.NoSuchMethodError: com.serena.dmclient.api.DimensionsObjectFactory.getServerVersion(I)Ljava/util/List;
    	at hudson.plugins.dimensionsscm.DimensionsAPI.login(DimensionsAPI.java:410)
    	at hudson.plugins.dimensionsscm.DimensionsSCM$DescriptorImpl.docheckServer(DimensionsSCM.java:1281)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:616)
    	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:235)
    	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:116)
    	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:57)
    	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:75)
    	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:525)
    	at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:319)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:525)
    	at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:145)
    	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:525)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:441)
    	at org.kohsuke.stapler.Stapler.service(Stapler.java:123)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
    	at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
    	at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
    	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
    	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
    	at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
    	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
    	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
    	at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
    	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
    	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    	at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
    	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
    	at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
    	at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
    	at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
    	at java.lang.Thread.run(Thread.java:636)
    
    1. Jun 03, 2010

      Tim Payne says:

      Hi Saad From the stack track it looks like the JAR files that you used to updat...

      Hi Saad

      From the stack track it looks like the JAR files that you used to update the classpath might not have been the right versions.

      Did you see and follow this comment in the limitations section?

      "The plugin will work against Dimensions 10.x servers, but does require Dimensions Java client API JAR files from a Dimensions 2009+ server installation to work correctly."

      Thanks, Tim

      1. Jun 08, 2010

        Saad says:

        Worked perfectly. Thanks! :)

        Worked perfectly. Thanks! :)

  12. Jun 15, 2010

    Matthew Edwards says:

    Hi Tim, Any plans to implement a "quiet period" option? This would be really ha...

    Hi Tim,

    Any plans to implement a "quiet period" option? This would be really handy given the non-atomic commits in 10.x ... As per the other SCMs, any checkin during the quiet period will reset the counter. In fact, if it's possible it would be even better to have a quiet period which is tracked per request.

    Our commit process is such that a daemon executes all source commits. It handles them one request at a time. Therefore while it is continuing to commit files from request A, i don't want to build, but as soon as it starts committing files from request B, then I want to trigger a build based on request A. Obviously without the distinction between requests, then if four or five commits are executed consecutively, the quiet period will keep resetting, and the build will then include the changes from all those requests.

    Thanks,
     Matt

    1. Jun 18, 2010

      Matthew Edwards says:

      It would appear I was getting a bit ahead of myself. As per a few other comment...

      It would appear I was getting a bit ahead of myself. As per a few other comments above, I am having issues with the polling. It always says "No changes" even though I know there are. Manually triggering a build confirms this as it lists the updated files.
      I read above about the issues with earlier versions of the API (our server is 10.1.1), so I'm just wondering if there is a known reason why the polling would fail for this server, or whether it is something you would be able to investigate further.

      I have turned debugging on, but it provides no clues ...

      DEBUG (2010-06-18T17:27:17Z) :Invoking pollChanges - hudson.plugins.dimensionsscm.DimensionsSCM
      DEBUG (2010-06-18T17:27:17Z) :Checking job - HiPort build on change
      DEBUG (2010-06-18T17:27:17Z) :Checking for any updates between 2010-06-17T17:11:53Z -> 2010-06-18T17:27:17Z (Australia/Sydney)
      DEBUG (2010-06-18T17:27:17Z) :Checking Dimensions login parameters...
      DEBUG (2010-06-18T17:27:17Z) :Logging into Dimensions: dmsys thundercracker hiport@dim10
      DEBUG (2010-06-18T17:27:17Z) :Getting Dimensions connection...
      DEBUG (2010-06-18T17:27:23Z) :Storing details for key 1276846037623...
      DEBUG (2010-06-18T17:27:23Z) :Polling using key 1276846037623
      DEBUG (2010-06-18T17:27:23Z) :Polling 'Hiport/src'...
      DEBUG (2010-06-18T17:27:23Z) :Looking for key 1276846037623
      DEBUG (2010-06-18T17:27:23Z) :Found database
      DEBUG (2010-06-18T17:27:23Z) :Looking for key 1276846037623
      DEBUG (2010-06-18T17:27:23Z) :Found database
      DEBUG (2010-06-18T17:27:23Z) :Looking between 17-Jun-2010 17:11:53 -> 18-Jun-2010 17:27:17
      DEBUG (2010-06-18T17:27:23Z) :Looking for changed files in 'Hiport\src/' in project: H3:3V10
      DEBUG (2010-06-18T17:27:23Z) :Found 0
      DEBUG (2010-06-18T17:27:23Z) :Polling using key 1276846037623
      DEBUG (2010-06-18T17:27:23Z) :Polling 'Hiport/METADATA'...
      DEBUG (2010-06-18T17:27:23Z) :Looking for key 1276846037623
      DEBUG (2010-06-18T17:27:23Z) :Found database
      DEBUG (2010-06-18T17:27:23Z) :Looking for key 1276846037623
      DEBUG (2010-06-18T17:27:23Z) :Found database
      DEBUG (2010-06-18T17:27:23Z) :Looking between 17-Jun-2010 17:11:53 -> 18-Jun-2010 17:27:17
      DEBUG (2010-06-18T17:27:23Z) :Looking for changed files in 'Hiport\METADATA/' in project: H3:3V10
      DEBUG (2010-06-18T17:27:23Z) :Found 0
      DEBUG (2010-06-18T17:27:23Z) :Looking for key 1276846037623
      DEBUG (2010-06-18T17:27:23Z) :Found database
      DEBUG (2010-06-18T17:27:23Z) :Closing connection to Dimensions...
      DEBUG (2010-06-18T17:27:23Z) :Now have 0 connections in use...

      1. Jun 18, 2010

        Tim Payne says:

        Hi Matt Which version of the plugin are you using? Some issues with the polling...

        Hi Matt

        Which version of the plugin are you using? Some issues with the polling mechanism were resolved with 0.7.6, but I must admit, I have never tested the plugin against a Dimensions 10.1.1 server.

        I'm not sure if Dimensions version compatibility will fully work with 10.1.1. It is usually supposed to be 2 levels back - i.e. 2 levels prior to 2009 R2 - but it would be best to check with the product documentation for the official statement on backwards compatibility support. Most of the functions will usually work greater than 2 levels, but it is rather a gray area.

        Looking at your output however, I would suggest try upgrading the plugin first to the latest version to see if that resolves the issue.

        Hope that helps, Tim

  13. Jul 02, 2010

    prashanth says:

    Hi Tim, We have issue where the build starts and hangs at checkout to the local...

    Hi Tim,

    We have issue where the build starts and hangs at checkout to the local workspace.  When we try to delete the specific build it does not get deleted.  The only option leftover for us would be to restart the whole Hudson service.  Is there any option either to delete the build which is in hung state or to know why it is failing?

    Regards

    Prashanth

  14. Jul 07, 2010

    Jeff Cherng says:

    Hi Tim, I got the plugin worked with Hudson and Dimensions; however, I could no...

    Hi Tim,

    I got the plugin worked with Hudson and Dimensions; however, I could not generate the change log from Hudson. Do I have to something on the Dimensions side for the plugin to generate the change log? By the way, I am using the Dimension Eclipse plugin to check in the code and already provided the comment during the check in process (usually that's all I have to do if I have SVN-Hudson setup for generating change log).

    Thanks,

    Jeff

    1. Jul 14, 2010

      Tim Payne says:

      Hi Jeff Early versions of the plugin would only generate change sets if the "Us...

      Hi Jeff

      Early versions of the plugin would only generate change sets if the "Use Update" option was specified. I changed the plugin in a later version (can't specifically remember which) to generate a change set all the time, even if "Use Update" was not specified.

      Does this sound like the issue you are having? If so, try the latest version of the plugin and see if that helps.

      Thanks, Tim

  15. Jul 13, 2010

    Nuno Duque says:

    Hi, I'm using Hudson deployed on a Tomcat 6.0 server. Hudson version is 1.366 a...

    Hi,

    I'm using Hudson deployed on a Tomcat 6.0 server. Hudson version is 1.366 and dimensios plugin is 0.7.7.
    At the begin I add the libraries at Hudson home (/srv/hudson) and it didn't work.
    To solve this I add the 4 jars at Tomcat lib directory and it gives me some ClassNotFoundEsception to LogFactory that I solve adding commons-logging also on the same directory.
    Now I get the same error that Saad report before:
    java.lang.NoSuchMethodError: com.serena.dmclient.api.DimensionsObjectFactory.getServerVersion(I)Ljava/util/List;
    I'm using Dimension 10.3.1 and I think that the libraries I'm using are also from same version.
    I don't have any 2009+ server intallation available.
    Where can I get Java client API JAR files from a Dimensions 2009+ version??

    Thanks,

    1. Jul 14, 2010

      Tim Payne says:

      Hi Nuno Sorry, I cannot help you with your query directly other than to suggest...

      Hi Nuno

      Sorry, I cannot help you with your query directly other than to suggest that you speak with your support or sales rep to see if you can get a copy.

      Thanks, Tim

  16. Jul 21, 2010

    prashanth says:

    HI Tim, We have issues of dimension update not passing and the bulid hanging.&n...

    HI Tim,

    We have issues of dimension update not passing and the bulid hanging.  The only option we have now is to stop apache tomcat instance and re-start.  Can we have option of setting timeout for update or checkout which will release if the bulid hangs for a specific time.  Pls suggest, we are using tomcat 6.0, dimensions 2009R1_01.

    Thanks, Prashanth

    1. Jul 31, 2010

      Tim Payne says:

      Hi Prashanth I'll look into this option for you and see what I can do in the ne...

      Hi Prashanth

      I'll look into this option for you and see what I can do in the next version of the plugin

      Thanks, Tim

  17. Aug 10, 2010

    prashanth says:

    Hi Tim, We have issue getting baseline created some times.  It gets sorted...

    Hi Tim,

    We have issue getting baseline created some times.  It gets sorted out after we do a restart of the Apache Tomcat instance.  The same will work after the restart of the tomcat instance.  But prior to this the lock and unlock is working fine.

    FATAL: Unable to tag build in Dimensions - Dimension command failed -

    PCM0005262E Error: baseline template selected no items, so baseline was not created
    )
    Finished: FAILURE

    1. Aug 18, 2010

      Tim Payne says:

      Hi Prashanth The CBL command that is being fired is not finding any objects tha...

      Hi Prashanth

      The CBL command that is being fired is not finding any objects that match the baseline template rules you have specified.

      Please review the CBL command that is run and ensure you are using a template which is applicable to the baseline + project you are trying to use.

      Thanks, Tim

  18. Sep 07, 2010

    Manuel Ramirez Velasco says:

    Hi Tim, I´m trying to use the Dimensions Integration plugin and I´m having one p...

    Hi Tim, I´m trying to use the Dimensions Integration plugin and I´m having one problem.

    I need to run two Dimensions builds (in the command form). Both of them refers to diferent Dimensions Workset, but in the same Dimensions Project.

    The first command job runs correctly, but the second is trying to run the build in the same workset that the first.

    I need your help, I don´t know if this is a bug or not.

    Regards.

    1. Sep 09, 2010

      Tim Payne says:

      Hi Manuel I'm sorry, I'm having difficulty understanding your setup from the de...

      Hi Manuel

      I'm sorry, I'm having difficulty understanding your setup from the description you have provided. Can you email me a test case which shows the issue? Then I can look to reproduce it and let you know my thoughts.

      Many thanks, Tim

  19. Nov 18, 2010

    Mitch Granatowicz says:

    Tim, Our hudson configuration consists of the master and 3 slave machines. One o...

    Tim,
    Our hudson configuration consists of the master and 3 slave machines.
    One of the slaves is on the same machine as the master. We do not use the executor on the master.
    The plugin works for jobs specified to run on a slave not on the master machine.
    It errors out for jobs specified to run on the slave on the same machine as the master.
    The slave is bld02 but it attempts to checkout on master as shown below.

    Building remotely on bld02
    [DIMENSIONS] Running checkout on master...
    FATAL: Unable to run checkout callout - remote file operation failed: D:\HudsonSlave\workspace\SCM_TOOLS_JAVA_PHASE2_STR_MFD at hudson.remoting.Channel@6c53e8:bld02
    Notifying upstream projects of job completion
    Finished: FAILURE

    Our hudson jobs currently use custom workspaces for all builds but we are looking into changing this to use the plugin to fetch and let the builds run in the hudson slave workspace.
    When running on a slave on different machine than master everything works.
    Building remotely on bld03
    [DIMENSIONS] Running checkout on slave...

    Is this an issue with our configuration or can the plugin somehow differentiate between the master and slave on the same machine?

    Thanks.

    1. Jan 13, 2011

      Tim Payne says:

      Hi Mitch This issue is fixed in the latest release. Thanks, Tim

      Hi Mitch

      This issue is fixed in the latest release.

      Thanks, Tim

  20. Jan 06, 2011

    Brett Alex says:

    Thanks for the plugin. Really is useful. Issue I found today was that the file p...

    Thanks for the plugin. Really is useful. Issue I found today was that the file permissions (execute bits in Linux) aren't being honored during checkout. I have the latest Hudson (392) and the latest plugin (v0.7.9) and ensured the job was configured to "DEFAULT" for check out item file permissions (versus R/O or writable). I manually changed the file permissions in the oracle database via the os_file_details table, but none of the files are checked out properly in Hudson. The permission are correct using both the webclient "Get Copy" as well as the dmcli "download" command. I restarted both Hudson as well as Dimensions.

    Any idea where the issue might be?

    1. Jan 13, 2011

      Tim Payne says:

      Hi Brett Thanks for the comments. This is not an issue I'm aware of, but almos...

      Hi Brett

      Thanks for the comments.

      This is not an issue I'm aware of, but almost sounds like a problem with the DMCLI or Java API command processing. Is this an issue you are encountering on the master or a slave. The master uses the Java API to run a update/download command, whilst the slave uses the standard DMCLI.

      If you can send me some more information about the configuration, I'll have a look at it for you.

      Thanks, Tim

  21. Jan 19, 2011

    inahngela - says:

    Hi, Tim! I'm using parametrized builds, Sting Parameter 'DM_REQUEST'. ...

    Hi, Tim!

    I'm using parametrized builds, Sting Parameter 'DM_REQUEST'.

    When I build this job, I can see the Dimensions user's password on console like below.

    [DIMENSIONS] Calculating change set for request(s) '000_CR_167'...
    [buildscript] $ cmd.exe /C '"C:\CTIP\ant-1.7.0\bin\ant.bat -file build.xml -DUSER_ID=dmsys -DDM.PROJECT=PRJ -DWORKSPACE=C:/workspace/PRJ -DPASSWORD=XXXXX
    -DDM_REQUEST=000_CR_167 -DRELEASE_DIST.PATH=../../RELEASE_DIST build-all && exit %%ERRORLEVEL%%"'

    Is there any idea to hide the password?

  22. Feb 24, 2012

    Paul Brown says:

    Our build process publishes build artifacts back to Dimensions.  If I have ...

    Our build process publishes build artifacts back to Dimensions.  If I have the Hudson plugin configured to poll for changes this causes a new build to be triggered every time.  This is true even if I use the "Load any build artifacts into the Dimensions repository" option in Hudson/Jenkins.

    Is there any way to configure the Hudson polling process to ignore certain changes?  Maybe through a certain string in the checkin comment?

    1. Feb 27, 2012

      Tim Payne says:

      Hi Paul The plugin works by scanning the specified directories being monitored ...

      Hi Paul

      The plugin works by scanning the specified directories being monitored for any new item revisions - whether they were created by the build process or not. At the moment, it does not support the notion of exclusion/inclusion rules in the directories begin monitored. It's not impossible to do, but not sure it is something I would be keen to add myself unless there was a popular need for it.

      I can see the use case, but does not sound a common one to me.

      So, in answer to your question, no, I'm afraid that capability is not there at the moment unless you put your build artifacts into directories that are not part of those being monitored by the plugin. If more people request this functionality, I can put it on the backlog for a future version.

      Many thanks, Tim

    2. Jan 31

      Tim Payne says:

      Hi Paul I've now added this functionality. Cheers!

      Hi Paul

      I've now added this functionality.

      Cheers!

  23. Nov 09, 2012

    Divya Chidambaram says:

    I am trying to add Dimension plugin to Jenkins. When I provide Jenkins with conn...

    I am trying to add Dimension plugin to Jenkins. When I provide Jenkins with connectivity details, I get a connectivity error. I added the JAR files from the client machine.

    This is the location I found the 4 JAR files.

    C:\Program Files\Serena\Dimensions 12.1\CM\Integrations\RichEclipse3.x\eclipse\plugins\com.serena.eclipse.dimensions.core_3.0.9.121100-01\lib

    Also, I am not able to find <Hudson_Home>/WEB-INF/lib directory. Where is this location in Jenkins? Would appreciate any help.

    Thanks,

    Divya

    1. May 13, 2013

      Tim Payne says:

      Hi, it will be <Jenkins_Home> in Jenkins, rather than <Hudson_Home>....

      Hi, it will be <Jenkins_Home> in Jenkins, rather than <Hudson_Home>. Thanks!

  24. Aug 14, 2013

    Shawn Ashley says:

    I am having an issue using the plugin with Dimensions 10.x and Jenkins 1.526. I...

    I am having an issue using the plugin with Dimensions 10.x and Jenkins 1.526.

    I installed the following 4 jars files: darius.jar, dmclient.jar, dmfile.jar, and dmnet.jar

    The test connection is successful but when I try a build the following error happens: FATAL: com.serena.dmclient.api.DimensionsObjectFactory.getServerVersion(I)Ljava/util/List;

    I am guessing I need the jar files from Dimensions 9.x but we only have a 10.x server - is there another way to get the jar files?

    1. Jan 31

      Tim Payne says:

      It sounds like you need to upgrade your Jenkins plugin version to be compatible ...

      It sounds like you need to upgrade your Jenkins plugin version to be compatible with your JAR versions.