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]

Reply via email to