From 049d4a294a61876632f6106c05659b2e9092a958 Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Sat, 27 May 2000 22:21:10 +0000 Subject: [PATCH] Make sure that properies from the command line and/or parent projects override properties specified in the build.xml file. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267673 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/ant/Project.java | 6 ++++ .../apache/tools/ant/taskdefs/Property.java | 32 ++++++++++++++++--- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/main/org/apache/tools/ant/Project.java b/src/main/org/apache/tools/ant/Project.java index 008252341..f60b5b90e 100644 --- a/src/main/org/apache/tools/ant/Project.java +++ b/src/main/org/apache/tools/ant/Project.java @@ -198,6 +198,12 @@ public class Project { return property; } + public String getUserProperty(String name) { + if (name == null) return null; + String property = (String) userProperties.get(name); + return property; + } + public Hashtable getProperties() { return properties; } diff --git a/src/main/org/apache/tools/ant/taskdefs/Property.java b/src/main/org/apache/tools/ant/taskdefs/Property.java index 6c4e58c9d..9cf53582e 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Property.java +++ b/src/main/org/apache/tools/ant/taskdefs/Property.java @@ -60,8 +60,10 @@ import java.util.*; /** * Will set a Project property. Used to be a hack in ProjectHelper + * Will not override values set by the command line or parent projects. * * @author costin@dnt.ro + * @author Sam Ruby */ public class Property extends Task { @@ -101,9 +103,19 @@ public class Property extends Task { if ((name != null) && (value != null)) { String v = ProjectHelper.replaceProperties(value, project.getProperties()); if( userProperty ) - project.setUserProperty(name, v); + if (project.getUserProperty(name) == null) { + project.setUserProperty(name, v); + } else { + project.log("Override ignored for " + name, + project.MSG_VERBOSE); + } else - project.setProperty(name, v); + if (project.getProperty(name) == null) { + project.setProperty(name, v); + } else { + project.log("Override ignored for " + name, + project.MSG_VERBOSE); + } } if (file != null) loadFile(file); @@ -149,9 +161,19 @@ public class Property extends Task { String value = (String) props.getProperty(name); String v = ProjectHelper.replaceProperties(value, project.getProperties()); if( userProperty ) - project.setUserProperty(name, v); - else - project.setProperty(name, v); + if (project.getUserProperty(name) == null) { + project.setUserProperty(name, v); + } else { + project.log("Override ignored for " + name, + project.MSG_VERBOSE); + } + else + if (project.getProperty(name) == null) { + project.setProperty(name, v); + } else { + project.log("Override ignored for " + name, + project.MSG_VERBOSE); + } } }