| author | akozak | 2011-11-24 06:23:54 (EST) |
|---|---|---|
| committer | Winston Prakash | 2011-12-01 20:47:23 (EST) |
| commit | 0551f8db82aca1106e4ca88a7ddf5c5d487ad466 (patch) (side-by-side diff) | |
| tree | baa717035bc62053f8161ca2fa821f8fe465a095 | |
| parent | fc83f582eccb9699440ea401a3858edd4d479b17 (diff) | |
| download | org.eclipse.hudson.core-0551f8db82aca1106e4ca88a7ddf5c5d487ad466.zip org.eclipse.hudson.core-0551f8db82aca1106e4ca88a7ddf5c5d487ad466.tar.gz org.eclipse.hudson.core-0551f8db82aca1106e4ca88a7ddf5c5d487ad466.tar.bz2 | |
Clean-up job class. Use set of get*Properties methods from CascadingUtil
Signed-off-by: Winston Prakash <winston.prakash@gmail.com>
23 files changed, 143 insertions, 234 deletions
diff --git a/hudson-core/src/main/java/hudson/Functions.java b/hudson-core/src/main/java/hudson/Functions.java index fc83914..914ed33 100644 --- a/hudson-core/src/main/java/hudson/Functions.java +++ b/hudson-core/src/main/java/hudson/Functions.java @@ -1372,75 +1372,4 @@ public class Functions { }); return templates.iterator().hasNext() ? templates.iterator().next() : null; } - - /** - * @see CascadingUtil#getCascadingParents(Class, hudson.model.Job) - */ - //TODO remove this method after 2.2.0 Beta release. Use direct call to CascadingUtil - public static <T extends Item> List<Job> getAllItems(Class<T> type, Job currentJob) { - return CascadingUtil.getCascadingParents(type, currentJob); - } - - - /** - * @see CascadingUtil#hasCyclicCascadingLink(hudson.model.Job, java.util.Set) - */ - //TODO remove this method after 2.2.0 Beta release. Use direct call to CascadingUtil - protected static boolean hasCyclicCascadingLink(Job cascadingCandidate, Set<String> cascadingChildren) { - return CascadingUtil.hasCyclicCascadingLink(cascadingCandidate, cascadingChildren); - } - - /** - * Recursively unlink specified project from cascading hierarchy. - * - * @param cascadingProject cascading project to start from. - * @param projectToUnlink project that should be unlinked. - * @return true if project was unlinked, false - if cascadingProject or projectToUnlink is Null - * @see CascadingUtil#unlinkProjectFromCascadingParents(hudson.model.Job, java.lang.String) - */ - //TODO remove this method after 2.2.0 Beta release. Use direct call to CascadingUtil - public static boolean unlinkProjectFromCascadingParents(Job cascadingProject, String projectToUnlink) { - return CascadingUtil.unlinkProjectFromCascadingParents(cascadingProject, projectToUnlink); - } - - /** - * Links cascading project to children project. Method updates all parent cascading projects starting - * from the specified cascadingProject. - * - * @param cascadingProject cascadingProject. - * @param childProjectName the name of child project name. - * @see CascadingUtil#linkCascadingProjectsToChild(hudson.model.Job, java.lang.String) - */ - //TODO remove this method after 2.2.0 Beta release. Use direct call to CascadingUtil - public static void linkCascadingProjectsToChild(Job cascadingProject, String childProjectName) { - CascadingUtil.linkCascadingProjectsToChild(cascadingProject, childProjectName); - } - - /** - * Updates the name of the project in all children cascading references. - * If this project uses some cascading parent, the name of this project will be renamed in the cascading children - * collection of the cascading parent project. - * - * @param cascadingProject cascading project. - * @param oldName old project name. - * @param newName new project name. - * @see CascadingUtil#renameCascadingChildLinks(hudson.model.Job, java.lang.String, java.lang.String) - */ - //TODO remove this method after 2.2.0 Beta release. Use direct call to CascadingUtil - public static void renameCascadingChildLinks(Job cascadingProject, String oldName, String newName) { - CascadingUtil.renameCascadingChildLinks(cascadingProject, oldName, newName); - } - - /** - * Updates the name of the project in all parent cascading references. - * If this project is used as cascading parent, it's name will be renamed in all children projects. - * - * @param oldName old project name. - * @param newName new project name. - * @see CascadingUtil#renameCascadingParentLinks(java.lang.String, java.lang.String) - */ - //TODO remove this method after 2.2.0 Beta release. Use direct call to CascadingUtil - public static void renameCascadingParentLinks(final String oldName, final String newName) { - CascadingUtil.renameCascadingParentLinks(oldName, newName); - } } diff --git a/hudson-core/src/main/java/hudson/matrix/MatrixProject.java b/hudson-core/src/main/java/hudson/matrix/MatrixProject.java index 1a90a06..2265f42 100644 --- a/hudson-core/src/main/java/hudson/matrix/MatrixProject.java +++ b/hudson-core/src/main/java/hudson/matrix/MatrixProject.java @@ -43,6 +43,7 @@ import hudson.tasks.BuildStepDescriptor; import hudson.tasks.BuildWrappers; import hudson.tasks.Builder; import hudson.tasks.Publisher; +import hudson.util.CascadingUtil; import hudson.util.CopyOnWriteMap; import hudson.util.DescribableList; import hudson.util.DescribableListUtil; @@ -169,14 +170,14 @@ public class MatrixProject extends BaseBuildableProject<MatrixProject, MatrixBui * @inheritDoc */ public AxisList getAxes() { - return getAxesListProjectProperty(AXES_PROPERTY_NAME).getValue(); + return CascadingUtil.getAxesListProjectProperty(this, AXES_PROPERTY_NAME).getValue(); } /** * @inheritDoc */ public void setAxes(AxisList axes) throws IOException { - getAxesListProjectProperty(AXES_PROPERTY_NAME).setValue(axes); + CascadingUtil.getAxesListProjectProperty(this, AXES_PROPERTY_NAME).setValue(axes); rebuildConfigurations(); save(); } @@ -185,14 +186,14 @@ public class MatrixProject extends BaseBuildableProject<MatrixProject, MatrixBui * @inheritDoc */ public boolean isRunSequentially() { - return getBooleanProperty(RUN_SEQUENTIALLY_PROPERTY_NAME).getValue(); + return CascadingUtil.getBooleanProjectProperty(this, RUN_SEQUENTIALLY_PROPERTY_NAME).getValue(); } /** * @inheritDoc */ public void setRunSequentially(boolean runSequentially) throws IOException { - getBooleanProperty(RUN_SEQUENTIALLY_PROPERTY_NAME).setValue(runSequentially); + CascadingUtil.getBooleanProjectProperty(this, RUN_SEQUENTIALLY_PROPERTY_NAME).setValue(runSequentially); save(); } @@ -200,14 +201,14 @@ public class MatrixProject extends BaseBuildableProject<MatrixProject, MatrixBui * @inheritDoc */ public String getCombinationFilter() { - return getStringProperty(COMBINATION_FILTER_PROPERTY_NAME).getValue(); + return CascadingUtil.getStringProjectProperty(this, COMBINATION_FILTER_PROPERTY_NAME).getValue(); } /** * @inheritDoc */ public void setCombinationFilter(String combinationFilter) throws IOException { - getStringProperty(COMBINATION_FILTER_PROPERTY_NAME).setValue(combinationFilter); + CascadingUtil.getStringProjectProperty(this, COMBINATION_FILTER_PROPERTY_NAME).setValue(combinationFilter); rebuildConfigurations(); save(); } @@ -216,42 +217,44 @@ public class MatrixProject extends BaseBuildableProject<MatrixProject, MatrixBui * @inheritDoc */ public String getTouchStoneCombinationFilter() { - return getStringProperty(TOUCH_STONE_COMBINATION_FILTER_PROPERTY_NAME).getValue(); + return CascadingUtil.getStringProjectProperty(this, TOUCH_STONE_COMBINATION_FILTER_PROPERTY_NAME).getValue(); } /** * @inheritDoc */ public void setTouchStoneCombinationFilter(String touchStoneCombinationFilter) { - getStringProperty(TOUCH_STONE_COMBINATION_FILTER_PROPERTY_NAME).setValue(touchStoneCombinationFilter); + CascadingUtil.getStringProjectProperty(this, TOUCH_STONE_COMBINATION_FILTER_PROPERTY_NAME) + .setValue(touchStoneCombinationFilter); } /** * @inheritDoc */ public Result getTouchStoneResultCondition() { - return getResultProperty(TOUCH_STONE_RESULT_CONDITION_PROPERTY_NAME).getValue(); + return CascadingUtil.getResultProjectProperty(this, TOUCH_STONE_RESULT_CONDITION_PROPERTY_NAME).getValue(); } /** * @inheritDoc */ public void setTouchStoneResultCondition(Result touchStoneResultCondition) { - getResultProperty(TOUCH_STONE_RESULT_CONDITION_PROPERTY_NAME).setValue(touchStoneResultCondition); + CascadingUtil.getResultProjectProperty(this, + TOUCH_STONE_RESULT_CONDITION_PROPERTY_NAME).setValue(touchStoneResultCondition); } /** * @inheritDoc */ public String getCustomWorkspace() { - return getStringProperty(CUSTOM_WORKSPACE_PROPERTY_NAME).getValue(); + return CascadingUtil.getStringProjectProperty(this, CUSTOM_WORKSPACE_PROPERTY_NAME).getValue(); } /** * @inheritDoc */ public void setCustomWorkspace(String customWorkspace) throws IOException { - getStringProperty(CUSTOM_WORKSPACE_PROPERTY_NAME).setValue(customWorkspace); + CascadingUtil.getStringProjectProperty(this, CUSTOM_WORKSPACE_PROPERTY_NAME).setValue(customWorkspace); } @Override diff --git a/hudson-core/src/main/java/hudson/model/AbstractProject.java b/hudson-core/src/main/java/hudson/model/AbstractProject.java index 8ea5c09..388a5a9 100644 --- a/hudson-core/src/main/java/hudson/model/AbstractProject.java +++ b/hudson-core/src/main/java/hudson/model/AbstractProject.java @@ -38,6 +38,7 @@ import hudson.model.Queue.WaitingItem; import hudson.model.RunMap.Constructor; import hudson.model.labels.LabelAtom; import hudson.model.labels.LabelExpression; +import hudson.util.CascadingUtil; import org.eclipse.hudson.api.model.IProjectProperty; import org.eclipse.hudson.api.model.project.property.BooleanProjectProperty; import org.eclipse.hudson.api.model.project.property.IntegerProjectProperty; @@ -421,19 +422,22 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A */ @Exported public boolean isConcurrentBuild() { - return Hudson.CONCURRENT_BUILD && getBooleanProperty(CONCURRENT_BUILD_PROPERTY_NAME).getValue(); + return Hudson.CONCURRENT_BUILD + && CascadingUtil.getBooleanProjectProperty(this, CONCURRENT_BUILD_PROPERTY_NAME).getValue(); } + public void setConcurrentBuild(boolean b) throws IOException { - getBooleanProperty(CONCURRENT_BUILD_PROPERTY_NAME).setValue(b); + CascadingUtil.getBooleanProjectProperty(this, CONCURRENT_BUILD_PROPERTY_NAME).setValue(b); save(); } public boolean isCleanWorkspaceRequired() { - return getBooleanProperty(CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME).getValue(); + return CascadingUtil.getBooleanProjectProperty(this, CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME).getValue(); } public void setCleanWorkspaceRequired(boolean cleanWorkspaceRequired) { - getBooleanProperty(CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME).setValue(cleanWorkspaceRequired); + CascadingUtil.getBooleanProjectProperty(this, + CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME).setValue(cleanWorkspaceRequired); } /** @@ -634,7 +638,7 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A } public int getQuietPeriod() { - IntegerProjectProperty property = getIntegerProperty(QUIET_PERIOD_PROPERTY_NAME); + IntegerProjectProperty property = CascadingUtil.getIntegerProjectProperty(this, QUIET_PERIOD_PROPERTY_NAME); Integer value = property.getValue(); return property.getDefaultValue().equals(value) ? Hudson.getInstance().getQuietPeriod() : value; } @@ -646,18 +650,19 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A * @throws IOException if any. */ public void setQuietPeriod(Integer seconds) throws IOException { - getIntegerProperty(QUIET_PERIOD_PROPERTY_NAME).setValue(seconds); + CascadingUtil.getIntegerProjectProperty(this, QUIET_PERIOD_PROPERTY_NAME).setValue(seconds); save(); } public int getScmCheckoutRetryCount() { - IntegerProjectProperty property = getIntegerProperty(SCM_CHECKOUT_RETRY_COUNT_PROPERTY_NAME); + IntegerProjectProperty property = CascadingUtil.getIntegerProjectProperty(this, + SCM_CHECKOUT_RETRY_COUNT_PROPERTY_NAME); Integer value = property.getValue(); return property.getDefaultValue().equals(value) ? Hudson.getInstance().getScmCheckoutRetryCount() : value; } public void setScmCheckoutRetryCount(Integer retryCount) { - getIntegerProperty(SCM_CHECKOUT_RETRY_COUNT_PROPERTY_NAME).setValue(retryCount); + CascadingUtil.getIntegerProjectProperty(this, SCM_CHECKOUT_RETRY_COUNT_PROPERTY_NAME).setValue(retryCount); } /** @@ -677,12 +682,12 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A /** * @return true if quiet period was configured. - * @deprecated as of 2.2.0 + * @deprecated as of 2.1.2 * This method was used only on UI side. No longer required. */ // ugly name because of EL public boolean getHasCustomQuietPeriod() { - return null != getIntegerProperty(QUIET_PERIOD_PROPERTY_NAME).getValue(); + return null != CascadingUtil.getIntegerProjectProperty(this, QUIET_PERIOD_PROPERTY_NAME).getValue(); } /** @@ -704,10 +709,10 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A * Checks whether scmRetryCount is configured * * @return true if yes, false - otherwise. - * @deprecated as of 2.2.0 + * @deprecated as of 2.1.2 */ public boolean hasCustomScmCheckoutRetryCount(){ - return null != getIntegerProperty(SCM_CHECKOUT_RETRY_COUNT_PROPERTY_NAME).getValue(); + return null != CascadingUtil.getIntegerProjectProperty(this, SCM_CHECKOUT_RETRY_COUNT_PROPERTY_NAME).getValue(); } @Override @@ -724,20 +729,22 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A } public boolean blockBuildWhenDownstreamBuilding() { - return getBooleanProperty(BLOCK_BUILD_WHEN_DOWNSTREAM_BUILDING_PROPERTY_NAME).getValue(); + return CascadingUtil.getBooleanProjectProperty(this, + BLOCK_BUILD_WHEN_DOWNSTREAM_BUILDING_PROPERTY_NAME).getValue(); } public void setBlockBuildWhenDownstreamBuilding(boolean b) throws IOException { - getBooleanProperty(BLOCK_BUILD_WHEN_DOWNSTREAM_BUILDING_PROPERTY_NAME).setValue(b); + CascadingUtil.getBooleanProjectProperty(this, BLOCK_BUILD_WHEN_DOWNSTREAM_BUILDING_PROPERTY_NAME).setValue(b); save(); } public boolean blockBuildWhenUpstreamBuilding() { - return getBooleanProperty(BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME).getValue(); + return CascadingUtil.getBooleanProjectProperty(this, + BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME).getValue(); } public void setBlockBuildWhenUpstreamBuilding(boolean b) throws IOException { - getBooleanProperty(BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME).setValue(b); + CascadingUtil.getBooleanProjectProperty(this, BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME).setValue(b); save(); } @@ -1063,7 +1070,7 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A * @return name of jdk chosen for current project. Could taken from parent */ public String getJDKName() { - return getStringProperty(JDK_PROPERTY_NAME).getValue(); + return CascadingUtil.getStringProjectProperty(this, JDK_PROPERTY_NAME).getValue(); } /** @@ -1082,7 +1089,7 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A } public void setJDK(String jdk) { - getStringProperty(JDK_PROPERTY_NAME).setValue(jdk); + CascadingUtil.getStringProjectProperty(this, JDK_PROPERTY_NAME).setValue(jdk); } public BuildAuthorizationToken getAuthToken() { diff --git a/hudson-core/src/main/java/hudson/model/BaseBuildableProject.java b/hudson-core/src/main/java/hudson/model/BaseBuildableProject.java index e4ba6a2..460e093 100644 --- a/hudson-core/src/main/java/hudson/model/BaseBuildableProject.java +++ b/hudson-core/src/main/java/hudson/model/BaseBuildableProject.java @@ -153,14 +153,14 @@ public abstract class BaseBuildableProject<P extends BaseBuildableProject<P,B>,B */ @SuppressWarnings("unchecked") public DescribableList<Builder,Descriptor<Builder>> getBuildersList() { - return getDescribableListProjectProperty(BUILDERS_PROPERTY_NAME).getValue(); + return CascadingUtil.getDescribableListProjectProperty(this, BUILDERS_PROPERTY_NAME).getValue(); } /** * @inheritDoc */ public void setBuilders(DescribableList<Builder,Descriptor<Builder>> builders) { - getDescribableListProjectProperty(BUILDERS_PROPERTY_NAME).setValue(builders); + CascadingUtil.getDescribableListProjectProperty(this, BUILDERS_PROPERTY_NAME).setValue(builders); } /** @@ -171,7 +171,7 @@ public abstract class BaseBuildableProject<P extends BaseBuildableProject<P,B>,B } public Publisher getPublisher(Descriptor<Publisher> descriptor) { - return (Publisher) getExternalProjectProperty(descriptor.getJsonSafeClassName()).getValue(); + return (Publisher) CascadingUtil.getExternalProjectProperty(this, descriptor.getJsonSafeClassName()).getValue(); } /** * Returns the list of the publishers available in the hudson. diff --git a/hudson-core/src/main/java/hudson/model/FreeStyleProject.java b/hudson-core/src/main/java/hudson/model/FreeStyleProject.java index f996f7a..68ae6c1 100644 --- a/hudson-core/src/main/java/hudson/model/FreeStyleProject.java +++ b/hudson-core/src/main/java/hudson/model/FreeStyleProject.java @@ -18,6 +18,7 @@ package hudson.model; import hudson.Extension; +import hudson.util.CascadingUtil; import java.io.File; import java.io.IOException; @@ -65,7 +66,7 @@ public class FreeStyleProject extends Project<FreeStyleProject,FreeStyleBuild> i } public String getCustomWorkspace() throws IOException { - return getStringProperty(CUSTOM_WORKSPACE_PROPERTY_NAME).getValue(); + return CascadingUtil.getStringProjectProperty(this, CUSTOM_WORKSPACE_PROPERTY_NAME).getValue(); } /** @@ -88,7 +89,7 @@ public class FreeStyleProject extends Project<FreeStyleProject,FreeStyleBuild> i * @throws IOException if any. */ public void setCustomWorkspace(String customWorkspace) throws IOException { - getStringProperty(CUSTOM_WORKSPACE_PROPERTY_NAME).setValue(customWorkspace); + CascadingUtil.getStringProjectProperty(this, CUSTOM_WORKSPACE_PROPERTY_NAME).setValue(customWorkspace); save(); } diff --git a/hudson-core/src/main/java/hudson/model/Job.java b/hudson-core/src/main/java/hudson/model/Job.java index e3f160e..d579e21 100644 --- a/hudson-core/src/main/java/hudson/model/Job.java +++ b/hudson-core/src/main/java/hudson/model/Job.java @@ -261,7 +261,7 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R * Returns job property by specified key. * * @param key key. - * @return {@link org.hudsonci.api.model.IProjectProperty} instance or null. + * @return {@link org.eclipse.hudson.api.model.IProjectProperty} instance or null. */ public IProjectProperty getProperty(String key){ return CascadingUtil.getProjectProperty(this, key); @@ -274,46 +274,6 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R return CascadingUtil.getProjectProperty(this, key, clazz); } - public StringProjectProperty getStringProperty(String key) { - return CascadingUtil.getStringProjectProperty(this, key); - } - - public BaseProjectProperty getBaseProjectProperty(String key) { - return CascadingUtil.getBaseProjectProperty(this, key); - } - - public ExternalProjectProperty getExternalProjectProperty(String key) { - return CascadingUtil.getExternalProjectProperty(this, key); - } - - public ResultProjectProperty getResultProperty(String key) { - return CascadingUtil.getResultProjectProperty(this, key); - } - - public BooleanProjectProperty getBooleanProperty(String key) { - return CascadingUtil.getBooleanProjectProperty(this, key); - } - - public IntegerProjectProperty getIntegerProperty(String key) { - return CascadingUtil.getIntegerProjectProperty(this, key); - } - - public LogRotatorProjectProperty getLogRotatorProjectProperty(String key) { - return CascadingUtil.getLogRotatorProjectProperty(this, key); - } - - public DescribableListProjectProperty getDescribableListProjectProperty(String key) { - return CascadingUtil.getDescribableListProjectProperty(this, key); - } - - public AxisListProjectProperty getAxesListProjectProperty(String key) { - return CascadingUtil.getAxesListProjectProperty(this, key); - } - - public SCMProjectProperty getScmProjectProperty(String key) { - return CascadingUtil.getScmProjectProperty(this, key); - } - /** * Returns list of cascading children project names. * @@ -513,7 +473,7 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R // should we block until the build is cancelled? } } - Functions.unlinkProjectFromCascadingParents(getCascadingProject(), name); + CascadingUtil.unlinkProjectFromCascadingParents(getCascadingProject(), name); super.performDelete(); } @@ -795,8 +755,8 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R */ @Override protected void performBeforeItemRenaming(String oldName, String newName){ - Functions.renameCascadingChildLinks(cascadingProject, oldName, newName); - Functions.renameCascadingParentLinks(oldName, newName); + CascadingUtil.renameCascadingChildLinks(cascadingProject, oldName, newName); + CascadingUtil.renameCascadingParentLinks(oldName, newName); } /** @@ -1532,11 +1492,11 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R if (StringUtils.isBlank(cascadingProjectName)) { clearCascadingProject(); } else if (!StringUtils.equalsIgnoreCase(this.cascadingProjectName, cascadingProjectName)) { - Functions.unlinkProjectFromCascadingParents(cascadingProject, name); + CascadingUtil.unlinkProjectFromCascadingParents(cascadingProject, name); this.cascadingProjectName = cascadingProjectName; this.cascadingProject = (JobT) Functions.getItemByName(Hudson.getInstance().getAllItems(this.getClass()), cascadingProjectName); - Functions.linkCascadingProjectsToChild(cascadingProject, name); + CascadingUtil.linkCascadingProjectsToChild(cascadingProject, name); for (IProjectProperty property : jobProperties.values()) { if (property instanceof ExternalProjectProperty) { property.setOverridden(((ExternalProjectProperty) property).isModified()); @@ -1574,7 +1534,7 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R * Remove cascading project data and mark all project properties as non-overridden */ private void clearCascadingProject() { - Functions.unlinkProjectFromCascadingParents(cascadingProject, name); + CascadingUtil.unlinkProjectFromCascadingParents(cascadingProject, name); this.cascadingProject = null; this.cascadingProjectName = null; for (IProjectProperty property : jobProperties.values()) { diff --git a/hudson-core/src/main/java/hudson/model/Project.java b/hudson-core/src/main/java/hudson/model/Project.java index afa960e..c81b2f2 100644 --- a/hudson-core/src/main/java/hudson/model/Project.java +++ b/hudson-core/src/main/java/hudson/model/Project.java @@ -28,6 +28,7 @@ import hudson.tasks.Publisher; import hudson.tasks.Maven; import hudson.tasks.Maven.ProjectWithMaven; import hudson.tasks.Maven.MavenInstallation; +import hudson.util.CascadingUtil; import hudson.util.DescribableListUtil; import net.sf.json.JSONObject; import org.eclipse.hudson.api.model.IProject; @@ -79,7 +80,8 @@ public abstract class Project<P extends Project<P,B>,B extends Build<P,B>> */ //TODO investigate, whether we can move this method to parent or completer remove it public void addPublisher(Publisher buildStep) throws IOException { - getExternalProjectProperty(buildStep.getDescriptor().getJsonSafeClassName()).setValue(buildStep); + CascadingUtil.getExternalProjectProperty(this, + buildStep.getDescriptor().getJsonSafeClassName()).setValue(buildStep); } /** diff --git a/hudson-core/src/main/java/hudson/util/DescribableListUtil.java b/hudson-core/src/main/java/hudson/util/DescribableListUtil.java index 50430b4..0923133 100644 --- a/hudson-core/src/main/java/hudson/util/DescribableListUtil.java +++ b/hudson-core/src/main/java/hudson/util/DescribableListUtil.java @@ -142,7 +142,8 @@ public final class DescribableListUtil { List<T> describableList = new CopyOnWriteArrayList<T>(); DescribableList<T, Descriptor<T>> result = new DescribableList<T, Descriptor<T>>(owner); for (Descriptor<T> descriptor : descriptors) { - ExternalProjectProperty<T> property = owner.getExternalProjectProperty(descriptor.getJsonSafeClassName()); + ExternalProjectProperty<T> property = CascadingUtil.getExternalProjectProperty(owner, + descriptor.getJsonSafeClassName()); if (null != property.getValue()) { describableList.add(property.getValue()); } diff --git a/hudson-core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly b/hudson-core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly index 24938ae..e4ad6c6 100644 --- a/hudson-core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly +++ b/hudson-core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly @@ -46,7 +46,7 @@ href="${rootURL}/scripts/yui/treeview/assets/skins/sam/treeview.css" /> <f:block> - <j:set var="axesProperty" value="${it.getAxesListProjectProperty(it.AXES_PROPERTY_NAME)}"/> + <j:set var="axesProperty" value="${cu.getAxesListProjectProperty(it, it.AXES_PROPERTY_NAME)}"/> <j:set var="axes" value="${axesProperty.getValue()}"/> <f:hetero-list name="axis" hasHeader="true" @@ -57,7 +57,7 @@ isPropertyOverridden="${axesProperty.isOverridden()}"/> </f:block> - <j:set var="runSequentiallyProperty" value="${it.getBooleanProperty(it.RUN_SEQUENTIALLY_PROPERTY_NAME)}"/> + <j:set var="runSequentiallyProperty" value="${cu.getBooleanProjectProperty(it, it.RUN_SEQUENTIALLY_PROPERTY_NAME)}"/> <j:set var="runSequentially" value="${runSequentiallyProperty.getValue()}"/> <f:optionalBlock checked="${runSequentially}" @@ -66,7 +66,7 @@ resetUrl="${jobUrl}/resetProjectProperty?propertyName=${it.RUN_SEQUENTIALLY_PROPERTY_NAME}" isPropertyOverridden="${runSequentiallyProperty.isOverridden()}"/> - <j:set var="combinationFilterProperty" value="${it.getStringProperty(it.COMBINATION_FILTER_PROPERTY_NAME)}"/> + <j:set var="combinationFilterProperty" value="${cu.getStringProjectProperty(it, it.COMBINATION_FILTER_PROPERTY_NAME)}"/> <j:set var="combinationFilter" value="${combinationFilterProperty.getValue()}"/> <f:optionalBlock name="hasCombinationFilter" title="${%Combination Filter}" checked="${!empty(combinationFilter)}" @@ -78,9 +78,9 @@ </f:entry> </f:optionalBlock> - <j:set var="touchStoneCombinationFilterProperty" value="${it.getStringProperty(it.TOUCH_STONE_COMBINATION_FILTER_PROPERTY_NAME)}"/> + <j:set var="touchStoneCombinationFilterProperty" value="${cu.getStringProjectProperty(it, it.TOUCH_STONE_COMBINATION_FILTER_PROPERTY_NAME)}"/> <j:set var="touchStoneCombinationFilter" value="${touchStoneCombinationFilterProperty.getValue()}"/> - <j:set var="touchStoneResultConditionProperty" value="${it.getResultProperty(it.TOUCH_STONE_RESULT_CONDITION_PROPERTY_NAME)}"/> + <j:set var="touchStoneResultConditionProperty" value="${cu.getResultProjectProperty(it, it.TOUCH_STONE_RESULT_CONDITION_PROPERTY_NAME)}"/> <j:set var="touchStoneResultCondition" value="${touchStoneResultConditionProperty.getValue()}"/> <j:set var="isTouchStoneCombinationFilterOverridden" value="${touchStoneCombinationFilterProperty.isOverridden() || diff --git a/hudson-core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly b/hudson-core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly index 9341a66..9b33868 100644 --- a/hudson-core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly +++ b/hudson-core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly @@ -21,7 +21,8 @@ <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:p="/lib/hudson/project" xmlns:this="this"> <p:config-disableBuild/> - <j:set var="concurrentBuildProperty" value="${it.getBooleanProperty(it.CONCURRENT_BUILD_PROPERTY_NAME)}"/> + + <j:set var="concurrentBuildProperty" value="${cu.getBooleanProperty(it, it.CONCURRENT_BUILD_PROPERTY_NAME)}"/> <j:set var="concurrentBuild" value="${concurrentBuildProperty.getValue()}"/> <j:if test="${app.CONCURRENT_BUILD}"> @@ -35,7 +36,7 @@ <!-- if there's only one JDK configured, always use that. --> <f:entry title="JDK" description="${%JDK to be used for this project}" - isPropertyOverridden="${it.getStringProperty(it.JDK_PROPERTY_NAME).isOverridden()}"> + isPropertyOverridden="${cu.getStringProjectProperty(it, it.JDK_PROPERTY_NAME).isOverridden()}"> <select class="setting-input validated" name="jdk" checkUrl="'${rootURL}/defaultJDKCheck?value='+this.value"> <option>${%default.value}</option> diff --git a/hudson-core/src/main/resources/hudson/model/Job/configure.jelly b/hudson-core/src/main/resources/hudson/model/Job/configure.jelly index 8cc1411..20c7cd1 100644 --- a/hudson-core/src/main/resources/hudson/model/Job/configure.jelly +++ b/hudson-core/src/main/resources/hudson/model/Job/configure.jelly @@ -33,7 +33,7 @@ <f:textbox name="name" value="${it.name}" /> </f:entry> </j:if> - <j:set var="cascadingCandidates" value="${h.getAllItems(it.class, it)}"/> + <j:set var="cascadingCandidates" value="${cu.getCascadingParents(it.class, it)}"/> <j:if test="${cascadingCandidates.size() gt 0}"> <f:entry title="${%cascadingProjectName}"> <select class="setting-input" name="cascadingProjectName"> @@ -50,7 +50,7 @@ <j:if test="${it.supportsLogRotator()}"> <!-- log rotator --> - <j:set var="logRotatorProperty" value="${it.getLogRotatorProjectProperty(it.LOG_ROTATOR_PROPERTY_NAME)}"/> + <j:set var="logRotatorProperty" value="${cu.getLogRotatorProjectProperty(it, it.LOG_ROTATOR_PROPERTY_NAME)}"/> <j:set var="logRotator" value="${logRotatorProperty.getValue()}"/> <f:optionalBlock name="logrotate" help="/help/project-config/log-rotation.html" diff --git a/hudson-core/src/main/resources/lib/hudson/cascadingDescriptorList.jelly b/hudson-core/src/main/resources/lib/hudson/cascadingDescriptorList.jelly index 6e22738..b15b845 100644 --- a/hudson-core/src/main/resources/lib/hudson/cascadingDescriptorList.jelly +++ b/hudson-core/src/main/resources/lib/hudson/cascadingDescriptorList.jelly @@ -29,7 +29,7 @@ <f:section title="${attrs.title}" name="${attrs.name}"> <d:invokeBody/> <j:forEach var="descriptor" items="${descriptors}"> - <j:set var="instanceProperty" value="${it.getExternalProjectProperty(descriptor.jsonSafeClassName)}"/> + <j:set var="instanceProperty" value="${cu.getExternalProjectProperty(it, descriptor.jsonSafeClassName)}"/> <j:set var="instance" value="${instanceProperty.getValue()}"/> <f:optionalBlock name="${descriptor.jsonSafeClassName}" help="${descriptor.helpFile}" title="${descriptor.displayName}" checked="${instance!=null}" diff --git a/hudson-core/src/main/resources/lib/hudson/project/config-blockWhenDownstreamBuilding.jelly b/hudson-core/src/main/resources/lib/hudson/project/config-blockWhenDownstreamBuilding.jelly index a8f5c5f..433fc07 100644 --- a/hudson-core/src/main/resources/lib/hudson/project/config-blockWhenDownstreamBuilding.jelly +++ b/hudson-core/src/main/resources/lib/hudson/project/config-blockWhenDownstreamBuilding.jelly @@ -18,7 +18,7 @@ <!-- Block build when downstream dependency is building --> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> <j:set var="blockBuildWhenDownstreamBuildingProperty" - value="${it.getBooleanProperty(it.BLOCK_BUILD_WHEN_DOWNSTREAM_BUILDING_PROPERTY_NAME)}"/> + value="${cu.getBooleanProjectProperty(it, it.BLOCK_BUILD_WHEN_DOWNSTREAM_BUILDING_PROPERTY_NAME)}"/> <j:set var="blockBuildWhenDownstreamBuilding" value="${blockBuildWhenDownstreamBuildingProperty.getValue()}"/> <f:optionalBlock name="blockBuildWhenDownstreamBuilding" title="${%Block build when downstream project is building}" diff --git a/hudson-core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding.jelly b/hudson-core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding.jelly index 701d0e3..d5b61fa 100644 --- a/hudson-core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding.jelly +++ b/hudson-core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding.jelly @@ -18,7 +18,7 @@ <!-- Block build when upstream dependency is building --> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> <j:set var="blockBuildWhenUpstreamBuildingProperty" - value="${it.getBooleanProperty(it.BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME)}"/> + value="${cu.getBooleanProjectProperty(it, it.BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME)}"/> <j:set var="blockBuildWhenUpstreamBuilding" value="${blockBuildWhenUpstreamBuildingProperty.getValue()}"/> <f:optionalBlock name="blockBuildWhenUpstreamBuilding" title="${%Block build when upstream project is building}" @@ -27,3 +27,4 @@ resetUrl="${jobUrl}/resetProjectProperty?propertyName=${it.BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME}" isPropertyOverridden="${blockBuildWhenUpstreamBuildingProperty.isOverridden()}"/> </j:jelly> + diff --git a/hudson-core/src/main/resources/lib/hudson/project/config-builders.jelly b/hudson-core/src/main/resources/lib/hudson/project/config-builders.jelly index ea32b4c..6de6e91 100644 --- a/hudson-core/src/main/resources/lib/hudson/project/config-builders.jelly +++ b/hudson-core/src/main/resources/lib/hudson/project/config-builders.jelly @@ -19,7 +19,7 @@ Builder config pane --> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:p="/lib/hudson/project"> - <j:set var="buildersProperty" value="${it.getDescribableListProjectProperty(it.BUILDERS_PROPERTY_NAME)}"/> + <j:set var="buildersProperty" value="${cu.getDescribableListProjectProperty(it, it.BUILDERS_PROPERTY_NAME)}"/> <j:set var="builders" value="${buildersProperty.getValue()}"/> <!-- build config pane --> <f:section title="${%Build}"> diff --git a/hudson-core/src/main/resources/lib/hudson/project/config-cleanWorkspace.jelly b/hudson-core/src/main/resources/lib/hudson/project/config-cleanWorkspace.jelly index a3fada1..f8294bd 100644 --- a/hudson-core/src/main/resources/lib/hudson/project/config-cleanWorkspace.jelly +++ b/hudson-core/src/main/resources/lib/hudson/project/config-cleanWorkspace.jelly @@ -17,7 +17,7 @@ <!-- clean workspace --> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> - <j:set var="cleanWorkspaceRequiredProperty" value="${it.getBooleanProperty(it.CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME)}"/> + <j:set var="cleanWorkspaceRequiredProperty" value="${cu.getBooleanProjectProperty(it, it.CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME)}"/> <j:set var="cleanWorkspaceRequired" value="${cleanWorkspaceRequiredProperty.getValue()}"/> <f:optionalBlock name="cleanWorkspaceRequired" title="${%Clean workspace before build}" checked="${cleanWorkspaceRequired}" diff --git a/hudson-core/src/main/resources/lib/hudson/project/config-customWorkspace.jelly b/hudson-core/src/main/resources/lib/hudson/project/config-customWorkspace.jelly index 3cfecee..7bc2f7a 100644 --- a/hudson-core/src/main/resources/lib/hudson/project/config-customWorkspace.jelly +++ b/hudson-core/src/main/resources/lib/hudson/project/config-customWorkspace.jelly @@ -17,7 +17,7 @@ <!-- custom workspace --> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> - <j:set var="customWorkspaceProperty" value="${it.getStringProperty(it.CUSTOM_WORKSPACE_PROPERTY_NAME)}"/> + <j:set var="customWorkspaceProperty" value="${cu.getStringProjectProperty(it, it.CUSTOM_WORKSPACE_PROPERTY_NAME)}"/> <j:set var="customWorkspace" value="${customWorkspaceProperty.getValue()}"/> <f:optionalBlock name="customWorkspace" title="${%Use custom workspace}" checked="${customWorkspace!=null}" isPropertyOverridden="${customWorkspaceProperty.isOverridden()}" diff --git a/hudson-core/src/main/resources/lib/hudson/project/config-quietPeriod.jelly b/hudson-core/src/main/resources/lib/hudson/project/config-quietPeriod.jelly index 29a449d..f090138 100644 --- a/hudson-core/src/main/resources/lib/hudson/project/config-quietPeriod.jelly +++ b/hudson-core/src/main/resources/lib/hudson/project/config-quietPeriod.jelly @@ -17,7 +17,7 @@ <!-- custom quiet period --> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> - <j:set var="quietPeriodProperty" value="${it.getIntegerProperty(it.QUIET_PERIOD_PROPERTY_NAME)}"/> + <j:set var="quietPeriodProperty" value="${cu.getIntegerProjectProperty(it, it.QUIET_PERIOD_PROPERTY_NAME)}"/> <j:set var="quietPeriod" value="${quietPeriodProperty.getValue()}"/> <f:optionalBlock name="hasQuietPeriod" title="${%Quiet period}" checked="${quietPeriod!=null and quietPeriod!=quietPeriodProperty.getDefaultValue()}" diff --git a/hudson-core/src/main/resources/lib/hudson/project/config-retryCount.jelly b/hudson-core/src/main/resources/lib/hudson/project/config-retryCount.jelly index 99c81f0..6f3ffff 100644 --- a/hudson-core/src/main/resources/lib/hudson/project/config-retryCount.jelly +++ b/hudson-core/src/main/resources/lib/hudson/project/config-retryCount.jelly @@ -17,7 +17,7 @@ <!-- custom retry count --> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> - <j:set var="scmCheckoutRetryCountProperty" value="${it.getIntegerProperty(it.SCM_CHECKOUT_RETRY_COUNT_PROPERTY_NAME)}"/> + <j:set var="scmCheckoutRetryCountProperty" value="${cu.getIntegerProjectProperty(it, it.SCM_CHECKOUT_RETRY_COUNT_PROPERTY_NAME)}"/> <j:set var="scmCheckoutRetryCount" value="${scmCheckoutRetryCountProperty.getValue()}"/> <f:optionalBlock name="hasScmCheckoutRetryCount" title="${%Retry Count}" checked="${scmCheckoutRetryCount!=null and scmCheckoutRetryCount!=scmCheckoutRetryCountProperty.getDefaultValue()}" @@ -28,4 +28,4 @@ <f:textbox name="scmCheckoutRetryCount" value="${scmCheckoutRetryCount}"/> </f:entry> </f:optionalBlock> -</j:jelly>
\ No newline at end of file +</j:jelly> diff --git a/hudson-core/src/main/resources/lib/hudson/project/config-scm.jelly b/hudson-core/src/main/resources/lib/hudson/project/config-scm.jelly index 955b833..973c129 100644 --- a/hudson-core/src/main/resources/lib/hudson/project/config-scm.jelly +++ b/hudson-core/src/main/resources/lib/hudson/project/config-scm.jelly @@ -18,7 +18,7 @@ <!-- SCM config pane --> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> - <j:set var="scmProperty" value="${it.getScmProjectProperty(it.SCM_PROPERTY_NAME)}"/> + <j:set var="scmProperty" value="${cu.getScmProjectProperty(it, it.SCM_PROPERTY_NAME)}"/> <j:set var="scm" value="${scmProperty.getValue()}"/> <f:section title="${%Source Code Management}" resetUrl="${scmProperty.isOverridden()?jobUrl+'/resetProjectProperty?propertyName='+it.SCM_PROPERTY_NAME :''}"> diff --git a/hudson-core/src/main/resources/lib/layout/layout.jelly b/hudson-core/src/main/resources/lib/layout/layout.jelly index 0f17720..5e02b03 100644 --- a/hudson-core/src/main/resources/lib/layout/layout.jelly +++ b/hudson-core/src/main/resources/lib/layout/layout.jelly @@ -50,6 +50,7 @@ <!-- The path starts with a "/" character but does not end with a "/" character. --> <j:set var="rootURL" value="${request.contextPath}" /> <j:new var="h" className="hudson.Functions" /><!-- instead of JSP functions --> +<j:new var="cu" className="hudson.util.CascadingUtil"/> <!-- Utility for cascading functionality --> <j:set var="_" value="${h.configureAutoRefresh(request, response, attrs.norefresh!=null)}"/> <!-- load static resources from the path dedicated to a specific version. diff --git a/hudson-core/src/test/java/hudson/matrix/LegacyMatrixConfigurationTest.java b/hudson-core/src/test/java/hudson/matrix/LegacyMatrixConfigurationTest.java index 45c5d18..c91d18f 100644 --- a/hudson-core/src/test/java/hudson/matrix/LegacyMatrixConfigurationTest.java +++ b/hudson-core/src/test/java/hudson/matrix/LegacyMatrixConfigurationTest.java @@ -26,6 +26,7 @@ import hudson.model.Result; import hudson.model.TransientProjectActionFactory; import hudson.model.listeners.SaveableListener; import hudson.tasks.LogRotator; +import hudson.util.CascadingUtil; import java.io.File; import java.net.URISyntaxException; import org.junit.Before; @@ -74,8 +75,7 @@ public class LegacyMatrixConfigurationTest { expect(hudson.getExtensionList(TransientProjectActionFactory.class)).andReturn(actionList).anyTimes(); ExtensionList<SaveableListener> saveableListenerList = ExtensionList.create(hudson, SaveableListener.class); expect(hudson.getExtensionList(SaveableListener.class)).andReturn(saveableListenerList).anyTimes(); - expect(hudson.getAllItems(MatrixConfiguration.class)).andReturn(Lists.<MatrixConfiguration>newArrayList()) - .anyTimes(); + expect(hudson.getAllItems(MatrixConfiguration.class)).andReturn(Lists.<MatrixConfiguration>newArrayList()).anyTimes(); mockStatic(Hudson.class); expect(Hudson.getInstance()).andReturn(hudson).anyTimes(); replayAll(); @@ -85,18 +85,20 @@ public class LegacyMatrixConfigurationTest { project.buildProjectProperties(); verifyAll(); assertEquals("/tmp/1", project.getProperty(AbstractProject.CUSTOM_WORKSPACE_PROPERTY_NAME).getValue()); - assertEquals(new Integer(7), project.getIntegerProperty(AbstractProject.QUIET_PERIOD_PROPERTY_NAME).getValue()); + assertEquals(new Integer(7), CascadingUtil.getIntegerProjectProperty(project, + AbstractProject.QUIET_PERIOD_PROPERTY_NAME).getValue()); - assertTrue(project.getBooleanProperty(MatrixProject.RUN_SEQUENTIALLY_PROPERTY_NAME).getValue()); + assertTrue(CascadingUtil.getBooleanProjectProperty(project, + MatrixProject.RUN_SEQUENTIALLY_PROPERTY_NAME).getValue()); assertEquals("!(label==\"win\" && DB==\"oracle\")", project.getProperty(MatrixProject.COMBINATION_FILTER_PROPERTY_NAME).getValue()); assertEquals("label==\"unix\" && DB==\"mysql\"", project.getProperty(MatrixProject.TOUCH_STONE_COMBINATION_FILTER_PROPERTY_NAME).getValue()); assertEquals(Result.SUCCESS, - project.getResultProperty(MatrixProject.TOUCH_STONE_RESULT_CONDITION_PROPERTY_NAME).getValue()); + CascadingUtil.getResultProjectProperty(project, MatrixProject.TOUCH_STONE_RESULT_CONDITION_PROPERTY_NAME).getValue()); assertEquals(new LogRotator(7, 7, 7, 7), - project.getLogRotatorProjectProperty(MatrixProject.LOG_ROTATOR_PROPERTY_NAME).getValue()); - AxisList axes = project.getAxesListProjectProperty(MatrixProject.AXES_PROPERTY_NAME).getValue(); + CascadingUtil.getLogRotatorProjectProperty(project, MatrixProject.LOG_ROTATOR_PROPERTY_NAME).getValue()); + AxisList axes = CascadingUtil.getAxesListProjectProperty(project, MatrixProject.AXES_PROPERTY_NAME).getValue(); assertEquals(2, axes.size()); assertEquals("DB", axes.get(0).getName()); assertEquals(2, axes.get(0).getValues().size()); @@ -110,4 +112,4 @@ public class LegacyMatrixConfigurationTest { assertEquals(3, project.getActiveConfigurations().size()); assertEquals(2, project.getActiveConfigurations().iterator().next().getCombination().size()); } -}
\ No newline at end of file +} diff --git a/hudson-core/src/test/java/hudson/model/FreeStyleProjectTest.java b/hudson-core/src/test/java/hudson/model/FreeStyleProjectTest.java index 14b1688..d6d3bae 100644 --- a/hudson-core/src/test/java/hudson/model/FreeStyleProjectTest.java +++ b/hudson-core/src/test/java/hudson/model/FreeStyleProjectTest.java @@ -22,6 +22,7 @@ import hudson.security.AuthorizationStrategy; import hudson.security.GlobalMatrixAuthorizationStrategy; import hudson.security.ProjectMatrixAuthorizationStrategy; import hudson.tasks.LogRotator; +import hudson.util.CascadingUtil; import java.io.IOException; import java.util.List; import org.junit.Test; @@ -53,7 +54,7 @@ public class FreeStyleProjectTest { private static final String USER = "admin"; @Test - public void testOnCreatedFromScratch(){ + public void testOnCreatedFromScratch() { Hudson hudson = createMock(Hudson.class); expect(hudson.getNodes()).andReturn(Lists.<Node>newArrayList()); AuthorizationStrategy authorizationStrategy = createMock(ProjectMatrixAuthorizationStrategy.class); @@ -72,14 +73,14 @@ public class FreeStyleProjectTest { assertEquals(freeStyleProject.getCreatedBy(), USER); List properties = freeStyleProject.getAllProperties(); assertEquals(properties.size(), 1); - AuthorizationMatrixProperty property = (AuthorizationMatrixProperty)properties.get(0); + AuthorizationMatrixProperty property = (AuthorizationMatrixProperty) properties.get(0); assertEquals(property.getGrantedPermissions().keySet().size(), 7); assertNotNull(property.getGrantedPermissions().get(Item.CONFIGURE)); assertTrue(property.getGrantedPermissions().get(Item.CONFIGURE).contains(USER)); } @Test - public void testOnCreatedFromScratchGlobalMatrixAuthorizationStrategy(){ + public void testOnCreatedFromScratchGlobalMatrixAuthorizationStrategy() { Hudson hudson = createMock(Hudson.class); expect(hudson.getNodes()).andReturn(Lists.<Node>newArrayList()); AuthorizationStrategy authorizationStrategy = createMock(GlobalMatrixAuthorizationStrategy.class); @@ -101,7 +102,7 @@ public class FreeStyleProjectTest { } @Test - public void testOnCreatedFromScratchAnonymousAuthentication(){ + public void testOnCreatedFromScratchAnonymousAuthentication() { Hudson hudson = createMock(Hudson.class); expect(hudson.getNodes()).andReturn(Lists.<Node>newArrayList()); mockStatic(Hudson.class); @@ -119,7 +120,7 @@ public class FreeStyleProjectTest { } @Test - public void testOnCopiedFrom(){ + public void testOnCopiedFrom() { Hudson hudson = createMock(Hudson.class); expect(hudson.getNodes()).andReturn(Lists.<Node>newArrayList()).times(2); AuthorizationStrategy authorizationStrategy = createMock(ProjectMatrixAuthorizationStrategy.class); @@ -141,14 +142,14 @@ public class FreeStyleProjectTest { assertEquals(freeStyleProject.getCreatedBy(), USER); List properties = freeStyleProject.getAllProperties(); assertEquals(properties.size(), 1); - AuthorizationMatrixProperty property = (AuthorizationMatrixProperty)properties.get(0); + AuthorizationMatrixProperty property = (AuthorizationMatrixProperty) properties.get(0); assertEquals(property.getGrantedPermissions().keySet().size(), 7); assertNotNull(property.getGrantedPermissions().get(Item.CONFIGURE)); assertTrue(property.getGrantedPermissions().get(Item.CONFIGURE).contains(USER)); } @Test - public void testOnCopiedFromGlobalMatrixAuthorizationStrategy(){ + public void testOnCopiedFromGlobalMatrixAuthorizationStrategy() { Hudson hudson = createMock(Hudson.class); expect(hudson.getNodes()).andReturn(Lists.<Node>newArrayList()).times(2); AuthorizationStrategy authorizationStrategy = createMock(GlobalMatrixAuthorizationStrategy.class); @@ -172,7 +173,7 @@ public class FreeStyleProjectTest { } @Test - public void testOnCopiedFromAnonymousAuthentication(){ + public void testOnCopiedFromAnonymousAuthentication() { Hudson hudson = createMock(Hudson.class); expect(hudson.getNodes()).andReturn(Lists.<Node>newArrayList()).times(2); mockStatic(Hudson.class); @@ -194,9 +195,9 @@ public class FreeStyleProjectTest { @Test - public void testGetLogRotatorFromParent(){ + public void testGetLogRotatorFromParent() { FreeStyleProject parentProject = new FreeStyleProjectMock("parent"); - parentProject.setLogRotator(new LogRotator(10,11,12,13)); + parentProject.setLogRotator(new LogRotator(10, 11, 12, 13)); FreeStyleProjectMock childProject1 = new FreeStyleProjectMock("child1"); childProject1.setCascadingProject(parentProject); @@ -206,9 +207,9 @@ public class FreeStyleProjectTest { } @Test - public void testGetLogRotatorFromChild(){ + public void testGetLogRotatorFromChild() { FreeStyleProject parentProject = new FreeStyleProjectMock("parent"); - parentProject.setLogRotator(new LogRotator(10,10,10,10)); + parentProject.setLogRotator(new LogRotator(10, 10, 10, 10)); FreeStyleProjectMock childProject1 = new FreeStyleProjectMock("child1"); childProject1.setLogRotator(new LogRotator(20, 20, 20, 20)); @@ -219,9 +220,9 @@ public class FreeStyleProjectTest { } @Test - public void testSetLogRotatorValueEqualsWithParent(){ + public void testSetLogRotatorValueEqualsWithParent() { FreeStyleProject parentProject = new FreeStyleProjectMock("parent"); - parentProject.setLogRotator(new LogRotator(10,11,12,13)); + parentProject.setLogRotator(new LogRotator(10, 11, 12, 13)); FreeStyleProjectMock childProject1 = new FreeStyleProjectMock("child1"); childProject1.setCascadingProject(parentProject); @@ -231,7 +232,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetLogRotatorParentNull(){ + public void testSetLogRotatorParentNull() { FreeStyleProject childProject1 = new FreeStyleProjectMock("child1"); childProject1.setLogRotator(new LogRotator(10, 11, 12, 13)); assertNotNull(childProject1.getLogRotator()); @@ -239,7 +240,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetCustomWorkspaceValueEqualsWithParent() throws IOException{ + public void testSetCustomWorkspaceValueEqualsWithParent() throws IOException { FreeStyleProject parentProject = new FreeStyleProjectMock("parent"); String customWorkspace = "/tmp"; parentProject.setCustomWorkspace(customWorkspace); @@ -251,7 +252,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetCustomWorkspaceValueNotEqualsWithParent() throws IOException{ + public void testSetCustomWorkspaceValueNotEqualsWithParent() throws IOException { FreeStyleProject parentProject = new FreeStyleProjectMock("parent"); String parentCustomWorkspace = "/tmp"; String childCustomWorkspace = "/tmp1"; @@ -263,7 +264,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetCustomWorkspaceValueParentNull() throws IOException{ + public void testSetCustomWorkspaceValueParentNull() throws IOException { String childCustomWorkspace = "/tmp"; FreeStyleProject childProject = new FreeStyleProjectMock("child"); childProject.setCustomWorkspace(childCustomWorkspace); @@ -271,7 +272,7 @@ public class FreeStyleProjectTest { } @Test - public void testGetCustomWorkspace() throws IOException{ + public void testGetCustomWorkspace() throws IOException { String customWorkspace = "/tmp"; FreeStyleProjectMock childProject = new FreeStyleProjectMock("child"); childProject.setCustomWorkspace(customWorkspace); @@ -287,7 +288,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetJdkValueEqualsWithParent() throws IOException{ + public void testSetJdkValueEqualsWithParent() throws IOException { FreeStyleProject parentProject = new FreeStyleProjectMock("parent"); String jdkName = "sun-java5-jdk32"; parentProject.setJDK(jdkName); @@ -299,7 +300,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetJdkValueNotEqualsWithParent() throws IOException{ + public void testSetJdkValueNotEqualsWithParent() throws IOException { FreeStyleProject parentProject = new FreeStyleProjectMock("parent"); String parentJdkName = "sun-java5-jdk32"; String childJdkName = "sun-java6-jdk32"; @@ -311,7 +312,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetJdkValueParentNull() throws IOException{ + public void testSetJdkValueParentNull() throws IOException { String childJdkName = "sun-java6-jdk32"; FreeStyleProject childProject = new FreeStyleProjectMock("child"); childProject.setJDK(childJdkName); @@ -319,7 +320,7 @@ public class FreeStyleProjectTest { } @Test - public void testGetJdkName() throws IOException{ + public void testGetJdkName() throws IOException { String JdkName = "sun-java6-jdk32"; FreeStyleProjectMock childProject = new FreeStyleProjectMock("child"); childProject.setJDK(JdkName); @@ -352,6 +353,7 @@ public class FreeStyleProjectTest { assertEquals(childProject.getQuietPeriod(), globalQuietPeriod); verifyAll(); } + @Test public void testSetQuietPeriodEqualsGlobal() throws IOException { String quietPeriod = "4"; @@ -372,7 +374,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetQuietPeriodNotEqualsWithParent() throws IOException{ + public void testSetQuietPeriodNotEqualsWithParent() throws IOException { String parentQuietPeriod = "10"; String childQuietPeriod = "11"; FreeStyleProject parentProject = new FreeStyleProjectMock("parent"); @@ -390,7 +392,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetQuietPeriodParentNull() throws IOException{ + public void testSetQuietPeriodParentNull() throws IOException { String quietPeriod = "10"; FreeStyleProject childProject = new FreeStyleProjectMock("child"); childProject.setQuietPeriod(quietPeriod); @@ -398,7 +400,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetInvalidQuietPeriod() throws IOException{ + public void testSetInvalidQuietPeriod() throws IOException { String quietPeriod = "asd10asdasd"; int globalQuietPeriod = 4; FreeStyleProject childProject = new FreeStyleProjectMock("child"); @@ -413,7 +415,7 @@ public class FreeStyleProjectTest { } @Test - public void testGetQuietPeriod() throws IOException{ + public void testGetQuietPeriod() throws IOException { String quietPeriodString = "10"; int globalQuietPeriod = 4; int quietPeriod = Integer.parseInt(quietPeriodString); @@ -458,7 +460,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetScmCheckoutRetryCountNotEqualsWithParent() throws IOException{ + public void testSetScmCheckoutRetryCountNotEqualsWithParent() throws IOException { String parentScmCheckoutRetryCount = "10"; String childScmCheckoutRetryCount = "11"; FreeStyleProject parentProject = new FreeStyleProjectMock("parent"); @@ -476,7 +478,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetScmCheckoutRetryCountParentNull() throws IOException{ + public void testSetScmCheckoutRetryCountParentNull() throws IOException { String scmCheckoutRetryCount = "10"; FreeStyleProject childProject = new FreeStyleProjectMock("child"); childProject.setScmCheckoutRetryCount(scmCheckoutRetryCount); @@ -484,7 +486,7 @@ public class FreeStyleProjectTest { } @Test - public void testSetInvalidScmCheckoutRetryCount() throws IOException{ + public void testSetInvalidScmCheckoutRetryCount() throws IOException { String scmCheckoutRetryCount = "asd10asdasd"; int globalScmCheckoutRetryCount = 4; FreeStyleProject childProject = new FreeStyleProjectMock("child"); @@ -499,7 +501,7 @@ public class FreeStyleProjectTest { } @Test - public void testGetScmCheckoutRetryCount() throws IOException{ + public void testGetScmCheckoutRetryCount() throws IOException { String scmCheckoutRetryCountString = "10"; int globalScmCheckoutRetryCount = 4; int scmCheckoutRetryCount = Integer.parseInt(scmCheckoutRetryCountString); @@ -554,9 +556,8 @@ public class FreeStyleProjectTest { FreeStyleProject childProject = new FreeStyleProjectMock("child"); childProject.setBlockBuildWhenDownstreamBuilding(blockBuildWhenDownstreamBuilding); //if parent is not set, value should be populated according to existing logic - assertEquals(blockBuildWhenDownstreamBuilding, - childProject.getBooleanProperty(AbstractProject.BLOCK_BUILD_WHEN_DOWNSTREAM_BUILDING_PROPERTY_NAME) - .getOriginalValue()); + assertEquals(blockBuildWhenDownstreamBuilding, CascadingUtil.getBooleanProjectProperty(childProject, + AbstractProject.BLOCK_BUILD_WHEN_DOWNSTREAM_BUILDING_PROPERTY_NAME).getOriginalValue()); } @Test @@ -585,8 +586,8 @@ public class FreeStyleProjectTest { FreeStyleProjectMock childProject = new FreeStyleProjectMock("child"); childProject.setCascadingProject(parentProject); childProject.setBlockBuildWhenUpstreamBuilding(blockBuildWhenUpstreamBuilding); - assertFalse(childProject.getBooleanProperty(AbstractProject.BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME) - .getOriginalValue()); + assertFalse(CascadingUtil.getBooleanProjectProperty(childProject, + AbstractProject.BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME).getOriginalValue()); } @Test @@ -608,9 +609,8 @@ public class FreeStyleProjectTest { FreeStyleProject childProject = new FreeStyleProjectMock("child"); childProject.setBlockBuildWhenUpstreamBuilding(blockBuildWhenUpstreamBuilding); //if parent is not set, value should be populated according to existing logic - assertEquals(blockBuildWhenUpstreamBuilding, - childProject.getBooleanProperty(AbstractProject.BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME) - .getOriginalValue()); + assertEquals(blockBuildWhenUpstreamBuilding, CascadingUtil.getBooleanProjectProperty(childProject, + AbstractProject.BLOCK_BUILD_WHEN_UPSTREAM_BUILDING_PROPERTY_NAME).getOriginalValue()); } @Test @@ -620,7 +620,7 @@ public class FreeStyleProjectTest { FreeStyleProject parentProject = new FreeStyleProjectMock("parent"); parentProject.setBlockBuildWhenUpstreamBuilding(parentBlockBuildWhenUpstreamBuilding); FreeStyleProjectMock childProject = new FreeStyleProjectMock("child"); - //Set equal to parent in order to inherit from cascading project + //Set equal to parent in order to inherit from cascading project childProject.setBlockBuildWhenUpstreamBuilding(parentBlockBuildWhenUpstreamBuilding); childProject.setCascadingProject(parentProject); //Value should be taken from cascadingProject @@ -630,7 +630,7 @@ public class FreeStyleProjectTest { assertEquals(childBlockBuildWhenUpstreamBuilding, childProject.blockBuildWhenUpstreamBuilding()); } -// --- + // --- @Test public void testSetCleanWorkspaceRequiredEqualsWithParent() throws IOException { boolean cleanWorkspaceRequired = true; @@ -639,8 +639,8 @@ public class FreeStyleProjectTest { FreeStyleProjectMock childProject = new FreeStyleProjectMock("child"); childProject.setCascadingProject(parentProject); childProject.setCleanWorkspaceRequired(cleanWorkspaceRequired); - assertFalse( - childProject.getBooleanProperty(AbstractProject.CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME).getOriginalValue()); + assertFalse(CascadingUtil.getBooleanProjectProperty(childProject, + AbstractProject.CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME).getOriginalValue()); } @Test @@ -653,8 +653,8 @@ public class FreeStyleProjectTest { childProject.setCascadingProject(parentProject); childProject.setCleanWorkspaceRequired(childCleanWorkspaceRequired); //if child value is not equals to parent one, field should be populated - assertFalse( - childProject.getBooleanProperty(AbstractProject.CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME).getOriginalValue()); + assertFalse(CascadingUtil.getBooleanProjectProperty(childProject, + AbstractProject.CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME).getOriginalValue()); } @Test @@ -663,8 +663,8 @@ public class FreeStyleProjectTest { FreeStyleProject childProject = new FreeStyleProjectMock("child"); childProject.setCleanWorkspaceRequired(cleanWorkspaceRequired); //if parent is not set, value should be populated according to existing logic - assertEquals(cleanWorkspaceRequired, - childProject.getBooleanProperty(AbstractProject.CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME).getOriginalValue()); + assertEquals(cleanWorkspaceRequired, CascadingUtil.getBooleanProjectProperty(childProject, + AbstractProject.CLEAN_WORKSPACE_REQUIRED_PROPERTY_NAME).getOriginalValue()); } @Test @@ -691,7 +691,8 @@ public class FreeStyleProjectTest { FreeStyleProjectMock childProject = new FreeStyleProjectMock("child"); childProject.setCascadingProject(parentProject); childProject.setConcurrentBuild(concurrentBuild); - assertFalse(childProject.getBooleanProperty(AbstractProject.CONCURRENT_BUILD_PROPERTY_NAME).getOriginalValue()); + assertFalse(CascadingUtil.getBooleanProjectProperty(childProject, + AbstractProject.CONCURRENT_BUILD_PROPERTY_NAME).getOriginalValue()); } @Test @@ -704,8 +705,8 @@ public class FreeStyleProjectTest { childProject.setCascadingProject(parentProject); childProject.setConcurrentBuild(childConcurrentBuild); //if child value is not equals to parent one, field should be populated - assertEquals(childConcurrentBuild, - childProject.getBooleanProperty(AbstractProject.CONCURRENT_BUILD_PROPERTY_NAME).getOriginalValue()); + assertEquals(childConcurrentBuild, CascadingUtil.getBooleanProjectProperty(childProject, + AbstractProject.CONCURRENT_BUILD_PROPERTY_NAME).getOriginalValue()); } @Test @@ -714,8 +715,8 @@ public class FreeStyleProjectTest { FreeStyleProject childProject = new FreeStyleProjectMock("child"); childProject.setConcurrentBuild(concurrentBuild); //if parent is not set, value should be populated according to existing logic - assertEquals(concurrentBuild, - childProject.getBooleanProperty(AbstractProject.CONCURRENT_BUILD_PROPERTY_NAME).getOriginalValue()); + assertEquals(concurrentBuild, CascadingUtil.getBooleanProjectProperty(childProject, + AbstractProject.CONCURRENT_BUILD_PROPERTY_NAME).getOriginalValue()); } @Test |

