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

hudson.model.TransientProjectActionFactory 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:
 *
 *
 *
 *
 *******************************************************************************/ 

package hudson.model;

import hudson.Extension;
import hudson.ExtensionList;
import hudson.ExtensionPoint;
import hudson.tasks.BuildStep;

import java.util.Collection;

/**
 * Extension point for inserting transient {@link Action}s into
 * {@link AbstractProject}s.
 *
 * 

Actions of projects are primarily determined by {@link BuildStep}s that * are associated by configurations, but sometimes it's convenient to be able to * add actions across all or many projects, without being invoked through * configuration. This extension point provides such a mechanism. * * Actions of {@link AbstractProject}s are transient — they will not be * persisted, and each time Hudson starts or the configuration of the job * changes, they'll be recreated. Therefore, to maintain persistent data per * project, you'll need to do data serialization by yourself. Do so by storing a * file under {@link AbstractProject#getRootDir()}. * *

To register your implementation, put {@link Extension} on your subtype. * * @author Kohsuke Kawaguchi * @since 1.327 * @see Action */ public abstract class TransientProjectActionFactory implements ExtensionPoint { /** * Creates actions for the given project. * * @param target The project for which the action objects are requested. * Never null. * @return Can be empty but must not be null. */ public abstract Collection createFor(AbstractProject target); /** * Returns all the registered {@link TransientProjectActionFactory}s. */ public static ExtensionList all() { return Hudson.getInstance().getExtensionList(TransientProjectActionFactory.class); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy