/******************************************************************************* * * 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, Yahoo!, Inc. * * *******************************************************************************/ package hudson.tasks.junit; import hudson.DescriptorExtensionList; import hudson.Extension; import hudson.ExtensionPoint; import hudson.Launcher; import hudson.model.*; import java.io.IOException; /** * Contributes {@link TestAction}s to test results. * * This enables plugins to annotate test results and provide richer UI, such as * letting users claim test failures, allowing people to file bugs, or more * generally, additional actions, views, etc. * * <p> To register your implementation, put {@link Extension} on your descriptor * implementation. * * @since 1.320 */ public abstract class TestDataPublisher extends AbstractDescribableImpl<TestDataPublisher> implements ExtensionPoint { /** * Called after test results are collected by Hudson, to create a resolver * for {@link TestAction}s. * * @return can be null to indicate that there's nothing to contribute for * this test result. */ public abstract TestResultAction.Data getTestData( AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener, TestResult testResult) throws IOException, InterruptedException; public static DescriptorExtensionList<TestDataPublisher, Descriptor<TestDataPublisher>> all() { return Hudson.getInstance().<TestDataPublisher, Descriptor<TestDataPublisher>>getDescriptorList(TestDataPublisher.class); } }