hudson.scm
Class IntegritySCM

java.lang.Object
  extended by hudson.scm.SCM
      extended by hudson.scm.IntegritySCM
All Implemented Interfaces:
hudson.ExtensionPoint, hudson.model.Describable<hudson.scm.SCM>, Serializable

public class IntegritySCM
extends hudson.scm.SCM
implements Serializable

This class provides an integration between Hudson/Jenkins for Continuous Builds and PTC Integrity for Configuration Management

See Also:
Serialized Form

Nested Class Summary
static class IntegritySCM.DescriptorImpl
          The relationship of Descriptor and SCM (the describable) is akin to class and object.
 
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
hudson.ExtensionPoint.LegacyInstancesAreScopedToHudson
 
Field Summary
static String FS
           
static int MAX_PORT_VALUE
           
static int MIN_PORT_VALUE
           
static String NL
           
static SimpleDateFormat SDF
           
 
Fields inherited from class hudson.scm.SCM
PERMISSIONS, TAG
 
Constructor Summary
IntegritySCM(IntegrityRepositoryBrowser browser, String hostName, int port, boolean secure, String configPath, String userName, String password, String ipHostName, int ipPort, boolean cleanCopy, String lineTerminator, boolean restoreTimestamp, boolean skipAuthorInfo, boolean checkpointBeforeBuild, String alternateWorkspace, boolean fetchChangedWorkspaceFiles)
          Create a constructor that takes non-transient fields, and add the annotation @DataBoundConstructor to it.
 
Method Summary
 void buildEnvVars(hudson.model.AbstractBuild<?,?> build, Map<String,String> env)
          Adds Integrity CM Project info to the build variables
 hudson.scm.SCMRevisionState calcRevisionsFromBuild(hudson.model.AbstractBuild<?,?> build, hudson.Launcher launcher, hudson.model.TaskListener listener)
          Overridden calcRevisionsFromBuild function Returns the current project configuration which can be used to difference any future configurations
 boolean checkout(hudson.model.AbstractBuild<?,?> build, hudson.Launcher launcher, hudson.FilePath workspace, hudson.model.BuildListener listener, File changeLogFile)
          Overridden checkout function This is the real invocation of this plugin.
protected  hudson.scm.PollingResult compareRemoteRevisionWith(hudson.model.AbstractProject<?,?> project, hudson.Launcher launcher, hudson.FilePath workspace, hudson.model.TaskListener listener, hudson.scm.SCMRevisionState _baseline)
          Overridden compareRemoteRevisionWith function Loads up the previous project configuration and compares that against the current to determine if the project has changed
 APISession createAPISession()
          Creates an authenticated API Session against the Integrity Server
 hudson.scm.ChangeLogParser createChangeLogParser()
          Overridden createChangeLogParser function Creates a custom Integrity Change Log Parser, which compares two view project outputs
 String getAlternateWorkspace()
          Returns the alternate workspace directory
 IntegrityRepositoryBrowser getBrowser()
           
 boolean getCheckpointBeforeBuild()
          Returns true/false depending on whether or not perform a checkpoint before the build
 boolean getCleanCopy()
          Returns true/false depending on whether or not the workspace is required to be cleaned
 String getConfigPath()
          Returns the Project or Configuration Path for a Integrity Source Project
 hudson.scm.SCMDescriptor<IntegritySCM> getDescriptor()
          Returns the SCMDescriptor for the SCM object.
 boolean getFetchChangedWorkspaceFiles()
          Returns the true/false depending on whether or not to synchronize changed workspace files
 String getHostName()
          Returns the host name of the Integrity Server
 IntegrityCMProject getIntegrityProject()
          Returns the Integrity Configuration Management Project
 String getipHostName()
          Returns the Integration Point host name of the API Session
 int getipPort()
          Returns the Integration Point port of the API Session
 String getLineTerminator()
          Returns the line terminator to apply when obtaining files from the Integrity Server
 String getPassword()
          Returns the clear password of the user connecting to the Integrity Server
 int getPort()
          Returns the port of the Integrity Server
 boolean getRestoreTimestamp()
          Returns true/false depending on whether or not the restore timestamp option is in effect
 boolean getSecure()
          Returns true/false depending on secure sockets are enabled
 boolean getSkipAuthorInfo()
          Returns true/false depending on whether or not to use 'si revisioninfo' to determine author information
 String getUserName()
          Returns the User connecting to the Integrity Server
 boolean requiresWorkspaceForPolling()
          Toggles whether or not a workspace is required for polling Since, we're using a Server Integration Point in the Integrity API, we do not require a workspace.
 void setAlternateWorkspace(String alternateWorkspace)
          Sets an alternate workspace for the checkout directory
 void setCheckpointBeforeBuild(boolean checkpointBeforeBuild)
          Toggles whether or not a checkpoint should be performed before the build
 void setCleanCopy(boolean cleanCopy)
          Toggles whether or not the workspace is required to be cleaned
 void setConfigPath(String configPath)
          Sets the Project or Configuration Path for an Integrity Source Project
 void setFetchChangedWorkspaceFiles(boolean fetchChangedWorkspaceFiles)
          Toggles whether or not changed workspace files should be synchronized
 void setHostName(String hostName)
          Sets the host name of the Integrity Server
 void setipHostName(String ipHostName)
          Sets the Integration Point host name of the API Session
 void setipPort(int ipPort)
          Sets the Integration Point port of the API Session
 void setLineTerminator(String lineTerminator)
          Sets the line terminator to apply when obtaining files from the Integrity Server
 void setPassword(String password)
          Sets the encrypted Password of the user connecting to the Integrity Server
 void setPort(int port)
          Sets the port of the Integrity Server
 void setRestoreTimestamp(boolean restoreTimestamp)
          Toggles whether or not to restore the timestamp for individual files
 void setSecure(boolean secure)
          Toggles whether or not secure sockets are enabled
 void setSkipAuthorInfo(boolean skipAuthorInfo)
          Toggles whether or not to use 'si revisioninfo' to determine author information
 void setUserName(String userName)
          Sets the User connecting to the Integrity Server
 
Methods inherited from class hudson.scm.SCM
_calcRevisionsFromBuild, _for, all, createEmptyChangeLog, getApi, getEffectiveBrowser, getModuleRoot, getModuleRoot, getModuleRoots, getModuleRoots, getType, nullify, poll, pollChanges, processWorkspaceBeforeDeletion, supportsPolling
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NL

public static final String NL

FS

public static final String FS

MIN_PORT_VALUE

public static final int MIN_PORT_VALUE
See Also:
Constant Field Values

MAX_PORT_VALUE

public static final int MAX_PORT_VALUE
See Also:
Constant Field Values

SDF

public static final SimpleDateFormat SDF
Constructor Detail

IntegritySCM

@DataBoundConstructor
public IntegritySCM(IntegrityRepositoryBrowser browser,
                                         String hostName,
                                         int port,
                                         boolean secure,
                                         String configPath,
                                         String userName,
                                         String password,
                                         String ipHostName,
                                         int ipPort,
                                         boolean cleanCopy,
                                         String lineTerminator,
                                         boolean restoreTimestamp,
                                         boolean skipAuthorInfo,
                                         boolean checkpointBeforeBuild,
                                         String alternateWorkspace,
                                         boolean fetchChangedWorkspaceFiles)
Create a constructor that takes non-transient fields, and add the annotation @DataBoundConstructor to it. Using the annotation helps the Stapler class to find which constructor that should be used when automatically copying values from a web form to a class.

Method Detail

getBrowser

@Exported
public IntegrityRepositoryBrowser getBrowser()
Overrides:
getBrowser in class hudson.scm.SCM

getHostName

public String getHostName()
Returns the host name of the Integrity Server

Returns:

getipHostName

public String getipHostName()
Returns the Integration Point host name of the API Session

Returns:

getPort

public int getPort()
Returns the port of the Integrity Server

Returns:

getipPort

public int getipPort()
Returns the Integration Point port of the API Session

Returns:

getSecure

public boolean getSecure()
Returns true/false depending on secure sockets are enabled

Returns:

getConfigPath

public String getConfigPath()
Returns the Project or Configuration Path for a Integrity Source Project

Returns:

getUserName

public String getUserName()
Returns the User connecting to the Integrity Server

Returns:

getPassword

public String getPassword()
Returns the clear password of the user connecting to the Integrity Server

Returns:

getCleanCopy

public boolean getCleanCopy()
Returns true/false depending on whether or not the workspace is required to be cleaned

Returns:

getLineTerminator

public String getLineTerminator()
Returns the line terminator to apply when obtaining files from the Integrity Server

Returns:

getRestoreTimestamp

public boolean getRestoreTimestamp()
Returns true/false depending on whether or not the restore timestamp option is in effect

Returns:

getSkipAuthorInfo

public boolean getSkipAuthorInfo()
Returns true/false depending on whether or not to use 'si revisioninfo' to determine author information

Returns:

getCheckpointBeforeBuild

public boolean getCheckpointBeforeBuild()
Returns true/false depending on whether or not perform a checkpoint before the build

Returns:

getAlternateWorkspace

public String getAlternateWorkspace()
Returns the alternate workspace directory

Returns:

getFetchChangedWorkspaceFiles

public boolean getFetchChangedWorkspaceFiles()
Returns the true/false depending on whether or not to synchronize changed workspace files

Returns:

setHostName

public void setHostName(String hostName)
Sets the host name of the Integrity Server


setipHostName

public void setipHostName(String ipHostName)
Sets the Integration Point host name of the API Session


setPort

public void setPort(int port)
Sets the port of the Integrity Server


setipPort

public void setipPort(int ipPort)
Sets the Integration Point port of the API Session


setSecure

public void setSecure(boolean secure)
Toggles whether or not secure sockets are enabled


setConfigPath

public void setConfigPath(String configPath)
Sets the Project or Configuration Path for an Integrity Source Project


setUserName

public void setUserName(String userName)
Sets the User connecting to the Integrity Server


setPassword

public void setPassword(String password)
Sets the encrypted Password of the user connecting to the Integrity Server


setCleanCopy

public void setCleanCopy(boolean cleanCopy)
Toggles whether or not the workspace is required to be cleaned


setLineTerminator

public void setLineTerminator(String lineTerminator)
Sets the line terminator to apply when obtaining files from the Integrity Server


setRestoreTimestamp

public void setRestoreTimestamp(boolean restoreTimestamp)
Toggles whether or not to restore the timestamp for individual files


setSkipAuthorInfo

public void setSkipAuthorInfo(boolean skipAuthorInfo)
Toggles whether or not to use 'si revisioninfo' to determine author information


setCheckpointBeforeBuild

public void setCheckpointBeforeBuild(boolean checkpointBeforeBuild)
Toggles whether or not a checkpoint should be performed before the build

Parameters:
checkpointBeforeBuild -

setAlternateWorkspace

public void setAlternateWorkspace(String alternateWorkspace)
Sets an alternate workspace for the checkout directory

Parameters:
alternateWorkspace -

setFetchChangedWorkspaceFiles

public void setFetchChangedWorkspaceFiles(boolean fetchChangedWorkspaceFiles)
Toggles whether or not changed workspace files should be synchronized

Parameters:
fetchChangedWorkspaceFiles -

createAPISession

public APISession createAPISession()
Creates an authenticated API Session against the Integrity Server

Returns:
An authenticated API Session

getIntegrityProject

public IntegrityCMProject getIntegrityProject()
Returns the Integrity Configuration Management Project

Returns:

buildEnvVars

public void buildEnvVars(hudson.model.AbstractBuild<?,?> build,
                         Map<String,String> env)
Adds Integrity CM Project info to the build variables

Overrides:
buildEnvVars in class hudson.scm.SCM

calcRevisionsFromBuild

public hudson.scm.SCMRevisionState calcRevisionsFromBuild(hudson.model.AbstractBuild<?,?> build,
                                                          hudson.Launcher launcher,
                                                          hudson.model.TaskListener listener)
                                                   throws IOException,
                                                          InterruptedException
Overridden calcRevisionsFromBuild function Returns the current project configuration which can be used to difference any future configurations

Specified by:
calcRevisionsFromBuild in class hudson.scm.SCM
Throws:
IOException
InterruptedException
See Also:
SCM.calcRevisionsFromBuild(hudson.model.AbstractBuild, hudson.Launcher, hudson.model.TaskListener)

requiresWorkspaceForPolling

public boolean requiresWorkspaceForPolling()
Toggles whether or not a workspace is required for polling Since, we're using a Server Integration Point in the Integrity API, we do not require a workspace.

Overrides:
requiresWorkspaceForPolling in class hudson.scm.SCM

checkout

public boolean checkout(hudson.model.AbstractBuild<?,?> build,
                        hudson.Launcher launcher,
                        hudson.FilePath workspace,
                        hudson.model.BuildListener listener,
                        File changeLogFile)
                 throws IOException,
                        InterruptedException
Overridden checkout function This is the real invocation of this plugin. Currently, we will do a project info and determine the true nature of the project Subsequent to that we will run a view project command and cache the information on each member, so that we can execute project checkout commands. This obviously eliminates the need for a sandbox and can wily nilly delete the workspace directory as needed

Specified by:
checkout in class hudson.scm.SCM
Throws:
IOException
InterruptedException
See Also:
SCM.checkout(hudson.model.AbstractBuild, hudson.Launcher, hudson.FilePath, hudson.model.BuildListener, java.io.File)

compareRemoteRevisionWith

protected hudson.scm.PollingResult compareRemoteRevisionWith(hudson.model.AbstractProject<?,?> project,
                                                             hudson.Launcher launcher,
                                                             hudson.FilePath workspace,
                                                             hudson.model.TaskListener listener,
                                                             hudson.scm.SCMRevisionState _baseline)
                                                      throws IOException,
                                                             InterruptedException
Overridden compareRemoteRevisionWith function Loads up the previous project configuration and compares that against the current to determine if the project has changed

Specified by:
compareRemoteRevisionWith in class hudson.scm.SCM
Throws:
IOException
InterruptedException
See Also:
SCM.compareRemoteRevisionWith(hudson.model.AbstractProject, hudson.Launcher, hudson.FilePath, hudson.model.TaskListener, hudson.scm.SCMRevisionState)

createChangeLogParser

public hudson.scm.ChangeLogParser createChangeLogParser()
Overridden createChangeLogParser function Creates a custom Integrity Change Log Parser, which compares two view project outputs

Specified by:
createChangeLogParser in class hudson.scm.SCM
See Also:
SCM.createChangeLogParser()

getDescriptor

public hudson.scm.SCMDescriptor<IntegritySCM> getDescriptor()
Returns the SCMDescriptor for the SCM object. The SCMDescriptor is used to create new instances of the SCM.

Specified by:
getDescriptor in interface hudson.model.Describable<hudson.scm.SCM>
Overrides:
getDescriptor in class hudson.scm.SCM


Copyright © 2004-2012 Hudson. All Rights Reserved.