aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakozak2011-11-24 06:23:54 (EST)
committerWinston Prakash2011-12-01 20:47:23 (EST)
commit0551f8db82aca1106e4ca88a7ddf5c5d487ad466 (patch)
treebaa717035bc62053f8161ca2fa821f8fe465a095
parentfc83f582eccb9699440ea401a3858edd4d479b17 (diff)
downloadorg.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>
-rw-r--r--hudson-core/src/main/java/hudson/Functions.java71
-rw-r--r--hudson-core/src/main/java/hudson/matrix/MatrixProject.java27
-rw-r--r--hudson-core/src/main/java/hudson/model/AbstractProject.java43
-rw-r--r--hudson-core/src/main/java/hudson/model/BaseBuildableProject.java6
-rw-r--r--hudson-core/src/main/java/hudson/model/FreeStyleProject.java5
-rw-r--r--hudson-core/src/main/java/hudson/model/Job.java54
-rw-r--r--hudson-core/src/main/java/hudson/model/Project.java4
-rw-r--r--hudson-core/src/main/java/hudson/util/DescribableListUtil.java3
-rw-r--r--hudson-core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly10
-rw-r--r--hudson-core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly5
-rw-r--r--hudson-core/src/main/resources/hudson/model/Job/configure.jelly4
-rw-r--r--hudson-core/src/main/resources/lib/hudson/cascadingDescriptorList.jelly2
-rw-r--r--hudson-core/src/main/resources/lib/hudson/project/config-blockWhenDownstreamBuilding.jelly2
-rw-r--r--hudson-core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding.jelly3
-rw-r--r--hudson-core/src/main/resources/lib/hudson/project/config-builders.jelly2
-rw-r--r--hudson-core/src/main/resources/lib/hudson/project/config-cleanWorkspace.jelly2
-rw-r--r--hudson-core/src/main/resources/lib/hudson/project/config-customWorkspace.jelly2
-rw-r--r--hudson-core/src/main/resources/lib/hudson/project/config-quietPeriod.jelly2
-rw-r--r--hudson-core/src/main/resources/lib/hudson/project/config-retryCount.jelly4
-rw-r--r--hudson-core/src/main/resources/lib/hudson/project/config-scm.jelly2
-rw-r--r--hudson-core/src/main/resources/lib/layout/layout.jelly1
-rw-r--r--hudson-core/src/test/java/hudson/matrix/LegacyMatrixConfigurationTest.java18
-rw-r--r--hudson-core/src/test/java/hudson/model/FreeStyleProjectTest.java105
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