提交 2e68f753 编写于 作者: K kohsuke

[HUDSON-4531] extension point without a descriptor is now reported with more...

[HUDSON-4531] extension point without a descriptor is now reported with more information for a better troubleshooting.

git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@22098 71c3de6d-444a-0410-be80-ed276b4c234a
上级 9b981bef
...@@ -171,7 +171,7 @@ public abstract class FileSystemProvisioner implements ExtensionPoint, Describab ...@@ -171,7 +171,7 @@ public abstract class FileSystemProvisioner implements ExtensionPoint, Describab
public abstract WorkspaceSnapshot snapshot(AbstractBuild<?,?> build, FilePath ws, TaskListener listener) throws IOException, InterruptedException; public abstract WorkspaceSnapshot snapshot(AbstractBuild<?,?> build, FilePath ws, TaskListener listener) throws IOException, InterruptedException;
public FileSystemProvisionerDescriptor getDescriptor() { public FileSystemProvisionerDescriptor getDescriptor() {
return (FileSystemProvisionerDescriptor) Hudson.getInstance().getDescriptor(getClass()); return (FileSystemProvisionerDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -830,6 +830,19 @@ public final class Hudson extends Node implements ItemGroup<TopLevelItem>, Stapl ...@@ -830,6 +830,19 @@ public final class Hudson extends Node implements ItemGroup<TopLevelItem>, Stapl
return null; return null;
} }
/**
* Works just like {@link #getDescriptor(Class)} but don't take no for an answer.
*
* @throws AssertionError
* If the descriptor is missing.
* @since 1.326
*/
public Descriptor getDescriptorOrDie(Class<? extends Describable> type) {
Descriptor d = getDescriptor(type);
if (d==null) throw new AssertionError(type+" is missing its descriptor");
return d;
}
/** /**
* Gets the {@link Descriptor} instance in the current Hudson by its type. * Gets the {@link Descriptor} instance in the current Hudson by its type.
*/ */
......
...@@ -90,7 +90,7 @@ public abstract class JobProperty<J extends Job<?,?>> implements Describable<Job ...@@ -90,7 +90,7 @@ public abstract class JobProperty<J extends Job<?,?>> implements Describable<Job
* {@inheritDoc} * {@inheritDoc}
*/ */
public JobPropertyDescriptor getDescriptor() { public JobPropertyDescriptor getDescriptor() {
return (JobPropertyDescriptor)Hudson.getInstance().getDescriptor(getClass()); return (JobPropertyDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -121,7 +121,7 @@ public abstract class ParameterDefinition implements ...@@ -121,7 +121,7 @@ public abstract class ParameterDefinition implements
* {@inheritDoc} * {@inheritDoc}
*/ */
public ParameterDescriptor getDescriptor() { public ParameterDescriptor getDescriptor() {
return (ParameterDescriptor)Hudson.getInstance().getDescriptor(getClass()); return (ParameterDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -350,11 +350,9 @@ public abstract class Slave extends Node implements Serializable { ...@@ -350,11 +350,9 @@ public abstract class Slave extends Node implements Serializable {
} }
public SlaveDescriptor getDescriptor() { public SlaveDescriptor getDescriptor() {
Descriptor d = Hudson.getInstance().getDescriptor(getClass()); Descriptor d = Hudson.getInstance().getDescriptorOrDie(getClass());
if (d instanceof SlaveDescriptor) if (d instanceof SlaveDescriptor)
return (SlaveDescriptor) d; return (SlaveDescriptor) d;
if (d==null)
throw new IllegalStateException(getClass()+" doesn't have a descriptor");
throw new IllegalStateException(d.getClass()+" needs to extend from SlaveDescriptor"); throw new IllegalStateException(d.getClass()+" needs to extend from SlaveDescriptor");
} }
......
...@@ -64,7 +64,7 @@ public abstract class UserProperty implements Describable<UserProperty>, Extensi ...@@ -64,7 +64,7 @@ public abstract class UserProperty implements Describable<UserProperty>, Extensi
// descriptor must be of the UserPropertyDescriptor type // descriptor must be of the UserPropertyDescriptor type
public UserPropertyDescriptor getDescriptor() { public UserPropertyDescriptor getDescriptor() {
return (UserPropertyDescriptor)Hudson.getInstance().getDescriptor(getClass()); return (UserPropertyDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -170,7 +170,7 @@ public abstract class View extends AbstractModelObject implements AccessControll ...@@ -170,7 +170,7 @@ public abstract class View extends AbstractModelObject implements AccessControll
} }
public ViewDescriptor getDescriptor() { public ViewDescriptor getDescriptor() {
return (ViewDescriptor)Hudson.getInstance().getDescriptor(getClass()); return (ViewDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass());
} }
public String getDisplayName() { public String getDisplayName() {
......
...@@ -85,7 +85,7 @@ public abstract class NodeMonitor implements ExtensionPoint, Describable<NodeMon ...@@ -85,7 +85,7 @@ public abstract class NodeMonitor implements ExtensionPoint, Describable<NodeMon
} }
public AbstractNodeMonitorDescriptor<?> getDescriptor() { public AbstractNodeMonitorDescriptor<?> getDescriptor() {
return (AbstractNodeMonitorDescriptor<?>)Hudson.getInstance().getDescriptor(getClass()); return (AbstractNodeMonitorDescriptor<?>)Hudson.getInstance().getDescriptorOrDie(getClass());
} }
public Object data(Computer c) { public Object data(Computer c) {
......
...@@ -1558,7 +1558,7 @@ public class CVSSCM extends SCM implements Serializable { ...@@ -1558,7 +1558,7 @@ public class CVSSCM extends SCM implements Serializable {
} }
public Descriptor<TagAction> getDescriptor() { public Descriptor<TagAction> getDescriptor() {
return Hudson.getInstance().getDescriptor(getClass()); return Hudson.getInstance().getDescriptorOrDie(getClass());
} }
} }
......
...@@ -95,7 +95,7 @@ public abstract class RepositoryBrowser<E extends ChangeLogSet.Entry> implements ...@@ -95,7 +95,7 @@ public abstract class RepositoryBrowser<E extends ChangeLogSet.Entry> implements
} }
public Descriptor<RepositoryBrowser<?>> getDescriptor() { public Descriptor<RepositoryBrowser<?>> getDescriptor() {
return Hudson.getInstance().getDescriptor(getClass()); return Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -345,7 +345,7 @@ public abstract class SCM implements Describable<SCM>, ExtensionPoint { ...@@ -345,7 +345,7 @@ public abstract class SCM implements Describable<SCM>, ExtensionPoint {
public abstract ChangeLogParser createChangeLogParser(); public abstract ChangeLogParser createChangeLogParser();
public SCMDescriptor<?> getDescriptor() { public SCMDescriptor<?> getDescriptor() {
return (SCMDescriptor)Hudson.getInstance().getDescriptor(getClass()); return (SCMDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass());
} }
// //
......
...@@ -176,7 +176,7 @@ public abstract class AuthorizationStrategy implements Describable<Authorization ...@@ -176,7 +176,7 @@ public abstract class AuthorizationStrategy implements Describable<Authorization
public abstract Collection<String> getGroups(); public abstract Collection<String> getGroups();
public Descriptor<AuthorizationStrategy> getDescriptor() { public Descriptor<AuthorizationStrategy> getDescriptor() {
return Hudson.getInstance().getDescriptor(getClass()); return Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -150,7 +150,7 @@ public abstract class SecurityRealm implements Describable<SecurityRealm>, Exten ...@@ -150,7 +150,7 @@ public abstract class SecurityRealm implements Describable<SecurityRealm>, Exten
* <tt>global.jelly</tt>. * <tt>global.jelly</tt>.
*/ */
public Descriptor<SecurityRealm> getDescriptor() { public Descriptor<SecurityRealm> getDescriptor() {
return Hudson.getInstance().getDescriptor(getClass()); return Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -139,7 +139,7 @@ public abstract class CrumbIssuer implements Describable<CrumbIssuer>, Extension ...@@ -139,7 +139,7 @@ public abstract class CrumbIssuer implements Describable<CrumbIssuer>, Extension
* Access global configuration for the crumb issuer. * Access global configuration for the crumb issuer.
*/ */
public CrumbIssuerDescriptor<CrumbIssuer> getDescriptor() { public CrumbIssuerDescriptor<CrumbIssuer> getDescriptor() {
return (CrumbIssuerDescriptor<CrumbIssuer>) Hudson.getInstance().getDescriptor(getClass()); return (CrumbIssuerDescriptor<CrumbIssuer>) Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -121,7 +121,7 @@ public abstract class Cloud extends AbstractModelObject implements ExtensionPoin ...@@ -121,7 +121,7 @@ public abstract class Cloud extends AbstractModelObject implements ExtensionPoin
public abstract boolean canProvision(Label label); public abstract boolean canProvision(Label label);
public Descriptor<Cloud> getDescriptor() { public Descriptor<Cloud> getDescriptor() {
return Hudson.getInstance().getDescriptor(getClass()); return Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -133,7 +133,7 @@ public abstract class ComputerLauncher implements Describable<ComputerLauncher>, ...@@ -133,7 +133,7 @@ public abstract class ComputerLauncher implements Describable<ComputerLauncher>,
} }
public Descriptor<ComputerLauncher> getDescriptor() { public Descriptor<ComputerLauncher> getDescriptor() {
return (Descriptor<ComputerLauncher>)Hudson.getInstance().getDescriptor(getClass()); return (Descriptor<ComputerLauncher>)Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -66,7 +66,7 @@ public abstract class NodeProperty<N extends Node> implements Describable<NodePr ...@@ -66,7 +66,7 @@ public abstract class NodeProperty<N extends Node> implements Describable<NodePr
protected void setNode(N node) { this.node = node; } protected void setNode(N node) { this.node = node; }
public NodePropertyDescriptor getDescriptor() { public NodePropertyDescriptor getDescriptor() {
return (NodePropertyDescriptor)Hudson.getInstance().getDescriptor(getClass()); return (NodePropertyDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -83,7 +83,7 @@ public abstract class RetentionStrategy<T extends Computer> implements Describab ...@@ -83,7 +83,7 @@ public abstract class RetentionStrategy<T extends Computer> implements Describab
} }
public Descriptor<RetentionStrategy<?>> getDescriptor() { public Descriptor<RetentionStrategy<?>> getDescriptor() {
return Hudson.getInstance().getDescriptor(getClass()); return Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -191,7 +191,7 @@ public abstract class BuildWrapper implements ExtensionPoint, Describable<BuildW ...@@ -191,7 +191,7 @@ public abstract class BuildWrapper implements ExtensionPoint, Describable<BuildW
} }
public Descriptor<BuildWrapper> getDescriptor() { public Descriptor<BuildWrapper> getDescriptor() {
return (Descriptor<BuildWrapper>) Hudson.getInstance().getDescriptor(getClass()); return (Descriptor<BuildWrapper>) Hudson.getInstance().getDescriptorOrDie(getClass());
} }
......
...@@ -72,7 +72,7 @@ public abstract class Builder extends BuildStepCompatibilityLayer implements Bui ...@@ -72,7 +72,7 @@ public abstract class Builder extends BuildStepCompatibilityLayer implements Bui
} }
public Descriptor<Builder> getDescriptor() { public Descriptor<Builder> getDescriptor() {
return Hudson.getInstance().getDescriptor(getClass()); return Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -119,7 +119,7 @@ public abstract class Publisher extends BuildStepCompatibilityLayer implements B ...@@ -119,7 +119,7 @@ public abstract class Publisher extends BuildStepCompatibilityLayer implements B
} }
public Descriptor<Publisher> getDescriptor() { public Descriptor<Publisher> getDescriptor() {
return Hudson.getInstance().getDescriptor(getClass()); return Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -60,7 +60,7 @@ public abstract class TestDataPublisher implements Describable<TestDataPublisher ...@@ -60,7 +60,7 @@ public abstract class TestDataPublisher implements Describable<TestDataPublisher
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public Descriptor<TestDataPublisher> getDescriptor() { public Descriptor<TestDataPublisher> getDescriptor() {
return Hudson.getInstance().getDescriptor(getClass()); return Hudson.getInstance().getDescriptorOrDie(getClass());
} }
public static DescriptorExtensionList<TestDataPublisher, Descriptor<TestDataPublisher>> all() { public static DescriptorExtensionList<TestDataPublisher, Descriptor<TestDataPublisher>> all() {
......
...@@ -133,7 +133,7 @@ public abstract class ToolInstallation implements Serializable, Describable<Tool ...@@ -133,7 +133,7 @@ public abstract class ToolInstallation implements Serializable, Describable<Tool
} }
public ToolDescriptor<?> getDescriptor() { public ToolDescriptor<?> getDescriptor() {
return (ToolDescriptor) Hudson.getInstance().getDescriptor(getClass()); return (ToolDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -113,6 +113,6 @@ public abstract class ToolInstaller implements Describable<ToolInstaller>, Exten ...@@ -113,6 +113,6 @@ public abstract class ToolInstaller implements Describable<ToolInstaller>, Exten
} }
public ToolInstallerDescriptor<?> getDescriptor() { public ToolInstallerDescriptor<?> getDescriptor() {
return (ToolInstallerDescriptor) Hudson.getInstance().getDescriptor(getClass()); return (ToolInstallerDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass());
} }
} }
...@@ -56,7 +56,7 @@ public abstract class ToolProperty<T extends ToolInstallation> implements Descri ...@@ -56,7 +56,7 @@ public abstract class ToolProperty<T extends ToolInstallation> implements Descri
} }
public ToolPropertyDescriptor getDescriptor() { public ToolPropertyDescriptor getDescriptor() {
return (ToolPropertyDescriptor) Hudson.getInstance().getDescriptor(getClass()); return (ToolPropertyDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass());
} }
/** /**
......
...@@ -110,7 +110,7 @@ public abstract class Trigger<J extends Item> implements Describable<Trigger<?>> ...@@ -110,7 +110,7 @@ public abstract class Trigger<J extends Item> implements Describable<Trigger<?>>
} }
public TriggerDescriptor getDescriptor() { public TriggerDescriptor getDescriptor() {
return (TriggerDescriptor)Hudson.getInstance().getDescriptor(getClass()); return (TriggerDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass());
} }
......
...@@ -282,6 +282,6 @@ public abstract class MavenReporter implements Describable<MavenReporter>, Exten ...@@ -282,6 +282,6 @@ public abstract class MavenReporter implements Describable<MavenReporter>, Exten
} }
public MavenReporterDescriptor getDescriptor() { public MavenReporterDescriptor getDescriptor() {
return (MavenReporterDescriptor)Hudson.getInstance().getDescriptor(getClass()); return (MavenReporterDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass());
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册