diff --git a/core/src/main/java/hudson/model/Hudson.java b/core/src/main/java/hudson/model/Hudson.java index 0e129051a39abacbdcd620f5d7d06d92abe06660..429933b09f08eda45d9e07cb834a47275828213f 100644 --- a/core/src/main/java/hudson/model/Hudson.java +++ b/core/src/main/java/hudson/model/Hudson.java @@ -675,7 +675,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl */ public JobPropertyDescriptor getJobProperty(String shortClassName) { // combining these two lines triggers javac bug. See issue #610. - Descriptor d = findDescriptor(shortClassName, Jobs.PROPERTIES); + Descriptor d = findDescriptor(shortClassName, JobPropertyDescriptor.all()); return (JobPropertyDescriptor) d; } @@ -2038,7 +2038,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl for( TriggerDescriptor d : Triggers.TRIGGERS ) result &= configureDescriptor(req,json,d); - for( JobPropertyDescriptor d : Jobs.PROPERTIES ) + for( JobPropertyDescriptor d : JobPropertyDescriptor.all() ) result &= configureDescriptor(req,json,d); for( PageDecorator d : PageDecorator.ALL ) diff --git a/core/src/main/java/hudson/model/JobProperty.java b/core/src/main/java/hudson/model/JobProperty.java index 0bc9e66c07db328b228712615cd10c9cba089c60..771da21cdac0e62e9f5612987ce6dd4576432904 100644 --- a/core/src/main/java/hudson/model/JobProperty.java +++ b/core/src/main/java/hudson/model/JobProperty.java @@ -88,7 +88,9 @@ public abstract class JobProperty> implements Describable> { @@ -93,9 +93,13 @@ public abstract class JobPropertyDescriptor extends Descriptor> { */ public static List getPropertyDescriptors(Class clazz) { List r = new ArrayList(); - for (JobPropertyDescriptor p : Jobs.PROPERTIES) + for (JobPropertyDescriptor p : all()) if(p.isApplicable(clazz)) r.add(p); return r; } + + public static Collection all() { + return (Collection)Hudson.getInstance().getDescriptorList(JobProperty.class); + } } diff --git a/core/src/main/java/hudson/model/Jobs.java b/core/src/main/java/hudson/model/Jobs.java index 19390a55863cc5c6207bfdf96d1b95e388e9ac55..078595544e292335d7c70d21538b4e96f98e554a 100644 --- a/core/src/main/java/hudson/model/Jobs.java +++ b/core/src/main/java/hudson/model/Jobs.java @@ -23,6 +23,9 @@ */ package hudson.model; +import hudson.util.DescriptorList; +import hudson.Extension; + import java.util.List; /** @@ -38,8 +41,11 @@ public class Jobs { * Plugins can add their {@link JobPropertyDescriptor}s to this list. * * @see JobPropertyDescriptor#getPropertyDescriptors(Class) + * + * @deprecated as of 1.281 + * Use {@link JobPropertyDescriptor#all()} for read access, + * and {@link Extension} for registration. */ - public static final List PROPERTIES = Descriptor.toList( - ParametersDefinitionProperty.DESCRIPTOR - ); + public static final List PROPERTIES = (List) + new DescriptorList>((Class)JobProperty.class); } diff --git a/core/src/main/java/hudson/model/ParametersDefinitionProperty.java b/core/src/main/java/hudson/model/ParametersDefinitionProperty.java index 62904c49b7df9ca0873cf517f1e0cc89364c007a..57416f8f1e4f0efb8d06b06db79af74b78213dca 100644 --- a/core/src/main/java/hudson/model/ParametersDefinitionProperty.java +++ b/core/src/main/java/hudson/model/ParametersDefinitionProperty.java @@ -35,6 +35,7 @@ import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import hudson.Extension; /** * Keeps a list of the parameters defined for a project. @@ -136,13 +137,7 @@ public class ParametersDefinitionProperty extends JobProperty jobType) { diff --git a/core/src/main/java/hudson/security/AuthorizationMatrixProperty.java b/core/src/main/java/hudson/security/AuthorizationMatrixProperty.java index 862fbb7b13e19a68756819ffa75071daf5148320..c5b063a6633280b93748cd92f7684ee962b1277a 100644 --- a/core/src/main/java/hudson/security/AuthorizationMatrixProperty.java +++ b/core/src/main/java/hudson/security/AuthorizationMatrixProperty.java @@ -30,6 +30,7 @@ import hudson.model.JobProperty; import hudson.model.JobPropertyDescriptor; import hudson.model.Hudson; import hudson.model.Run; +import hudson.Extension; import java.util.Arrays; import java.util.HashMap; @@ -60,8 +61,6 @@ import javax.servlet.ServletException; */ public class AuthorizationMatrixProperty extends JobProperty> { - public static final JobPropertyDescriptor DESCRIPTOR = new DescriptorImpl(); - private transient SidACL acl = new AclImpl(); private boolean useProjectSecurity; @@ -117,11 +116,7 @@ public class AuthorizationMatrixProperty extends JobProperty> { sids.add(sid); } - @Override - public JobPropertyDescriptor getDescriptor() { - return DESCRIPTOR; - } - + @Extension public static class DescriptorImpl extends JobPropertyDescriptor { @Override public JobProperty newInstance(StaplerRequest req, diff --git a/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java b/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java index 5b062622c3321d887714cae69fa5b0d137970fa7..01e9305296fa960c0c08a1e92cf912fe12c6313b 100644 --- a/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java @@ -25,7 +25,6 @@ package hudson.security; import hudson.model.Descriptor; import hudson.model.Job; -import hudson.model.Jobs; import hudson.util.RobustReflectionConverter; import hudson.Extension; import com.thoughtworks.xstream.io.HierarchicalStreamReader; @@ -90,9 +89,5 @@ public class ProjectMatrixAuthorizationStrategy extends GlobalMatrixAuthorizatio return type==ProjectMatrixAuthorizationStrategy.class; } } - - static { - Jobs.PROPERTIES.add(AuthorizationMatrixProperty.DESCRIPTOR); - } }