Browse Source

Obtain subproject instance from Project to satisfy the remote chance

of Project having been subclassed.
PR: 17901


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@278363 13f79535-47bb-0310-9956-ffa450edef68
master
Matthew Jason Benson 20 years ago
parent
commit
629a2649e8
2 changed files with 21 additions and 6 deletions
  1. +20
    -1
      src/main/org/apache/tools/ant/Project.java
  2. +1
    -5
      src/main/org/apache/tools/ant/taskdefs/Ant.java

+ 20
- 1
src/main/org/apache/tools/ant/Project.java View File

@@ -235,12 +235,31 @@ public class Project {
}

/**
* 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());
}


+ 1
- 5
src/main/org/apache/tools/ant/taskdefs/Ant.java View File

@@ -143,8 +143,7 @@ public class Ant extends Task {
* 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 @@ public class Ant extends Task {
log("Ant: Can't set output to " + output);
}
}

getProject().initSubProject(newProject);

// set user-defined properties
getProject().copyUserProperties(newProject);



Loading…
Cancel
Save