Browse Source

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
master
Sam Ruby 25 years ago
parent
commit
049d4a294a
2 changed files with 33 additions and 5 deletions
  1. +6
    -0
      src/main/org/apache/tools/ant/Project.java
  2. +27
    -5
      src/main/org/apache/tools/ant/taskdefs/Property.java

+ 6
- 0
src/main/org/apache/tools/ant/Project.java View File

@@ -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;
}


+ 27
- 5
src/main/org/apache/tools/ant/taskdefs/Property.java View File

@@ -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 <rubys@us.ibm.com>
*/
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);
}
}
}



Loading…
Cancel
Save