hudson.plugins.jobConfigHistory
Class JobConfigHistoryBaseAction

java.lang.Object
  extended by hudson.plugins.jobConfigHistory.JobConfigHistoryBaseAction
All Implemented Interfaces:
hudson.model.Action, hudson.model.ModelObject
Direct Known Subclasses:
JobConfigHistoryProjectAction, JobConfigHistoryRootAction

public abstract class JobConfigHistoryBaseAction
extends Object
implements hudson.model.Action

Implements some basic methods needed by the JobConfigHistoryRootAction and JobConfigHistoryProjectAction.

Author:
mfriedenhagen

Nested Class Summary
static class JobConfigHistoryBaseAction.SideBySideView
          Holds information for the SideBySideView.
 
Constructor Summary
JobConfigHistoryBaseAction()
          Set the Hudson instance.
 
Method Summary
protected abstract  void checkConfigurePermission()
          See whether the current user may read configurations in the object returned by getAccessControlledObject().
 void doDiffFiles(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
          Parses the incoming POST request and redirects as GET showDiffFiles.
protected abstract  hudson.security.AccessControlled getAccessControlledObject()
          Returns the object for which we want to provide access control.
protected  hudson.XmlFile getConfigXml(String name, String timestamp, boolean isJob)
          Returns the configuration file (default is config.xml) located in path.
protected  String getDiff(File file1, File file2, String[] file1Lines, String[] file2Lines)
          Returns a unified diff between two string arrays.
 String getDiffFile()
          Returns a textual diff between two config.xml files which are identified by their timestamps and the project they belong to, given as parameters of Stapler.getCurrentRequest().
 List<JobConfigHistoryBaseAction.SideBySideView.Line> getDiffLines()
          Returns side-by-side (i.e. human-readable) diff view lines.
 String getDisplayName()
           Make method final, as we always want the same display name.
 String getFile()
          Returns JobConfigHistoryBaseAction#getConfigXml(String) as String.
protected  hudson.model.Hudson getHudson()
          Returns the hudson instance.
protected  JobConfigHistory getPlugin()
          Returns the JobConfigHistory plugin instance.
protected  String getRequestParameter(String parameterName)
          Returns the parameter named parameterName from current request.
 String getUrlName()
           Do not make this method final as JobConfigHistoryRootAction overrides this method.
protected abstract  boolean hasConfigurePermission()
          Returns whether the current user may read configurations in the object returned by getAccessControlledObject().
 boolean wantRawOutput()
          Do we want 'raw' output?
 boolean wantXmlOutput()
          Do we want 'xml' output?
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface hudson.model.Action
getIconFileName
 

Constructor Detail

JobConfigHistoryBaseAction

public JobConfigHistoryBaseAction()
Set the Hudson instance.

Method Detail

getDisplayName

public final String getDisplayName()
Make method final, as we always want the same display name.

Specified by:
getDisplayName in interface hudson.model.Action
Specified by:
getDisplayName in interface hudson.model.ModelObject

getUrlName

public String getUrlName()
Do not make this method final as JobConfigHistoryRootAction overrides this method.

Specified by:
getUrlName in interface hudson.model.Action

wantRawOutput

public final boolean wantRawOutput()
Do we want 'raw' output?

Returns:
true if request parameter type is 'raw'.

wantXmlOutput

public final boolean wantXmlOutput()
Do we want 'xml' output?

Returns:
true if request parameter type is 'xml'.

getFile

public final String getFile()
                     throws IOException
Returns JobConfigHistoryBaseAction#getConfigXml(String) as String.

Returns:
content of the config.xml found in directory given by the request parameter file.
Throws:
IOException - if the config file could not be read or converted to an xml string.

getConfigXml

protected hudson.XmlFile getConfigXml(String name,
                                      String timestamp,
                                      boolean isJob)
Returns the configuration file (default is config.xml) located in path. The submitted parameters get checked so that they can not be abused to retrieve arbitrary xml configuration files located anywhere on the system.

Parameters:
name - The name of the project.
timestamp - The timestamp of the saved configuration as String.
isJob - True if the configuration file belongs to a job (as opposed to a system property).
Returns:
The configuration file as XmlFile.

getRequestParameter

protected String getRequestParameter(String parameterName)
Returns the parameter named parameterName from current request.

Parameters:
parameterName - name of the parameter.
Returns:
value of the request parameter or null if it does not exist.

checkConfigurePermission

protected abstract void checkConfigurePermission()
See whether the current user may read configurations in the object returned by getAccessControlledObject().


hasConfigurePermission

protected abstract boolean hasConfigurePermission()
Returns whether the current user may read configurations in the object returned by getAccessControlledObject().

Returns:
true if the current user may read configurations.

getHudson

protected final hudson.model.Hudson getHudson()
Returns the hudson instance.

Returns:
the hudson

getPlugin

protected final JobConfigHistory getPlugin()
Returns the JobConfigHistory plugin instance.

Returns:
the JobConfigHistory plugin

getAccessControlledObject

protected abstract hudson.security.AccessControlled getAccessControlledObject()
Returns the object for which we want to provide access control.

Returns:
the access controlled object.

doDiffFiles

public final void doDiffFiles(org.kohsuke.stapler.StaplerRequest req,
                              org.kohsuke.stapler.StaplerResponse rsp)
                       throws javax.servlet.ServletException,
                              IOException
Parses the incoming POST request and redirects as GET showDiffFiles.

Parameters:
req - incoming request
rsp - outgoing response
Throws:
javax.servlet.ServletException - when parsing the request as MultipartFormDataParser does not succeed.
IOException - when the redirection does not succeed.

getDiffFile

public final String getDiffFile()
                         throws IOException
Returns a textual diff between two config.xml files which are identified by their timestamps and the project they belong to, given as parameters of Stapler.getCurrentRequest().

Returns:
diff
Throws:
IOException - if reading one of the config files does not succeed.

getDiffLines

public final List<JobConfigHistoryBaseAction.SideBySideView.Line> getDiffLines()
                                                                        throws IOException
Returns side-by-side (i.e. human-readable) diff view lines.

Returns:
diff lines
Throws:
IOException - if reading one of the config files does not succeed.

getDiff

protected final String getDiff(File file1,
                               File file2,
                               String[] file1Lines,
                               String[] file2Lines)
Returns a unified diff between two string arrays.

Parameters:
file1 - first config file.
file2 - second config file.
file1Lines - the lines of the first file.
file2Lines - the lines of the second file.
Returns:
unified diff


Copyright © 2004-2013. All Rights Reserved.