Dimensions Plugin

Overview

This plugin integrates Hudson with Dimensions, the Serena SCM solution.The plugin allows a Hudson job to be associated with a Dimensions Project or Stream, automatically updating the Hudson workspace with content from the Dimensions repository.

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 currently supports

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

Plugin Information

Plugin ID dimensionsscm
Latest Release 0.8.2
Latest Release Date Apr 21, 2011
Sources Subversion
Support Eclipse Hudson Forum
Issue Tracking Eclipse Bugzilla

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 Hudson installation be updated with a number of JAR files from the Dimensions installation as documented below.

Installation

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

  • The plugin needs to be installed and enabled using the Hudson 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 Hudson class path or dropped into the <Hudson_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 Hudson->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 Hudson 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 Hudson.



Checking the Use update toggle will get the plugin to automatically populate your Hudson 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 Hudson 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 Hudson 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 Hudson-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 Hudson 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 Hudson 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 Hudson 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 Hudson 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 parametrized build to specify a baseline to build, rather than a project
  • Use a parametrized 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 parametrized 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 Parametrized Builds

It is now possible to use a Hudson 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 Hudson 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 Hudson 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 Hudson 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 Hudson build process. This will initiate a baseline build in Dimensions Builder using build parameters setup in the Hudson 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.

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.

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 Hudson 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 Hudson. 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 Hudson node must have a Dimensions client installation available and in the path. The remote Hudson support is provided through dmcli, so that remote node must be a platform against which Dimensions is natively supported. If you wish to run Hudson 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 Hudson), 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.

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
  • Bugfix: Compatibility issues with 1.391+
  • Enhancement: Check-in artifacts to support ANT regex
  • Enhancement: Check-in artifacts to support requests

Version History

0.8.1/2 – Apr, 2010

  • Bugfix: Incorporate fix for copying Dimensions plugin information around between jobs
  • Enhancement: Support for NOTOUCH option
  • Bring code in synch with Jenkins release

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:

tier3-hudson-plugin tier3-hudson-plugin Delete
plugin-scm plugin-scm Delete
Enter labels to add to this page:
Wait Image 
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.hudson-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 Waldo 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

      1. Jan 31, 2011

        Brett Waldo says:

        Tim, Sorry for not getting back sooner. I assumed the website would notify me i...

        Tim,

        Sorry for not getting back sooner. I assumed the website would notify me if someone replied and that I wouldn't have to manually check it, my bad.

        We only have one system configured as kind of a do it all server. It houses Dimensions, Oracle and Hudson. Some other useful information is I am using Dim 10.1.3 with the 2009R2 JAR files manually linked into the war/WEB_INF/lib directory. OS is RHEL5.5.

        Let me know if there is any thing else you would find useful. Thanks for looking into it.

        Brett

        1. Mar 02, 2011

          Tim Payne says:

          Hi Brett Sorry, haven't checked the Hudson wiki for a while now and as the emai...

          Hi Brett

          Sorry, haven't checked the Hudson wiki for a while now and as the email notification seems to have vanished, I see there is a lot for me to reply to.

          When I was talking about the configuration, I was more referring to a Hudson job configuration. If you could send me an example job configuration that might help me reproduce the issue, that would be great.

          Thanks!

          Tim

          1. Mar 09, 2011

            Brett Waldo says:

            It's no problem Tim. I am having the same problem with email notifications... S...

            It's no problem Tim. I am having the same problem with email notifications...

            So, as for my configuration, I uploaded an example config.xml to xml .

            But those are a pain to read and get complicated. Basically, hudson is configured to update my workspace using this plugin. The "Default" file permissions is set. It would imagine you could recreate it by adding execute permissions to a file in your dimensions workset and then run the hudson job and check the permission. In may case, i'm manually setting the permission by modifying the database directly (file_os_details). I don't think Dimensions provides any other way to do it.

            Thanks again,
            Brett

            1. Apr 20, 2011

              Tim Payne says:

              Hi Brett Looks like email responses not working again. If this is still an issu...

              Hi Brett

              Looks like email responses not working again. If this is still an issue, can you raise a Case with Serena Support so the problem can be tracked?

              I think this is more likely to be a problem with the UPDATE or DOWNLOAD command, so I would like to track it as it is something which probably needs to be pinged to the product server team.

              Thanks, Tim

              1. May 02, 2011

                Brett Waldo says:

                Ok. Will do. (sorry took so long to respond. the jenkins wiki is only a partial...

                Ok. Will do.

                (sorry took so long to respond. the jenkins wiki is only a partial mirror of this one and I thought my conversion was just missing...)

  21. Jan 19, 2011

    inah baek 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?

    1. Mar 02, 2011

      Tim Payne says:

      Hi Inah I think this is more of an issue with Hudson parameterised jobs. The wa...

      Hi Inah

      I think this is more of an issue with Hudson parameterised jobs. The way I hide passwords in the plugin is to use a custom Hudson API routine which is for launching jobs. I'm not aware of a method of being able to do this outside of that API mechanism.

      Try dropping an email to the Hudson user group and see if they have any suggestions.

      Hope that helps, Tim

  22. Feb 09, 2011

    Mee Fong Kwan says:

    How can I access the name of a changed request? I can see the associated changed...

    How can I access the name of a changed request? I can see the associated changed request by clicking the advanced button from the changes page. Is there a dimensions environment variable that is exposed that I can access?

    1. Mar 02, 2011

      Tim Payne says:

      Hi Mee There is no method of doing this from the basic Hudson plugin I'm afraid...

      Hi Mee

      There is no method of doing this from the basic Hudson plugin I'm afraid. The Hudson API provides you with methods for accessing the information, but you need to write a plugin extension to do it. The only other method would be to create a Java API application which dumps the information using the Dimensions Java API, but those are the only methods I can suggest I'm afraid - other than using a JDBC application against the published views.

      Thanks, Tim

  23. Mar 03, 2011

    Marco Tizzoni says:

    I have done a small patch to solve the defect DEF184170. The patch is attacched ...

    I have done a small patch to solve the defect DEF184170. The patch is attacched to the case http://support.serena.com/Case/CaseShowEdit.aspx?id_number=5339954 and here .

    Hope it helps. Right now it's working fine.

    1. Mar 07, 2011

      Tim Payne says:

      Thanks, Marco! I'll review and include these changes into the mainline. Are you...

      Thanks, Marco!

      I'll review and include these changes into the mainline. Are you happy with me using your code?

  24. Oct 18, 2011

    Ganesh Kumar Kalamadugu says:

    Hi Tim, We have a requirement to integrate Serena Dimensions CM with hudson. It...

    Hi Tim,

    We have a requirement to integrate Serena Dimensions CM with hudson. Its good to see your plugin. Only thing i wanted to understand here is, We have a Dimensions installation in remote server and we also have a web client url with us. From my local machine(Windows 7) i need to connect to remote dimensions using web client url.So, I copied the required jars from the dimensions installation as you suggested in local hudson lib folder. Web client requires login details along with server and which database to connect in Dimensions. I specified the webclient url in the Advanced tab, But how do i need to specify the details like userid,password,server,database etc. It looks like it is common requirment.

    Hope i made a clear point. My english is litte bad..bare with me.

    If you don't mind, Could you please let me know the details on this.

    Thanks in advance. Looking for your reply.

    Thanks,
    Ganesh

  25. Oct 19, 2011

    Tim Payne says:

    Hi Ganesh Np. I believe I understand the question. The login connection detail...

    Hi Ganesh

    Np. I believe I understand the question.

    The login connection details that you specify are used for most of the Dimensions operations that the plugin does, e.g. running commands etc

    The URL is only used in the change log and cannot perform any direct login itself as webclient does not support this.

    So, you have to provide the login details in the job configuration for everything to work, but the URL is optional. It does not really provide any functionality except at letting you access objects in the change log and you still have to provide the login details to webclient when you login to webclient. It does not provide a way of bypassing the login screen - even with the login details you have already provided.

    Does that help?

    Tim

    1. Oct 19, 2011

      Ganesh Kumar Kalamadugu says:

      Thanks Tim for quick reply!!! Now, i got  better understanding...

      Thanks Tim for quick reply!!!

      Now, i got  better understanding on this issue.. Thanks for the clarification.

  26. Oct 19, 2011

    Juanyong Zhang says:

    Hi Tim, Firstly really appreciate for the dimension plugin! it falls in the pla...

    Hi Tim,

    Firstly really appreciate for the dimension plugin! it falls in the place just as it born to be!

    But I got some problem is polling the project?

    the hudson dimension connection is correct, test passed; and in my job configuration I am giving

    Project Name: $GENERIC:$GLOBAL
    Folders To Monitor: /
    Poll SCM clicked

    after build I got console as below and nothing is coming in the hudson job workspace, could you please throw me some lights? thanks in advance.

    ---Console-----
    Started by user anonymous
    [DIMENSIONS] Calculating change set for directory '\'...
    [DEBUG] Skipping watched dependency update; build not configured with trigger: DIMENSION_TEST #22
    Finished: SUCCESS

    1. Oct 26, 2011

      Tim Payne says:

      Hi It sounds like you have not enabled the update option. If you click on the a...

      Hi

      It sounds like you have not enabled the update option. If you click on the advanced option in the dimensions SCM configuration you will see an update option. Clicking this box will checkout code from dimensions. The default is only to poll, not automatically update code.

      Hope that helps, Tim

      1. Oct 26, 2011

        Juanyong Zhang says:

        waaah! it is working, really appreciate!!

        waaah! it is working, really appreciate!!

  27. Feb 06, 2012

    Juanyong Zhang says:

    Hi Tim Any idea how could we checkout multi projects with dimensions plugin? T...

    Hi Tim

    Any idea how could we checkout multi projects with dimensions plugin?

    Thanks, Juanyong

  28. Feb 09, 2012

    Jose Fuentes says:

    FATAL: XS_DATETIME_FORMATTERjava.lang.NoSuchFieldError: XS_DATETIME_FORMATTER E...

    FATAL: XS_DATETIME_FORMATTERjava.lang.NoSuchFieldError: XS_DATETIME_FORMATTER

    Every time there is code added to dimensions I get the error stated above when Hudson tries to build.

    At this time the only think I've been able to do it start a new job with the same specifications in order to get past that point and for the build to continue.  If anyone has seen this before and knows how to solve the issue I'll appreciate the help

    Thanks
    [DIMENSIONS] Calculating change set for directory '\'...

    FATAL: XS_DATETIME_FORMATTER
    java.lang.NoSuchFieldError: XS_DATETIME_FORMATTER
    at hudson.plugins.dimensionsscm.DimensionsChangeLogWriter.write(DimensionsChangeLogWriter.java:172)
    at hudson.plugins.dimensionsscm.DimensionsChangeLogWriter.writeLog(DimensionsChangeLogWriter.java:140)
    at hudson.plugins.dimensionsscm.DimensionsAPI.createChangeSetLogs(DimensionsAPI.java:769)
    at hudson.plugins.dimensionsscm.DimensionsSCM.generateChangeSet(DimensionsSCM.java:807)
    at hudson.plugins.dimensionsscm.DimensionsSCM.checkout(DimensionsSCM.java:706)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1229)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:507)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424)
    at hudson.model.Run.run(Run.java:1367)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145)

    1. Feb 22, 2012

      Laszlo Erdös says:

      Hi, I have the same problem. I get also this error with XS_DATETIME_FORMATTER. ...

      Hi,

      I have the same problem. I get also this error with XS_DATETIME_FORMATTER.

      Can anybody help us?

      thx - Laci


      1. Feb 22, 2012

        Laszlo Erdös says:

        Hi, I checked the generated build.xml files under the job protokoll. If I get ...

        Hi,

        I checked the generated build.xml files under the job protokoll.

        If I get this error then there is the following line in build.xml:

        <scm class="hudson.scm.NullChangeLogParser"/>

        Without error there is the line:

        <scm class="hudson.plugins.dimensionsscm.DimensionsChangeLogParser"/>

        But where can I config this?

        Laci

        1. Feb 23, 2012

          Laszlo Erdös says:

          Hi, There is a hint on the Serena homepage, in the knowledgebase. The only one ...

          Hi,

          There is a hint on the Serena homepage, in the knowledgebase. The only one

          solution is a downgrade to the Hudson version 2.1.1.

               ...

          Laci

  29. Feb 29, 2012

    Laszlo Erdös says:

    Hi Tim, I would like to use the function "Tag successful builds in Dimensions a...

    Hi Tim,

    I would like to use the function "Tag successful builds in Dimensions as a baseline",

    but with an individuel baseline name.

    The template supports the following variables:

        [PROJECTID]                 is the name of the Dimensions project or stream being monitored.
        [HUDSON_PROJECT]      is the name of the Hudson project
        [DM_BASELINE]            is the name of the baseline variable
        [BUILDNO]                    is the build number
        [CURRENT_DATE]          is the current date in "yyyy.MMMMM.dd hh:mm:ss aaa z" format, e.g. "2010.May.15 12:15:01 PM BST"

    So I need a parameter or environment variable, like [BASELINE_NAME_PARAM].

    I tried to compile the plugin, but I could't it. It seems too old, and I get no the jars

    from repos.

    This change is very small in "DimensionsAPI.java".

    After the line 1279:                     cId = cId.replace("[CURRENT_DATE]",DateUtils.getNowStrDateVerbose().trim());

    insert a new line with System.getenv("BASELINE_NAME_PARAM") or similar.

    Example: cId = cId.replace("[BASELINE_NAME_PARAM]",System.getenv("BASELINE_NAME_PARAM").trim());

    Can you do it? Please help me!

    thx - Laci










    1. Dec 04, 2013

      Tim Payne says:

      Hi Laci Very (late) reply to this I'm afraid. I'm not actually working on this ...

      Hi Laci

      Very (late) reply to this I'm afraid. I'm not actually working on this product line anymore, so the plugin ownership has been pushed to someone else (not sure who now). However, the latest code is in Github if you still need to make this change. I think the link is...

      https://github.com/hudson2-plugins/dimensionsscm-plugin

      The current owner of the plugin is Paul Caruna as stated above, he can get the change made and submitted.

      Thanks, Tim