Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata
This Jenkins plugin provides SCM integration capabilities to Integrity Lifecycle Manager for Configuration Management.

Overview

Plugin Information

View PTC Integrity CM on the plugin site for more information.

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

The PTC Integrity Plugin for Jenkins Integration is an open source plugin that provides Jenkins Integration build capabilities for Integrity Lifecycle Manager.

The plugin provides the following capabilities:

  • Supports creation of builds from any Integrity CM Project configuration (normal, variant, and build).
  • Supports generation of continuous builds in Jenkins using file-based changes or transactional change package-based changes in Integrity Lifecycle Manager.
  • Supports integration with local Integrity Lifecycle Manager client. 
  • Supports specifying a Sandbox scope for transfer of specific subprojects and/or members from the Integrity Lifecycle Manager server to the Sandbox directory when the Sandbox is created or resynchronized.
  • Tags support with a user defined tag name/pattern. For example:

    ${env['JOB_NAME']}-${env['BUILD_NUMBER']}-${new java.text.SimpleDateFormat("yyyy_MM_dd").format(new Date())}
    

    A tag refers to an Integrity CM Project Checkpoint with a project label and without propagation of the label to all members.

  • Supports full or incremental workspace synchronization. The plugin provides the option for a clean workspace that deletes the current workspace and downloads a fresh copy from Integrity Lifecycle Manager when enabled. If you do not enable the option for a clean workspace, the workspace is updated based on changes found in the Integrity Lifecycle Manager repository.
  • Provides a detailed change log of differences for the current build with an integrated SCM browser support. Change Log report links directly to Integrity CM Annotated Member and Differences views.
  • Polls Integrity CM on a cron schedule to check for any changes. If there are changes, the plugin automatically initiates a build.
  • Supports distributed/remote build execution. In a clustered Jenkins environment, this plugin is designed to execute the checkout operation on remote slaves.
  • Supports Workflow plugins for Jenkins. For more information, see Jenkins Workflow Support.
  • Provides the option to update an Integrity Build item with the results of the build. The plugin also provides the option to save the log contents to a rich text field.
  • Provides the option to update an Integrity Test Session item with the results from a build's automated test execution.
  • Updates Integrity Lifecycle Manager project/sub-project with output from builds.

Licensing

The PTC Integrity Plugin does not require any explicit license currently. However, the mksapi.jar used by the plugin (to connect to Integrity Lifecycle Manager server from Jenkins) is a proprietary PTC jar and hence has its own PTC license. Integrity Lifecycle Manager users get this mksapi.jar (and its license) bundled with the Integrity Lifecycle Manager server.

Development

Being an open source software, the plugin follows all standards for being an open source software. The intention is to have a collaborative software development where developers across community can contribute to the plugin that benefits other users. PTC expects the community to contribute to the development of the plugin and developers can submit their code to the GIT hub location as pull requests. The submissions are reviewed by PTC periodically and if deemed fit to be productized, PTC will merge the submissions into mainline and release as a new version of the plugin. PTC may, from time to time, contribute to the project as well.

Assumptions

This document assumes that you know how to use Integrity Lifecycle Manager and Jenkins. For more information on using Jenkins, refer the Jenkins documentation. Click next to the configuration fields in Jenkins for viewing the associated help.

Installing PTC Integrity Plugin

Prerequisites

The installation of the PTC Integrity Plugin requires the following prerequisites:

  • Jenkins 1.609 server or a later server is installed.
  • PTC Integrity Lifecycle Manager 11.0 server or a later server is installed.
  • API connections on the Integrity Lifecycle Manager server are enabled.
  • For local client integration, Integrity Lifecycle Manager client is installed locally on Jenkins instances, including both master and slaves. For more information, see PTC Integrity Plugin Local Client Integration.

Note

  • The plugin uses the API exclusively to communicate with the Integrity Lifecycle Manager server.
  • The plugin does not require the Integrity Lifecycle Manager client if local client integration is not used.
  • The plugin install package includes the mksapi.jar (4.16.2671), which is licensed under the PTC Freeware license. Please refer to ‘PTC Freeware License Agreement.docx’ located inside the mksapi.jar file.

Consider the following when attempting connection to an Integrity Lifecycle Manager 11.0 or a later server that is SSL-enabled:

  • The Apache commons-httpclient library (jar) that is shipped with Jenkins 1.609.1 or later is incompatible with the same library that is packaged with the mksapi.jar.
  • The version of commons-httpclient (packaged with the mksapi.jar) is older than the version that is shipped with Jenkins. See PTC Customer Support article CS186156 for details about the issue. If you encounter an issue as described in JENKINS-31492, ensure that you follow step 5 as described in the PTC Customer Support article CS186156.
  • The incompatibility occurs only when attempting to connect to a SSL-enabled Integrity Lifecycle Manager server. Do not attempt a jar swap of the commons-httpclient library, if your Integrity Lifecycle Manager server is not SSL-enabled. 

Installing the Plugin

To install the PTC Integrity Plugin:

  1. On the Jenkins dashboard, select Jenkins > Manage Jenkins > Manage Plugins.

    The Plugin Manager page opens.
  2. Select the Available tab.
  3. Navigate to the Source Code Management section and select the PTC Integrity CM – Jenkins Plugin checkbox.
    Tip
    You can use the Filter field at the top-right corner of the Plugin Manager page to search for PTC Integrity CM – Jenkins Plugin.
  4. Click Install without restart to directly install the plugin.
  5. Restart the Jenkins server after the plugin is installed.

Verifying a Successful Installation

Once you have installed the PTC Integrity Plugin, you can verify if the plugin installation was successful after restarting the Jenkins server.

To verify the plugin installation, click Jenkins > Manage Jenkins > Configure System on the Jenkins dashboard.

The presence of Integrity server configuration options validates the successful installation of the plugin.

You can create a list of default Integrity Lifecycle Manager server connection profiles using the Integrity server configuration options. You can select an Integrity Lifecycle Manager server connection profile when you configure a build job or when you enable other post-build actions like Integrity – Workflow Item. See Integrity Workflows and Documents Integration for more information on the Integrity – Workflow Item post-build action.

Note

  • The Advanced button for Integrity Server Configurations contains the default configuration for the Integrity Lifecycle Manager server connection and SSL settings.
  • Ensure that you test the connection before saving the connection information.

Configuring and Executing a Build Using the PTC Integrity Plugin

Configuring a Build

To configure a build:

  1. On the Jenkins dashboard, select any existing build configuration or create a new build job (as per your requirement). See the Jenkins documentation on how to create a new build job.
  2. Select Configure.
  3. Navigate to the Source Code Management section.
  4. Select Integrity to configure the settings for the PTC Integrity Plugin.
  5. Define the following Integrity settings:
    • In the Server Configuration field, select a connection profile.
      You can select a connection profile that you have defined as a part of the global server configurations for Integrity in the Jenkins configuration system settings.
    • In the Integrity Project field, specify the Integrity configuration management project or configuration path.
      You can specify a project using the old convention (specify full path to project.pj). However, when referencing a development path or a specific checkpoint, you must specify the configuration path convention. You can build multiple projects using the downstream jobs feature of Jenkins.
      Note
      See Integrity Lifecycle Manager documentation or contact PTC Technical Support for details on how to obtain the configuration path for variant and build configurations.
    • Select the Use Local Client checkbox to enable local Integrity Lifecycle Manager client integration point. When this checkbox is selected, the plugin does not use remote connections to Integrity Lifecycle Manager server. For more information on integration with local Integrity Lifecycle Manager client, see PTC Integrity Plugin Local Client Integration.
    • Clear the Clean Workspace checkbox (default setting) if you want to update an existing Jenkins workspace.
    • Select the Use Change Package Mode checkbox to enable the change package mode for the plugin. The Change Package mode enables the plugin to detect changes made using change packages on the Integrity Lifecycle Manager server repository for generating the builds. By default, the plugin is configured to work in file-based changes mode and considers the file changes for generating the build. For more information on the Change Package mode, see Change Detection.


  6. Click Advanced and define the following advance settings:
    • Project Specific Username
    • Project  Specific Password
    • Include List
    • Exclude List
    • Restore Timestamp
    • Line Terminator
    • Omit Author in Change Log
    • Checkpoint Before Build
      Note
      The plugin does not checkpoint Integrity CM build configurations. The plugin only checkpoints normal or variant configurations.
    • Checkpoint Label
    • Alternate Workspace Directory
    • Synchronize Changed Workspace Files
      Note
      If you select the Synchronize Changed Workspace Files checkbox, the plugin generates and store checksums for files in the workspace. When a build is executed either manually or due to a polling trigger, the plugin uses the checksums to synchronize any changed or deleted workspace files.
      If a polling trigger detects no changes for the Integrity SCM project in the repository, but some workspace files are deleted or changed, then the workspace files are not synchronized. This behavior occurs since the checksum difference calculations are performed on the target file system (or slave). Hence, the only time the workspace is actually synchronized is during the start of the build (either manually or due to a change in the Integrity SCM project).
    • Delete Non Members
    • Checkout Thread Pool Size
    • Checkout Thread Timeout
    • Repository Browser
    • Sandbox Scope
      A Sandbox scope determines which specific subprojects and/or members to transfer from the Integrity Lifecycle Manager server to the Sandbox directory when the Sandbox is created or resynchronized. For more information about Sandbox scope, see the “Specifying the Sandbox Scope” topic in the Integrity Lifecycle Manager Help Center and the Integrity Lifecycle Manager CLI man pages for si createsandbox and si configuresandbox commands.
      Note
      To combine multiple Sandbox scope options using the logical AND operator, specify the AND operator twice. For example, to include project members with member attribute Beta AND name *.java, specify attribute:Beta && name:*.java in the Sandbox Scope field. This option is case-sensitive. Joining subproject scope clauses with a logical AND operator is not supported as per Integrity Lifecycle Manager.
    • URL (optional)
      Note
      By default, the plugin defines a URL based on the specified host/port/secure parameters in the URL field. However, you can specify the URL if you want to provide a different link for viewing the Annotated Revision and Differences views.
      If you are running the Jenkins server on the same server as the Integrity Lifecycle Manager Server (not recommended), then you need to override the value in the URL field or access Jenkins using a different URL. Integrity CM links do not work if Jenkins and Integrity Lifecycle Manager are running on the same server and/or are accessed with the same URL. However, you can access Jenkins with just the hostname, (for example, http://hostname:8080) and Integrity Lifecycle Manager with the fully qualified DNS name (for example, http://hostname.domain.com:7001). PTC recommends running the Integrity Lifecycle Manager server and Jenkins on separate servers.
       
      Note
      Click next to the configuration fields for viewing the associated help.
  7. Optionally, if you want to poll Integrity CM for updates to your project, select the Poll SCM checkbox in the Build Triggers section and specify a schedule in the Schedule field.
    As shown in the following figure, Jenkins polls Integrity CM every five minutes.
  8. At the bottom of the Jenkins job configuration page, select Add post-build action > Integrity - CM Checkpoint.

    Note
    The plugin does not checkpoint Integrity CM build configurations. The plugin only checkpoints normal or variant configurations.
  9. In the Checkpoint Label field, define Groovy pattern for the Integrity CM checkpoint label.
    The plugin validates the string defined in the Checkpoint Label field for invalid label characters.

    Note
    Jenkins administrators need to approve any potential unsecure groovy script before execution of the script defined in the Checkpoint Label field. For example, if you have a custom script evaluation in the above field, it needs to be approved using Manage Jenkins > In-process Script Approval (URL: http://<jenkins-instance>:<jenkins-port>/scriptApproval), before the job configuration can be saved.
  10. Click Save to commit your changes.

Executing a Build

To execute the build:

  1. On the Jenkins dashboard, select an existing build configuration (job).
  2. Select Build Now to start the build.
    If you configured your build job to use parameters (for example, Integrity Lifecycle Manager Item ID), then select Build with Parameters.

If you want to check in artifacts from the build back into Integrity Lifecycle Manager, specify how you are authorized to update the Integrity project using the ItemID parameter values.

Valid values for the ItemID parameter include:

:none    // Indicates no change packages are used for check in
:bypass  // Assumes that the user has administrative privileges to bypass change package policies configured for the Integrity Project
0        // Same as :none above
12345    // An actual valid Integrity Item ID that the plugin will use to create a change package

Monitoring Build Progress

To monitor the build progress:

  1. In the Build History widget, select the build that you initiated to monitor the progress.
  2. Click Console Output.
    The console output displays the details of the build in progress.

As highlighted in the above figure, if the Clean Workspace checkbox is not selected, the plugin attempts to update the workspace by performing the following operations:

  • Downloading any changed files (includes adds/renames/moves)
  • Dropping any files that are no longer needed (includes drops/renames/moves)

Change Detection

After the installation of the PTC Integrity Plugin, the first build generated by Jenkins is considered as the initial build for reference. The plugin detects changes made to the files in the Integrity Lifecycle Manager server repository, and uses the file-based changes mode as the default mode for change detection. However, you can configure the plugin to detect changes that are part of the Integrity Lifecycle Manager change packages, and generate the builds in Jenkins based on the change packages detected.

For changes detected as part of change packages, the plugin considers only transactional closed state change packages in the Integrity Lifecycle Manager server repository after the last successful build. If the existing build fails, the plugin considers the change packages that are in closed state after the last successful build, for the subsequent build.

Selection of File Mode or Change Package Mode

For creating the first build, the plugin obtains the latest version of the files from the Integrity Lifecycle Manager server repository to the Jenkins workspace. You can then determine what change detection mode to use: File mode or Change Package mode for the subsequent builds. Select the Change Package mode for any change-package based changes in the Integrity Lifecycle Manager server repository. For non-transactional change packages, retain the default File mode. For more information on the Integrity Lifecycle Manager change packages, see the PTC Integrity Lifecycle Manager Help Center.

Tagging

A ‘tag’ refers to an Integrity CM Project checkpoint with a project label and without propagation of the label to all members. The PTC Integrity Plugin supports tagging with a user-defined tag name/pattern. For example:

${env['JOB_NAME']}-${env['BUILD_NUMBER']}-${new java.text.SimpleDateFormat("yyyy_MM_dd").format(new Date())}

You can configure tagging in the Jenkins build job under a post-build action. The following characters are not allowed in the Checkpoint Label field of a post-build action:

$
,
.
:
;
/
\
@

If you have configured the Integrity - CM Checkpoint post-build action correctly, then you can view an entry in the console output after successful completion of a build.

If you have configured the Integrity - CM Checkpoint post-build action for a build configuration, the post-build action labels the project and does not attempt to create a new checkpoint. The post-build action performs a similar operation if you have configured the Jenkins job for a pre-build checkpoint.

The following figure shows the project history view in Integrity CM after successful completion of the build referenced in the console output:

Polling

Based on the polling configuration for the Jenkins build job, the Integrity CM Polling Log link is visible in the left-side navigation pane. You can click this link to view details about the last poll. Refer the following image for details about the last poll. For example, the poll ran at 2:34 PM and found a total of 1 change (which includes adds/updates/drops).

Also note that the new builds initiated as a result of the poll are visible in the Build History widget.

Change Log and Integrity CM Browsing

The PTC Integrity Plugin provides a detailed Change Log of changes for the current build with integrated SCM browser support. The Change Log report links directly to Integrity CM Annotated Member and Differences views. For example, if you select the build initiated by the SCM Polling trigger, notice that the build was started by a SCM change. Additionally, the Summary of Changes section lists out the details (date and comments) obtained directly from Integrity CM.

Selecting detail view (as shown in the above figure) generates a detailed report as follows:

The Action column provides an indicative icon about the change (add/update/drop). Additionally, in the case of an update, you can click (Edit Action) icon to access the Integrity CM member differences view. Similarly, you can click the Revision link to access the Integrity CM annotated member view. To view the change package details in Integrity CM, click the change package ID links in the C.P. ID column.

Note

The comments associated with the drop action refer to the last member revision in the Integrity CM Project when you performed the drop action. Currently, Integrity CM does not record comments when a file is dropped.

For example, clicking the (Edit Action) icon for member IntegritySCM.java generates the Integrity CM - Member Differences view as shown in the following figure:

Similarly, clicking the revision link provides you access to the Integrity CM - Annotated Member view:

Remote Execution

The PTC Integrity Plugin for Jenkins supports build execution on remote slaves. Currently, the plugin is designed to only execute the check-out operation on a remote machine. All other commands are executed from the Jenkins master server.

The remote build execution is virtually transparent from an SCM plugin perspective. The only difference may be a different workspace path as illustrated in the output from the following build executed on a slave machine:

No additional setup is required if the Integrity Lifecycle Manager server is configured to allow API connections from any machine. If Integrity’s API connections are configured for specific servers, ensure that the respective Jenkins slave nodes are added to the list of allowed connections on the Integrity Lifecycle Manager server.

Note

If you switch building from the Master node to a Slave node or from one Slave node to another Slave node, then you must select the Clean Workspace checkbox for obtaining a full copy of the source code from the Integrity Lifecycle Manager server. This does not affect the ability of the plugin to calculate the Change Log or generate the Summary of Changes report.

PTC Integrity Plugin Local Client Integration

The PTC Integrity Plugin for Jenkins (version 2.1+) supports integration with local Integrity Lifecycle Manager client (Integrity Lifecycle Manager 11.0 and above). The integration involves installation of a local Integrity Lifecycle Manager client on Jenkins instances (both master and slaves). For more information on installing Integrity Lifecycle Manager client, see the Integrity Lifecycle Manager Help Center.

Integrity Lifecycle Manager client integration considers each job workspace as a sandbox. Depending on the config path (normal/variant/build) defined on the job level, the appropriate sandbox is created in the workspace. All plugin functionality (for example, checkout, polling, and so on) occurs in the workspace/sandbox.

Configuring PTC Integrity Plugin for Local Integrity Lifecycle Manager Client Integration

An Integrity Lifecycle Manager server compatible client installation is required on all Jenkins instances for local client integration functionality.

Note

If multiple clients are installed, ensure that the client used by the plugin is mentioned first in the PATH variable.

Consider the following when configuring the PTC Integrity Plugin for local client integration:

  • Jenkins service usually runs as LOCAL SYSTEM in a Microsoft Windows environment. This can cause a problem during Integrity Lifecycle Manager client startup in an integration environment. See https://www.ptcusercommunity.com/message/479748 for more information. You can resolve this issue by creating a dedicated Jenkins user in Microsoft Windows and then adding the user to the Administrators group. Use this user to start the Jenkins service in Microsoft Windows. For more information on creating users and adding users to a group in Microsoft Windows, see the Microsoft Windows product documentation.
  • The local client integration uses the preferences specified in the Integrity Lifecycle Manager client to connect to the Integrity Lifecycle Manager server (or FSA server, if available). The server details and authentication are fetched from the client if local client integration is enabled for a job.
  • The system level configuration of the Integrity Lifecycle Manager server specified in Jenkins System Configuration is utilized in the initial checkout step of executing si projectinfo command for the config path and all the post-build steps. Ensure that the values of Integrity server configuration options (hostname, port, username, password) specified in the plugin match local Integrity Lifecycle Manager client preferences.

The following parameters are supported when the local client integration is enabled:

  • Clean Workspace
  • Include List
  • Exclude List
  • Line Terminator
  • Checkpoint Before Build
  • Checkpoint Label
  • Alternate Workspace Directory
  • Sandbox Scope

The following parameters are not supported when local client integration is enabled:

  • Use Change Package Mode (Not implemented for local client)

  • Restore Timestamp (Not required for Sandboxes; only applicable to remote client integration)
  • Omit Author in Change Log (Not required for Sandboxes; only applicable to remote client integration)
  • Synchronize Changed Workspace Files (Not required for Sandboxes; only applicable to remote client integration)
  • Delete Non Members (Not required for Sandboxes; only applicable to remote client integration)
  • Checkout Thread Pool Size (Not required for Sandboxes; only applicable to remote client integration)
  • Checkout Thread Timeout (Not required for Sandboxes; only applicable to remote client integration)
  • Repository Browser (Not supported in local client integration)

Integrity Workflows & Documents Integration

The PTC Integrity Plugin for Jenkins facilitates end-to-end traceability by recording build outcomes and automated test execution results. The Integrity-Workflow Item post-build action provides the ability to update the status of a build item in Integrity for workflows and documents. Optionally, you can also store the contents of the build log with the item.

Additionally, this post-build action updates an Integrity test session based on automated tests executed after a Jenkins build. If you have configured the build as a parameterized build using the parameter name ItemID, then value for query definition is ignored. After enabling the build parameters, builds can be triggered remotely using the URL: http://server/job/myjob/buildWithParameters?token=TOKEN&ItemID=1234

If you did not use a build item, you can enable the recording of the test results by using the URL: http://server/job/myjob/buildWithParameters?token=TOKEN&SessionID=5678

You need to select the Integrity - Workflow Item post-build action during build configuration to enable configuration options for the following:

  • Build Management
  • Test Management

The plugin can obtain build information or test results or both. If you want to use the Test Management integration only, do not specify anything in the Query Definition field and specify a SessionID parameter for the build. The SessionID parameter is used to find the Integrity Lifecycle Manager test cases and based on the External ID field mapping (Test Case Test Name Field External ID), the test results are populated in Integrity Lifecycle Manager. The External ID field should reference the JUnit or other test ID using the appropriate syntax. In the case of JUnit test results, the following are acceptable forms of test case IDs:

Default Package Example:  junit/(root)/TestCaseClassName/testCaseName

Package Example: junit/com.ptc.demo/TestCaseClassName/testCaseName

Java Package Example: com.ptc.demo.TestCaseClassName.testCaseName

If you want to integrate Build Management with Test Management, then define a relationship field between the build item and the test session (Test Session Field). The plugin first checks for the existence of a build parameter SessionID. If it is absent, then the plugin searches the Test Session Field relationship to determine how to locate a test session item. This implies that the build automatically generates test results. If there are no test results for the build, then the plugin does not consider the Test Management configuration.

Jenkins Workflow Support

The PTC Integrity Plugin supports the Workflow plugin and associated updated core Jenkins APIs. The following figures show the scripting of a generic checkout step using the Workflow plugin's Snippet Generator.

Additionally, the PTC Integrity Plugin also supports three additional workflow steps:

Note
Since the label step related to the SCM Label is executed independently of the checkout step, currently there is no way to propagate the project or checkpoint label to all subprojects. A project label can only be applied to the top-level project.

Limitations

  • The PTC Integrity Plugin 2.0.1+ does not support non-transactional change packages in the Change Package mode. It is recommended to use the file mode for non-transactional change packages by clearing the Use Change Package Mode checkbox during the job configuration. For more information, see Change Detection.
  • The PTC Integrity Plugin 2.0.1+ is designed to work with PTC Integrity Lifecycle Manager 11.0 and later. There is no supported upgrade path from earlier plugin versions to PTC Integrity Plugin 2.0+.

Troubleshooting

To troubleshoot the PTC Integrity Plugin, you can configure log records for the plugin.

To configure log records:

  1. On the Jenkins dashboard, select Jenkins > Manage Jenkins > System Log.
  2. Select Add new log recorder.
  3. Specify a name for the log recorder and click OK.
  4. Select the logger from the Logger list.
  5. In the Log level field, select the log levels to record.
  6. Click Save.

The following is an excerpt from a sample debug IntegritySCM log:

Troubleshooting Local Integrity Lifecycle Manager Client Integration Issues

If you encounter the following error in the Jenkins job console:

Attempt to launch Integrity Client timed out. To solve this please try the following:
- Verify that the user you are logged in as has read and write permissions to the Integrity Client install directory.
- Make sure the Integrity Client install directory is the very first entry in the path.
com.mks.connect.BlimpException: Attempt to launch Integrity Client timed out. To solve this please try the following:
- Verify that the user you are logged in as has read and write permissions to the Integrity Client install directory.
- Make sure the Integrity Client install directory is the very first entry in the path.
  • Ensure that the Jenkins service user has Administrator permissions or the user is a network user.
  • Terminate all Integrity Lifecycle Manager client instances running on the Jenkins master and/or slave machines and execute the job again.

Best Practices

  • The PTC Integrity Plugin uses an embedded derby database to store cache information about an Integrity SCM Project. The size of this database is dependent on the number of active Jenkins items (Jobs x Builds). Hence, if disk space or performance of this embedded database becomes an issue, it is necessary that you maintain a limited number of builds.
  • When switching between file-based changes mode and change packages-based changes mode, you require an initial build that has no build history for reference. To enable such initial build after switching to file-based changes mode or change packages-based changes mode, select the Clean Workspace checkbox during job configuration. After Jenkins creates the initial build, you can clear the Clean Workspace checkbox to prevent the creation of the reference build again.
  • It is recommended to select the Delete Non Members checkbox in the Advanced configuration job settings to support the rename functionality when using the Change Package mode.

Note: Performance of this plugin would depend on various factors (e.g. Jenkins configuration, number of jobs, Job configuration, number of plugins installed, hardware limitations, and so on).

Pricing

The PTC Integrity Plugin is available free of cost.

Support

The above sections of this document provides information on how to install, configure and use the plugin. Refer open issues on this JIRA page. Users can also file new issues on the same page.

Change Log

Note: PTC Integrity Plugin versions older than 2.0 are no longer supported.

2019

  • Version 2.3 (Feb 18, 2019)
    • Upgraded mksapi.jar (version 4.16.2671)

2018

  • Version 2.2 (Mar 26, 2018)
    • Fixed JENKINS-47937 - Server Config not used in Integrity - Workflow Item
    • Implemented Sandbox scope functionality for local client integration
    • Upgraded mksapi.jar (version 4.16.1413)

2017

  • Version 2.1 (Sep 20, 2017)
    • Implemented local client integration functionality
    • Fixed SECURITY-176
    • Fixed JENKINS-31739 - NPE from IntegritySCM.checkout from Workflow
    • Fixed JENKINS-41838 - No progress while executing pipeline checkout jobs. No exception or error
    • Fixed JENKINS-42567 - si viewproject gets stuck (sometimes) while checking out Integrity project

2016

  • Version 2.0.2 (Nov 15, 2016)
    • Fixed JENKINS-33475 - Authentification based on project specific username and password fails if system account is not set
    • Fixed JENKINS-31836 - Restarting PTC server during Polling does not time out
    • Fixed JENKINS-33077 - checkPointBeforeBuild fails for projects on development path
    • Added new Checkout Thread Timeout field on the Jenkins job configuration page under Advanced settings to specify timeout (in minutes) of checkout threads
  • Version 2.0.1 (Feb 8, 2016)
    • PTC Integrity Plugin 2.0.1 is now supported with PTC Integrity 10.8.
  • Version 2.0 (Jan 27, 2016)
    • IMPORTANT – PTC Integrity Plugin 2.0 is not backward compatible. Please create new Jobs.
    • Productized version of PTC Integrity Plugin compatible with PTC Integrity 10.9. Versions older than Integrity 10.9 are no longer supported.
    • Introduced new change detection mode based on Integrity change packages
    • Bug fixes & performance improvements
    • Updated documentation & support information

2015

  • Version 1.36 (Nov 01, 2015)
    • Implemented JENKINS-27140 - Workflow support for Integrity SCM Plugin
    • Improved handling of cache tables to match number of active Jenkins items (Jobs x Builds/Runs)
    • Updated documentation for JENKINS-31144 - Alternate working directory doesn't accepts windows-style path (backslash)
    • Upgraded to Jenkins LTS 1.609.1
  • Version 1.35 (Oct 20, 2015)
    • Fixed JENKINS-31030 - Unable run integrity jobs on slave nodes when 'Delete Non-Members' is checked
    • Fixed JENKINS-30966 - Dropped members results in an inaccurate count for files checked out on full checkout
    • Implemented a workaround for JENKINS-30389 - ERROR 42Y55: SQLsyntax error exception
    • Added feature JENKINS-29906 - Alternate Workspace Directory parametrization
  • Version 1.34 (Aug 11, 2015)
    • Fixed JENKINS-28469 - Integrity SCM failed on cloudbees.Folders during "Delete Non Members"
    • Fixed JENKINS-28573 - Integrity Plugin does not change 'Configuration Name' when job is cloned
  • Version 1.33 (Apr 01, 2015)
    • Implemented a workaround fix to resolve JENKINS-13765 - Restore Timestamp Not Working
  • Version 1.32 (Mar 23, 2015)
    • Resolved issue where global username and password is used to checkout when a project specified user and password is specified.
  • Version 1.31 (Feb 16, 2015)
    • Resolved JENKINS-26770 - 'Apply' doesn't work in version 1.29 of the plugin
    • Implemented JENKINS-26906 - Re-introduce the ability to override the username/password at the specific job
    • Resolved JENKINS-26910 - Null pointer exception if host/port/user is changed in global configuration page
    • Fixed issue with SSL (secure connection) setting not getting saved in configuration
    • Eliminated unique 'Configuration Name' check in favor of migration path from pre-1.29 to latest
    • Fixed issue with creating APISessions in parallel checkout executions
  • Version 1.30 (Feb 05, 2015)
    • Transitioned from several db instance (one per build) to a single db for the entire Jenkins instance. As a result the following issues are resolved:
      • JENKINS-25228 - Using the integrity-plugin together with concurrent builds causes SQL Exceptions
      • JENKINS-14675 - Schema 'DBUSER' does not exist error in integrity plugin
      • JENKINS-25450 - Unexpected behavior of Jenkins Integrity plugin after SQL Exception inside plugin (no error returned to build job).
    • Upgraded to Apache Derby 10.11.1.1
    • The overall build status is marked failed if any of the related post build actions (Checkpoint, Delete Non-Members, Check-in and Item Workflow) encounter a failure
    • Eliminated the much contested 'Configuration Name' parameter from configuration page. It is now calculated as a GUID and saved under the covers
    • IMPORTANT - Please create new Jobs, if you are upgrading from a version older than 1.29. If you are upgrading from 1.29, then simply re-save and re-build all jobs.
  • Version 1.29 (Feb 03, 2015)
    • IMPORTANT - This version is not backward compatible! Please create new Jobs.
    • JENKINS-22066 - PTC plugin has massive memory leak if scm names are not unique
    • JENKINS-23369 - Unable to check-in using bypass mode
    • JENKINS-25629 - Checkpoints are done against wrong project!
    • Fixed bug with line terminator option not persisting in Integrity SCM configuration page
    • Improved handling of user and password credentials for multiple Integrity Servers
    • Switched logging from Apache Commons Logging (SimpleLog) to java.util.logging.logger
    • Removed previous limitation introduced with JRE 1.7 u40 by upgrading to Integrity API 4.13.5479 (10.5)

2014

  • Version 1.28 (Oct 09, 2014)
    • Fixed JENKINS-25068: uncaught null pointer exception during SCM polling
  • Version 1.27 (Oct 08, 2014)
    • Fixed API compatibility issue when running Integrity item integration for Build/Test Management against Integrity 10.6
    • Added catch exception to CmdRunner.release() in APISession terminate function per JENKINS-24849
  • Version 1.26 (Sep 04, 2014)
    • Resolved JENKINS-23638: Error in Checkin not failing job
    • Added feature JENKINS-23369: Unable to check-in using bypass mode. Pass in keyword :bypass for the ItemID build parameter. Example - http://server/job/myjob/buildWithParameters?token=TOKEN&ItemID=:bypass
    • Moved from deprecated AbstractBuild.getTestResultAction() (changes contributed by Jesse Glick)
  • Version 1.25 (Jun 11, 2014)
    • Fixed 'JENKINS-23404 - NullPointerException when running IntegrityCheckpointAction' with a more descriptive error message
    • Fixed 'JENKINS-23319 - Unable to override Advanced Parameters in Checkpoint Step'‏
  • Version 1.24 (May 20, 2014)
    • Fixed specific serialization issue reported - java.io.NotSerializableException: hudson.scm.IntegrityCheckinAction
    • Added serialization to Checkpoint, Delete Non Members, and Item Actions
    • Suppressing 'unbuffered entity error' on checkout
    • Added additional debug logging for JUnit Test Execution in IntegrityItemAction
  • Version 1.23 (Feb 20, 2014)
    • JENKINS-21689: SCM occasionally does not write some checked out files to Workspace
    • JENKINS-21587: memory leak in Plugin 1.22 -orphaned Logger Threads (accepted patch from Matthias Rump - thank you!)
    • JENKINS-21479: Poll SCM trigger not functioning during the first execution (incorporated suggestion from Gregory Pierre - thank you!)
    • JENKINS-21260: PTC integrity plugin: version 1.19 instantly triggers new build though corresponding files in repository have not been changed!
  • Version 1.22 (Jan 24, 2014)
    • Rolled back fix about (java.lang.StringIndexOutOfBoundsException) when moved files are fetched from server. Since this doesn't appear to be an actual move, trapping edge case condition and logging warning.
  • Version 1.21 (Jan 23, 2014)
    • Contributions from Christian Bürenheide - Thank you!
      • JENKINS-21350: Here we get a NullPointerException when checking out a variant project where the original project has been moved. In my opinion this is a major problem and it would be good to have it fixed in one of the next plugin versions.
      • JENKINS-21351: This is just a nice-to-have. A little inconsistency since Groovy expressions can be used in the main SCM config section but not in the checkin post-build action.
      • JENKINS-21370: The addprojectlabel functionality had been removed with 1.20. This feature has been recovered and extended with the functionality to recurse subprojects for applying checkpoint labels to subprojects as well.
    • Additional fixes:
      • JENKINS-21410: memory leak in Plugin 1.20
      • Fixed issue (java.lang.StringIndexOutOfBoundsException) when moved files are fetched from server
  • Version 1.20 (Jan 07, 2014)
    • Fixed JENKINS-20751: PTC_Integrity Plugin- file exclude filter not working for multiple entries - thanks to Matthias Rump for patch!
    • Added enhancement JENKINS-20541 expose pre-build checkpoint Number to build environment
    • Fixed potential security issue where Firefox can expose saved passwords in clear text
    • Upgraded to Jenkins 1.546

2013

  • Version 1.19 (Dec 30, 2013)
    • All fixes/enhancements in this release was contributed by Tyrel Alastair Hunter - Thank you!
    • Fixed JENKINS-21152 Files are now unlocked after checkin even if the file was not updated
    • Fixed JENKINS-21151 Checkin can now be performed when using multiple-scms-plugin
    • Fixed JENKINS-21150 When using the multiple-scms-plugin each scm will have it's own Derby database.
  • Version 1.18 (Oct 04, 2013)
    • Fixed Integrity API deprecated calls that were deprecated with Integrity 10.4
    • Fixed JENKINS-19791 Workaround for missing 'memberdescription' field in API response - thanks to Joerg Steeg for patch!
    • Fixed JENKINS-19790 There was an issue with locating the previous build - thanks to Joerg Steeg for patch!
    • Added enhancement JENKINS-14705 which allows substitution of Jenkins' built-in variables and other build parameters for Integrity's Config Path parameter
    • Added enhancement JENKINS-14037 which allows the ability to add a checkpoint label to the build prior to synchronizing the workspace
    • Added the ability to filter (include/exclude) Integrity SCM Project to limit the amount of data synchronized in the workspace - thanks to Musa Molla for patch!
    • Added the ability to collect Test Results from Jenkins build and update an Integrity Test Session
    • Upgraded to Jenkins 1.533
  • Version 1.17 (Jun 10, 2013)
    • Fixed JENKINS-17853 where pending entries (add, rename, move) were creating incorrect configurations - thanks to Martin Bickel for patch!
    • Fixed JENKINS-17292 which was a duplicate of JENKINS-17853 above - thanks to Tobias Weier for patch!
    • Fixed JENKINS-16275 where potential CDATA tags in comments were causing errors in change log reporting
    • Enhanced support for remote build execution and subsequent update of Integrity Item using URL: http://server/job/myjob/buildWithParameters?token=TOKEN&ItemID=1234
    • Added support for updating Integrity project/sub-project based on build output/updates
    • Upgraded plugin to Integrity API Version 4.11.3238 (10.3)
    • Upgraded to Jenkins 1.517

2012

  • Version 1.16 (Sep 11, 2012)
    • Fixed JENKINS-14871 to resolve an issue when no value is specified for the 'Checkout Thread Pool Size' setting
    • Fixed JENKINS-14844 to resolve missing 'Author' in Change Log - thanks to Ryan Stedman for patch!
    • Upgraded to Jenkins 1.481
  • Version 1.15 (Aug 10, 2012)
    • Fixed JENKINS-14704 PTC Integrity Plugin throws/catches SQL Exception in case of too long revision number
    • Added thread polling feature for checkout - contribution from Sascha Dais
    • Added feature to clean workspace of non-source controlled files - contribution from Sascha Dais
    • Upgraded to Jenkins 1.477
  • Version 1.14 (Jul 05, 2012)
    • Fixed issue when 'Clean Workspace' option is checked and files were dropped from the SCM Project
    • Resolved url issues in the plugin's configuration pages when running Jenkins as a Webapp on Tomcat or other Java Webservers
    • Upgraded to Jenkins 1.473
  • Version 1.13 (May 01, 2012)
    • Improved caching of large Integrity SCM Projects which should prevent Jenkins from crashing due to out of memory errors
    • Added feature to synchronize changed or deleted files in the workspace that originated from an Integrity SCM Project, resolving JENKINS-13221 and JENKINS-12819
    • Added the ability to turn debug logging on/off for the plug-in
    • Upgraded to Jenkins 1.462 and added dependencies to Apache Derby 10.5.3.0_1 (for better cache management), Apache commons-codec 1.6 (for checksum generation)
  • Version 1.12 (Jan 24, 2012)
    • Included a fix (provided by Brian Krebs) to address Jenkins-11751
    • Included an alternate (provided by Brian Krebs) suggestion to use revision numbers instead of revision dates for determining changes in Integrity CM
    • Upgraded to Jenkins 1.449 and Apache Commons Digester 3.0

2011

  • Version 1.11 (Oct 10, 2011)
    • Added the option to update an Integrity "Build" item with the status of a build
    • Changed plugin branding from MKS to PTC
  • Version 1.10 (Sep 23, 2011)
    • Improved checkout performance as author information (si revisioninfo) is obtained only if file revision changed from previous build
    • Converted all 'info' logging into 'debug' in an effort to minimize noise sent to jenkins.err.log
    • Fixed numbering issue with Change Log on "Recent Changes" page
  • Version 1.9 (Aug 26, 2011)
    • Added the option to use an API Integration Point other than the Integrity Server. Allows for a client to use FSA Proxy cache
    • Added the option to use an alternate workspace directory
    • Added the option to checkpoint before the build. A label is applied after the build was successful
    • Implemented a workaround for the open file handle issue when checking out of a large project
    • Fixed polling to look at the last build vs. the last successful build
    • Updated plugin pom.xml for Jenkins 1.427 dependency
  • Version 1.8 (May 06, 2011)
    • Added the ability to omit author information from Change Log report
    • Enhanced error handling when attempting to obtain author information for Change Log report
  • Version 1.7 (Apr 15, 2011)
    • Updated Change Log calculation and Workspace synchronization based on comparison of last build vs. last successful build
    • Fixed a Change Log generation issue when bad xml characters are present in member revision comments/description
  • Version 1.6 (Apr 01, 2011)
    • Fixed issue with Change Log when dropped files are encountered
  • Version 1.5 (Mar 17, 2011)
    • Fixed a Null Pointer Exception that occurs when an API session cannot be established with the Integrity Server
  • Version 1.4 (Mar 04, 2011)
    • Fixed issue with checking out members from shared subprojects
  • Version 1.3 (Feb 28, 2011)
    • Initial Jenkins release

233 Comments

  1. Unknown User (tomhe)

    This is great! However, all my jobs depend on more than one MKS project. Would it be possible to define multiple projects?

    1. Unknown User (cdsouza)

      From within MKS Integrity, you can define a shared subproject structure which essentially includes multiple top level projects.

      Then, you can supply this one umbrella project to the plug-in, which should get you the desired results.

  2. Unknown User (jerem)

    Great !! And so unusual to find an MKS plugin ... :)

    However I'm not able to launch my builds, as I get a NullPointerException right away ...

    I'm using Jenkins 1.401 and integrity-plugin 1.4 (I've hidden my project path in the following log)
    Started by an SCM change
    Preparing to execute si projectinfo for #/(**********************************************)
    FATAL: null
    java.lang.NullPointerException
    at hudson.scm.IntegritySCM.checkout(IntegritySCM.java:591)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1182)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:521)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:416)
    at hudson.model.Run.run(Run.java:1362)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:441)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145)

    1. Unknown User (cdsouza)

      Actually the NPE issue was fixed for a cleaner error message in version 1.5 of the plug-in

  3. Unknown User (jerem)

    NPE solved ! :) My IT told me APIs were activated, but they were not ... Now it works well, except an NPE sometimes on post-build checkpoint action.

    Thanks for this great plugin !

  4. Unknown User (jerem)

    Hello again,

    I encountered 3 new problems with the plugin :

    - it seems to consume 1 file descriptor on our MKS server per file to check-out in the project. So if project contains too many files, number of file descriptors limit is exceeded on server side, and plugin complains about file transfer issue ("too many files opened"). Don't know if it's link to api usage ("si projectco") or api way of working ...

    - it doesn't manage build sandboxes. Might not be considered a big issue as with Jenkins you usually want to build current version, but if your project contains a shared sub-project in "build" mode, build fails also, and this is a bigger issue.

    - incompatibility with jenkins mail notification and maven job. If I check mail notification in post-build for a maven-style job, post-build ends with an Exception (I can provide more details). Don't know if it's the case for non-maven jobs

    Thanks again, I can create Jira issues for these if you want, but I couldn't find integrity-plugin component in Jira when I tried ...

    1. Unknown User (cdsouza)

      • I've got a note into MKS Integrity Development team to figure out if a file descriptor is created on a per-file basis when the API executes "si projectco".  Stay tuned for developments to this...
      • As you know the plug-in doesn't use sandboxes.  However, shared build suprojects are certainly supported and tested in this plug-in.  Are you on a version of the MKS Integrity Server/Client version 2009/SP4 or higher?
      • Yes, please provide me with any stack traces from jenkins.err.log that indicates the MKS Integrity plugin is interferring with jenkins mail notification

      Sure, you can create Jira issues.  I just dont know whats the procedure to create the component in Jira.  Perhaps send a note to the Jenkins developer group and request that a component be created?

      1. Unknown User (jerem)

        Tried to create issues in Jira but it seems to be a little "ill" for now ... And I couldn't find your user in the list of possible "assignee" to assign the issues to you.

        My environment :

        Red Hat Enterprise Linux AS release 4 (Nahant Update 6)
        MKS 2009 build 4.10.0.5625 Service Pack:003-02

        Jenkins 1.406

        - For build sandboxes I will test again as soon as possible.

        - Here is the stacktrace for a job with MKS + Maven + Email notif (while it does not seem to relate to mks plugin, if I remove MKS plugin in job conf, exception does not occur) :ERROR: Processing failed due to a bug in the code. Please report this to jenkinsci-users@googlegroups.com
        java.lang.NullPointerException
        at hudson.maven.MavenModuleSetBuild$1.isDescendantOf(MavenModuleSetBuild.java:244)
        at hudson.maven.MavenModuleSetBuild$1.<init>(MavenModuleSetBuild.java:214)
        at hudson.maven.MavenModuleSetBuild.getChangeSetFor(MavenModuleSetBuild.java:208)
        at hudson.maven.FilteredChangeLogSet.<init>(FilteredChangeLogSet.java:51)
        at hudson.maven.MavenBuild.getChangeSet(MavenBuild.java:177)
        at hudson.model.AbstractBuild.getCulprits(AbstractBuild.java:280)
        at hudson.tasks.MailSender.createEmptyMail(MailSender.java:340)
        at hudson.tasks.MailSender.createFailureMail(MailSender.java:219)
        at hudson.tasks.MailSender.getMail(MailSender.java:146)
        at hudson.tasks.MailSender.execute(MailSender.java:94)
        at hudson.maven.reporters.MavenMailer.end(MavenMailer.java:53)
        at hudson.maven.MavenModuleSetBuild$Builder.end(MavenModuleSetBuild.java:961)
        at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:726)
        at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:423)
        at hudson.model.Run.run(Run.java:1362)
        at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:454)
        at hudson.model.ResourceController.execute(ResourceController.java:88)
        at hudson.model.Executor.run(Executor.java:145)
        project=hudson.maven.MavenModuleSet@12beb3dADMIN - Test of MKS Integrity Plugin
        project.getModules()=[hudson.maven.MavenModule@1f88953ADMIN - Test of MKS Integrity Plugin/dummy:GetHelloADMIN - Test of MKS Integrity Plugin/dummy:GetHelloGetHello, hudson.maven.MavenModule@1ffdf86ADMIN - Test of MKS Integrity Plugin/dummy:SayHelloADMIN - Test of MKS Integrity Plugin/dummy:SayHelloSayHello, hudson.maven.MavenModule@1abdb8a[]ADMIN - Test of MKS Integrity Plugin/dummy:project-packagerelativePath:project-package, hudson.maven.MavenModule@1da817bADMIN - Test of MKS Integrity Plugin/dummy:project-parentADMIN - Test of MKS Integrity Plugin/dummy:project-parentrelativePath]
        project.getRootModule()=hudson.maven.MavenModule@1da817bADMIN - Test of MKS Integrity Plugin/dummy:project-parentADMIN - Test of MKS Integrity Plugin/dummy:project-parentrelativePath
        FATAL: null
        java.lang.NullPointerException
        at hudson.maven.MavenModuleSetBuild$1.isDescendantOf(MavenModuleSetBuild.java:244)
        at hudson.maven.MavenModuleSetBuild$1.<init>(MavenModuleSetBuild.java:214)
        at hudson.maven.MavenModuleSetBuild.getChangeSetFor(MavenModuleSetBuild.java:208)
        at hudson.maven.FilteredChangeLogSet.<init>(FilteredChangeLogSet.java:51)
        at hudson.maven.MavenBuild.getChangeSet(MavenBuild.java:177)
        at hudson.model.AbstractBuild.getCulprits(AbstractBuild.java:280)
        at hudson.tasks.MailSender.createEmptyMail(MailSender.java:340)
        at hudson.tasks.MailSender.createFailureMail(MailSender.java:219)
        at hudson.tasks.MailSender.getMail(MailSender.java:146)
        at hudson.tasks.MailSender.execute(MailSender.java:94)
        at hudson.maven.reporters.MavenMailer.end(MavenMailer.java:53)
        at hudson.maven.MavenModuleSetBuild$Builder.end(MavenModuleSetBuild.java:961)
        at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:726)
        at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:423)
        at hudson.model.Run.run(Run.java:1362)
        at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:454)
        at hudson.model.ResourceController.execute(ResourceController.java:88)
        at hudson.model.Executor.run(Executor.java:145)

         

        1. Unknown User (cdsouza)

          Thanks for your stacktrace and environment details.  I think the problem has to do with your server version.  You're running with MKS 2009 build 4.10.0.5625 Service Pack: 003-02.  This plug-in requires a minimum of MKS Integrity 2009 SP4.  Is there anyway you could upgrade?

          Thanks!

        2. Unknown User (cdsouza)

          Thanks to Brian Krebs, I've included an update to the Change Log Set parsing functionality in v1.12. Can you please confirm if this latest update fixes this problem?

          Thanks!

      2. Unknown User (cdsouza)

        As a followup to the "too many files opened" issue.  I've got word from MKS Integrity Development team that this was indeed a problem with the initial release of the 2009 version.  Since then, there were some fixes made to the cache management on the Integrity Server.  This should no longer be an issue, if you're running with the latest service pack for MKS Integrity 2009.  If you're still having problems, please open a support ticket with MKS Customer Support and we'll have to investigate.

        Thanks!

        1. Unknown User (jerem)

          Just updated to SP5, now there is no "too many files" anymore, but I get a bunch of this during revisioninfo :

          INFO: si revisioninfo --user=jbousque --port=18000 --hostname=secret --project=#/secret --revision=1.1 -- Itoto.java returned exit code 128
          May 16, 2011 3:05:50 PM org.apache.commons.httpclient.HttpMethodBase processRedirectResponse
          INFO: Redirect requested but followRedirects is disabled
          May 16, 2011 3:05:53 PM hudson.scm.IntegrityCMMember <init>
          SEVERE: API Exception caught...
          May 16, 2011 3:05:53 PM hudson.scm.IntegrityCMMember <init>
          SEVERE: CannotGetRegistryLock

          I have a smaller project for wich it never happens ... And for a big project, first revisioninfo commands are OK, then exception becomes systematic.

          I'll try without changelog, but it's not a solution for me as what I expect the most as a feature from this plugin is the changelog ;-)

          1. Unknown User (cdsouza)

            Yes, when you first populate your workspace, the changelog is not really relevant, or is it? However, on subsequent updates you can switch the changelog back on which will attempt to get the revision info for just the changed files.

            On a separate note, I believe SP6 might have some updates in terms of the registry. Also, I've submitted RFCs internally to provide the author information from within the si viewproject itself. This will eliminate the need to run a separate command.

            1. Unknown User (jerem)

              You're right, by deactivating changelog for first build it works pretty well :) And of course for first build it's not relevant to have full list of files in changelog ... Maybe it could even be default behaviour of the plugin, I don't know what you think about this ?

              About "build" projects, it seems we can't reproduce it on our side either ... So I believe this is not an issue.

              And about possible incompatibility with mail sender /maven in jenkins job, I just checked again, and it's still true (same stacktrace) (Edit : still true for jenkins 1.412 and plugin MKS 1.8)

              1. Unknown User (cdsouza)

                For the mail issue, I'm not sure how to figure out the root cause.  The stack trace doesn't really provide much help.  Has anyone else noticed this problem?

  5. Unknown User (daniel_2e)

    Very good to find MKS support for a tool.

    I get the following exception just after the revisionInfo commands are executed. The exceptions comes when the first checkout command is executed. I use MKS 2009/SP4.

    Apr 21, 2011 3:22:26 PM hudson.scm.IntegritySCM checkout
    SEVERE: API Exception caught...
    Apr 21, 2011 3:22:26 PM hudson.scm.IntegritySCM checkout
    SEVERE: Address already in use: connect
    Apr 21, 2011 3:22:26 PM hudson.scm.IntegritySCM checkout
    INFO: returned exit code -1
    Apr 21, 2011 3:22:26 PM org.apache.commons.httpclient.HttpMethodBase processRedirectResponse
    INFO: Redirect requested but followRedirects is disabled
    Apr 21, 2011 3:22:26 PM hudson.scm.APISession Terminate
    INFO: Successfully disconnected connection ...

    BTW: Where's the JIRA project gone?

    1. Unknown User (cdsouza)

      Hi Daniel,

      This seems to be a problem with the API/Environment rather than the plug-in itself.  Can you try to reproduce this error outside of the plugin, example:

      mksapiviewer --xml --iphostname=<host name> --ipport=<port> --namedsession --sessionuser=<username> --sessionpassword=<password> COMMAND
      

      Where COMMAND is the command that fails in jenkins.err.log, example:

      mksapiviewer --xml --iphostname=cdsouzaw7 --ipport=7001 --namedsession --sessionuser=dsouza --sessionpassword=secret si projectco --user=dsouza --password=secret --port=7001 --hostname=cdsouzaw7 --overwriteExisting --nolock --project=#/Project/docgen --targetFile=remote://C:\Jenkins\jobs\Integrity Docs\workspace\src\docgen\Trigger.java --restoreTimestamp --lineTerminator=native --revision=1.2 Trigger.java 
      

      If you reproduce the error, then you'll need to contact MKS Customer Support to further investigate your environment. I'm not sure there was ever a JIRA project created...

      Thanks!

      1. Unknown User (daniel_2e)

        Hi,

        Thanks for the reply.

        I can't reproduce the error outside the plugin. It is just a normal si revisioninfo command.

        Checkout works well for smaller projects but when I try to check out our main project with around 16.000 files it fails.

        Maybe it would help me when the getAuthor function would return 'unknown' in case of an exception too.

        Is it possible to make the changeLog feature configurable? The checkout could be done much faster then without the 'revisioninfo' commands.

        1. Unknown User (cdsouza)

          Is is possible to get a bit more information from the logs on the exceptions?  Yes, I can certainly update the plug-in to return unknown in case of an exception.  That should be a relatively quick fix (will try to work on that today).  Also, yes I can make the checkout configurable in terms of skipping the revisioninfo commands altogether (will have to come back to this later though).

          Thanks!

        2. Unknown User (cdsouza)

          I've done both of the requested enhancements.  As of revision 1.8, if there is an exception with running 'si revisioninfo', then 'unknown' is returned for the user/author information.  Furthermore, you also have the option to completely skip the execution of 'si revisioninfo' to speed up the checkout action.

          Thanks!

          1. Unknown User (daniel_2e)

            The enhancements work well. Thank you very much.

            I have the solution for my problem with the 'Address already in use' exception.

            The problem is that the number of dynamically assigned ports is restricted to 5000 in Win XP. You can solve the problem by setting a registry key as described in the KB 196271.

  6. Unknown User (arnaud)

    In Jenkins, I've a job with MKS SCM triggered every X minutes.

    On my PC, I've a sandbox with the same project.

    I start some update in my PC's sandbox: I drop one folder and add one with 2 files in as new members; update is associated to a Change Package and not yet submitted.

    Jenkins trigs MKS SCM which find this change!

    I don't like this behavior: when I was preparing update in my PC's sanbox, I don't want that MKS plug-in take them in account before I submit change package.

    IMO, MKS plug-in need additional configuration to said which behavior we want:

    • unstable: all change with update in progress (I dislike this but someone could want it)
    • stable: all change associated to closed Change Package
    • release: all change associated to last Check Point

    Arnaud.

    1. Unknown User (arnaud)

      Side effect that job is triggered twice instead of one: one before change package and one after

      Arnaud.

    2. Unknown User (cdsouza)

      Hi, if you make "Deferred Operations" mandatory, then none of the operations (check-in, drop, rename, move, add subproject, drop subproject, etc.) become final and available to the plug-in until after you submit the Change Package.  Note this configuration is not the same as turning on Change Package Review.  Although, Change Package Review will also get you the desired outcome.  Keep in mind Change Package Review does impose other restrictions.  Hence I would recommend using mandatory "Deferred Operations" which can be configured with Integrity.

      All changes associated with a Check Point is already supported in the plug-in.  Unfortunately, there is no notion of the "last checkpoint" as checkpoints can be applied anywhere within the project configuration, i.e. normal (trunk) or any variant.  If you want to use symbolic references to checkpoint versions (Example :head, or :branchtip, etc.), then you might want to submit an RFC with MKS Customer Support to the core product.

  7. Unknown User (fouquec)

    Hello,

    First, thanks for this very helpful plugin! Just a question regarding the checkpoint: why setting the checkpoint after the build ?

    It would be interesting to set the checkpoint BEFORE the build, then write the label
    associated to this checkpoint AFTER the build, only if the build is successful. Here, you extract from the checkpoint
    that has just been created then.

    Because setting the checkpoint after the build may induce a delta between what has been extracted for the build and
    what will be checkpointed as far as developpers may submit changes during the build and before the checkpoint is created.
    Finally, in that case, rebuilding from the checkpoint will give different binaries (because the sources are different).

    What do you think ?

    Rgds.

    1. Unknown User (cdsouza)

      Hi,

      That is an excellent observation!  Initially I had hoped that one could checkpoint in the tool, then supply that checkpoint for the build.  However, I realize that it is not an automatic process.  As there is no way to reference checkpoints using symbolic reference.  I'd be happy to add this feature in the next update.  It may be a little while until I get to it as I'm a bit swamped at the moment.

      Thanks!

    2. Unknown User (cdsouza)

      I'm preparing to implement this feature.  However, I've run into a limitation with the 'addprojectlabel' command.  It does not recurse the label into subprojects (which is the default behavior when a label is applied to the checkpoint).  Could you please get in touch with MKS Customer Support and request that your organization would really like to see RFC 129440 implemented?

  8. Unknown User (olegschubert)

    Hi,

    Is there any place from which I could download this plugin but already compiled?

    1. Unknown User (olegschubert)

      I've just found it by myself, sorry I bothered you guys.

      Best regards.

  9. Unknown User (daniel_2e)

    Hello,

    the plugin works great for me, but now I have a problem.

    I need to set a local checkout path relative to the workspace home directory, because the project I want to build needs a fix directory structure. Is there a chance to get this option. I don't think it is a big deal but it would help me very much.

    Best regards,

    Daniel

    1. Unknown User (cdsouza)

      Hi,

      Yes, that should be a relatively straight forward.  I will add it to the list of feature requests.  If you like a more immediate support, please contact your MKS account team for resolution.

      Thanks!

    2. Unknown User (cdsouza)

      This feature is now implemented with version 1.9 of the plugin

  10. Unknown User (fouquec)

    Hi Cletus,

    Thanks for your answer on the Checkpoint point !

    I encounter an issue when getting sources from MKS with the plugin : it happens when the project contains a large number of files, which leads to "GRAVE:.....Too many open files" error .... and MKS server breakdown. :(

    The problem comes from to many file handlers are opened, is that right ? Then, is there another way to implement this ?! Thanks for your answer!

    Best regards,

    Christophe.

  11. Unknown User (fouquec)

    Hi Cletus,

    Thanks for your answer on the Checkpoint point !

    I encounter an issue when getting sources from MKS with the plugin : it happens when the project contains a large number of files, which leads to "GRAVE:.....Too many open files" error .... and MKS server breakdown. :(

    The problem comes from to many file handlers are opened, is that right ? Then, is there another way to implement this ?! Thanks for your answer!

    Best regards,

    Christophe.

    1. Unknown User (cdsouza)

      Hi Christophe,

      It turns out that the MKS API keeps all file handles open until the API Session is closed.  Hence there are three options:

      1) Increase the file handles limit (on the MKS Integrity Server) that will cover all files in the project

      2) I will have to update the plugin to batch the checkout process, closing the API Session after every x files and reopening a new one

      3) Escalate this issue with MKS product development (via your Account Manager) to get this behavior fixed in the API

      I would really prefer #3 as it is the most cleanest solution.  However, depending on the priority/timing of this issue for your organization, I'd be open to entertain #2.

      Thanks!

      1. Unknown User (fouquec)

        Hi!

        It would be great if you could manage option #2 ! 

        Thanks. 

        1. Unknown User (cdsouza)

          Option #2 workaround has been implemented in version 1.9 of the plugin.  I've set a treshold of 500 files.  After every 500 files, the API Session is terminated and re-created.  Hopefully this workaround should now enabled you to checkout from large projects.

  12. Unknown User (alokch)

    Hi,

    After using CruiseControl, i tried to give Jenkins a try, which seems like a refreshing change.

    However, while I noticed that in MKS integration, CruiseControl is able to give me a change snapshot within couple of minutes with <modificationset> <mks>, with the details of authors as well.

    But when I use MKS plugin with Hudson, the polling is quite slow with the si revisioninfo being called for each member.

    It works fine when, i check the "Omit Author in Change Log?", but then i miss the authors.

    Not sure why this is happening, maybe due to the fact that CruiseControl is working on <localworkingdir> in <mks>, while Hudson is working only on the MKS project, and not the local sandbox.

    Thanks/-

    Alok

    1. Unknown User (cdsouza)

      I'm not familiar with the Cruise Control integration so can't comment on the specifics. 

      Yes, you are correct in that the Jenkins plugin works directly against the project which was an intentional decision.  This gives the Jenkins plugin greater flexibility with regards to switching projects/configurations and dropping workspaces at will.  Not to mention that it does not use the MKS Integrity Client which means the overall footprint is really low.  There are a few API limitations which is causing a separate command to obtain the author information.  I've submited a RFC to MKS Development and unfortunately, until that RFC is accepted and delivered the plug-in will be less performant in this area.

  13. Unknown User (mcmarto)

    Is there a way to force the checkout of empty folders using the plugin? Our build tries to copy files to an empty folder but fails to find it since it wasn't created by the MKS check out operation.

    1. Unknown User (cdsouza)

      Yes, the next version (1.9) of the plug-in will create empty folders first and then checkout the files

      1. Unknown User (mcmarto)

        Thanks - there may be workarounds but this should make life easier for us.

  14. Unknown User (fouquec)

    Hi Cletus,

    Many thanks for this new 1.9 version.

    I am facing an issue when fetching sources, here is the log from jenkins.err.log:

    NFO: Attempting to checkout file: F:\Jenkins\jobs\Build\src\xxxxxxxxxxxxxxxxxxxxx at revision 1.1
    31 août 2011 13:48:57 org.apache.commons.httpclient.HttpMethodBase processRedirectResponse
    INFO: Redirect requested but followRedirects is disabled
    31 août 2011 13:49:18 org.apache.commons.httpclient.HttpMethodBase readResponseBody
    ATTENTION: Unsupported transfer encoding:
    31 août 2011 13:49:18 org.apache.commons.httpclient.HttpMethodBase readResponseBody
    INFO: Response content is not chunk-encoded
    31 août 2011 13:49:18 hudson.scm.IntegrityCheckoutTask invoke
    GRAVE: API Exception caught...
    31 août 2011 13:49:18 hudson.scm.IntegrityCheckoutTask invoke
    GRAVE: Connection timed out: connect
    31 août 2011 13:49:18 hudson.scm.IntegrityCheckoutTask invoke
    INFO:  returned exit code -1
    31 août 2011 13:49:18 org.apache.commons.httpclient.HttpMethodBase processRedirectResponse
    INFO: Redirect requested but followRedirects is disabled
    31 août 2011 13:49:18 hudson.scm.APISession Terminate
    INFO: Successfully disconnected connection xxxxx@xxx.xxx.yy:1001
    31 août 2011 13:49:19 org.apache.commons.httpclient.HttpMethodBase processRedirectResponse
    INFO: Redirect requested but followRedirects is disabled
    31 août 2011 13:49:19 hudson.scm.APISession Terminate
    INFO: Successfully disconnected connection xxxx@xxx.xxx.yy:1001
    31 août 2011 13:49:19 hudson.scm.IntegritySCM buildEnvVars
    INFO: buildEnvVars() invoked...!

    ....

    It happens when fetching a large project with about 11000 files and 2000 folders. Could you please help on this ??

    Thanks.

    1. Unknown User (cdsouza)

      Hi Christophe,

      My initial thought is to attempt to reproduce this problem via the 'mksapiviewer' (example in another response above).  However, my fear is that it won't be reproducible when executed on a single file out of 11000.  Please give that a try anyway.  Either way, you will need to open a Service Request with MKS Customer Support.  There is little I can do from the plug-in point of view.

      NOTE/FYI: I've just completed the Integrity SCM Provider for Maven, which should be available when Maven releases 1.6 of the maven-scm plugin.  The difference between the Maven and Jenkins integrations is that the Maven integration uses an Integrity Client and Sandbox.

      Thanks!

      1. Unknown User (fouquec)

        Arrrrgggggg.....my mistake !

        I did'nt update my Jenkins! So, now after upgrading to 1.427 (from 1.413) there is no more error and the fetch works fine!

        Thanks.

      2. Unknown User (jerem)

        Dear Cletus,a bit "off topic" (but as you talked about :) ), I'm trying to use your new Maven integration as scm provider (as maven-scm-plugin 1.6 is out now), and I already found 2 eventual problems ... Should I log them in JIRA of maven SCM plugin or is there another place ?

        1. Unknown User (jerem)

        2. Unknown User (cdsouza)

          Hi Jeremie,
          Yes, please post issues against the integrity scm provider in JIRA.
          Thanks!

          1. Unknown User (jerem)

            I already created 3 issues (smile) : SCM-652, SCM-653 and SCM-654
            Sorry no patch to propose though ... :/ For SCM-654, I was working on a draft mks plugin for maven, and I had implemented the change package thing, so I believe I could help if you needed it (but I'm pretty sure you don't (wink) ). But it was far less advanced than your version so I don't think I'll work on it again (thanks for that).

            1. Unknown User (cdsouza)

              Thanks! I'll review those as soon as I can.

  15. Unknown User (jerem)

    Since I activated the PTC plugin on some jobs (only 2 in fact for now), I regularly get this message from Jenkins admin page :

    "There are more SCM polling activities scheduled than handled, so the threads are not keeping up with the demands. Check if your polling is hanging, and/or increase the number of threads if necessary."

    Incriminated jobs are always using integrity CM plugin ... And sometimes they have polling log started few days ago - but never finished. I believe it's the polling threads being stuck for some reason. I couldn't find other way than restarting my jenkins instance ... I also don't know how to activate more logs, if possible, for polling threads ...

    I'm using PTC plugin 1.11 and Jenkins 1.440 (though it was the same behaviour with older versions)

    1. Unknown User (cdsouza)

      Hi Jeremie,
      Thoughts on how I might be able to reproduce this problem so it can be fixed?
      Thanks!

      1. Unknown User (jerem)

        Nope, no idea ... I don't even know when it happens particularly ...

        Since I migrated to jenkins 1.442, it did not happen again, so I'll keep you updated only if it happens again.

        1. Unknown User (jerem)

          Sorry, my bad, I should have checked before, but in fact it happened again ...

          Only thing I can think of, is the content of the "scm-polling.log" for the concerned jobs :

          Started on Dec 9, 2011 10:31:29 AM
          Preparing to execute si projectinfo for #/Domain#dummy/config/path
          

          It seems to have been hanging on si projectinfo for 6 days now ...

          I've got 3 jobs stucked like that, one for 6 days, one for 3 days, the last for 1 day. So it does not seem to relate to another external event (server crash or so), because they're connected to same mks server, from same jenkins instance, otherwise they would have hang at the same time approximately.

          My jobs configuration has nothing particular ... (no checkpoint, no tag, no build item, just server/port/configpath).
          Do you think it could it be again a problem linked to the si projectinfo (for authors) ?

          1. Unknown User (cdsouza)

            Could be... Can you turn up debug logging to see what was the last command that was executed? The log of interest is the jenkins.err.log.
            Thanks!

            1. Unknown User (jerem)

              I tried to add a Logger in jenkins "System Log" on "org.jenkins-ci.plugins.integrity-plugin", but nothing appears ... Do you know how I can add debug logs for the plugin ? (by the way on my linux instance I could not find the jenkins.err.log)

              1. Unknown User (cdsouza)

                Logging is now changed as of 1.29, so you shouldn't have trouble finding debug logs (smile)

  16. Unknown User (jerem)

    Hello,

    I have another issue with plugin (v1.11), with the "checkpoint before build" option.

    My projects is correctly checked-out, considering its configuration path, but if I activated the "checkpoint before build" option I get this error :

    Preparing to execute si projectinfo for #/my/config/path
    Preparing to execute pre-build si checkpoint for #/my/config/path
    Successfully executed pre-build checkpoint for project #/my/config/path, new revision is 1.2
    Preparing to execute si viewproject for #/my/config/path#forceJump=#b=1.2
    FATAL: String index out of range: -1
    java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    	at java.lang.String.substring(String.java:1938)
    	at hudson.scm.IntegrityCMProject.parseProject(IntegrityCMProject.java:236)
    	at hudson.scm.IntegritySCM.initializeCMProjectMembers(IntegritySCM.java:537)
    	at hudson.scm.IntegritySCM.checkout(IntegritySCM.java:657)
    	at hudson.model.AbstractProject.checkout(AbstractProject.java:1195)
    	at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:568)
    	at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:457)
    	at hudson.model.Run.run(Run.java:1404)
    	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:481)
    	at hudson.model.ResourceController.execute(ResourceController.java:88)
    	at hudson.model.Executor.run(Executor.java:238)
    
    1. Unknown User (cdsouza)

      Hi Jeremie,
      I've updated the plugin to use the mksapi.jar from 2009 SP6 (9049). If your server is not yet upgraded to 2009 SP6 or later, then there could be some api incompatibilities. Your best option is to replace the mksapi.jar (in the deployed plugin folder of your Jenkins server) with the mksapi.jar from 2009 SP5. You can get the older jar file from your Integrity Client installation. When you do replace the jar, make sure you preserve the name.
      Thanks!

    2. Unknown User (cdsouza)

      On second thoughts, this might have nothing to do with the api compatibility. It seems like in your case the subproject names have no forward slashes. It could be back slashes, but I'll need to see the output to be sure. Can you run the following command via the mksapiviewer and post a snippet of the xml that is related to a sub project?

      mksapiviewer --xml --iplocal si viewproject -R --project=#/my/config/path#forceJump=#b=1.2 --fields=name,context
      

      You'll need to run the above command from a machine that has the Integrity Client installed. Specifically, I'm looking for output like:

          <WorkItem id="#/Projects/Sample#b=1.6.1.2#Subproject" 
                    parentID="#/Projects/Sample#b=1.6.1.2" 
                    displayId="/Projects/Sample/Subproject/project.pj" 
                    modelType="si.Subproject">
            <Field name="name">
              <Value dataType="string">/Projects/Sample/Subproject/project.pj</Value>
            </Field>
          </WorkItem>
      
      1. Unknown User (jerem)

        Here is the output of mksapiviewer you asked for (I did not test your proposal about mksapi.jar yet) :

           <WorkItem id="#/Domain#REUSE#Tools/BUILD/Tool#Dev/ProjectExamples/sample-mks-plugin#forceJump=#b=1.2#hello-world" 
              parentID="#/Domain#REUSE#Tools/BUILD/Tool#Dev/ProjectExamples/sample-mks-plugin#forceJump=#b=1.2" 
              displayId="/Domain/REUSE/Tools/BUILD/Tool/Dev/ProjectExamples/sample-mks-plugin/hello-world/project.pj"     
              modelType="si.Subproject">
              <Field name="name">
                <Value dataType="string">/Domain/REUSE/Tools/BUILD/Tool/Dev/ProjectExamples/sample-mks-plugin/hello-world/project.pj</Value>
              </Field>
              <Field name="parent">
                <Value dataType="string">/Domain/REUSE/Tools/BUILD/Tool/Dev/ProjectExamples/sample-mks-plugin/project.pj</Value>
              </Field>
              <Field name="type">
                <Value dataType="string">build-subproject</Value>
              </Field>
              <Field name="memberrev">
                <Item id="1.2" displayId="1.2" modelType="si.Revision">
                </Item>
              </Field>
            </WorkItem>
        
        

        By the way I checked in the exhaustive command output (for all subfolders), and there is no backslash nowhere (only slashes '/' )

        1. Unknown User (cdsouza)

          That is really strange! From the code/exception, it seems like it wasn't able to find a forward slash '/', but clearly the api response is correct. Also, I've not been able to reproduce this problem. This leaves me with the only option is to ensure that the SP on your Integrity Server is equal to or higher than the mksapi.jar that is bundled with the plugin.

  17. Unknown User (joerg_werner)

    Really a great plugin. I use it currently for four projects. Complete setup up (Jenkins and PTC) was done within 4 hours!

    Everything was okay but now I get for one project an error.

       Preparing  to execute si viewproject for  #d:/MKS_Data/Projects/..../SRC.pj
     java.io.EOFException
             at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
             at java.io.ObjectInputStream.readObject0(Unknown Source)
             at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
             at java.io.ObjectInputStream.readSerialData(Unknown Source)
             at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
             at java.io.ObjectInputStream.readObject0(Unknown Source)
             at java.io.ObjectInputStream.readObject(Unknown Source)
             at java.util.ArrayList.readObject(Unknown Source)
    

    changelog.xml is empty (0kb).

      Thanks, Joerg

     

    1. Unknown User (joerg_werner)

      I think I know what is going on.

      During one build I got a Fatal JavaHeap Space error. Of course the build was aborted. But in the builds directory an empty file changelog.xml was created.

      Thereafter all builds were aborted and the error log file contains "Failed to parse ....changelog.xml" and and again an empty changelog.xml file was created.

      I now dropped all failed builds and started a new build. Now it seems to work.

       Jörg

    2. Unknown User (cdsouza)

      Hi Joerg,
      Please let me know if you're still having issues.
      Thanks!

      1. Unknown User (joerg_werner)

        Hi Cletus,

        after I dropped the failed builds, everything works fine. Nevertheless I believe that it will happen again.

        The log file shows only an error when reading an empty changelog.xml. (see below)

        I manually modified this file, but I could not recreate the problem. Anyway, may be it is possible to check the size of changelog.xml and if it is 0 or the format is invalid ignore the old build? (So far I not familiar with the plugin code, but maybe the plugin becomes a little bit more stable.)

         Kind regards, Jörg

        08.12.2011 17:57:12 hudson.model.Run run
        INFO: XXX-SRC #16 main build action completed: FAILURE
        hudson.util.IOException2: Failed to parse E:\Jenkins\.hudson\jobs\XXX-SRC\builds\2011-12-08_17-44-34\changelog.xml
                at hudson.scm.IntegrityChangeLogParser.parse(IntegrityChangeLogParser.java:64)
                at hudson.scm.IntegrityChangeLogParser.parse(IntegrityChangeLogParser.java:20)
                at hudson.model.AbstractBuild.calcChangeSet(AbstractBuild.java:796)
                at hudson.model.AbstractBuild.getChangeSet(AbstractBuild.java:771)
                at hudson.model.AbstractBuild.getCulprits(AbstractBuild.java:314)
                at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:624)
                at hudson.model.Run.run(Run.java:1429)
                at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
                at hudson.model.ResourceController.execute(ResourceController.java:88)
                at hudson.model.Executor.run(Executor.java:238)
        Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
                at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(Unknown Source)
                at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Unknown Source)
                at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
                at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(Unknown Source)
                at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
                at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
                at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
                at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
                at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
                at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
                at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
                at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
                at org.apache.commons.digester.Digester.parse(Digester.java:1631)
                at hudson.scm.IntegrityChangeLogParser.parse(IntegrityChangeLogParser.java:60)
                ... 9 more
        

        WikipediaWictionaryChambers (UK)Google imagesGoogle defineThe Free DictionaryJoin exampleWordNetGoogleUrban DictionaryAnswers.comrhymezone.comMerriam-Webster<>0wvcidfjoguarm

  18. Unknown User (joerg_werner)

    Hello,

    I understand that it is not possible to define in "Integrity project" the latest checkpoint.

    Nevertheless we have an usecase where this would be quite helpful. Some people have no MKS access and we have a script which extract the latest checkpints on our build server.

    I would like to know if the following can also be done with Jenkins, PTC Integrty plugin and maybe additional plugins. Of course the best thing would be if the PTC Integrity plugin can do it:-)

    The process is really simple:
    1) Get a list of all checkpoints and order the list by date. (see below)
    2) For the n latest checkpoints check if the checkpont is already extracted and if not start the check out.
    3) For all older checkpoints also check if the checkpoint is already extracted and if yes the extracted files are dropped.

    This works also for variants.

    Do you think that this is possible?

      Cheers, Jörg

    U:\>si viewprojecthistory --yes --batch --fields=revision,date -P d:/MKS_Data/Projects/customer-projects/cpj_XXX/SW/SW_OUT/SW_OUT.pj
    Connecting to si-da-mks.de.xxx.com:7001 ...
    Connecting to si-da-mks.de.xxx.com:7001 as WEJ1LR ...
    d:/MKS_Data/Projects/customer-projects/cpj_XXX/SW/SW_OUT/SW_OUT.pj
    1.31    21.10.2011 15:08:06
    1.30    06.10.2011 17:44:56
    1.29    20.09.2011 16:40:59
    1.28    19.08.2011 14:08:31
    1.27    18.08.2011 17:35:55
    1.26    01.08.2011 13:33:14
    1.25    18.07.2011 11:46:30
    1.24    30.06.2011 09:58:41
    1.23    29.06.2011 18:29:17
    1.22    01.06.2011 14:40:50
    1.21    30.05.2011 16:11:15
    1.20    25.05.2011 17:52:17
    1.19    04.05.2011 15:31:20
    1.18    15.04.2011 16:05:57
    1.17    08.04.2011 17:28:53
    ...
    
  19. Unknown User (fouquec)

    Hello Cletus,

    I was wondering if there is a way to get the Integrity Username and password stored at a higher level than in each build Job config ?

    As I manage the Jobs with my own LDAP credentials, each time I change my password I have to go through all the Jobs to re-enter my password....

    Did I miss something ??? :-)

    Thanks for your answer.

    Best regards.

    1. Unknown User (fouquec)

      Hi,

      finally, yes I definitly missed something !!!

      Sorry !

      Rgds.

  20. Unknown User (vinodboyina)

    Hi, Whenever I try to connect directly providing the hostname and pwd it connects without any issues. But when I try use the proxy server details in point server hostname and port. I am getting "Failed to establish an API connection to the Integrity Server!"

    I thought point server hostname is intended for proxy server hostname and port, Please correct me if I am wrong. If that is correct then why am I getting this exception.

    The jenkins err log says:

    14 Mar, 2012 10:41:08 AM jenkins.InitReactorRunner$1 onTaskFailed
    SEVERE: Failed Loading plugin warnings
    java.io.IOException: Dependency analysis-core (1.31) doesn't exist
        at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:446)
        at hudson.PluginManager$2$1$1.run(PluginManager.java:305)
        at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
        at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
        at jenkins.model.Jenkins$5.runTask(Jenkins.java:814)
        at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
        at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

    1. Unknown User (cdsouza)

      Hi,

      You need to make sure that the Proxy Server allows API connections. Unfortunately, the jenkins.err.log doesn't provide a useful stacktrace that I can narrow down to the Integrity plugin.

      FYI, even if you enable the Proxy Server for API connections, there is problem with the Integrity API in that is doesn't really use the Proxy Server cache (Integrity FSA technology). So, you may be just better off sticking to a direct server connection.

      Feel free to escalate the "Integrity API via the Proxy Server" issue with Integrity Customer Support.

      Thanks!

      1. Unknown User (vinodboyina)

        Thanks Cletus. I will stick with direct connection but it is drastically reducing the build time :(

        Will try to escalate with support team.

  21. Unknown User (dmeilinger)

    Hi All,

    I am in the process of writing some Jelly/Groovy scripts using the Email-ext plugin.  I am having some difficulty with both the email templates and the JSON API as it pertains to ChangeSets.  In the Jenkins UI for a build we can see the author, filename, revision, etc.  However, this data does not seem to complete in either the Email Templates or the JSON API.  The author, date, revision, are present but both the PATHS and AFFECTEDPATHS array's are empty.  Is this a bug in the SMC implementation or am I going about this the wrong way? 

    Also, is the source code for the PTC plugin available?  

    Thanks for your assistance ! 

    1. Unknown User (cdsouza)

      The Integrity plugin doesn't summarize the Change Log grouped by Change Packages. Hence the paths in ChangeSets is empty. Currently, every change is a Change Set in it of itself. So to get to the file path, you can use the following groovy code:

      <table>
        <tr>
         <th>Author</th>
         <th>File</th>
         <th>Date</th>
         <th>Comment</th>
        </tr>
       <j:forEach var="cs" items="${it.items}" varStatus="loop">
        <tr>
         <td>${cs.author}</td>
         <td>${cs.file}</td>
         <td>${cs.date}</td>
         <td>${cs.msg}</td>
        </tr>
       </j:forEach>
      </table>
      

      The source code is available from Jenkin's git-hub repositories

    2. Unknown User (jagankalluri)

      Hello Dirk,

      If You are able to Include all changes list with Your email ,can you please share us The Groovy Script.Please send The same to kallurijagan at gmail dot com

      Thanks,

      Jagan

      1. Unknown User (dmeilinger)

        Here is what I did, hope it helps!

        <table class="withBorder" cellpadding="2" cellspacing="0">
        	<tr><td class="title">Changes</td></tr>
        	<tr>
        		<td>
        		<table>
        			<tr>
        				<td class="columnHead">Action</td>
        				<td class="columnHead">Author</td>
        				<td class="columnHead">File</td>
        				<td class="columnHead">Revision</td>
        				<td class="columnHead">Date</td>
        				<td class="columnHead">Comments</td>
        			</tr>
        
        
        			<%
        			def changeSet = build.changeSet //IntegrityChangeLogSet.IntegrityChangeLog
        			if(changeSet != null) {
        			  def hadChanges = false
        			  changeSet.each() { cs ->
        				 hadChanges = true
        				 def aUser = cs.author %>
        				 <tr>
        					<td><a href="<%= cs.differences %>"><%= cs.action %></a></td>
        					<td><%= aUser.displayName %></td>
        					<td><%= cs.file %></td>
        					<td><%= cs.rev %></td>
        					<td><%= cs.date %></td>
        					<td><%= cs.msg %></td>
        				</tr>
        			<%}
        			  if(!hadChanges) { %>
        			   <tr><td colspan=6> No changes</td></tr>
        			<%}
        			} %>
        			</table>
        		</td>
        	</tr>
        </table>
        
    3. Unknown User (jagankalluri)

      Hello Dirk,

      If You are able to Include all changes list with Your email ,can you please share us The Groovy Script.Please send The same to kallurijagan at gmail dot com

      Thanks,

      Jagan

  22. Unknown User (cyril_jean)

    Hi Cletus,

    I'm building a farm of builders/testers with Jenkins & MKS.

    So I've got this use case where one project might be build on another machine than previously. I've noticed that in that case, Integrity plugin will not update the workspace on the slave machine, considering I guess that it was already up to date on the master machine.

    Secondly, I'm wondering if there was a particular limitation / technical issue that has prevented you to use MKS sandboxes for the jenkins integrity plugin ?

    Rgds,

    Cyril

    1. Unknown User (cdsouza)

      Hi Cyril,

      The architecture of the Integrity Client is pretty complex to get it to work running under the context of a Windows service. While it is possible to get the client to work under the conext of a Windows service, it involves several steps and does not integrate well with Jenkins. Hence, I choose to stay away from the sandbox all together.

      I recognize the need to provide 'sandbox' like support especially to get files that were accidently or indentionally deleted/modified in the workspace. I will work on this feature in the next version of the plug-in.

      Thanks!
      Cletus

      1. Unknown User (cyril_jean)

        Hi Cletus,

        I've noticed you added the file integrity checking in the last version, thanks a lot for that.

        Now i'm running with a mix of job using your plugin and other using script based MKS sandbox resync.

        I have a problem with one job I cannot succeed to resync using your plugin. You have to know that I'm far away from server so this can take from 2h to 4h to build the workspace from scratch.

        After around 2h30, I have this error in jenkins logs:

        Jun 05, 2012 3:26:14 PM [INFO] IntegritySCM - API Exception caught...
        Jun 05, 2012 3:26:14 PM [INFO] IntegritySCM - Unexpected HTTP status: No app name specified.
        Jun 05, 2012 3:26:14 PM [INFO] IntegritySCM - com.mks.api.response.APIConnectionException: Unexpected HTTP status: No app name specified.
        Jun 05, 2012 3:26:18 PM [INFO] IntegritySCM - Failed to shutdown database connection!
        Jun 05, 2012 3:26:18 PM [INFO] IntegritySCM - Database 'D:/tools/.jenkins/jobs/Platform/builds/2012-06-05_12-33-53/PollingResult/IntegritySCM' not found.
        Jun 05, 2012 3:26:18 PM [INFO] IntegritySCM - java.sql.SQLException: Database 'D:/tools/.jenkins/jobs/Platform/builds/2012-06-05_12-33-53/PollingResult/IntegritySCM' not found.
        J
        Jun 05, 2012 3:26:14 PM [INFO] IntegritySCM - API Exception caught...

        Jun 05, 2012 3:26:14 PM [INFO] IntegritySCM - Unexpected HTTP status: No app name specified.

        Jun 05, 2012 3:26:14 PM [INFO] IntegritySCM - com.mks.api.response.APIConnectionException: Unexpected HTTP status: No app name specified.

        The project tree is not unreasonable in term of size & items number.

        Tks

        Cyril

  23. Unknown User (dmeilinger)

    Hi Cletus,

    I started having a problem today with my builds.  I took a look at the logs and saw the following.  Is this is problem with the plugin or on our server?Building on master in workspace C:\Apps\Jenkins\jobs\ALPHA V5\workspace
    Change Log: http://xxxxx:8080/job/ALPHA%20V5/220/changes
    Build Log: http://xxxxxx:8080/job/ALPHA%20V5/220/console
    Preparing to execute si projectinfo for #/core#d=2012.Q2-Core_Alpha#v5
    Preparing to execute si viewproject for #/core#d=2012.Q2-Core_Alpha#v5
    A SQL Exception was caught!
    A truncation error was encountered trying to shrink VARCHAR '1.1.1.1.2.13.1.1.3.4.4.6.2.2.1.1.1.1' to length 30.
    Email was triggered for: Failure

    1. Unknown User (dmeilinger)

      FYI,

      I am beginning to believe that this is related to the 1.13 upgrade I did yesterday.  We started to get a bunch of these errors in jenkins.err.log around that time.  I tried to downgrade back to 1.12 but got this error.java.io.IOException: Failed to rename C:\Apps\Jenkins\plugins\integrity-plugin.bak to C:\Apps\Jenkins\plugins\integrity-plugin.jpi
      at hudson.model.UpdateCenter$PluginDowngradeJob.replace(UpdateCenter.java:1251)
      at hudson.model.UpdateCenter$UpdateCenterConfiguration.install(UpdateCenter.java:681)
      at hudson.model.UpdateCenter$PluginDowngradeJob._run(UpdateCenter.java:1240)
      at hudson.model.UpdateCenter$PluginDowngradeJob.run(UpdateCenter.java:1223)
      at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)

    2. Unknown User (cdsouza)

      I'm a little reluctant to fix this issue as this seems to be caused due to incorrect usage of Integrity SCM. I've no idea how/why your file revision is 8 branches off the main trunk.

      If you can't fix your usage pattern, then I may be able provide some intermediate help by doubling the revision storage from 30 to 60, but you really need to review your development practice as this sort of revision number should never get created

      Thanks!
      Cletus

    3. Unknown User (cdsouza)

      The 1.13 revision is a major architectural change in terms of how Integrity SCM project information is cached in your build job folders. This new version is not backward compatible with the older caching mechanism.

    4. Unknown User (dmeilinger)

      Last update.  I had to revert to 1.12 manually.  This fixed my issue. When I tried to revert with Jenkins UI it errored as indicated in previous message but deleted the integrity-plugin.jpi, leaving only the .bak.  Stopped Jenkins and renamed the .bak, then went back to Plugin Manager.  It said my PTC Plugin was version 1.12 and offered me the option to downgrade to 1.12.  I did that and re-started and tried to run a build.  I got an NPE from the PTC plugin.  I looked at my build config and all of my integrity project names were blank.  I replaced these and ran the builds successfully.

  24. Unknown User (jenkins_fighter)

    Even i am seeing errors in the log file.

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Failed to shutdown database connection!
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Database 'E:/jenkins/jobs/Compliance/builds/2012-03-20_12-16-28/IntegritySCM' shutdown.
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - java.sql.SQLNonTransientConnectionException: Database 'E:/jenkins/jobs/Compliance/builds/2012-03-20_12-16-28/IntegritySCM' shutdown.
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - SQL Exception caught...
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - java.sql.SQLSyntaxErrorException: Schema 'DBUSER' does not exist
    May 9, 2012 11:15:52 AM org.apache.commons.httpclient.HttpMethodBase readResponseBody
    WARNING: Unsupported transfer encoding: 
    May 9, 2012 11:15:52 AM org.apache.commons.httpclient.HttpMethodBase readResponseBody
    INFO: Response content is not chunk-encoded
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Failed to shutdown database connection!
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Database 'E:/jenkins/jobs/Compliance/builds/2012-03-20_12-16-28/IntegritySCM' not found.
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - java.sql.SQLException: Database 'E:/jenkins/jobs/Compliance/builds/2012-03-20_12-16-28/IntegritySCM' not found.
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Failed to shutdown database connection!
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Database 'E:/jenkins/jobs/Compliance/builds/2012-03-20_12-16-28/PollingResult/IntegritySCM' shutdown.
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - java.sql.SQLNonTransientConnectionException: Database 'E:/jenkins/jobs/Compliance/builds/2012-03-20_12-16-28/PollingResult/IntegritySCM' shutdown.
    May 9, 2012 11:15:57 AM hudson.model.AsyncPeriodicWork$1 run
    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Failed to shutdown database connection!

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Database '/builds/2012-03-20_12-16-28/IntegritySCM' shutdown.

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - java.sql.SQLNonTransientConnectionException: Database '/builds/2012-03-20_12-16-28/IntegritySCM' shutdown.

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - SQL Exception caught...

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - java.sql.SQLSyntaxErrorException: Schema 'DBUSER' does not exist

    May 9, 2012 11:15:52 AM org.apache.commons.httpclient.HttpMethodBase readResponseBody

    WARNING: Unsupported transfer encoding: 

    May 9, 2012 11:15:52 AM org.apache.commons.httpclient.HttpMethodBase readResponseBody

    INFO: Response content is not chunk-encoded

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Failed to shutdown database connection!

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Database '/builds/2012-03-20_12-16-28/IntegritySCM' not found.

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - java.sql.SQLException: Database '/builds/2012-03-20_12-16-28/IntegritySCM' not found.

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Failed to shutdown database connection!

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - Database '/builds/2012-03-20_12-16-28/PollingResult/IntegritySCM' shutdown.

    May 09, 2012 11:15:52 AM [INFO] IntegritySCM - java.sql.SQLNonTransientConnectionException: Database '/builds/2012-03-20_12-16-28/PollingResult/IntegritySCM' shutdown.

    May 9, 2012 11:15:57 AM hudson.model.AsyncPeriodicWork$1 run

    1. Unknown User (dmeilinger)

      Yes, we are seeing that as well.

    2. Unknown User (cdsouza)

      So long as the message is listed in the INFO category, it is really benign. Some of the messages have to do with switching from 1.12 and prior revisions' caching mechanisms to 1.13. You'll still see the 'Failed to shutdown database connection!' in the log as derby seems to spit that out regardless.

      I'd be worried if you start to see messages under WARN, ERROR, or FATAL categories.

  25. Unknown User (jenkins_fighter)

    The restore time stamp option is not working for me. Its updating a lot more files with the recent timestamp everytime its polling source for a change. The change log is accurate but the time stamp on a lot of additional files is getting updated to current time. Any ideas? Screenshot below.

    1. Unknown User (cdsouza)

      Can you post a JIRA issue? Also, when you do so can you include a snippet of the log file (jenkins.err.log) with DEBUG enabled. To turn on debug logging, add the following to the startup arguments ($JENKINS_HOME/jenkins.xml):

      -Dorg.apache.commons.logging.simplelog.log.IntegritySCM=debug
      

      I want to see if the --restoreTimestamp is present for the si projectco command for the affected files.

      Thanks!
      Cletus

      1. Unknown User (jenkins_fighter)

  26. Unknown User (runxc1)

    Cletus,   We are using PTC to maintain not only our code but all of our compiled binaries so that we have change control on what is built.   Currently I am using the command line to check-in and checkout the binaries if a project successfully builds.  I see a lot of SVN plugins that do exactly this.  I was wondering if there was a way to use the PTC plugin to checkout and checkin files so that I don't have to reverto to using a bat file to handle checkout/checkin of the built binaries.

    1. Unknown User (cdsouza)

      Bret, this would be a no brainer if the plug-in used a sandbox. Unfortunately, since there is no sandbox in the workspace (for performance and configuration/setup reasons), its quite difficult to come up with a generic check-in mechanism that will work for all. As you may or may not know establishing sub-projects at every directory level is not mandatory or standardized in the product. Furthermore, some folks can create subprojects that are logical containers vs physical (folder). Hence there is a mixed bag in terms of trying to figure out which project/subproject to update back on the server.

      Another aspect to contend with is manadatory Change Packages. We obviously dont want to check-in every update against the same Change Package or new Change Package against the same Item. So, I'll need to device a mechanism to dynamically figure out which Change Package and/or Item to use for the check-in.

      I could certainly look into providing support for checking in a specific file (ex: zip file) whose project/subproject is known, or the contents of a directory (non-recursive). I'm all ears for how you'd like to use (configure) such a feature. Please open a JIRA issue (as enhancement) and provide you thoughts for a possible solution. Hopefully others interested will provide some feedback as well. Depending on the feedback, I can work on it for the next release.

      Thanks!

      1. Unknown User (cdsouza)

        Hi Bret,

        1.17 version of the plugin has incorporated an enhancement to update the Integrity project/subproject with your compiled binaries. Please give it a try and let me know if it works for you.

        Thanks!
        Cletus

  27. Unknown User (kovacs00ferenc)

    Cletus, I am having problems using this plugin for a large mks project (25K files). I have turned debugging on with: -Dorg.apache.commons.logging.simplelog.log.IntegritySCM=debug.

    I also gave the Jenkins JVM 1.5GB of heap space, just to be on the safe side.

    >>> The exception I get is:

    Started by user anonymous
    Building in workspace C:\Jenkins\jobs\MKS Test\workspace
    Change Log: http://pc11065:8080/job/MKS%20Test/13/changes
    Build Log: http://pc11065:8080/job/MKS%20Test/13/console
    Preparing to execute si projectinfo for #p=p:/PROJEKTE/MPA/mpa.pj#s=PC_SW/pc_sw.pj#
    Preparing to execute si viewproject for #p=p:/PROJEKTE/MPA/MPA.pj#s=PC_SW/pc_sw.pj
    An API Exception was caught!
    FATAL: Unable to retrieve WorkItem data at this point.

    >>> Posted JIRA bug report with the full details as not to eat up all the forum space :)

    Please help out :) Thanks!

  28. Unknown User (hpschreiter)

    Cletus,

    first of all thanks for the implementation of this plugin which made choosing jenkins in our environment a natural choice. However, with Jenkins 1.465 and 1.13 of the PTC plugin I am experiencing difficulties in accessing Integrity:

    Job output is saying: A SQL Exception was caught!
    Table/View 'CM_PROJECT' does not exist.
    Archiving artifacts
    Recording fingerprints
    Finished: FAILURE

    This keeps coming up after some successful builds and does not disappear. Sometimes it may be cured by restarting jenkins. Currently this is helping neither.
    I'd appreciate any help on that.
    Thanks, Hans-Peter

    1. Unknown User (cdsouza)

      Hi,
      I need more information like a detail debug log etc. You can e-mail me directly at cdsouza@ptc.com or open a JIRA issue.
      Thanks!
      Cletus

  29. Unknown User (cyril_jean)

    Hi Cletus, 

    I've installed a fresh jenkins, and just added integrity plug. Since added the integrity plugin, I've the following exception when trying to save the configuration from /configure page:

    After that, I cannot find PTC configuration in config.xml

    Status Code: 500

    Exception: java.lang.NullPointerException
    Stacktrace:javax.servlet.ServletException: java.lang.NullPointerException
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:616)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:162)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
    at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
    at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    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:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
    at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
    at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215)
    at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.NullPointerException
    at java.security.MessageDigest.update(Unknown Source)
    at java.security.MessageDigest.digest(Unknown Source)
    at org.apache.commons.codec.digest.DigestUtils.md5(DigestUtils.java:165)
    at org.apache.commons.codec.digest.DigestUtils.md5(DigestUtils.java:190)
    at org.apache.commons.codec.digest.DigestUtils.md5Hex(DigestUtils.java:226)
    at hudson.scm.IntegritySCM$DescriptorImpl.configure(IntegritySCM.java:1017)
    at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:2692)
    at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:2655)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
    ... 35 more


    Generated by Stapler at Tue Aug 14 12:32:23 CST 2012

    1. Unknown User (grimbo)

      Hi,

      It looks like the plugin code expects to see parameters that aren't sent by the config page. I'm getting these errors also.

      E.g. https://github.com/jenkinsci/integrity-plugin/blob/66862206b41bc4d38219f1c7d3697bcdf8141e8d/src/main/java/hudson/scm/IntegritySCM.java#L1020

      checks for "mks.defaultCheckoutThreadPoolSize", which doesn't seem to be submitted by the config page, or indeed present a text box for you to enter this data.

      1. Unknown User (cyril_jean)

        Hello,

        Yes confirmed, it works fine since rollback to 1.14

        tks

        Cyril

    2. Unknown User (cdsouza)

      This issue is captured in JENKINS-14871 and has been fixed in version 1.16. Thanks!

  30. Unknown User (bsonntag)

    After upgrading to plugin version 1.15 (Jenkins 1.477) , all jobs fail with the following exception:

    Started by upstream project "XXX" build number 363
    Building in workspace XXX
    Change Log: XXX
    Build Log: XXX
    Preparing to execute si projectinfo for XXX
    Preparing to execute si viewproject for XXX
    Checkout directory is XXX
    FATAL: null
    java.lang.IllegalArgumentException
        at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:589)
        at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:480)
        at java.util.concurrent.Executors.newFixedThreadPool(Executors.java:59)
        at hudson.scm.IntegrityCheckoutTask.invoke(IntegrityCheckoutTask.java:322)
        at hudson.scm.IntegrityCheckoutTask.invoke(IntegrityCheckoutTask.java:25)
        at hudson.FilePath.act(FilePath.java:842)
        at hudson.FilePath.act(FilePath.java:824)
        at hudson.scm.IntegritySCM.checkout(IntegritySCM.java:726)
        at hudson.model.AbstractProject.checkout(AbstractProject.java:1256)
        at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
        at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
        at hudson.model.Run.execute(Run.java:1502)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
        at hudson.model.ResourceController.execute(ResourceController.java:88)
        at hudson.model.Executor.run(Executor.java:236)
    
    
    

    Downgrading to 1.14 seems to be a workaround for now.

    SCM job config:

      <scm>
        <ciServerURL>XXX</ciServerURL>
        <integrityURL>XXX</integrityURL>
        <ipHostName></ipHostName>
        <hostName>XXX</hostName>
        <ipPort>XXX</ipPort>
        <port>XXX</port>
        <secure>false</secure>
        <configPath>XXX</configPath>
        <userName>XXX</userName>
        <password>XXX</password>
        <cleanCopy>true</cleanCopy>
        <skipAuthorInfo>false</skipAuthorInfo>
        <lineTerminator>native</lineTerminator>
        <restoreTimestamp>false</restoreTimestamp>
        <checkpointBeforeBuild>false</checkpointBeforeBuild>
        <alternateWorkspace></alternateWorkspace>
        <fetchChangedWorkspaceFiles>false</fetchChangedWorkspaceFiles>
      </scm>
    
    1. Unknown User (cdsouza)

      This seems to be related to JENKINS-14871. I've just released (1.16) a fix for this issue. Please let me know if you're still having a problem using v1.16.

      Thanks!
      Cletus

      1. Unknown User (bsonntag)

        Thanks for the hint. But I have just now upgraded to Jenkins 1.486 and plugin 1.16, but the problem is exactly the same.

        Regards
        Bjoern

        1. Unknown User (cdsouza)

          Can you post the stacktrace from running with 1.16?

          1. Unknown User (bsonntag)

            The stacktrace looks identical to the one posted above, only line numbers changed. This one is from last night:

            01:02:27 Started by upstream project "xxx" build number 429
            01:02:27 originally caused by:
            01:02:27 Started by timer
            01:02:27 Building in workspace xxx
            01:02:27 Change Log: xxx
            01:02:27 Build Log: xxx
            01:02:27 Preparing to execute si projectinfo for xxx
            01:02:28 Preparing to execute si viewproject for xxx
            01:02:41 Checkout directory is xxx
            01:02:41 FATAL: null
            01:02:41 java.lang.IllegalArgumentException
            01:02:41     at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:589)
            01:02:41     at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:480)
            01:02:41     at java.util.concurrent.Executors.newFixedThreadPool(Executors.java:59)
            01:02:41     at hudson.scm.IntegrityCheckoutTask.invoke(IntegrityCheckoutTask.java:322)
            01:02:41     at hudson.scm.IntegrityCheckoutTask.invoke(IntegrityCheckoutTask.java:25)
            01:02:41     at hudson.FilePath.act(FilePath.java:851)
            01:02:41     at hudson.FilePath.act(FilePath.java:824)
            01:02:41     at hudson.scm.IntegritySCM.checkout(IntegritySCM.java:728)
            01:02:41     at hudson.model.AbstractProject.checkout(AbstractProject.java:1308)
            01:02:41     at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:679)
            01:02:41     at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
            01:02:41     at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:584)
            01:02:41     at hudson.model.Run.execute(Run.java:1516)
            01:02:41     at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
            01:02:41     at hudson.model.ResourceController.execute(ResourceController.java:88)
            01:02:41     at hudson.model.Executor.run(Executor.java:236)
            

            EDIT: I think just saving affected build job configurations again might have solved the problem.

            EDIT2: That was it, now it works. Based on another comment on this page I checked for the job parameters. Even though on the UI it showed a value for parameter Checkout Thread Pool Size, it never made it to the job config file, before saving the jobs once more. So I guess it was a migration problem between plugin versions.

  31. Unknown User (cyril_jean)

    Hello,

    I was before directly connected to MKS server, but since my jenkins server moved to another network, I have the constraint to connect MKS through a proxy.

    Everything is working fine, except making checkpoing, I have the following error : Preparing to execute pre-build si checkpoint for #/Perso_Infra#Workshop/Supervisions/SPSFATAL: #/Perso_Infra#Workshop/Supervisions/SPS

    java.util.NoSuchElementException: #/Perso_Infra#Workshop/Supervisions/SPS

             at com.mks.api.response.impl.ResponseContainer.getWorkItem(ResponseContainer.java:125)

             at com.mks.api.response.impl.XMLResponseContainer.getWorkItem(XMLResponseContainer.java:286)

             at com.mks.api.response.impl.DelegatedResponseContainer.getWorkItem(DelegatedResponseContainer.java:213)

             at hudson.scm.IntegritySCM.checkout(IntegritySCM.java:653)

             at hudson.model.AbstractProject.checkout(AbstractProject.java:1256)

             at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)

             at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)

             at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)

             at hudson.model.Run.execute(Run.java:1502)

             at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)

             at hudson.model.ResourceController.execute(ResourceController.java:88)

             at hudson.model.Executor.run(Executor.java:236)

    Has anyone meet the same issue ? Is it proxy configuration problem ?

    Tks

    Cyril

    1. Unknown User (cdsouza)

      This seems to be a strange API error. The code is trying to fetch the API response for the configuration path (#/Perso_Infra#Workshop/Supervisions/SPS) that was used to checkpoint the project. For whatever reason, the response from the API doesn't seem to exist for the said project. If you're still having this issue, you will need to contact Integrity Customer Support and we will need to open an Incident to investigate the problem.

  32. Unknown User (maschuru)

    Hi Cletus,

    first off all THANKS A LOT for this plugin.It's the best CI integration for PTC(MKS) Integrity I've seen so far :-)

    Nevertheless, I'm stuck in a problem with the checkpointing

    As you can see in the log, the pre checkpoint is created, but the folloing "download" fails

    My Setup is Jenkins = 1.481 ; Integrity plugin = 1.16Gestartet durch Benutzer Rump, Matthias
    Building in workspace E:\Jenkins\Workspace\MK_dg
    Change Log: http://localhost:8080/job/MK_dg/3/changes
    Build Log: http://localhost:8080/job/MK_dg/3/console
    Preparing to execute si projectinfo for #/E-EC/xxx/MK#030_Software/SWE_BAE_MK#70_Quellen
    Preparing to execute pre-build si checkpoint for #/E-EC/xxx/MK#030_Software/SWE_BAE_MK#70_Quellen
    Successfully executed pre-build checkpoint for project #/E-EC/xxx/MK#030_Software/SWE_BAE_MK#70_Quellen, new revision is 1.471
    Preparing to execute si viewproject for #/E-EC/xxx/MK#030_Software/SWE_BAE_MK#70_Quellen#forceJump=#b=1.471
    Checkout directory is E:\Jenkins\Workspace\MK_dg
    A clean copy is requested; deleting contents of E:\Jenkins\Workspace\MK_dg
    Populating clean workspace...
    FATAL: null
    java.lang.NullPointerException
    at hudson.scm.IntegrityCheckoutTask.invoke(IntegrityCheckoutTask.java:349)
    at hudson.scm.IntegrityCheckoutTask.invoke(IntegrityCheckoutTask.java:25)
    at hudson.FilePath.act(FilePath.java:842)
    at hudson.FilePath.act(FilePath.java:824)
    at hudson.scm.IntegritySCM.checkout(IntegritySCM.java:728)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1256)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
    at hudson.model.Run.execute(Run.java:1502)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)Has anyone meet the same issue ?
    Thanx Matthias

    1. Unknown User (cdsouza)

      Hi Matthias,

      What is the version of your Integrity Server?

      For some reason the 'config path' is null for the member/file that is being checked out. Can you turn up DEBUG logging to see what could be the problem?

      To further diagnose this problem, I will need a copy of your jenkins.err.log (with debug enabled) and the API response from running the "si viewproject" command:

      mksapiviewer --xml --iplocal si viewproject #/E-EC/xxx/MK#030_Software/SWE_BAE_MK#70_Quellen#forceJump=#b=1.471 --fields=name,context
      

      You can run the above command from an workstation that has the Integrity Client installed.

      Thanks!
      Cletus

      1. Unknown User (maschuru)

        Hi Cletus,

        the server version is

        MKS Integrity 2009 SP7(4.10.0.9665)
        Hotfixes:
        S041000007-005
        S041000007-006
        S041000007-007

        The API call shows nothing special (I'll send it to you via mail)

        I also set up a new Job that uses the referenced checkpoint directly, and as far as I can tell, that works just as expected:

        Here’s an extract from the console Log.

        …Build Log: http://localhost:8080/job/BuildTest/1/console
        Preparing to execute si projectinfo for #/E-EC/xxx/MK#030_Software/SWE_BAE_MK#70_Quellen#forceJump=#b=1.471
        Preparing to execute si viewproject for #/E-EC/xxx/MK#030_Software/SWE_BAE_MK#70_Quellen#forceJump=#b=1.471
        Checkout directory is E:\Jenkins\Workspace\BuildTest
        A clean copy is requested; deleting contents of E:\Jenkins\Workspace\BuildTest
        Populating clean workspace...
        Successfully checked out 2983 files!
        Saving current Integrity Project configuration...
        ...

        I had some trouble getting the Error Log (that only seems to work, when you have Jenkins installed as a Service), but finally I've got it and from a first look, it seems like there might be a problem with shared subprojects (in our case shared build projects).

        I'll send you the Log file as you are the expert ;-)

        Regards Matthias

        1. Unknown User (maschuru)

          Hi Cletus,

          any new on that theme ?

          I recently updated to Jenkins 1.486 (PTC Plugin still on 1.16) but of course that made not difference regarding the checkpoints.

          Reagrd Matthias

          1. Unknown User (cdsouza)

            Hi,

            Sorry I did not see anything in the log that was related to the plugin code. Also, I thought you had recognized the problem when you stated, "it seems like there might be a problem with shared subprojects".

            Thanks!
            Cletus

  33. Unknown User (ekeko)

    Hi,

    lately I get often the error as attached below. Funny thing is that it works after many trials (lets say after 4 -5 times), but then happens again using the same plugin by other jobs...

    what is the problem? I am using latest jenkins 1.483 and PTC plug in 1.16. The issue started appearing around 1 month ago with correspondent older versions of jenkins and plug in...

    thank you very much for any help in advance!

    Preparing to execute si projectinfo for d:/mks/archives/..../project.pj
    Preparing to execute si viewproject for #p=d:/mks/archives/...
    Checkout directory is d:\....
    FATAL: null
    java.lang.IllegalArgumentException
    at java.util.concurrent.ThreadPoolExecutor.<init>(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.<init>(Unknown Source)
    at java.util.concurrent.Executors.newFixedThreadPool(Unknown Source)
    at hudson.scm.IntegrityCheckoutTask.invoke(IntegrityCheckoutTask.java:322)
    at hudson.scm.IntegrityCheckoutTask.invoke(IntegrityCheckoutTask.java:25)
    at hudson.FilePath.act(FilePath.java:852)
    at hudson.FilePath.act(FilePath.java:825)
    at hudson.scm.IntegritySCM.checkout(IntegritySCM.java:728)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1256)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
    at hudson.model.Run.execute(Run.java:1502)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)

    1. Unknown User (cdsouza)

      Hi,
      This seems to related to a problem I fixed in JENKINS-14871. Please make sure your jobs are re-initialized to ensure the 'Checkout Thread Pool Size' has a value.
      Thanks!
      Cletus

      1. Unknown User (ekeko)

        Hi Cletus, with job re-initalization do you mean Manage Jenkins -> Reload Configuration from Disk ? or restart jenkins?

        Best Regards,

        1. Unknown User (cdsouza)

          I mean go to the Job -> 'Configure'. Under advanced options for the Integrity Plugin, make sure there is a value specified for 'Checkout Thread Pool Size', then click save.

  34. Unknown User (maschuru)

    Hi Cletus,

    Have you ever thought about using the PTC Webservices (available since 2009 SP5/6) instead ot the API.jar.

    I've heard that the webservices would perform much better and you would not have to maintain the usage of the correct API.jar

    1. Unknown User (cdsouza)

      Hi Matthias,

      I've had to build a lot of workarounds in the plugin code due to limitations of the API. Since the Webservices API is essentially built on top of the JAVA API, I very reluctant to make the change. Also, please note that the Webservices API has a different WSDL from 2009 to the 10 releases. I would consider the Webservices route, once we have some core issues resolved in the API.

      Thanks!
      Cletus

  35. Unknown User (andre)

    Hi Cletus,

    i try to use some mks integrity comands per script in this PlugIn. If I use the console (cmd) manualy the scripts is ok. (MKS integrity is running in the backgroud)

    But if i try to run the same script for example in the section "After sussesfull release build" the script failed. In the log files, i found the request of the credential.

    It seem that the script (Execute Python script), doesnt know the credential, which are entered in the Integrity - CM Integrity Projects section.

    Did you know this behavior.

    Thanks in advance

    Andre

     

     

     

  36. Unknown User (smieja)

    Hi Cletus,
    I am using the Integrity Plugin for several projects. It works good, but it takes a lot of time to copy all project files to a clean workspace.
    This is because the projects consit of a huge amount of files which are not needed directly for the build.
    Is there the possibility to filter for the file extensions? If not it would be great if you could consider this in your next update.
    I think it would save a lot of time if only needed files would be copied to the workspace.

    Thanks in advance!

    Best regards
    Matthias

    1. Unknown User (cdsouza)

      Make sure you post an issue for this request.

    2. Unknown User (cdsouza)

      A filter option is added as of version 1.18

  37. Unknown User (andre)

    Hello Cletus,

    i have same trouble with ths SCM trigger (Poll SCM).  Source Code was checked into MKS since two days. Since this time i get every time the same changes in the "Integrity - CM Polling Log" view. The result ist that the job start every  30 min with the same changes, but with real new changes

    How I could solve this issue?

    Thx in Advance

    Andre

  38. Unknown User (ursbondada)

    Hi,

    I have used MKS with jenkins till now without proxy. How to connect jenkins with MKS using proxy?

    regards

    Satya

    1. Unknown User (vinodboyina)

      Hi Satya,

      I have tried with proxy and I was getting errors. Following was the response from Cletus:

      You need to make sure that the Proxy Server allows API connections. Unfortunately, the jenkins.err.log doesn't provide a useful stacktrace that I can narrow down to the Integrity plugin.

      FYI, even if you enable the Proxy Server for API connections, there is problem with the Integrity API in that is doesn't really use the Proxy Server cache (Integrity FSA technology). So, you may be just better off sticking to a direct server connection.

      Feel free to escalate the "Integrity API via the Proxy Server" issue with Integrity Customer Support.

  39. Unknown User (ludwig_wuestner)

    Hello Cletus,

    I am currently wondering, whether I can use Parametrized builds with your plugin.

    By creating a parameter  CP_VERSION which is available as environment variable and using this parameter in the

    Integrity Project: #p=...V_IntegrationView.pj#forceJump=#b=${env\['CP_VERSION'\]}
    
    

    But the value of the environment variable is not taken into account. Instead the string is kept as it is and leads to a failure.

    Thanks for feedback,

    Ludwig

    1. Unknown User (cdsouza)

      There is an issue posted for this enhancement. I might consider this for the next update, since its come up twice now.

    2. Unknown User (cdsouza)

      This enhancement is now available with version 1.18

  40. Unknown User (cyril_jean)

    Hi Cletus,

    I have now almost every time an API error when trying to synchronize a sandbox, it happens during the "viewproject" step of the build.
    I'm directly connected to the MKS server (no proxy)
    please find DEBUG log below :

    Apr 27, 2013 2:57:01 PM DEBUG IntegritySCM - Attempting to open connection to database: c:\.jenkins\jobs***\builds\2013-04-27_14-56-53\IntegritySCM
    Apr 27, 2013 2:57:02 PM DEBUG IntegritySCM - Schema 'DBUSER' does not exist
    Apr 27, 2013 2:57:02 PM DEBUG IntegritySCM - Integrity SCM cache tables do not exist, creating...
    Apr 27, 2013 2:57:02 PM DEBUG IntegritySCM - New Integrity SCM cache tables successfully created!
    Apr 27, 2013 2:57:02 PM DEBUG IntegritySCM - Attempting to execute query INSERT INTO CM_PROJECT (TYPE, NAME, MEMBER_ID, TIMESTAMP, DESCRIPTION, CONFIG_PATH, REVISION, RELATIVEFILE) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
    Apr 27, 2013 3:00:38 PM DEBUG IntegritySCM - compareRemoteRevisionWith() invoked...!
    Apr 27, 2013 3:00:38 PM DEBUG IntegritySCM - calcRevisionsFromBuild() invoked...!
    Apr 27, 2013 3:00:38 PM DEBUG IntegritySCM - Creating Integrity API Session...
    Apr 27, 2013 3:00:38 PM DEBUG IntegritySCM - compareRemoteRevisionWith() invoked...!
    Apr 27, 2013 3:00:38 PM DEBUG IntegritySCM - calcRevisionsFromBuild() invoked...!
    Apr 27, 2013 3:00:38 PM DEBUG IntegritySCM - Creating Integrity API Session...
    Apr 27, 2013 3:00:42 PM INFO IntegritySCM - API Exception caught...
    Apr 27, 2013 3:00:42 PM INFO IntegritySCM - Connection refused: connect
    Apr 27, 2013 3:00:42 PM DEBUG IntegritySCM -  returned exit code -1
    Exception in thread "Workspace clean-up thread" java.lang.NullPointerException
    	at hudson.tasks.Fingerprinter$FingerprintAction.onLoad(Fingerprinter.java:346)
    	at hudson.model.Run.onLoad(Run.java:319)
    	at hudson.model.RunMap.retrieve(RunMap.java:226)
    	at hudson.model.RunMap.retrieve(RunMap.java:59)
    	at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:667)
    	at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:629)
    	at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:368)
    	at jenkins.model.lazy.AbstractLazyLoadRunMap.getByNumber(AbstractLazyLoadRunMap.java:526)
    	at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:379)
    	at jenkins.model.lazy.AbstractLazyLoadRunMap.newestBuild(AbstractLazyLoadRunMap.java:321)
    	at hudson.model.AbstractProject.getLastBuild(AbstractProject.java:1059)
    	at hudson.model.AbstractProject.getLastBuiltOn(AbstractProject.java:1162)
    	at hudson.model.WorkspaceCleanupThread.shouldBeDeleted(WorkspaceCleanupThread.java:117)
    	at hudson.model.WorkspaceCleanupThread.process(WorkspaceCleanupThread.java:86)
    	at hudson.model.WorkspaceCleanupThread.execute(WorkspaceCleanupThread.java:74)
    	at hudson.model.AsyncPeriodicWork$1.run(AsyncPeriodicWork.java:53)
    	at java.lang.Thread.run(Unknown Source)
    Apr 27, 2013 3:01:53 PM DEBUG IntegritySCM - Attempting to shut down database: c:\.jenkins\jobs***\builds\2013-04-27_14-56-53\IntegritySCM
    Apr 27, 2013 3:01:54 PM INFO IntegritySCM - Failed to shutdown database connection!
    Apr 27, 2013 3:01:54 PM INFO IntegritySCM - Database 'c:/.jenkins/jobs/***/builds/2013-04-27_14-56-53/IntegritySCM' shutdown.
    Apr 27, 2013 3:01:54 PM INFO IntegritySCM - java.sql.SQLNonTransientConnectionException: Database 'c:/.jenkins/jobs/***/builds/2013-04-27_14-56-53/IntegritySCM' shutdown.
    Apr 27, 2013 3:01:54 PM DEBUG IntegritySCM - Successfully disconnected connection **@**:18000
    Apr 27, 2013 3:01:54 PM DEBUG IntegritySCM - buildEnvVars() invoked...!
    Apr 27, 2013 3:01:54 PM DEBUG IntegritySCM - buildEnvVars() invoked...!
    Apr 27, 2013 3:01:55 PM DEBUG IntegritySCM - buildEnvVars() invoked...!
    Apr 27, 2013 3:01:55 PM DEBUG IntegritySCM - buildEnvVars() invoked...!
    Apr 27, 2013 3:01:55 PM DEBUG IntegritySCM - buildEnvVars() invoked...!
    Apr 27, 2013 3:01:55 PM DEBUG IntegritySCM - buildEnvVars() invoked...!
    Apr 27, 2013 3:01:55 PM DEBUG IntegritySCM - buildEnvVars() invoked...!
    Apr 27, 2013 3:01:55 PM DEBUG IntegritySCM - buildEnvVars() invoked...!
    Apr 27, 2013 3:02:02 PM INFO IntegritySCM - API Exception caught...
    Apr 27, 2013 3:02:02 PM INFO IntegritySCM - Connection timed out: connect
    Apr 27, 2013 3:02:02 PM DEBUG IntegritySCM -  returned exit code -1
    
    

    What do you think could be the root cause ? It seems I'm being rejected by server...

    Note that previous API connection were successful during projectinfo

    Here is build log

    Preparing to execute si projectinfo for #***
    Preparing to execute pre-build si checkpoint for #***
    Successfully executed pre-build checkpoint for project #***, new revision is 1.259
    Preparing to execute si viewproject for #***=#b=1.259
    
    FATAL: Connection reset
    com.mks.api.response.impl.ApplicationConnectionError: Connection reset
    	at com.mks.api.response.impl.XMLResponseHandler.getValue(XMLResponseHandler.java:725)
    	at com.mks.api.response.impl.XMLResponseHandler.getField(XMLResponseHandler.java:555)
    	at com.mks.api.response.impl.XMLResponseHandler.getWorkItem(XMLResponseHandler.java:467)
    	at com.mks.api.response.impl.InterimWorkItemIterator.nextObject(InterimWorkItemIterator.java:46)
    	at com.mks.api.response.impl.AbstractInterimIterator.hasNext(AbstractInterimIterator.java:99)
    	at hudson.scm.IntegrityCMProject.parseProject(IntegrityCMProject.java:260)
    	at hudson.scm.IntegritySCM.initializeCMProjectMembers(IntegritySCM.java:578)
    	at hudson.scm.IntegritySCM.checkout(IntegritySCM.java:672)
    	at hudson.model.AbstractProject.checkout(AbstractProject.java:1369)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:674)
    	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:579)
    	at hudson.model.Run.execute(Run.java:1575)
    	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    	at hudson.model.ResourceController.execute(ResourceController.java:88)
    	at hudson.model.Executor.run(Executor.java:237)
    

    tks for your help

    Cyril

  41. Unknown User (peejay)

    Hi Cletus,

    I've just starting evaluating Jenkins with your PTC plugin (1.16) for our business unit. I've started with some test projects and a few files just to get going. The problem that I am facing is that on our production server, everything is working fine, whereas on our training server no files are being checked out into the workspace.

    I have the same MKS version, service packs, API setup on both servers, but for some reason it just doesn't work with our training server. The console reports that all files are successfully checked out, but there is nothing in the workspace except the folders from the project (so obviously the API interface is working). Also the change history is correct. I have tried the clean workspace setting, running the build on a slave, but cannot see what the problem is. There is also no jenkins.err.log file created either.

    Do you have any idea what this could be before I create an issue?

    Thanks in advance.

    Best regards,
    Paul

    1. Unknown User (cdsouza)

      Hi Paul,

      That is strange especially since it says the checkout was a success. Is there a count of the number of files checked out?

      I would need to see the log to investigate. Perhaps you can post a note to Jenkins user group to see why you don't have a log. Are you running Jenkins standalone or on top of Apache?

      Cletus

      1. Unknown User (peejay)

        Hi Cletus,

        Yes the number of files checked out are reported (and correspond to the number of files in the project), but none appear in the workspace.

        I am running Jenkins under Tomcat 7.0 on Windows 7 64 bit.

        Best regards,

        Paul

        1. Unknown User (cdsouza)

          Hi Paul,

          Most likely there's not going to be a Jenkins.err.log when running it as a web app on Tomcat. Turn up the debug logging in log4j for the integrity logger then look for the equivalent Tomcat server log.

          Cletus

          1. Unknown User (peejay)

            Hi Cletus,

            I'm getting a little confused. I have played around with a number of settings and updated both Jenkins and the plugin, and now that I have switched back to running the build on the master, the files are being correctly checked out, so now it is only a problem on the slave. So with exactly the same settings, the files are checked out to the workspace on the master, but when I configure the project to use the slave, only the folders are created even though the console output says the files were successfully checked out.

            Note that the master is a Windows machine and the slave is a Linux machine. For testing purposes I am using the root user to connect to the slave node to make sure that there is no problem with permissions. The slave log (on the master PC) is looking fine and the change log in Jenkins is also accurate.

            Is there any log I can look at on the slave to see what is happening?

            Edit: Just been reading about the remote access above and note that it says that the only commands run on the remote are the check out commands, which is the only bit not working. As I had to change the mksapi.jar on my master system to get it working, do I have to do the same on the slave system? If yes, where do I change it?

            Paul

            1. Unknown User (cdsouza)

              The way I understand the slaves to work is that the whole master run-time environment is serialized and shipped off to the slave for execution. So, there is no mksapi.jar or log generated at the salve. All the logging information is recorded back on the master.

              As for the plug-in, I open a fresh API Session when the check out tasks is executed. This way I'm guaranteed to have a direct connection from the slave machine to the Integrity Server.

              1. Unknown User (peejay)

                Hi Cletus,

                I switched to a Windows slave and everything is working fine. I still have the problem with the Linux slave, but I won't take up any more of your time as it seems to be nothing to do with your plugin.

                Thanks for your help in any case.

                Best regards,

                Paul

                1. Unknown User (peejay)

                  Sorry to come back to this again, but I still cannot get the files checked out on the slave, again just the folders are created in the workspace.

                  Just for comparison, I set up a subversion server and created a Jenkins job with a similar set up and with the subversion plugin I had no problem getting the files checked out in the workspace.

                  I have switched on debugging and have now included the console and log outputs of the last build attempt below, although I cannot see any errors.

                  Started by user Adams, Paul
                  Building remotely on Vilh725x Jenkins Slave in workspace /var/jenkins/workspace/Training_MigrationTest_Linux
                  Change Log: http://xxxxxxxx.yyyy.zzzzzzzz.com:8080/jenkins/job/Training_MigrationTest_Linux/31/changes
                  Build Log: http://xxxxxxxx.yyyy.zzzzzzzz.com:8080/jenkins/job/Training_MigrationTest_Linux/31/console
                  Preparing to execute si projectinfo for #/SW/Test/MigrationTest_TL
                  Preparing to execute si viewproject for #/SW/Test/MigrationTest_TL
                  Checkout directory is /var/jenkins/workspace/Training_MigrationTest_Linux
                  A clean copy is requested; deleting contents of /var/jenkins/workspace/Training_MigrationTest_Linux
                  Populating clean workspace...
                  Successfully checked out 6 files!
                  Saving current Integrity Project configuration...
                  Writing build change log...
                  Change log successfully generated: C:\.jenkins\jobs\Training_MigrationTest_Linux\builds\2013-06-20_09-01-25\changelog.xml
                  Training_MigrationTest_Linux $ /bin/sh -xe /tmp/hudson2073303136145588918.sh
                  + /bin/sh build.sh
                  /bin/sh: build.sh: No such file or directory
                  Build step 'Execute shell' marked build as failure
                  Finished: FAILURE

                  Jun 20, 2013 9:01:25 AM [DEBUG] IntegritySCM - Start execution of checkout() routine...!
                  Jun 20, 2013 9:01:25 AM [DEBUG] IntegritySCM - Creating Integrity API Session...
                  Jun 20, 2013 9:01:25 AM [DEBUG] IntegritySCM - api ping --user=uid61121 --port=7001 --hostname=xxx.com -- returned exit code 0
                  Jun 20, 2013 9:01:25 AM [DEBUG] IntegritySCM - Successfully established connection uid61121@xxx.com:7001
                  Jun 20, 2013 9:01:25 AM [DEBUG] IntegritySCM - Preparing to execute si projectinfo for #/SW/Test/MigrationTest_TL
                  Jun 20, 2013 9:01:26 AM [DEBUG] IntegritySCM - si projectinfo --user=uid61121 --port=7001 --hostname=xxxx.com --project=#/SW/Test/MigrationTest_TL -- returned exit code 0
                  Jun 20, 2013 9:01:26 AM [DEBUG] IntegritySCM - si projectinfo --user=uid61121 --port=7001 --hostname=xxxx.com --project=#/SW/Test/MigrationTest_TL -- returned 0
                  Jun 20, 2013 9:01:26 AM [DEBUG] IntegritySCM - Preparing to execute si viewproject for #/SW/Test/MigrationTest_TL
                  Jun 20, 2013 9:01:26 AM [DEBUG] IntegritySCM - Executed si viewproject --user=uid61121 --port=7001 --hostname=xxxx.com --recurse --project=#/SW/Test/MigrationTest_TL --fields=name,context,cpid,memberrev,membertimestamp,memberdescription,type -- with interim
                  Jun 20, 2013 9:01:26 AM [DEBUG] IntegritySCM - Attempting to open connection to database: C:\.jenkins\jobs\Training_MigrationTest_Linux\builds\2013-06-20_09-01-25\IntegritySCM
                  Jun 20, 2013 9:01:26 AM [DEBUG] IntegritySCM - Schema 'DBUSER' does not exist
                  Jun 20, 2013 9:01:26 AM [DEBUG] IntegritySCM - Integrity SCM cache tables do not exist, creating...
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - New Integrity SCM cache tables successfully created!
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Attempting to execute query INSERT INTO CM_PROJECT (TYPE, NAME, MEMBER_ID, TIMESTAMP, DESCRIPTION, CONFIG_PATH, REVISION, RELATIVEFILE) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Parsing project #/SW/Test/MigrationTest_TL complete!
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Found previous project state in build 30
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Attempting to open connection to database: C:\.jenkins\jobs\Training_MigrationTest_Linux\builds\2013-06-20_08-54-20\IntegritySCM
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Attempting to open connection to database: C:\.jenkins\jobs\Training_MigrationTest_Linux\builds\2013-06-20_09-01-25\IntegritySCM
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Attempting to execute query SELECT NAME, MEMBER_ID, TIMESTAMP, DESCRIPTION, AUTHOR, CONFIG_PATH, REVISION, RELATIVEFILE, CHECKSUM FROM CM_PROJECT WHERE TYPE = 0 AND (DELTA IS NULL OR DELTA <> 3)
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Attempting to execute query SELECT TYPE, NAME, MEMBER_ID, TIMESTAMP, DESCRIPTION, AUTHOR, CONFIG_PATH, REVISION, OLD_REVISION, RELATIVEFILE, CHECKSUM, DELTA FROM CM_PROJECT WHERE TYPE = 0
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/TextFiles/BASE.HMX
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/TextFiles/new.txt
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/build.bat
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/build.sh
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/test1.txt
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/test2.txt
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Attempting to shut down database: C:\.jenkins\jobs\Training_MigrationTest_Linux\builds\2013-06-20_08-54-20\IntegritySCM
                  Jun 20, 2013 9:01:27 AM [INFO] IntegritySCM - Failed to shutdown database connection!
                  Jun 20, 2013 9:01:27 AM [INFO] IntegritySCM - Database 'C:/.jenkins/jobs/Training_MigrationTest_Linux/builds/2013-06-20_08-54-20/IntegritySCM' shutdown.
                  Jun 20, 2013 9:01:27 AM [INFO] IntegritySCM - java.sql.SQLNonTransientConnectionException: Database 'C:/.jenkins/jobs/Training_MigrationTest_Linux/builds/2013-06-20_08-54-20/IntegritySCM' shutdown.
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Attempting to open connection to database: C:\.jenkins\jobs\Training_MigrationTest_Linux\builds\2013-06-20_09-01-25\IntegritySCM
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Attempting to open connection to database: C:\.jenkins\jobs\Training_MigrationTest_Linux\builds\2013-06-20_09-01-25\IntegritySCM
                  Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Integrity Checkout Task Created!
                  Jun 20, 2013 9:01:31 AM [DEBUG] IntegritySCM - Attempting to shut down database: C:\.jenkins\jobs\Training_MigrationTest_Linux\builds\2013-06-20_09-01-25\IntegritySCM
                  Jun 20, 2013 9:01:31 AM [INFO] IntegritySCM - Failed to shutdown database connection!
                  Jun 20, 2013 9:01:31 AM [INFO] IntegritySCM - Database 'C:/.jenkins/jobs/Training_MigrationTest_Linux/builds/2013-06-20_09-01-25/IntegritySCM' shutdown.
                  Jun 20, 2013 9:01:31 AM [INFO] IntegritySCM - java.sql.SQLNonTransientConnectionException: Database 'C:/.jenkins/jobs/Training_MigrationTest_Linux/builds/2013-06-20_09-01-25/IntegritySCM' shutdown.
                  Jun 20, 2013 9:01:31 AM [DEBUG] IntegritySCM - Successfully disconnected connection uid61121@xxxx.com:7001
                  Jun 20, 2013 9:01:31 AM [DEBUG] IntegritySCM - calcRevisionsFromBuild() invoked...!
                  Jun 20, 2013 9:01:31 AM [DEBUG] IntegritySCM - createChangeLogParser() invoked...!
                  Jun 20, 2013 9:01:31 AM [DEBUG] IntegritySCM - buildEnvVars() invoked...!

                  Any ideas? Thanks in advance.

                  Paul

                  1. Unknown User (cdsouza)

                    I don't know whats going on, but the console output doesn't match your DEBUG log. For instance here's what the console output says:

                    A clean copy is requested; deleting contents of /var/jenkins/workspace/Training_MigrationTest_Linux
                    Populating clean workspace...
                    

                    Then in the DEBUG log its saying

                    Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/TextFiles/BASE.HMX
                    Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/TextFiles/new.txt
                    Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/build.bat
                    Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/build.sh
                    Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/test1.txt
                    Jun 20, 2013 9:01:27 AM [DEBUG] IntegritySCM - Comparing file against baseline /SW/Test/MigrationTest_TL/test2.txt
                    

                    With a 'clean copy' there is no comparison, the plugin will just checkout all files regardless. What version of the plug-in are you using?

                    1. Unknown User (peejay)

                      I'm using the latest 1.17 version of the plugin along with Jenkins 1.519. on a Tomcat 7.0 server running under Windows 7. I had the same problem with the previous 1.16 version.

                      I also don't understand what is going on, but I assure you that the console output and the log entries are for the same build. The console output also says that the 6 files were checked out successfully but that is also not the case.

                      I am using a differernt MKSAPI.jar file as the supplied one only causes exceptions. The only one that works on our 2009SP6 system is the one from the eclipse integration, but I don't know how this could cause a problem.

                      Paul

                      1. Unknown User (sharpep_trw)

                        I would like to report that I am seeing a similar issue. The folder structure is only populated on the node, but if reconfigure the project to use the master everything is checked out fine. I am using Jenkins 1.539 with PTC Integroty plugin 1.18, with Window 7 master and slave.

                        Console states:

                         Preparing to execute si projectinfo for #/Steering#Software/01-Projects/GM-GeneralMotors/2013-GM2015A-GM03_D2XX/03-Solution#b=1.5
                        Preparing to execute si viewproject for #/Steering#Software/01-Projects/GM-GeneralMotors/2013-GM2015A-GM03_D2XX/03-Solution#b=1.5
                        Checkout directory is C:\Jenkins\Jobs\workspace\Test-1
                        A clean copy is requested; deleting contents of C:\Jenkins\Jobs\workspace\Test-1
                        Populating clean workspace...
                        Successfully checked out 21 files!
                        Saving current Integrity Project configuration...
                        

                        My job simply does a dir /b /s * on the workspace and only folders are listed.

                        The error log has the following:

                        Nov 26, 2013 4:14:36 PM [INFO] IntegritySCM - Failed to shutdown database connection!
                        Nov 26, 2013 4:14:36 PM [INFO] IntegritySCM - Database 'C:/Jenkins/jobs/Test-1/builds/2013-11-26_15-36-17/IntegritySCM' shutdown.
                        Nov 26, 2013 4:14:36 PM [INFO] IntegritySCM - java.sql.SQLNonTransientConnectionException: Database 'C:/Jenkins/jobs/Test-1/builds/2013-11-26_15-36-17/IntegritySCM' shutdown.
                        Nov 26, 2013 4:14:50 PM [INFO] IntegritySCM - Failed to shutdown database connection!
                        Nov 26, 2013 4:14:50 PM [INFO] IntegritySCM - Database 'C:/Jenkins/jobs/VW2013A-CommitBuild/builds/2013-11-19_09-12-46/IntegritySCM' shutdown.
                        Nov 26, 2013 4:14:50 PM [INFO] IntegritySCM - java.sql.SQLNonTransientConnectionException: Database 'C:/Jenkins/jobs/VW2013A-CommitBuild/builds/2013-11-19_09-12-46/IntegritySCM' shutdown.
                        Nov 26, 2013 4:14:50 PM org.apache.commons.httpclient.HttpMethodBase readResponseBody
                        WARNING: Unsupported transfer encoding:
                        Nov 26, 2013 4:14:50 PM org.apache.commons.httpclient.HttpMethodBase readResponseBody
                        INFO: Response content is not chunk-encoded
                        Nov 26, 2013 4:14:50 PM [INFO] IntegritySCM - Failed to shutdown database connection!
                        Nov 26, 2013 4:14:50 PM [INFO] IntegritySCM - Database 'C:/Jenkins/jobs/VW2013A-CommitBuild/builds/2013-11-19_09-12-46/IntegritySCM' not found.
                        Nov 26, 2013 4:14:50 PM [INFO] IntegritySCM - java.sql.SQLException: Database 'C:/Jenkins/jobs/VW2013A-CommitBuild/builds/2013-11-19_09-12-46/IntegritySCM' not found.
                        Nov 26, 2013 4:14:50 PM [INFO] IntegritySCM - Failed to shutdown database connection!
                        Nov 26, 2013 4:14:50 PM [INFO] IntegritySCM - Database 'C:/Jenkins/jobs/VW2013A-CommitBuild/builds/2013-11-19_09-12-46/PollingResult/IntegritySCM' shutdown.
                        Nov 26, 2013 4:14:50 PM [INFO] IntegritySCM - java.sql.SQLNonTransientConnectionException: Database 'C:/Jenkins/jobs/VW2013A-CommitBuild/builds/2013-11-19_09-12-46/PollingResult/IntegritySCM' shutdown.
                        Nov 26, 2013 4:15:00 PM [INFO] IntegritySCM - Failed to shutdown database connection!
                        Nov 26, 2013 4:15:00 PM [INFO] IntegritySCM - Database 'C:/Jenkins/jobs/Test-1/builds/2013-11-26_16-14-31/IntegritySCM' shutdown.
                        Nov 26, 2013 4:15:00 PM [INFO] IntegritySCM - java.sql.SQLNonTransientConnectionException: Database 'C:/Jenkins/jobs/Test-1/builds/2013-11-26_16-14-31/IntegritySCM' shutdown.
                        Nov 26, 2013 4:15:00 PM org.apache.commons.httpclient.HttpMethodBase readResponseBody
                        WARNING: Unsupported transfer encoding:
                        Nov 26, 2013 4:15:00 PM org.apache.commons.httpclient.HttpMethodBase readResponseBody
                        INFO: Response content is not chunk-encoded
                        Nov 26, 2013 4:15:00 PM hudson.model.Run execute
                        INFO: Test-1 #24 main build action completed: SUCCESS
                        


                        1. Unknown User (sharpep_trw)

                          I had a conversation with Cletus about this and found that my issue was down to my node having an incompatible version of Java.

                          My Master has Java 1.7.0_25-b17 (as installed with Jenkins 1.539 windows installer)

                          My slave has Java 1.7.0_45-b18

                          Quote:

                          You can't go above java 1.7 u40.  Out API has an issue with the java file object.  This will be fixed on integrity 10.5 I'm told. Can you go back to before u40 or java 1.6?

                          I change my node to use Java 1.7.0_25-b17 for running slave.jar and the issue is resolved. The files are now populated in the workspace on the node.

  42. Unknown User (igor911)

    Hello,

    I was hoping someone could assist me with the Integrity Plugin for Jenkins.  I was successfully able to get Jenkins to connect to the Integrity plugin and create my sandbox at the beginning of my build job.  However, we have a specific process mid-point through our ANT process which requires us to checkout a file, update some information, and then check it back in.

    When I attempt to execute any SI commands within my ANT script through Jenkins, I am receiving an error:

    si: Attempt to launch MKS Integrity Client Timed out. To solve this please try the following:
    
        Verify that the user you are logged in as has read and write permissions to the Integrity Client install directory.
        Make sure the Integrity Client install directory is the very first entry in the path.
    

    Rather than using ANT to kick off my SI commands, is there another way around this that I can somehow utilize the plugin?  Thanks in advance!

    1. Unknown User (igor911)

      Additionally, I've attempted to use the MKSapiViewer commands.  However, same issue occurs.  When I am remoted into my build box and run these from the CMD, I am successfully able to check in/out.

      But, when attempting to run these commands in a Batch from Jenkins mid-way through my build, I get an error code of "Result:  231" for both check in/out.

      Here are the commands which I execute:

       Checkout ---

      [exec] D:\Builds\eBB\eBBMain\ebbBuild>mksapiviewer --iplocal --namedsession --sessionuser=myUser --sessionpassword=secret si projectco --user=myUser --password=secret --port=7001 --hostname=s123456 --overwriteExisting --restoreTimestamp --targetFile=D:\Builds\eBB\eBBMain\/ebbJPA/configfiles/autobuild.properties --lineTerminator=native D:\Builds\eBB\eBBMain\/ebbJPA/configfiles/autobuild.properties
      [exec] Result: 231
      

       
      exec D:\Builds\eBB\eBBMain\ebbBuild>mksapiviewer --iplocal --namedsession --sessionuser=myUser --sessionpassword=secret si projectci --user=myUser --password=secret --port=7001 --hostname=s123456 --nolock --sourceFile=D:\Builds\eBB\eBBMain\/ebbJPA/configfiles/autobuild.properties --description=Updating --forceconfirm=yes D:\Builds\eBB\eBBMain\/ebbJPA/configfiles/autobuild.properties
      exec Result: 231 
      Please help, what does code 231 resemble? I've checked the Jenkins err log but there isn't any information. I've also tried the "--xml" param but haven't been able to get Jenkins to return a valid output with some sort of error trace.

      1. Unknown User (cdsouza)

        I'd prefer not to go into the nuances of running the Integrity Client from the context of a Windows services. That is actually one of the primary reasons the Integrity Jenkins plugin does not use a client (and hence Sandbox).

        As of version 1.17 you can now use the plugin itself to check-in updates back to your project. Use the includes/excludes filter to narrow down your selection to specific files.

        However, if you still insist on using client tools (ex: mksapiviewer), you need to use mksapiviewer with a server integration point (not --iplocal)

        mksapiviewer --iphostname=yourserver --ipport=7001 --ipversion=4.11 --namedsession--sessionuser=yourname --sessionpassword=password si lock -P project.pj --hostname=yourserver --port=7001 --user=yourname --password=password autobuild.properties
        mksapiviewer --iphostname=yourserver --ipport=7001 --ipversion=4.11 --namedsession--sessionuser=yourname --sessionpassword=password si projectci -P project.pj --hostname=yourserver --port=7001 --user=yourname --password=password --sourceFile=remote://D:\Builds\eBB\eBBMain\ebbJPA\configfiles\autobuild.properties autobuild.properties
        

        Regards,
        Cletus

  43. Unknown User (mharb)

    Hi,

    Thanks for the great plug-in!!

    Is there a possibility to add description to the project checkpoint when making one, can we for example take the description from the change package (or even the list of the change package numbers that made changes from last checkpoint to current version)

    Best Regards,

    M. Harb

    1. Unknown User (cdsouza)

      Sure, we can make a provision to add a description to the project checkpoint that could be read from the environment. As for the list of Change Package numbers that make up the last checkpoint, Integrity provides that out of the box using the project differences command/feature.

      Please post a Jenkins feature request against the plugin for the ability to set a description for the project checkpoint.

      Thanks!
      Cletus

  44. Unknown User (jenkinstss)

    An idea what could be the reason for this?

    INFO: I/O exception (javax.net.ssl.SSLException) caught when processing request: Received fatal alert: internal_error
    Jul 26, 2013 3:57:18 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
    INFO: Retrying request
    Jul 26, 2013 3:57:18 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
    INFO: I/O exception (javax.net.ssl.SSLException) caught when processing request: Received fatal alert: internal_error
    Jul 26, 2013 3:57:18 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
    INFO: Retrying request
    Jul 26, 2013 3:57:18 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
    INFO: I/O exception (javax.net.ssl.SSLException) caught when processing request: Received fatal alert: internal_error
    Jul 26, 2013 3:57:18 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
    INFO: Retrying request
    Jul 26, 2013 3:57:18 PM hudson.scm.IntegritySCM createAPISession
    SEVERE: API Exception caught...
    1. Unknown User (jenkinstss)

      Found the reason for the SSL-Error. This happens if you run Jenkins in a Java7-JRE. Seems like some internal library of the plugin is not Java7-compatible... Unfortunately this is not apparent from the logging.

  45. Unknown User (matth)

    First let me start by saying i love this plugin :) and i use it alot.

    The main problem is that 3 days ago my usual PTC integrity updated to version 10.4.. and this new version has the following update:

    An updated version of the Integrity API (4.12) with new published API commands

    since the update went live i am unable to use this plugin anymore. Did anyone else encounter this problem ?

    1. Unknown User (matth)

      After researching the issue a bit more it seems the main problem does not lie in the new mks api. and not in the Derby errors either. It might be a wierd communication related to the plugin and the slave.

      I managed to make the plugin work ... but only if the slave is the same pc as the master. if the slave is a different pc and the data has to be sent through the network i noticed a wierd behaviour.

      The debug log will stop at the [DEBUG] IntegritySCM - Integrity Checkout Task Created! Line and from that point forward in the slave error log i am starting to see these errors repeating themselves

      Oct 04, 2013 5:11:19 PM org.apache.commons.httpclient.HttpMethodBase readResponseBody
      INFO: Response content is not chunk-encoded
      Oct 04, 2013 5:11:20 PM org.apache.commons.httpclient.HttpMethodBase readResponseBody
      WARNING: Unsupported transfer encoding:
      Oct 04, 2013 5:11:20 PM org.apache.commons.httpclient.HttpMethodBase readResponseBody
      INFO: Response content is not chunk-encoded
      Oct 04, 2013 5:11:21 PM org.apache.commons.httpclient.HttpMethodBase readResponseBody
      WARNING: Unsupported transfer encoding:
      Oct 04, 2013 5:11:21 PM org.apache.commons.httpclient.HttpMethodBase readResponseBody
      INFO: Response content is not chunk-encoded

      Basicly from what i noticed , a WARNING + INFO appears for Every single file i am trying to download from mks .

      I am using jenkins 1.533 and the plugin version 1.17 for the integrity client - Windows 7 OS 64 bit.

      The most misterious thing is that it worked last week ... could i be from some recent plugin/jenkins server updates that came out this week.?

      1. Unknown User (cdsouza)

        If you've changed the mksapi.jar that comes with the plug-in and are connecting to a 10.4 server, then yes the plugin wont work! Some API calls have been deprecated as of 10.4. While, this doesn't affect the plugin (since the plugin using a 10.3 mksapi.jar), I've fixed this issue in version 1.18.

        1. Unknown User (matth)

          after seeing the api not working anymore i placed back the 10.3 mksapi jar file

          I actually managed to find the root of the problem a few hours ago ... believe it or not but the problem was coming from the Java i had installed.. apparently java 7 update 40 [which is the latest] does not work

          Good thing i noticed the difference with one of my old slaves that was still working ... he had the java 7 update 17 installed on it. So i downgraded the java version and the plugin took off. it fixed the communication problems between the slave/master.. but what is a bit wierd is that except this ptc integrity plugin i could do/run whatever i wanted on the slave without errors.. so i am not sure what the latest java was breaking.

          1. Unknown User (cdsouza)

            Yes, that is correct. The Integrity plug-in for Jenkins requires you to be under Java 7 update 40. In update 40, there were some security things introduced for File objects that affects our projectco command. See the following public alert for additional details: https://www.ptc.com/view?im_dbkey=157742

            Integrity 10.5 is supposed to have a resolution to this problem.

  46. Unknown User (ursbondada)

    currently starting jenkins through batch file,now i am plan to create windows service for the same.but i am running as a windows service, application unable to connect mks. i am getting below error

    i.e.,
    any idea what could be the cause of error?

    1. Unknown User (peejay)

      The problem is that when running as a service, the user that runs the command line is the System user. This user is not able to run the Integrity Client. You must change the user that runs the service to use your username and password (or another user that has access to your network domain and your Integrity Source project)

      Paul

      1. Unknown User (ursbondada)

        i have changed service user to my network domain user then jenkins service able to connect integrity client.

        @PaulAdams : thanks for your support.

  47. Unknown User (ursbondada)

    how to create jobs for mks project branches in jenkins? i had tried job creations with mentioned docs in wiki but it is throwing the error "the project xxx could not be located on the server xxx"

  48. Unknown User (andre)

    Hello,

    i use this plugin since several months, its is really great.

    But now i have problems to checkout a SW project out of MKS. I use a Master - Slave setup. On the master is entered the job-configuration which is assigned to a slave-node.

    When the job ends without  errors, i look in the workspace on slave and find only the folder-structure without any files.

    Does someone know this problem?

    Best Regards,

    Andre

    1. Unknown User (joachimjenn)

      Hello,

      we also use the plugin since several months without any problems. But since last friday we have the same issue. Fortunately, we have installed jenkins in a VB and so I could go back.

      We didn't install any update on friday. I don't understand what leads to this issue,yet.

      Some weeks ago I updated the VirtualBox (on which we are running Redmine as well), and afterwarts I had the same problem, so I decide to go back to the last working snapshot. (I thought it was caused by the updates)

      The build's output shows "Successfully checked out 1122 files!" but the workspace is empty as you mentioned.

      I tried several things to solve this issue: creating a new job, remove project's workspace folder, remove job/builds folder. Updated PTC Plugin to 1.18. (Currently running 1.17).But nothing helped.

      Does someone have a hint how to solve this isue?

      Best Regards,

      Joachim

  49. Unknown User (mharb)

    Hi,

    I currently have version 1.16 from the plug-in and I want to update it to the latest 1.20

    But I can not find it in the list of 'updates' in manage plug-ins

    I tried to delete the plug-in and re-install it, but in the list of the 'Available' plug-ins I can only find the integrity version 1.16

    Does anyone know how can I do this migration?

    Thanks

    1. Unknown User (cdsouza)

      The update center json file in Jenkins controls what versions are available. Also, you might need a newer Jenkins core to get new versions of plugins

  50. Unknown User (andre)

    Hello,

    my problem deals with distributed/remote build execution.

    i try to checkout a Folders and files into a workspace of a slave.

    On the master the plugin runs perfect.

    But on the slave i get only empty folders.

    Does someone know the problem?

    Thanks.

    OS: Windows 7

    MKS Integrity Client 2009
    Build: 4.10.0.9665
    Service Pack: 007-01

    Jenkins v1.549

    PTC Integrity CM - Jenkins Plugin 1.22

    1. Unknown User (andre)

      The java version had to work with the right version of the Integrity API

      https://issues.jenkins-ci.org/browse/JENKINS-21638

  51. Unknown User (andre)

    Hi,

    my problem deals again with distributed/remote build execution:

    A clean copy is requested; deleting contents of d:\xxx\workspace\xxx
    Populating clean workspace...
    
    Successfully checked out 2262 files!
    Saving current Integrity Project configuration...
    Writing build change log...
    Change log successfully generated: E:\......\changelog.xml
    java.io.IOException: remote file operation failed: d:\...\workspace\... at hudson.remoting.Channel@xxx:xxx_Node
    at hudson.FilePath.act(FilePath.java:910)
    at hudson.FilePath.act(FilePath.java:887)
    at hudson.scm.IntegritySCM.checkout(IntegritySCM.java:802)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:651)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:560)
    at hudson.model.Run.execute(Run.java:1670)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:231)
    Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@13ec243
    at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
    at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
    at hudson.remoting.Channel.call(Channel.java:721)
    at hudson.FilePath.act(FilePath.java:903)
    ... 10 more
    Caused by: java.io.NotSerializableException: hudson.model.FreeStyleBuild
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
    at hudson.remoting.UserRequest._serialize(UserRequest.java:155)
    at hudson.remoting.UserRequest.serialize(UserRequest.java:164)
    ... 13 more
    Archiving artifacts
    

    I had restart the master an the slaves but without effect.

    Does someone know the problem?

    Thanks.

    OS: Windows 7

    MKS Integrity Client 2009
    Build: 4.10.0.9665
    Service Pack: 007-01

    Jenkins v1.551

    Windows 7 slave; version 2.33

    PTC Integrity CM - Jenkins Plugin 1.23

    Java Version: (build 1.7.0_15-b03)

    1. Unknown User (cdsouza)

      The previous version of the plugin required a minimum of 10.3 Integrity Server. The new version requires a minimum of 10.5. I'd be interested to know if this problem still persists in a valid configuration?

  52. Unknown User (gpierre)

    Hi Cletus,

    In a future version, would it be possible to support tags like *$

    Unknown macro: {env['JOB_NAME']}

    * in the new "Configuration name" field?

    Thank you

    Grégory Pierre

    1. Unknown User (cdsouza)

      The need for Configuration Name will go away when I either do away with Derby or figure out a DB pool to access a single Derby DB.

  53. Unknown User (roomer)

    Does fetching from a variant need to start from the root of where branch was created ?

    I tried fetching just one sub-project from a branch/variant, it was working from MKS as well as from command line, but when I tried using for example : #/Root_Project#Sub-project/Sub-sub-project#d=variant_name where

    my branch was created from Sub-project to its children, the fetch of Sub-sub-project failed using plugin.

    If I fetch from Sub-project e.g. #/Root_Project#Sub-project#d=variant_name then it succeeded.

    Could someone advise if I am doing something wrong, its a bug of PTC Integrity plugin or an improvement that can be made ?

    Thanks.

    Issue was with configuration path used, instead of #/Root_Project#Sub-project/Sub-sub-project#d=variant_name should use #/Root_Project#Sub-project#d=variant_name#Sub-sub-project

    Thanks to dev. for pointing this out.

  54. Unknown User (roomer)

    We have Change Package Review turned on.

    Is it possible to configure PTC Integrity Plugin so that we can resynchronize 'Submitted' Change Packages (i.e. not yet reviewed and not yet accepted) to perform a build to ensure nothing will be broken with the submitted Change Packages ?

    Thanks.

    1. Unknown User (cdsouza)

      That is certainly a use case that I'm keen to solve. Unfortunately, without a sandbox its going to be rather difficult to perform the staged changes (add/drop/move/renames can get tricky). This is essentially a Resync By CP operation. For now the work-around to this use case is create a development path for staging interim changes.

  55. Unknown User (hmagnanao)

  56. Unknown User (hmagnanao)

    I'm trying to start a build using Integrity plug in and I keep getting this error:Started by user hmagnanao
    Building in workspace C:\Jenkins\jobs\Build with Integrity integration\workspace
    Change Log: http://hmagnanao:8080/job/Build%20with%20Integrity%20integration/33/changes
    Build Log: http://hmagnanao:8080/job/Build%20with%20Integrity%20integration/33/console
    Failed to establish an API connection to the Integrity Server!
    Finished: FAILURE

    Can someone help ?

    1. Unknown User (jenkinstss)

      Have you solved the problem? We have exactly the same issue...

  57. Unknown User (peejay)

    Hi Cletus, I think I have found a problem with the Post Build Action "Integrity - CM Checkin".

    If you have a global setting for the user and password for your plugin, this overwrites the specified user and password that you try to save in the "Integrity - CM Checkin" form.

    I checked the actual config.xml file for the job, and the user is saved correctly the first time, but the next time I go to configure the job, the user and password from the global settings are written back into the form and if I don't notice, the user and password is changed in the job configuration file when I save the job again.

    Maybe you can have a look at it.

    Thanks in advance.

    Paul

    1. Unknown User (cdsouza)

      This should be resolved with version 1.29 and improved credential management.

  58. Unknown User (biro_norbert)

    Hello,

    How can i download the latest build sandbox with this plugin? Is it possible?

    Thanks,

    Norbert

    1. Unknown User (cdsouza)

      The Configuration Path parameter resolves environment variables using groovy expression. So, you can invoke the build via URL passing in the latest build checkpoint as a key value pair.

  59. Unknown User (peter_baum)

    Hello,

    I'd like to address the following two topics that came up using the Integrity plugin:

    1) Since it seems not possible to check in artifacts from a slave nodes workspace back into the Integrity project (java.io.IOException), and we would like to avoid running builds and tests from a workspace on the master server, is there an alternative to accomplish this anyway?

    2) Concerning the post build action "Integrity - CM Checkin", we experience the same behaviour with username/password setting. We use Jenkins v1.590 with Integrity plugin v1.28. Since the username/password section is hidden by default (unless you expand the section), it is unlikely that the replacement of the correct settings with the global ones will be noticed by someone making changes on a job configuration. Hence the next job run is destined to fail due to invalid login credentials! So I too would like to ask you if you could have a look at the problem.

    Thanks in advance.

    Peter

    1. Unknown User (cdsouza)

      Hi,

      I plan to revamp a few things with the next release of this plugin
      1. Support for latest Java 7 JRE (that would mean using the latest Integrity release). Perhaps that might resolve the IO exception some folks are encountering with the slaves.
      2. Revamp credential/server management. You will be able to define "servers" in the global configuration. Then in the job, you can simply pick the global configuration as a drop down.
      3. Get rid of Derby. With the Integrity 10.7 release, I will be able to rely on the API for project differences based on timestamps. Hence the need for derby and associated SQL Exception issues should go away as well.

      Please plan on your individual upgrades to 10.7 as the new plugin will not be backward compatible.

      Thanks!
      Cletus

      1. Unknown User (pmueller)

        Hi,

        thanks for the insights to your plans with the Integrity Plugin. Just wondering why you wrote in this issue https://issues.jenkins-ci.org/browse/JENKINS-25228 that you will get rid of the Derby DB in Integrity 10.6. We are actually now planning to upgrade to 10.6 that is why I'm asking. Isn't Integrity 10.7 already supporting Java 8?

        Thank you,

        Peer

        1. Unknown User (cdsouza)

          There still some "as of" operations that are going to be completed in the 10.7 release. Hence 10.6 might not be an ideal candidate for the Derby replacement.

          As for the Java support, I'm really trying to get over the limitation of Java 7 u40. This was removed in 10.5.

        2. Unknown User (cdsouza)

          On second thought... I think I'm going to defer the elimination of derby as I still need a way to calculate checksums and compare those against the server since there is no sandbox used in this plugin. For the immediate release, I will be upgrading to the mksapi.jar from Integrity 10.5 (this should allow JRE 1.7u40 and higher) and streamlining a few things like credentials and logging along with some minor bug fixes.

          A new release of the plugin should be out today...

      2. Unknown User (maschuru)

        Hi Cletus,
         
        this is great news !!! 
        If you need some support in GitHub just let me know, I'd be honored to help.
        BTW: Are you planning to use the "si projectcpdiff" command introduced in 10.6? 
        If so, I'd like to warn you, as there are some issue regarding shared build subprojects. Just today I submitted a case for PTC support, that describes:
        "If a project contains a shared BUILD subproject, the "si projectcpdiff" command will show all changes made in the shared project's context during the requested timeframe, although they have no effect on the current project in question at all."
        Hi Cletus,

        this is great news !!! 

        If you need some support in GitHub just let me know, I'd be honored to help.

        BTW: Are you planning to use the "si projectcpdiff" command introduced in 10.6? 

        If so, I'd like to warn you, as there are some issue regarding shared build subprojects. Just today I submitted a case for PTC support, that describes:

        "If a project contains a shared BUILD subproject, the "si projectcpdiff" command will show all changes made in the shared project's context during the requested timeframe, although they have no effect on the current project in question at all." 

        So in case you  plan to use this command for the pulling implementation, these "false positive" changes might be a problem.

        Regards Matthias

      3. Unknown User (maschuru)

        Hi Cletus,
         
        this is great news !!! 
        If you need some support in GitHub just let me know, I'd be honored to help.
        BTW: Are you planning to use the "si projectcpdiff" command introduced in 10.6? 
        If so, I'd like to warn you, as there are some issue regarding shared build subprojects. Just today I submitted a case for PTC support, that describes:
        "If a project contains a shared BUILD subproject, the "si projectcpdiff" command will show all changes made in the shared project's context during the requested timeframe, although they have no effect on the current project in question at all."

        So in case you  plan to use this command for the pulling implementation, these "false positive" changes might be a problem.

        Regards Matthias

        1. Unknown User (cdsouza)

          Thanks for the heads-up! Will keep you posted about my updates.

  60. Unknown User (cdsouza)

    IMPORTANT - I'm working on connection pooling and a single derby instance for all Jobs. This is an attempt to rid all SQL Exception errors experienced during parallel builds. There wont be a migration from individual derby DBs (one per job/build) into the global instance and you will most likely have to re-save and re-build all jobs. Hence, if you want to defer re-configuring your build jobs DO NOT UPGRADE to 1.29. You will most likely have to re-do it again (or at least re-save all) in 1.30. Recommendation is to go directly to 1.30 when it is available, so you only have to re-configure your build jobs once. Sorry about the inconvenience!

  61. Unknown User (peejay)

    Hi Cletus, can't seem to get the "Secure" setting saved in the configuration 1.30. Always saves as false no matter what I select.

    If I manually change the hudson.scm.IntegritySCM.xml file to set Secure to true, it always goes back to false any time I save the Jenkins configuration again.

    Regards,

    Paul

    1. Unknown User (cdsouza)

      Sorry about that... It's fixed now and will be available in 1.31.

      We're currently experiencing an issue with releasing to jenkins-ci, so if you'd like to continue testing please download the 1.31 candidate version attached to JENKINS-26770

      1. Unknown User (peejay)

        Thanks Cletus, that works (although it reports itself as 1.32-snapshot...)

        1. Unknown User (cdsouza)

          Release 1.31 went awry... which has messed up the pom.xml for the plugin. Rest assured it will be 1.31 in jenkins-ci when I actually get the release off.

  62. Unknown User (peejay)

    One other point I'd like to make about the latest versions 1.29 and 1.30. I really don't think it is a good idea to store the user and password in the general configuration. This means that anyone who can create a job has access to all projects of the users stored in the general configuration. This information must be stored in each individual job.

    I have no problem with the server information being stored in the general configuration, but the user name and password is a real security problem for us.

    Best regards, Paul

    1. Unknown User (cdsouza)

      Prior to 1.29, it was too complicated in terms of setting/getting the right credentials from a configuration point of view. I've simplified credential management with the premise that in general for CI, there is a service account that is responsible for all builds. At least that is how most of the customers I deal with have setup their build automation and CI.

      If it is the general consensus of the integrity-plugin user community to change this behavior, then I'm more than happy to oblige.

      1. Unknown User (peejay)

        I can understand that where each project has its own Jenkins server and their own service account, this will be much easier. However, we have a central Jenkins server that is run by the Tools Group that has many varied jobs, some of which require admin access to Integrity. This means that anyone who can create jobs on this particular Jenkins server (including the majority of users who should not have admin access to Integrity) can get access to all Integrity projects, which is not allowed.

        Best regards Paul

        1. Unknown User (cdsouza)

          Agreed! I will update the plugin to allow the ability to override the username/password at the SCM configuration level. However, there will not be a separate override at the checkin, checkpoint, or item actions. It is assumed that if you override the user/password for the project/job configuration it will apply to all other actions. Previously, it was too complex in that each action could have a separate connection. While each action will still have its own server and integration point information (since it is required when you have separate servers for scm and items) the username/password combination is expected to be the same across all Integrity Servers in your environment.

          I've opened JENKINS-26906 to track the progress on this issue. Use the attached snapshot version to test the user/password override capabilities. I've already spent a lot of time with developing and testing 1.29/1.30, so would appreciate some rigorous testing from the community.

          1. Unknown User (peejay)

            Thanks for the super quick response.

            Initial impressions are that this snapshot works well, but I will carry on testing and report back anything I find.

            1. Unknown User (peejay)

              Have just done some more testing (in 1.31) and found out that while the project specified user and password is used to do the initial check for any changes, when changes are found, it then uses the global name and password to perform the checkout, which doesn't work because I haven't got any name or password set in the global settings.

              One other question. I am still using a really old mksapi.jar file that I got from an old MKS eclipse plugin because none of the newer ones I have tried work with our SSL connection. I am now using Integrity 10.2 (9.6 up until recently) and I know that the latest api jar file will not work, but I expected the mksapi-jar-4.11.3238.jar that you supplied in the 1.28 plugin to work, but it doesn't. It seems to work if I switch our server to a clear connection, but fails as soon as I enable SSL connection. The really old api jar works fine in both clear and SSL mode. Do you have any ideas why this could be? Also, do you know of any problems using this old jar file with your newer plugins?

              1. Unknown User (cdsouza)

                Thanks for pointing out the issue with the project v/s global user credentials. I've fixed the problem and it is now available in version 1.32.

                The 4.11.3238 api jar is for Integrity 10.3. If you are at Integrity 10.2, then you need an api jar that is even older. I posted a one-off version for Integrity 2009 (SP6) which could use to connect to a 10.2 server.

                1. Unknown User (peejay)

                  Thanks for the quick fix Cletus. Now seems to be fine in 1.32.

                  As to the api jar, I can still find only one that connects properly to our server using SSL. All others produce various exceptions, including the one that comes with Integrity 10.2.

                  The question for me is can I still use the 1.32 version of the plugin as long as I replace the api jar supplied in the plugin with the only working api jar that I have? Or are there problems with this approach? E.g. maybe you are using some new API calls that aren't available in this old jar file. Currently it seems fine, but I don't want to be surprised at a later date.

                  1. Unknown User (cdsouza)

                    Paul, there are no new API calls introduced in the plugin. The only thing to keep in mind is that the plugin makes an explicit API version connection (4.13 - which is for Integrity 10.5). This is done for backward compatibility reasons (should you upgrade the server beyond 10.5). So, the fact that you are attempting to use an older api jar connecting to a server that isn't at API version (4.13) the plugin is requesting, should ordinarily result in an exception. Fortunately, it works to your benefit in this case, so I'd say you can continue using the old api jar with the current plugin version.

  63. Unknown User (sharpep_trw)

    I have tried upgrading to 1.30, but I am having no luck.

    I try creating a new job and the configuration page always shows “Loading” overlay. This also happens for existing jobs. If I uninstall the PTC plugin I can create jobs again.

    I am using Internet Explorer 10 and Jenkins ver. 1.556. My previous version of PTC plugin was 1.28.

    Are there any further tips to upgrading (I have quite a few jobs that would need upgrading!)

    I have downgraded to 1.28 and I am back in business.

    1. Unknown User (cdsouza)

      Try using the 1.31 snapshot attached to JENKINS-26906 above. I've eliminated a unique check which is probably the problem with upgrading from pre 1.29 to current.

      1. Unknown User (sharpep_trw)

        I have tried that and it does resolve my issue. I can create new jobs and edit existing ones. That's as far as I can go with testing this for now.

        Thanks for the quick response and all your efforts. 

  64. Unknown User (sharpep_trw)

    I have tried that and it does resolve my issue. I can create new jobs and edit existing ones. That's as far as I can go with testing this for now.

    Thanks for the quick response and all your efforts. 

  65. Unknown User (peejay)

    Hi Cletus, now that we do not have to supply a username and password in the global settings for the Integrity server, there is now a problem with the Post Build Integrity - CM Checkin as there is nowhere to define a username and password for that particular job.

    I know you said previously that you will not have an override for the username and password for the checkin operation, but the problem is that the only thing this particular job does is to check in a file. It is triggered by another job running on a slave that does the work to create the file, but I can't check in from a slave, so I have to copy the file back to the master and then check it in, so I need to configure a username and password just for the checkin operation.

    Does this mean I have to configure the project to use Integrity in the Source Code Management section, even if I am not actually using it? The problem with that is that it will overwrite the workspace where I have previously copied the file from the other job.

    Thanks in advance for any comment.

    1. Unknown User (cdsouza)

      Yes, the way it works currently, you'd have to define the user/password in Source Code Management section, even if you're not using it. As a workaround, you could configure it to checkout contents of a subproject that is empty. This way it doesn't really overwrite anything. Also, please post an issue so that I may consider it for a future release.

  66. Unknown User (ursbondada)

    Hello Cletus,

    We are moved PTC integrity server to Windows 2008 R2 from Windows 2003 R2. MKS build version is 4.10.0.9665 and service pack is 007-01.

    we were able to connect MKS from jenkins prior server upgration. now we are unable to connect MKS from jenkins and it is showing that connection failure always.

    also i have seen error message in console as SEVERE: APIException

    could you please suggest us to proceed further.

    regards

    Satya

    1. Unknown User (cdsouza)

      See section on "Plugin for Unsupported Configurations". 4.10.0.9665 (or Integrity 2009 SP7) is no longer supported with plugin versions 1.30 and beyond. You need to upgrade your Integrity Server to Integrity 10.5 (API Version 4.13.5479) for the current plugin to work

  67. Unknown User (fouquec)

    Hello Cletus,

    I am encountering an issue with this plugin version 1.34 when trying to set a pre-build checkpoint on a Dev Path :Successfully executed pre-build checkpoint for project #/blabla#xxxxx/xxx/xxx#d=DEV_PATH, new revision is 1.405.1.12
    An API Exception was caught!
    The project #/blabla#xxxxx/xxx/xxx#d=DEV_PATH#forceJump=#b=1.405.1.12 could not be located on the server toto.titi.com:7777: MKS125607: Invalid project syntax. MKS125617: You cannot specify twice a configuration for (xxx/project.pj).
    si projectinfo -user=imemineport=7777-hostname=toto.titi.com --project=#/blabla#xxxxx/xxx/xxx#d=DEV_PATH#forceJump=#b=1.405.1.12 – returned exit code 128

    Could you please help on this. Many thanks and regards.

    1. Unknown User (cdsouza)

      Unfortunately for errors specific to the product (MKS125607), you will need to reproduce it on the command line and report it to PTC Integrity Customer Support.

      1. Unknown User (maschuru)

        We also faced this problem.

        The root cause is, that the Integrity configuration path does not accept a devpath ("...#d=myDevPath" ) AND a build ("...#forceJump=#b=1.405.1.12") in one config path string.

        Based on the way the checkout after a prebuild checkpoint is implemented, (use the jobs configpath and append the recently created checkpoint to the string) this will always fail, if you have a Job configured to a Development path.

        Our Workaround:

        - create a new top level project in PTC Integrity that shares the devpath you want to use and use that project for your jenkins setup.

        related JIRA entry

  68. Unknown User (peejay)

    Hi Cletus,

    Just updated to 1.35 and now get errors in all my existing jobs that use the plugin. The logs show following error:Oct 21, 2015 3:20:33 PM FINE IntegritySCM
    Failed to drop table 'SCM_aca2adce_2955_46a6_a275_011e75e81df1' from Integrity SCM cache registry!

    Oct 21, 2015 3:20:33 PM SEVERE hudson.scm.DerbyUtils cleanupProjectCache
    SQLException
    java.sql.SQLSyntaxErrorException: 'DROP TABLE' cannot be performed on 'SCM_ACA2ADCE_2955_46A6_A275_011E75E81DF1' because it does not exist.
    at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
    at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
    at hudson.scm.DerbyUtils.executeStmt(DerbyUtils.java:189)
    at hudson.scm.DerbyUtils.cleanupProjectCache(DerbyUtils.java:483)
    at hudson.scm.IntegrityRevisionState.<init>(IntegrityRevisionState.java:25)
    at hudson.scm.IntegritySCM.calcRevisionsFromBuild(IntegritySCM.java:569)
    at hudson.model.AbstractProject.calcPollingBaseline(AbstractProject.java:1293)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1281)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)
    Caused by: ERROR 42Y55: 'DROP TABLE' cannot be performed on 'SCM_ACA2ADCE_2955_46A6_A275_011E75E81DF1' because it does not exist.
    at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    at org.apache.derby.impl.sql.compile.DDLStatementNode.justGetDescriptor(Unknown Source)
    at org.apache.derby.impl.sql.compile.DDLStatementNode.getTableDescriptor(Unknown Source)
    at org.apache.derby.impl.sql.compile.DDLStatementNode.getTableDescriptor(Unknown Source)
    at org.apache.derby.impl.sql.compile.DropTableNode.bindStatement(Unknown Source)
    at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
    at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
    at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
    ... 15 more

    Something similar appears for all jobs and jobs never finish, have to abort them. Any ideas?

    Thanks in advance,
    Paul

    1. Unknown User (cdsouza)

      1.35 implemented a work around for this issue. The problem is the older cache table gets dropped, but an entry pointing to the dropped table doesn't get purged for some reason. I've not been able to figure out why. So, for now the workaround implemented is to manually go flush the old cache (Manage Jenkins --> Configure System) for the Integrity plugin. After that your jobs should build again.

      If this problem persists too often, the next option is to trap the exception and ignore it altogether as this is just a clean up step and not anything major as it relates to the plugin's operation.

  69. Unknown User (ukuko)

    Hi Cletus, how far is this plugin supported by PTC itself as company?

    I ask this because in my company we are using this plugin for quite some time along with Integrity 10.5, yet from time to time there are some issues on our Integrity server.

    Our server guys spoke with PTC directly and some of the keypoints they told me were:

    - this plugins shall not be used as it is making many issues to the server.

    - API calls to the servers are making trouble and shall not be used

    - command line commands shall be used instead

    - PTC is working on an "official" Jenkins plugin, yet with limitations (no FSA supported)

    can you say something about this?

    We are on the middle of decision about using this plugin in extended way or go back to command line wrappers.

    Thanks in advance,

    Paul

  70. Unknown User (hmagnanao)

    i'm trying to use the powershell command to create a sandbox using the si.exe createsandbox command for Integrity but when I try I get this error:si.exe: Attempt to launch Integrity Client timed out. To solve this please try the following:

    • Verify that the user you are logged in as has read and write permissions to the Integrity Client install directory.
    • Make sure the Integrity Client install directory is the very first entry in the path.

    has anyone run into this issue ? please advise and let me know what the resolution is ?

  71. Unknown User (sohamshah)

    Hi Cletus,
    We are currently using PTC Integrity 10.7 & PTC Integrity CM - Jenkins Plugin v1.17. We are in-process to perform Jenkins Upgrade from 1.554.2 to 1.642.2.
    Please advise us on below points which will help us to plan this upgrade.
    - Will PTC Integrity CM - Jenkins Plugin v1.17 work with Jenkins 1.642.2 ?
    - After Jenkins Upgrade, if PTC Integrity CM - Jenkins Plugin is upgraded to v2.0.1, is it compulsary to recreate jobs or it is possible to use groovy script to save all jobs which will add required attributes as per new plugin.

  72. Unknown User (niteshdixit)

    Hi,

    I am able to connect to integrity server using PTC Client but facing connectivity issue while doing the test connection in Configure System. PFB the jenkins.err.log

    Using Latest PTC Integrity CM - Jenkins Plugin v2.0.2

    Integrity Server: 10.3.0.3238

    API Version: 4.11.3238

    daemon.connectionPolicy=mks.ic.common.policy.ICAllowAllConnectionPolicy

    Please check and let me know if I am missing something.

    **********************************************

    Nov 16, 2016 10:26:45 AM org.eclipse.jetty.util.log.JavaUtilLog warn
    WARNING: Error while serving http://Server:Port/descriptorByName/hudson.scm.IntegritySCM/testConnection
    java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
        at java.lang.reflect.Method.invoke(Method.java:620)
        at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:335)
        at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:175)
        at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:108)
        at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
        at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:236)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
        at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
        at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
        at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
        at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
        at org.eclipse.jetty.server.Server.handle(Server.java:499)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
        at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
        at java.lang.Thread.run(Thread.java:809)
    Caused by: com.mks.api.response.APIConnectionException: Unexpected HTTP status: Internal Server Error
        at java.lang.J9VMInternals.newInstanceImpl(Native Method)
        at java.lang.Class.newInstance(Class.java:1887)
        at com.mks.api.response.APIExceptionFactory.getAPIExceptionObject(APIExceptionFactory.java:134)
        at com.mks.api.response.APIExceptionFactory.createAPIException(APIExceptionFactory.java:80)
        at com.mks.connect.AbstractCmdRunner.executeCommand(AbstractCmdRunner.java:317)
        at com.mks.connect.AbstractCmdRunner.executeCommand(AbstractCmdRunner.java:242)
        at com.mks.connect.AbstractCmdRunner.execute(AbstractCmdRunner.java:394)
        at hudson.scm.api.session.APISession.runCommand(APISession.java:159)
        at hudson.scm.IntegritySCM$DescriptorImpl.doTestConnection(IntegritySCM.java:953)
        ... 68 more

    1. Unknown User (integrity_jenkins_plugin)

      Plugin versions 2.0 and above only support ILM Server version 10.8 and above. A 10.3 Integrity Server isn't supported by this plugin anymore. A suggestion would be to revert to an older plugin version (probably <1.17 plugin version) from http://updates.jenkins-ci.org/download/plugins/integrity-plugin/

  73. Unknown User (sharpep_trw)

    What is being done about the suspension of distribution of this plugin?

    1. Unknown User (integrity_jenkins_plugin)

      Hello Paul,

      Please expect the suspension to be restored by end July'17 timeframe, when we roll out the next release. The suspension issue has been fixed, and we are also in process of implementation of Integrity client coupling with the plugin for better performance,

      In the meantime, you can download older releases of the plugin here: https://repo.jenkins-ci.org/. Search for integrity*.hpi for all the release versions of this plugins.

  74. Unknown User (pkthunda)

    Is there any update on the next release roll out?

  75. Unknown User (integrity_jenkins_plugin)

    We are working on it as I write this. We wrapped up some last minute bug fixes in the local client implementation and are running tests. Please expect by end of next week.

  76. Unknown User (ericlong)

    Is there any update on the next release?  We are stuck right now.

    1. Unknown User (integrity_jenkins_plugin)

      Hi Eric,

      Integrity Plugin is back online.

  77. Unknown User (sharpep_trw)

    Before I raise an issue can someone explain what the Line Terminator option "native" should mean?

    Should it be the Line Terminator of the target OS, e.g. if getting files to a Windows PC then CRLF; if 'NIX then CR?

    1. Unknown User (integrity_jenkins_plugin)

      Hi Paul,

      From the Integrity Client documentation:

      --lineTerminator==[lf|cr|crlf|native]

      explicitly identifies the characters to use as the line terminator. lf is a line feed character, crlf is the combination of the carriage return and line feed characters, and native uses the default line terminator in the client operating system: crlf in Windows, cr in Mac OS, and lf in UNIX.
      1. Unknown User (sharpep_trw)

        That is what I expected. Our Jenkins master and slaves are Windows OS, but we have had a case where the line terminator came out as 'lf' only, with the setting set to native. The output needed to have 'crlf'. I will collect the evidence and raise an issue. Changing to explicitly use 'crlf' worked around the issue.

  78. Unknown User (alexruff)

    Hello,

    I observed a strange behavior with V2.1 and Jenkins 2.36.

    Whenever we create a new job the initial checkout from PTC takes hours to an extend when we need to abort the initial checkout. The following checkouts are working fine though. It seems to be stuck in "execute si viewproject"

    Whats even more annoying is that it seems that during this time the execution of other jobs not related to the above job also get stuck. Jobs which are even executed on other nodes. How comes that the PTC checkout Job influences unrelated Jobs on other nodes. Are the "si" console commands executed by the master node and does it stall all other jobs?

    Best regards

    Alex

    1. Unknown User (sharpep_trw)

      I have also seen this behaviour on version 1.36 of the plugin. Quite often we have to restart the server to get out of this situation. From my experience it seems that the plugin is susceptible to issues with the network connection to the integrity server (which is remote for us).

      We are hoping that use of the new localClient feature will resolve this.

  79. Unknown User (saad_azam)

    Hi I am using the plugin to poll changes in a project. Is it possible to ignore specific subprojects while polling for the changes?

  80. Unknown User (sharpep_trw)

    I have just attempted an upgrade to version 2.2. The plugin seems to be unable to write the change log?

    I am getting:

    [LocalClient] IntegrityResyncSandboxTask invoke Exception :E:\jenkins\bld\CH049642-SLN_Flow\11\changelog0.xml (The system cannot find the path specified)
    java.io.FileNotFoundException: E:\jenkins\bld\CH049642-SLN_Flow\11\changelog0.xml (The system cannot find the path specified)

     (build 11 was the build number of the build I was building).

    Any ideas?

    1. Unknown User (sharpep_trw)

      It seems to be due to an attempt to checkout to an Agent/Node.

  81. Unknown User (sharpep_trw)

    Can you please clarify where the local client picks up its preferences from? Is it in the %USERPROFILE%\IntegrityClient.rc of the service user?

    I am not convinced that the proxy settings are being picked up.