donaldp     2002/06/10 20:59:48

  Modified:    ant1compat/src/java/org/apache/tools/ant/taskdefs
                        CallTarget.java
               antlib/src/java/org/apache/antlib/project
                        AbstractWorkspaceTask.java AntCallTask.java
                        TargetTask.java
  Log:
  Update tasks to work with descriptors rather than directly with projects. 
Allows all sorts of neat tricks - such as integration into meta-build systems 
ala Centipede/Maven - with zero hassles
  
  Revision  Changes    Path
  1.6       +5 -4      
jakarta-ant-myrmidon/ant1compat/src/java/org/apache/tools/ant/taskdefs/CallTarget.java
  
  Index: CallTarget.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-ant-myrmidon/ant1compat/src/java/org/apache/tools/ant/taskdefs/CallTarget.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- CallTarget.java   9 Jun 2002 04:53:34 -0000       1.5
  +++ CallTarget.java   11 Jun 2002 03:59:48 -0000      1.6
  @@ -9,7 +9,7 @@
   
   import org.apache.myrmidon.api.TaskException;
   import org.apache.myrmidon.framework.ExecuteTarget;
  -import org.apache.myrmidon.interfaces.oldmodel.Project;
  +import org.apache.myrmidon.interfaces.workspace.ProjectDescriptor;
   
   /**
    * The Ant1Compat version of the <antcall> task, which delegates to the
  @@ -35,7 +35,8 @@
        */
       protected void prepare( final ExecuteTarget exe ) throws TaskException
       {
  -        final Project project = (Project)m_context.getService( Project.class 
);
  -        exe.setProject( project.getProjectDescriptor() );
  +        final ProjectDescriptor project =
  +            (ProjectDescriptor)m_context.getProperty( ProjectDescriptor.KEY 
);
  +        exe.setProject( project );
       }
   }
  
  
  
  1.9       +13 -18    
jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project/AbstractWorkspaceTask.java
  
  Index: AbstractWorkspaceTask.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project/AbstractWorkspaceTask.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AbstractWorkspaceTask.java        11 Jun 2002 03:07:26 -0000      1.8
  +++ AbstractWorkspaceTask.java        11 Jun 2002 03:59:48 -0000      1.9
  @@ -11,9 +11,7 @@
   import org.apache.avalon.excalibur.i18n.Resources;
   import org.apache.myrmidon.api.TaskException;
   import org.apache.myrmidon.framework.AbstractContainerTask;
  -import org.apache.myrmidon.interfaces.oldmodel.Project;
   import org.apache.myrmidon.interfaces.workspace.ProjectDescriptor;
  -import org.apache.myrmidon.interfaces.workspace.ProjectRef;
   import org.apache.myrmidon.interfaces.workspace.Workspace;
   
   /**
  @@ -77,25 +75,22 @@
       protected ProjectDescriptor getProjectDescriptor( final String 
projectName )
           throws TaskException
       {
  -        final Project project = (Project)getContext().getService( 
Project.class );
  -        if( null == projectName )
  +        String key = ProjectDescriptor.KEY;
  +        if( null != projectName )
           {
  -            return project.getProjectDescriptor();
  +            key += "/" + projectName;
  +        }
  +        final ProjectDescriptor project = 
(ProjectDescriptor)getContext().getProperty( key );
  +        if( null == project )
  +        {
  +            final String message =
  +                REZ.getString( "workspace.missing-ref.error",
  +                               projectName );
  +            throw new TaskException( message );
           }
           else
           {
  -            final ProjectRef projectRef = project.getProjectRef( projectName 
);
  -            if( null == projectRef )
  -            {
  -                final String message =
  -                    REZ.getString( "workspace.missing-ref.error",
  -                                   projectName );
  -                throw new TaskException( message );
  -            }
  -            else
  -            {
  -                return projectRef.getProject();
  -            }
  +            return project;
           }
       }
   }
  
  
  
  1.7       +13 -18    
jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project/AntCallTask.java
  
  Index: AntCallTask.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project/AntCallTask.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AntCallTask.java  11 Jun 2002 03:07:26 -0000      1.6
  +++ AntCallTask.java  11 Jun 2002 03:59:48 -0000      1.7
  @@ -11,9 +11,7 @@
   import org.apache.avalon.excalibur.i18n.Resources;
   import org.apache.myrmidon.api.TaskException;
   import org.apache.myrmidon.framework.ExecuteTarget;
  -import org.apache.myrmidon.interfaces.oldmodel.Project;
   import org.apache.myrmidon.interfaces.workspace.ProjectDescriptor;
  -import org.apache.myrmidon.interfaces.workspace.ProjectRef;
   
   /**
    * A task which executes a target in the current project,
  @@ -63,25 +61,22 @@
       protected ProjectDescriptor getProjectDescriptor( final String 
projectName )
           throws TaskException
       {
  -        final Project project = (Project)getContext().getService( 
Project.class );
  -        if( null == projectName )
  +        String key = ProjectDescriptor.KEY;
  +        if( null != projectName )
           {
  -            return project.getProjectDescriptor();
  +            key += "/" + projectName;
  +        }
  +        final ProjectDescriptor project = 
(ProjectDescriptor)getContext().getProperty( key );
  +        if( null == project )
  +        {
  +            final String message =
  +                REZ.getString( "workspace.missing-ref.error",
  +                               projectName );
  +            throw new TaskException( message );
           }
           else
           {
  -            final ProjectRef projectRef = project.getProjectRef( projectName 
);
  -            if( null == projectRef )
  -            {
  -                final String message =
  -                    REZ.getString( "workspace.missing-ref.error",
  -                                   projectName );
  -                throw new TaskException( message );
  -            }
  -            else
  -            {
  -                return projectRef.getProject();
  -            }
  +            return project;
           }
       }
   }
  
  
  
  1.12      +6 -5      
jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project/TargetTask.java
  
  Index: TargetTask.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project/TargetTask.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- TargetTask.java   2 Jun 2002 14:08:05 -0000       1.11
  +++ TargetTask.java   11 Jun 2002 03:59:48 -0000      1.12
  @@ -15,7 +15,6 @@
   import org.apache.myrmidon.api.metadata.ModelElement;
   import org.apache.myrmidon.interfaces.property.NameValidator;
   import org.apache.myrmidon.interfaces.property.NameValidatorManager;
  -import org.apache.myrmidon.interfaces.oldmodel.Project;
   
   /**
    * A simple task to task to execute a group of tasks.
  @@ -30,6 +29,8 @@
       private static final Resources REZ =
           ResourceManager.getPackageResources( TargetTask.class );
   
  +    private static final String IMPLICIT_TARGET_NAME = "<init>";
  +
       /**
        * The array of ordered tasks which are contained
        * withing Target.
  @@ -118,7 +119,7 @@
           }
   
           //Add in special case for "init" target.
  -        if( Project.IMPLICIT_TARGET_NAME.equals( m_name ) )
  +        if( IMPLICIT_TARGET_NAME.equals( m_name ) )
           {
               return;
           }
  @@ -147,9 +148,9 @@
           throws TaskException
       {
           // Execute implicit target first
  -        if( ! m_name.equals( Project.IMPLICIT_TARGET_NAME ) )
  +        if( ! m_name.equals( IMPLICIT_TARGET_NAME ) )
           {
  -            executeDependency( new Dependency( null, 
Project.IMPLICIT_TARGET_NAME ) );
  +            executeDependency( new Dependency( null, IMPLICIT_TARGET_NAME ) 
);
           }
   
           if( null != m_dependencies )
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to