/*******************************************************************************
*
* Copyright (c) 2004-2011 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:
*
* Kohsuke Kawaguchi, Jorg Heymans, Stephen Connolly, Tom Huybrechts, Anton Kozak, Nikita Levyankov
*
*
*******************************************************************************/
package hudson.model;
import hudson.Util;
import hudson.diagnosis.OldDataMonitor;
import hudson.tasks.Fingerprinter;
import hudson.tasks.Maven;
import hudson.tasks.Maven.ProjectWithMaven;
import hudson.tasks.Maven.MavenInstallation;
import org.eclipse.hudson.api.model.IProject;
import java.util.HashSet;
import java.util.Set;
/**
* Buildable software project.
*
* @author Kohsuke Kawaguchi
*/
public abstract class Project<P extends Project<P, B>, B extends Build<P, B>>
extends BaseBuildableProject<P, B>
implements SCMedItem, Saveable, ProjectWithMaven, BuildableItemWithBuildWrappers, IProject {
/**
* Creates a new project.
*/
public Project(ItemGroup parent, String name) {
super(parent, name);
}
public AbstractProject<?, ?> asProject() {
return this;
}
@Override
protected Set<ResourceActivity> getResourceActivities() {
final Set<ResourceActivity> activities = new HashSet<ResourceActivity>();
activities.addAll(super.getResourceActivities());
activities.addAll(Util.filter(getBuildersList(), ResourceActivity.class));
activities.addAll(Util.filter(getPublishersList(), ResourceActivity.class));
activities.addAll(Util.filter(getBuildWrappersList(), ResourceActivity.class));
return activities;
}
@Override
public boolean isFingerprintConfigured() {
return getPublishersList().get(Fingerprinter.class) != null;
}
public MavenInstallation inferMavenInstallation() {
Maven m = getBuildersList().get(Maven.class);
if (m != null) {
return m.getMaven();
}
return null;
}
/**
* @deprecated since 2006-11-05. Left for legacy config file compatibility
*/
@Deprecated
private transient String slave;
}