You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bo...@apache.org on 2003/05/12 16:00:11 UTC
cvs commit: ant/src/testcases/org/apache/tools/ant/types CommandlineJavaTest.java
bodewig 2003/05/12 07:00:10
Modified: . WHATSNEW
src/main/org/apache/tools/ant/taskdefs Java.java
src/main/org/apache/tools/ant/taskdefs/optional/junit
JUnitTask.java
src/main/org/apache/tools/ant/types CommandlineJava.java
PropertySet.java
src/testcases/org/apache/tools/ant/types
CommandlineJavaTest.java
Log:
Add nested <propertyset>s to <java> and <junit>.
Revision Changes Path
1.414 +2 -1 ant/WHATSNEW
Index: WHATSNEW
===================================================================
RCS file: /home/cvs/ant/WHATSNEW,v
retrieving revision 1.413
retrieving revision 1.414
diff -u -r1.413 -r1.414
--- WHATSNEW 9 May 2003 13:41:03 -0000 1.413
+++ WHATSNEW 12 May 2003 14:00:08 -0000 1.414
@@ -306,7 +306,8 @@
defaultexcludes task. Bugzilla Report 12700.
* There is a new data type <propertyset> that can be used to collect
- properties.
+ properties. It is supported by <ant>, <antcall>, <subant>, <java>
+ and <junit>.
* <concat> can now control the encoding of the output as well and optionally
add new-line characters at the end of files that get concatenated but
1.59 +10 -0 ant/src/main/org/apache/tools/ant/taskdefs/Java.java
Index: Java.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Java.java,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- Java.java 22 Apr 2003 22:12:53 -0000 1.58
+++ Java.java 12 May 2003 14:00:09 -0000 1.59
@@ -65,6 +65,7 @@
import org.apache.tools.ant.types.CommandlineJava;
import org.apache.tools.ant.types.Environment;
import org.apache.tools.ant.types.Path;
+import org.apache.tools.ant.types.PropertySet;
import org.apache.tools.ant.types.Reference;
/**
@@ -301,6 +302,15 @@
*/
public void addSysproperty(Environment.Variable sysp) {
cmdl.addSysproperty(sysp);
+ }
+
+ /**
+ * Adds a set of properties as system properties.
+ *
+ * @since Ant 1.6
+ */
+ public void addSyspropertyset(PropertySet sysp) {
+ cmdl.addSyspropertyset(sysp);
}
/**
1.63 +15 -1 ant/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
Index: JUnitTask.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- JUnitTask.java 18 Apr 2003 23:40:26 -0000 1.62
+++ JUnitTask.java 12 May 2003 14:00:09 -0000 1.63
@@ -75,6 +75,7 @@
import org.apache.tools.ant.types.EnumeratedAttribute;
import org.apache.tools.ant.types.Environment;
import org.apache.tools.ant.types.Path;
+import org.apache.tools.ant.types.PropertySet;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.LoaderUtils;
import junit.framework.AssertionFailedError;
@@ -400,6 +401,19 @@
*/
public void addSysproperty(Environment.Variable sysp) {
commandline.addSysproperty(sysp);
+ }
+
+ /**
+ * Adds a set of properties that will be used as system properties
+ * that tests can access.
+ *
+ * This might be useful to tranfer Ant properties to the
+ * testcases when JVM forking is not enabled.
+ *
+ * @since Ant 1.6
+ */
+ public void addSyspropertyset(PropertySet sysp) {
+ commandline.addSyspropertyset(sysp);
}
/**
1.38 +40 -6 ant/src/main/org/apache/tools/ant/types/CommandlineJava.java
Index: CommandlineJava.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/CommandlineJava.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- CommandlineJava.java 10 Feb 2003 14:14:30 -0000 1.37
+++ CommandlineJava.java 12 May 2003 14:00:10 -0000 1.38
@@ -1,7 +1,7 @@
/*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2000-2002 The Apache Software Foundation. All rights
+ * Copyright (c) 2000-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -99,22 +99,37 @@
*/
public static class SysProperties extends Environment implements Cloneable {
Properties sys = null;
+ private Vector propertySets = new Vector();
public String[] getVariables() throws BuildException {
String[] props = super.getVariables();
+ Properties p = mergePropertySets();
if (props == null) {
- return null;
+ if (p.size() == 0) {
+ return null;
+ } else {
+ props = new String[0];
+ }
}
- for (int i = 0; i < props.length; i++) {
- props[i] = "-D" + props[i];
+ String[] result = new String[props.length + p.size()];
+ int i = 0;
+ for (; i < props.length; i++) {
+ result[i] = "-D" + props[i];
+ }
+ for (Enumeration enum = p.keys(); enum.hasMoreElements();) {
+ String key = (String) enum.nextElement();
+ String value = p.getProperty(key);
+ result[i++] = "-D" + key + "=" + value;
}
- return props;
+
+ return result;
}
public int size() {
- return variables.size();
+ Properties p = mergePropertySets();
+ return variables.size() + p.size();
}
public void setSystem() throws BuildException {
@@ -125,6 +140,7 @@
Object o = e.nextElement();
p.put(o, sys.get(o));
}
+ p.putAll(mergePropertySets());
for (Enumeration e = variables.elements(); e.hasMoreElements();) {
Environment.Variable v = (Environment.Variable) e.nextElement();
p.put(v.getKey(), v.getValue());
@@ -152,12 +168,26 @@
try {
SysProperties c = (SysProperties) super.clone();
c.variables = (Vector) variables.clone();
+ c.propertySets = (Vector) propertySets.clone();
return c;
} catch (CloneNotSupportedException e) {
return null;
}
}
+ public void addSyspropertyset(PropertySet ps) {
+ propertySets.addElement(ps);
+ }
+
+ private Properties mergePropertySets() {
+ Properties p = new Properties();
+ for (Enumeration e = propertySets.elements();
+ e.hasMoreElements();) {
+ PropertySet ps = (PropertySet) e.nextElement();
+ p.putAll(ps.getProperties());
+ }
+ return p;
+ }
}
/**
@@ -178,6 +208,10 @@
public void addSysproperty(Environment.Variable sysp) {
sysProperties.addVariable(sysp);
+ }
+
+ public void addSyspropertyset(PropertySet sysp) {
+ sysProperties.addSyspropertyset(sysp);
}
public void setVm(String vm) {
1.3 +8 -3 ant/src/main/org/apache/tools/ant/types/PropertySet.java
Index: PropertySet.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/PropertySet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PropertySet.java 12 May 2003 12:16:07 -0000 1.2
+++ PropertySet.java 12 May 2003 14:00:10 -0000 1.3
@@ -174,11 +174,11 @@
}
public boolean getDynamic() {
- return getRef().dynamic;
+ return isReference() ? getRef().dynamic : dynamic;
}
public Mapper getMapper() {
- return getRef()._mapper;
+ return isReference() ? getRef()._mapper : _mapper;
}
public Properties getProperties() {
@@ -187,7 +187,12 @@
if (getDynamic() || cachedNames == null) {
names = new Vector(); // :TODO: should be a Set!
- getRef().addPropertyNames(names, prj.getProperties());
+ if (isReference()) {
+ getRef().addPropertyNames(names, prj.getProperties());
+ } else {
+ addPropertyNames(names, prj.getProperties());
+ }
+
if (!getDynamic()) {
cachedNames = names;
}
1.16 +11 -1 ant/src/testcases/org/apache/tools/ant/types/CommandlineJavaTest.java
Index: CommandlineJavaTest.java
===================================================================
RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/types/CommandlineJavaTest.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- CommandlineJavaTest.java 7 Mar 2003 11:23:13 -0000 1.15
+++ CommandlineJavaTest.java 12 May 2003 14:00:10 -0000 1.16
@@ -1,7 +1,7 @@
/*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2000-2002 The Apache Software Foundation. All rights
+ * Copyright (c) 2000-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -143,6 +143,13 @@
v.setKey("key");
v.setValue("value");
c.addSysproperty(v);
+
+ project.setProperty("key2", "value2");
+ PropertySet ps = new PropertySet();
+ ps.setProject(project);
+ ps.appendName("key2");
+ c.addSyspropertyset(ps);
+
try {
c.setSystemProperties();
String newClasspath = System.getProperty("java.class.path");
@@ -151,10 +158,13 @@
assertNotNull(System.getProperty("key"));
assertEquals("value", System.getProperty("key"));
assertTrue(System.getProperties().containsKey("java.class.path"));
+ assertNotNull(System.getProperty("key2"));
+ assertEquals("value2", System.getProperty("key2"));
} finally {
c.restoreSystemProperties();
}
assertNull(System.getProperty("key"));
+ assertNull(System.getProperty("key2"));
}
}