mbenson 2005/05/26 10:01:01
Modified: src/main/org/apache/tools/ant/taskdefs Ant.java
src/main/org/apache/tools/ant Project.java
Log:
Obtain subproject instance from Project to satisfy the remote chance
of Project having been subclassed.
PR: 17901
Revision Changes Path
1.122 +1 -5 ant/src/main/org/apache/tools/ant/taskdefs/Ant.java
Index: Ant.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Ant.java,v
retrieving revision 1.121
retrieving revision 1.122
diff -u -r1.121 -r1.122
--- Ant.java 25 May 2005 22:25:43 -0000 1.121
+++ Ant.java 26 May 2005 17:01:01 -0000 1.122
@@ -143,8 +143,7 @@
* Creates a Project instance for the project to call.
*/
public void init() {
- newProject = new Project();
-
newProject.setDefaultInputStream(getProject().getDefaultInputStream());
+ newProject = getProject().createSubProject();
newProject.setJavaVersionProperty();
}
@@ -194,9 +193,6 @@
log("Ant: Can't set output to " + output);
}
}
-
- getProject().initSubProject(newProject);
-
// set user-defined properties
getProject().copyUserProperties(newProject);
1.192 +20 -1 ant/src/main/org/apache/tools/ant/Project.java
Index: Project.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/Project.java,v
retrieving revision 1.191
retrieving revision 1.192
diff -u -r1.191 -r1.192
--- Project.java 7 Apr 2005 19:31:39 -0000 1.191
+++ Project.java 26 May 2005 17:01:01 -0000 1.192
@@ -235,12 +235,31 @@
}
/**
- * Init a sub project--used by taskdefs.Ant .
+ * Create and initialize a subproject. By default the subproject will be
of
+ * the same type as its parent. If a no-arg constructor is unavailable,
the
+ * <code>Project</code> class will be used.
+ * @return a Project instance configured as a subproject of this Project.
+ * @since Ant 1.7
+ */
+ public Project createSubProject() {
+ Project subProject = null;
+ try {
+ subProject = (Project) (getClass().newInstance());
+ } catch (Exception e) {
+ subProject = new Project();
+ }
+ initSubProject(subProject);
+ return subProject;
+ }
+
+ /**
+ * Initialize a subproject.
* @param subProject the subproject to initialize.
*/
public void initSubProject(Project subProject) {
ComponentHelper.getComponentHelper(subProject)
.initSubProject(ComponentHelper.getComponentHelper(this));
+ subProject.setDefaultInputStream(getDefaultInputStream());
subProject.setKeepGoingMode(this.isKeepGoingMode());
subProject.setExecutor(getExecutor().getSubProjectExecutor());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]