All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kuali.maven.mojo.DeleteJobsMojo Maven / Gradle / Ivy

/**
 * Copyright 2004-2011 The Kuali Foundation
 *
 * Licensed under the Educational Community License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.opensource.org/licenses/ecl2.php
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.kuali.maven.mojo;

import java.util.ArrayList;
import java.util.List;

import org.apache.maven.plugin.MojoExecutionException;
import org.kuali.maven.common.PropertiesUtils;
import org.kuali.maven.mojo.context.MojoContext;

/**
 * Connect to a Jenkins server and delete one or more jobs
 * 
 * @goal deletejobs
 * @requiresDependencyResolution test
 */
public class DeleteJobsMojo extends AbstractCliMojo {

	/**
	 * The command issued to Jenkins CLI
	 * 
	 * @parameter expression="${jenkins.cmd}" default-value="delete-job"
	 * @required
	 */
	private String cmd;

	/**
	 * The location of the jenkins job config template
	 * 
	 * @parameter expression="${jenkins.template}" default-value="classpath:org/kuali/jenkins/jobs/template.xml"
	 * @required
	 */
	private String template;

	/**
	 * Comma delimited list of types to delete. Maven GAV info is combined with 'type' to derive the complete job name eg
	 * 'jenkins-maven-plugin-1.0-publish'
	 * 
	 * @parameter expression="${jenkins.types}" default-value="publish,unit,license,release"
	 * @required
	 */
	private String types;

	/**
	 * The explicit list of jobs to delete. If names are provided, 'types' is ignored.
	 * 
	 * @parameter
	 */
	private List names;

	/**
	 * Comma delimited list of result codes to ignore. Result code of 1 means the job we are trying to delete does not exist.
	 * 
	 * @parameter expression="${jenkins.ignoreCodes}" default-value="1"
	 * @required
	 */
	private String ignoreCodes;

	@Override
	public void execute() throws MojoExecutionException {
		String[] tokens = PropertiesUtils.splitAndTrim(types, ",");
		List contexts = helper.deleteJobs(this, names, tokens);
		List ignoreCodeList = getIgnoreCodeList();
		helper.handleResults(contexts, ignoreCodeList);
	}

	protected List getIgnoreCodeList() {
		List ignoreCodeList = new ArrayList();
		String[] tokens = PropertiesUtils.splitAndTrim(ignoreCodes, ",");
		for (String token : tokens) {
			ignoreCodeList.add(new Integer(token));
		}
		return ignoreCodeList;
	}

	public String getTemplate() {
		return template;
	}

	public void setTemplate(String template) {
		this.template = template;
	}

	public String getCmd() {
		return cmd;
	}

	public void setCmd(String cmd) {
		this.cmd = cmd;
	}

	public String getTypes() {
		return types;
	}

	public void setTypes(String types) {
		this.types = types;
	}

	public String getIgnoreCodes() {
		return ignoreCodes;
	}

	public void setIgnoreCodes(String ignoreCodes) {
		this.ignoreCodes = ignoreCodes;
	}

	public List getNames() {
		return names;
	}

	public void setNames(List names) {
		this.names = names;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy