diff --git a/core/pom.xml b/core/pom.xml index 7e2c3ad21751274662a056a416188144e6147626..4ee22e5f5a41c2d4f633c86f2b56d6ca07197b19 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -61,7 +61,7 @@ THE SOFTWARE. com.infradna.tool bridge-method-injector - 1.3 + 1.4 @@ -410,7 +410,7 @@ THE SOFTWARE. com.infradna.tool bridge-method-annotation - 1.2 + 1.4 diff --git a/core/src/main/java/hudson/matrix/MatrixProject.java b/core/src/main/java/hudson/matrix/MatrixProject.java index 847a44c0c2b1029327d644c75238351edd27f7f2..689e1dbf565a24bf9ecb38a625ed8cb981ba6ce9 100644 --- a/core/src/main/java/hudson/matrix/MatrixProject.java +++ b/core/src/main/java/hudson/matrix/MatrixProject.java @@ -151,7 +151,11 @@ public class MatrixProject extends AbstractProject im private String customWorkspace; public MatrixProject(String name) { - super(Hudson.getInstance(), name); + this(Hudson.getInstance(), name); + } + + public MatrixProject(ItemGroup parent, String name) { + super(parent, name); } public AxisList getAxes() { @@ -471,11 +475,6 @@ public class MatrixProject extends AbstractProject im return f; } - @Override - public Hudson getParent() { - return Hudson.getInstance(); - } - /** * @see #getJDKs() */ diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index 04d0c3dc55a83a0b3a061f4f4a1aa1f69d6cd8a8..9117bcb6d6aac0835b4791fa2d94fbdbe748c974 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -24,6 +24,7 @@ */ package hudson.model; +import com.infradna.tool.bridge_method_injector.WithBridgeMethods; import hudson.XmlFile; import hudson.Util; import hudson.Functions; @@ -115,6 +116,10 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet return parent.getRootDirFor(this); } + /** + * This bridge method is to maintain binary compatibility with {@link TopLevelItem#getParent()}. + */ + @WithBridgeMethods(value=Hudson.class,castRequired=true) public ItemGroup getParent() { assert parent!=null; return parent; diff --git a/core/src/main/java/hudson/model/ExternalJob.java b/core/src/main/java/hudson/model/ExternalJob.java index 876b443c027859025329d21ed3600ad3bd832089..ee38f1c0790c88fb578f58a9cd71f8b6cc99f4a1 100644 --- a/core/src/main/java/hudson/model/ExternalJob.java +++ b/core/src/main/java/hudson/model/ExternalJob.java @@ -42,12 +42,11 @@ import java.io.IOException; */ public class ExternalJob extends ViewJob implements TopLevelItem { public ExternalJob(String name) { - super(Hudson.getInstance(),name); + this(Hudson.getInstance(),name); } - @Override - public Hudson getParent() { - return (Hudson)super.getParent(); + public ExternalJob(ItemGroup parent, String name) { + super(parent,name); } @Override diff --git a/core/src/main/java/hudson/model/FreeStyleProject.java b/core/src/main/java/hudson/model/FreeStyleProject.java index d61ab39c978107be6aae08797c76f35df27bc20c..67ea1f33678c95345916cfcb6f720dc1d3e65efd 100644 --- a/core/src/main/java/hudson/model/FreeStyleProject.java +++ b/core/src/main/java/hudson/model/FreeStyleProject.java @@ -46,18 +46,20 @@ public class FreeStyleProject extends Project i */ private String customWorkspace; + /** + * @deprecated as of 1.390 + */ public FreeStyleProject(Hudson parent, String name) { super(parent, name); } - @Override - protected Class getBuildClass() { - return FreeStyleBuild.class; + public FreeStyleProject(ItemGroup parent, String name) { + super(parent, name); } @Override - public Hudson getParent() { - return Hudson.getInstance(); + protected Class getBuildClass() { + return FreeStyleBuild.class; } public String getCustomWorkspace() { diff --git a/core/src/main/java/hudson/model/TopLevelItem.java b/core/src/main/java/hudson/model/TopLevelItem.java index 54c711f511747827829f410bd20589f567d8e4f0..af0127dc99551c2e2079b839258f4858736217d7 100644 --- a/core/src/main/java/hudson/model/TopLevelItem.java +++ b/core/src/main/java/hudson/model/TopLevelItem.java @@ -23,8 +23,8 @@ */ package hudson.model; -import hudson.ExtensionPoint; import hudson.Extension; +import hudson.ExtensionPoint; /** * {@link Item} that can be directly displayed under {@link Hudson}. @@ -36,11 +36,6 @@ import hudson.Extension; * @author Kohsuke Kawaguchi */ public interface TopLevelItem extends Item, ExtensionPoint, Describable { - /** - * By definition the parent of the top-level item is always {@link Hudson}. - */ - Hudson getParent(); - /** * * @see Describable#getDescriptor() diff --git a/core/src/main/java/hudson/model/ViewJob.java b/core/src/main/java/hudson/model/ViewJob.java index 9e24190ee21a5d2ba7ffc79d7bb81f25142fd6d9..a3395d449a6ae12741d7d313924a2a6acdc188ba 100644 --- a/core/src/main/java/hudson/model/ViewJob.java +++ b/core/src/main/java/hudson/model/ViewJob.java @@ -76,10 +76,17 @@ public abstract class ViewJob, RunT extends Run< reloadThread.start(); } + /** + * @deprecated as of 1.390 + */ protected ViewJob(Hudson parent, String name) { super(parent,name); } + protected ViewJob(ItemGroup parent, String name) { + super(parent,name); + } + public boolean isBuildable() { return false; } diff --git a/maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java b/maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java index 33591c8fb7fa229818c273f4bd2e095c93e17dfc..94d493e9022cc44229df53132ce863d0f4cc0503 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java @@ -225,6 +225,10 @@ public final class MavenModuleSet extends AbstractMavenProject>(this); public MavenModuleSet(String name) { + this(Hudson.getInstance(),name); + } + + public MavenModuleSet(ItemGroup parent, String name) { super(Hudson.getInstance(),name); } @@ -233,10 +237,6 @@ public final class MavenModuleSet extends AbstractMavenProject getItems() { return modules.values(); }