Skip to content

Commit

Permalink
[JENKINS-18280] Added swipe boolean to action and remote methods
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfgarnet committed Aug 6, 2013
1 parent 9160fb0 commit f1ed86b
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 14 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -13,7 +13,7 @@

<groupId>net.praqma</groupId>
<artifactId>clearcase-ucm-plugin</artifactId>
<version>1.3.9-SNAPSHOT</version>
<version>1.4.0-SNAPSHOT</version>
<name>ClearCase UCM Plugin!</name>
<description>Integrates Jenkins to ClearCase UCM</description>
<url>https://wiki.jenkins-ci.org/display/JENKINS/ClearCase+UCM+Plugin</url>
Expand Down
17 changes: 15 additions & 2 deletions src/main/java/net/praqma/hudson/CCUCMBuildAction.java
@@ -1,9 +1,7 @@
package net.praqma.hudson;

import java.io.File;
import java.util.List;

import hudson.FilePath;
import hudson.model.AbstractBuild;
import hudson.model.TaskListener;
import net.praqma.clearcase.ucm.entities.Baseline;
Expand Down Expand Up @@ -40,6 +38,13 @@ public class CCUCMBuildAction implements Action {
private boolean recommend = false;
private boolean forceDeliver = false;

/**
* Determines whether to swipe the view or not.
*
* @since 1.4.0
*/
private boolean removeViewPrivateFiles = true;

/**
* The found {@link Baseline} for the build
*/
Expand Down Expand Up @@ -288,6 +293,14 @@ public String getUrlName() {
return null;
}

public boolean doRemoveViewPrivateFiles() {
return removeViewPrivateFiles;
}

public void setRemoveViewPrivateFiles( boolean removeViewPrivateFiles ) {
this.removeViewPrivateFiles = removeViewPrivateFiles;
}

public Exception getResolveBaselineException() {
return resolveBaselineException;
}
Expand Down
13 changes: 11 additions & 2 deletions src/main/java/net/praqma/hudson/remoting/CheckoutTask.java
Expand Up @@ -40,12 +40,19 @@ public class CheckoutTask implements FileCallable<EstablishResult> {
private BuildListener listener;
private Integer jobNumber;
private String id = "";

/**
* Determines whether to swipe the view or not.
*
* @since 1.4.0
*/
private boolean swipe = true;

private boolean any = false;

private Logger logger;

public CheckoutTask( BuildListener listener, String jobname, Integer jobNumber, Stream targetStream, String loadModule, Baseline baseline, String buildProject, boolean any ) {
public CheckoutTask( BuildListener listener, String jobname, Integer jobNumber, Stream targetStream, String loadModule, Baseline baseline, String buildProject, boolean any, boolean swipe ) {
this.jobname = jobname;
this.jobNumber = jobNumber;
this.targetStream = targetStream;
Expand All @@ -56,6 +63,8 @@ public CheckoutTask( BuildListener listener, String jobname, Integer jobNumber,

this.any = any;

this.swipe = swipe;

this.id = "[" + jobname + "::" + jobNumber + "-cotask]";
}

Expand Down Expand Up @@ -196,7 +205,7 @@ private void makeWorkspace( File workspace, String viewtag ) throws ScmException
hudsonOut.println("[" + Config.nameShort + "] Updating view using " + loadModule.toLowerCase() + " modules");
logger.fine( id + "Updating stream" );
//sv.Update(true, true, true, false, Components.valueOf(loadModule.toUpperCase()), null);
sv.Update(true, true, true, false, new LoadRules( sv, Components.valueOf(loadModule.toUpperCase()) ));
sv.Update(swipe, true, true, false, new LoadRules( sv, Components.valueOf(loadModule.toUpperCase()) ));
logger.fine( id + "Updating done" );
} catch (ClearCaseException e) {
e.print( hudsonOut );
Expand Down
12 changes: 10 additions & 2 deletions src/main/java/net/praqma/hudson/remoting/RemoteDeliver.java
Expand Up @@ -58,7 +58,14 @@ public class RemoteDeliver implements FileCallable<EstablishResult> {
private PrintStream pstream;
private File workspace;

public RemoteDeliver( String destinationstream, BuildListener listener, String loadModule, String baseline, String jobName, boolean forceDeliver ) {
/**
* Determines whether to swipe the view or not.
*
* @since 1.4.0
*/
private boolean swipe = true;

public RemoteDeliver( String destinationstream, BuildListener listener, String loadModule, String baseline, String jobName, boolean forceDeliver, boolean swipe ) {
this.jobName = jobName;

this.baseline = baseline;
Expand All @@ -68,6 +75,7 @@ public RemoteDeliver( String destinationstream, BuildListener listener, String l
this.loadModule = loadModule;

this.forceDeliver = forceDeliver;
this.swipe = swipe;
}

public EstablishResult invoke( File workspace, VirtualChannel channel ) throws IOException {
Expand Down Expand Up @@ -175,7 +183,7 @@ private void deliver( Baseline baseline, Stream dstream, boolean forceDeliver, i

try {
Deliver.cancel( dstream );
snapview.Update( true, true, true, false, new SnapshotView.LoadRules( snapview, SnapshotView.Components.valueOf( loadModule.toUpperCase() ) ) );
snapview.Update( swipe, true, true, false, new SnapshotView.LoadRules( snapview, SnapshotView.Components.valueOf( loadModule.toUpperCase() ) ) );

} catch( ClearCaseException ex ) {
throw ex;
Expand Down
11 changes: 4 additions & 7 deletions src/main/java/net/praqma/hudson/scm/CCUCMScm.java
Expand Up @@ -10,7 +10,6 @@
import hudson.scm.SCMDescriptor;
import hudson.scm.SCMRevisionState;
import hudson.scm.SCM;
import hudson.tasks.Publisher;
import hudson.util.FormValidation;

import java.io.File;
Expand All @@ -23,15 +22,13 @@
import java.util.logging.Level;
import java.util.logging.Logger;

import net.praqma.clearcase.exceptions.ClearCaseException;
import net.praqma.clearcase.exceptions.DeliverException;
import net.praqma.clearcase.exceptions.DeliverException.Type;
import net.praqma.clearcase.exceptions.UnableToInitializeEntityException;
import net.praqma.clearcase.ucm.entities.Baseline;
import net.praqma.clearcase.ucm.entities.Component;
import net.praqma.clearcase.ucm.entities.Project;
import net.praqma.clearcase.ucm.entities.Stream;
import net.praqma.clearcase.ucm.entities.UCMEntity.LabelStatus;
import net.praqma.hudson.CCUCMBuildAction;
import net.praqma.hudson.Config;
import net.praqma.hudson.Util;
Expand All @@ -46,7 +43,6 @@
import net.sf.json.JSONException;
import net.sf.json.JSONObject;

import org.apache.commons.httpclient.util.ExceptionUtil;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.QueryParameter;
Expand Down Expand Up @@ -110,7 +106,7 @@ public CCUCMScm() {

@DataBoundConstructor
public CCUCMScm( String component, String levelToPoll, String loadModule, boolean newest, String polling, String stream, String treatUnstable,
boolean createBaseline, String nameTemplate, boolean forceDeliver, boolean removeViewPrivateFiles, boolean recommend, boolean makeTag, boolean setDescription, String buildProject ) {
boolean createBaseline, String nameTemplate, boolean forceDeliver, boolean recommend, boolean makeTag, boolean setDescription, String buildProject, boolean removeViewPrivateFiles ) {

this.component = component;
this.loadModule = loadModule;
Expand Down Expand Up @@ -323,7 +319,7 @@ private boolean initializeWorkspace( AbstractBuild<?, ?> build, FilePath workspa
PrintStream consoleOutput = listener.getLogger();

EstablishResult er = null;
CheckoutTask ct = new CheckoutTask( listener, jobName, build.getNumber(), action.getStream(), loadModule, action.getBaseline(), buildProject, ( plevel == null ) );
CheckoutTask ct = new CheckoutTask( listener, jobName, build.getNumber(), action.getStream(), loadModule, action.getBaseline(), buildProject, ( plevel == null ), action.doRemoveViewPrivateFiles() );
er = workspace.act( ct );
String changelog = er.getMessage();

Expand Down Expand Up @@ -446,7 +442,7 @@ public boolean beginDeliver( AbstractBuild<?, ?> build, CCUCMBuildAction state,
try {
logger.config( "Starting remote deliver" );

RemoteDeliver rmDeliver = new RemoteDeliver( state.getStream().getFullyQualifiedName(), listener, loadModule, state.getBaseline().getFullyQualifiedName(), build.getParent().getDisplayName(), state.doForceDeliver() );
RemoteDeliver rmDeliver = new RemoteDeliver( state.getStream().getFullyQualifiedName(), listener, loadModule, state.getBaseline().getFullyQualifiedName(), build.getParent().getDisplayName(), state.doForceDeliver(), state.doRemoveViewPrivateFiles() );
er = workspace.act( rmDeliver );

CCUCMBuildAction action = build.getAction( CCUCMBuildAction.class );
Expand Down Expand Up @@ -756,6 +752,7 @@ private CCUCMBuildAction getBuildAction() throws UnableToInitializeEntityExcepti
action.setPromotionLevel( plevel );
action.setUnstable( treatUnstable );
action.setLoadModule( loadModule );
action.setRemoveViewPrivateFiles( removeViewPrivateFiles );

/* Deliver and template */
action.setCreateBaseline( createBaseline );
Expand Down

0 comments on commit f1ed86b

Please sign in to comment.