You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by do...@apache.org on 2002/07/04 03:18:13 UTC

cvs commit: jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project ProjectRefTask.java Resources.properties

donaldp     2002/07/03 18:18:13

  Modified:    container/src/java/org/apache/myrmidon/components/workspace
                        DefaultWorkspace.java ProjectEntry.java
               container/src/java/org/apache/myrmidon/interfaces/workspace
                        ProjectRefSet.java
               antlib/src/java/org/apache/antlib/project
                        ProjectRefTask.java Resources.properties
  Log:
  Move ProjectRefSet outside of ProjectEntry and move all logic to tasks that build refset
  
  Revision  Changes    Path
  1.113     +4 -3      jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/workspace/DefaultWorkspace.java
  
  Index: DefaultWorkspace.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/workspace/DefaultWorkspace.java,v
  retrieving revision 1.112
  retrieving revision 1.113
  diff -u -r1.112 -r1.113
  --- DefaultWorkspace.java	3 Jul 2002 23:53:33 -0000	1.112
  +++ DefaultWorkspace.java	4 Jul 2002 01:18:13 -0000	1.113
  @@ -89,7 +89,8 @@
           if( projectName != null )
           {
               // A target in a referenced project
  -            final ProjectRef otherProject = entry.getProjectRef( projectName );
  +            final ProjectRefSet projectRefSet = entry.getProjectRefSet();
  +            final ProjectRef otherProject = projectRefSet.getProjectRef( projectName );
               if( otherProject == null )
               {
                   final String message = REZ.getString( "no-project.error", projectName );
  @@ -268,7 +269,7 @@
           final PropertyStore propertyStore =
               (PropertyStore)projectContext.getService( PropertyStore.class );
           propertyStore.setProperty( Project.KEY, project );
  -        propertyStore.setProperty( ProjectRefSet.KEY, entry );
  +        propertyStore.setProperty( ProjectRefSet.KEY, entry.getProjectRefSet() );
           propertyStore.setProperty( TargetSet.KEY, entry );
   
           return entry;
  
  
  
  1.23      +11 -59    jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/workspace/ProjectEntry.java
  
  Index: ProjectEntry.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/workspace/ProjectEntry.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- ProjectEntry.java	4 Jul 2002 00:29:15 -0000	1.22
  +++ ProjectEntry.java	4 Jul 2002 01:18:13 -0000	1.23
  @@ -30,7 +30,7 @@
    * @version $Revision$ $Date$
    */
   public class ProjectEntry
  -    implements ProjectRefSet, TargetSet
  +    implements TargetSet
   {
       private static final Resources REZ =
           ResourceManager.getPackageResources( ProjectEntry.class );
  @@ -48,10 +48,8 @@
       private final Map m_targets = new HashMap();
   
       /** Map from project ref name -> ProjectRef. */
  -    private final Map m_projectRefs = new HashMap();
  +    private final ProjectRefSet m_projectRefSet;
   
  -    /** Self reference to the project. */
  -    private final ProjectRef m_selfRef;
       private TaskContext m_taskContext;
   
       public ProjectEntry( final Project project,
  @@ -93,8 +91,9 @@
           }
   
           // Add a reference to self
  -        m_selfRef = new ProjectRef( project.getName(), project.getProjectDescriptor() );
  -        addProjectRef( m_selfRef );
  +        final ProjectRef self = new ProjectRef( project.getName(), project.getProjectDescriptor() );
  +        m_projectRefSet = new ProjectRefSet( self );
  +        m_projectRefSet.addProjectRef( self );
       }
   
       public Project getProject()
  @@ -103,58 +102,6 @@
       }
   
       /**
  -     * Returns a read-only map of all the {@link org.apache.myrmidon.interfaces.workspace.ProjectRef} objects in project.
  -     *
  -     * @return A map from project reference name to {@link org.apache.myrmidon.interfaces.workspace.ProjectRef}.
  -     *
  -     * @todo Return an unmodifiable wrapper.  For some reason JXPath won't
  -     *       introspect the wrapper returned by Collections.unmodifiableMap().
  -     *       Need to investigate more.
  -     */
  -    public Map getProjectRefs()
  -    {
  -        return m_projectRefs;
  -    }
  -
  -    /**
  -     * Retrieve a project ref by name.
  -     */
  -    public ProjectRef getProjectRef( final String name )
  -    {
  -        if( null == name )
  -        {
  -            return m_selfRef;
  -        }
  -        return (ProjectRef)m_projectRefs.get( name );
  -    }
  -
  -    /**
  -     * Adds a project reference to this project.
  -     */
  -    public void addProjectRef( final ProjectRef ref )
  -        throws TaskException
  -    {
  -        // Validate reference
  -        final String name = ref.getName();
  -        try
  -        {
  -            m_projectValidator.validate( name );
  -        }
  -        catch( final Exception e )
  -        {
  -            final String message = REZ.getString( "bad-projectref-name.error", name );
  -            throw new TaskException( message, e );
  -        }
  -        if( m_projectRefs.containsKey( name ) )
  -        {
  -            final String message = REZ.getString( "duplicate-projectrefs.error", name );
  -            throw new TaskException( message );
  -        }
  -
  -        m_projectRefs.put( ref.getName(), ref );
  -    }
  -
  -    /**
        * Returns all the targets of the current project.
        *
        * @return A map from target name to {@link Target}.
  @@ -228,5 +175,10 @@
       public void setTargetState( final Target target, final TargetState state )
       {
           m_targetState.put( target, state );
  +    }
  +
  +    public ProjectRefSet getProjectRefSet()
  +    {
  +        return m_projectRefSet;
       }
   }
  
  
  
  1.2       +38 -6     jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/interfaces/workspace/ProjectRefSet.java
  
  Index: ProjectRefSet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/interfaces/workspace/ProjectRefSet.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ProjectRefSet.java	2 Jul 2002 10:48:38 -0000	1.1
  +++ ProjectRefSet.java	4 Jul 2002 01:18:13 -0000	1.2
  @@ -8,6 +8,7 @@
   package org.apache.myrmidon.interfaces.workspace;
   
   import java.util.Map;
  +import java.util.HashMap;
   import org.apache.myrmidon.api.TaskException;
   
   /**
  @@ -17,16 +18,36 @@
    * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
    * @version $Revision$ $Date$
    */
  -public interface ProjectRefSet
  +public class ProjectRefSet
   {
  -    String KEY = "myrmidon.projectrefs";
  +    public final static String KEY = "myrmidon.projectrefs";
  +
  +    /**
  +     * Reference to the project that constructed set.
  +     */
  +    private final ProjectRef m_self;
  +
  +    /** Map from project ref name -> ProjectRef. */
  +    private final Map m_projectRefs = new HashMap();
  +
  +    public ProjectRefSet( final ProjectRef self )
  +    {
  +        m_self = self;
  +    }
   
       /**
        * Returns all the project references of the current project.
        *
        * @return A map from project reference name to {@link ProjectRef}.
  +     *
  +     * @todo Return an unmodifiable wrapper.  For some reason JXPath won't
  +     *       introspect the wrapper returned by Collections.unmodifiableMap().
  +     *       Need to investigate more.
        */
  -    Map getProjectRefs();
  +    public Map getProjectRefs()
  +    {
  +        return m_projectRefs;
  +    }
   
       /**
        * Retrieve a project reference by name.
  @@ -34,10 +55,21 @@
        * @param name The name of the project to get.  Use null for a reference to
        * the current project.
        */
  -    ProjectRef getProjectRef( final String name );
  +    public ProjectRef getProjectRef( final String name )
  +    {
  +        if( null == name )
  +        {
  +            return m_self;
  +        }
  +        return (ProjectRef)m_projectRefs.get( name );
  +    }
   
       /**
        * Adds a project reference to the current project.
        */
  -    void addProjectRef( final ProjectRef ref ) throws TaskException;
  +    public void addProjectRef( final ProjectRef ref )
  +        throws TaskException
  +    {
  +        m_projectRefs.put( ref.getName(), ref );
  +    }
   }
  
  
  
  1.4       +12 -4     jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project/ProjectRefTask.java
  
  Index: ProjectRefTask.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project/ProjectRefTask.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ProjectRefTask.java	4 Jul 2002 00:36:37 -0000	1.3
  +++ ProjectRefTask.java	4 Jul 2002 01:18:13 -0000	1.4
  @@ -80,8 +80,17 @@
           {
               final String message =
                   REZ.getString( "projectref.bad-name.error",
  -                               m_name,
  -                               e );
  +                               m_name );
  +            throw new TaskException( message );
  +        }
  +
  +        final ProjectRefSet projectRefs = (ProjectRefSet)getContext().getProperty( ProjectRefSet.KEY );
  +
  +        if( null != projectRefs.getProjectRef( m_name ) )
  +        {
  +            final String message =
  +                REZ.getString( "projectref.duplicate-name.error",
  +                               m_name );
               throw new TaskException( message );
           }
   
  @@ -89,7 +98,6 @@
           final ProjectDescriptor descriptor = new ProjectDescriptor( uri, m_type );
           final ProjectRef ref = new ProjectRef( m_name, descriptor );
   
  -        final ProjectRefSet projectRefs = (ProjectRefSet)getContext().getProperty( ProjectRefSet.KEY );
           projectRefs.addProjectRef( ref );
       }
   
  
  
  
  1.16      +3 -1      jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project/Resources.properties
  
  Index: Resources.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-ant-myrmidon/antlib/src/java/org/apache/antlib/project/Resources.properties,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- Resources.properties	27 Jun 2002 11:13:08 -0000	1.15
  +++ Resources.properties	4 Jul 2002 01:18:13 -0000	1.16
  @@ -9,4 +9,6 @@
   antcall.missing-ref.error=Unknown project reference "{0}".
   
   projectref.no-name.error=No project name specified.
  -projectref.no-location.error=No project location specified.
  \ No newline at end of file
  +projectref.no-location.error=No project location specified.
  +projectref.bad-name.error=Invalid project reference name "{0}".
  +projectref.duplicate-name.error=Multiple project references with name "{0}".
  \ No newline at end of file
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>