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

hudson.model.Environment Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 *
 * Copyright (c) 2004-2009 Oracle Corporation.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * 
 *    Tom Huybrechts
 *
 *
 *******************************************************************************/ 

package hudson.model;

import hudson.tasks.Builder;
import hudson.EnvVars;

import java.io.IOException;
import java.util.Map;

/**
 * Represents some resources that are set up for the duration of a build to be
 * torn down when the build is over.
 *
 * 

This is often used to run a parallel server necessary during a build, * such as an application server, a database reserved for the build, X server * for performing UI tests, etc. * *

By having a plugin that does this, instead of asking each build script to * do this, we can simplify the build script. {@link Environment} abstraction * also gives you guaranteed "tear down" phase, so that such resource won't keep * running forever. * * @since 1.286 */ public abstract class Environment { /** * Adds environmental variables for the builds to the given map. * *

If the {@link Environment} object wants to pass in information to the * build that runs, it can do so by exporting additional environment * variables to the map. * *

When this method is invoked, the map already contains the current * "planned export" list. * * @param env never null. This really should have been typed as * {@link EnvVars} but by the time we realized it it was too late. */ public void buildEnvVars(Map env) { // no-op by default } /** * Runs after the {@link Builder} completes, and performs a tear down. * *

This method is invoked even when the build failed, so that the clean * up operation can be performed regardless of the build result (for * example, you'll want to stop application server even if a build fails.) * * @param build The same {@link Build} object given to the set up method. * @param listener The same {@link BuildListener} object given to the set up * method. * @return true if the build can continue, false if there was an error and * the build needs to be aborted. * @throws IOException terminates the build abnormally. Hudson will handle * the exception and reports a nice error message. */ public boolean tearDown(AbstractBuild build, BuildListener listener) throws IOException, InterruptedException { return true; } /** * Creates {@link Environment} implementation that just sets the variables * as given in the parameter. */ public static Environment create(final EnvVars envVars) { return new Environment() { @Override public void buildEnvVars(Map env) { env.putAll(envVars); } }; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy