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 for Continuous Builds and MKS 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 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, boolean cleanCopy, String lineTerminator, boolean restoreTimestamp)
          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 MKS 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 MKS Integrity Server
 hudson.scm.ChangeLogParser createChangeLogParser()
          Overridden createChangeLogParser function Creates a custom Integrity Change Log Parser, which compares two view project outputs
 IntegrityRepositoryBrowser getBrowser()
           
 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 MKS Integrity Source Project
 hudson.scm.SCMDescriptor<IntegritySCM> getDescriptor()
          Returns the SCMDescriptor for the SCM object.
 String getHostName()
          Returns the host name of the MKS Integrity Server
 IntegrityCMProject getIntegrityProject()
          Returns the MKS Integrity Configuration Management Project
 String getLineTerminator()
          Returns the line terminator to apply when obtaining files from the MKS Integrity Server
 void getLineTerminator(String lineTerminator)
          Sets the line terminator to apply when obtaining files from the MKS Integrity Server
 String getPassword()
          Returns the clear password of the user connecting to the MKS Integrity Server
 int getPort()
          Returns the port of the MKS 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
 String getUserName()
          Returns the User connecting to the MKS Integrity Server
static File getViewProjectResponseFile(hudson.model.AbstractBuild<?,?> build)
          Returns the MKS API Response xml file for the specified build
 boolean requiresWorkspaceForPolling()
          Toggles whether or not a workspace is required for polling Since, we're using a Server Integration Point in the MKS API, we do not require a workspace.
 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 a MKS Integrity Source Project
 void setHostName(String hostName)
          Sets the host name of the MKS Integrity Server
 void setPassword(String password)
          Sets the encrypted Password of the user connecting to the MKS Integrity Server
 void setPort(int port)
          Sets the port of the MKS 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 setUserName(String userName)
          Sets the User connecting to the MKS 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

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,
                                         boolean cleanCopy,
                                         String lineTerminator,
                                         boolean restoreTimestamp)
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 MKS Integrity Server

Returns:

getPort

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

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 MKS Integrity Source Project

Returns:

getUserName

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

Returns:

getPassword

public String getPassword()
Returns the clear password of the user connecting to the MKS 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 MKS Integrity Server

Returns:

getRestoreTimestamp

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

Returns:

setHostName

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


setPort

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


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 a MKS Integrity Source Project


setUserName

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


setPassword

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


setCleanCopy

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


getLineTerminator

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


setRestoreTimestamp

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


createAPISession

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

Returns:
An authenticated API Session

getIntegrityProject

public IntegrityCMProject getIntegrityProject()
Returns the MKS Integrity Configuration Management Project

Returns:

buildEnvVars

public void buildEnvVars(hudson.model.AbstractBuild<?,?> build,
                         Map<String,String> env)
Adds MKS 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 MKS 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)

getViewProjectResponseFile

public static File getViewProjectResponseFile(hudson.model.AbstractBuild<?,?> build)
Returns the MKS API Response xml file for the specified build

Parameters:
build - Hudson AbstractBuild Object
Returns:

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-2011 Hudson. All Rights Reserved.