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