You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by mi...@apache.org on 2003/06/09 00:13:11 UTC

cvs commit: maven-new/core/src/java/org/apache/maven/project Project.java

michal      2003/06/08 15:13:08

  Modified:    core/src/java/org/apache/maven/artifact/handlers
                        NOPHandler.java PluginHandler.java
                        DefaultArtifactHandlerManager.java JarHandler.java
                        ArtifactHandlerManager.java ArtifactHandler.java
               core/src/java/org/apache/maven/artifact/processor
                        DefaultArtifactProcessor.java
               core/src/java/org/apache/maven/project Project.java
  Added:       core/src/java/org/apache/maven/artifact/handlers
                        ArtifactHandlerChain.java
                        DefaultArtifactHandlerChain.java
  Log:
  Added ArtifactHandlerChain
  
  Revision  Changes    Path
  1.6       +7 -4      maven-new/core/src/java/org/apache/maven/artifact/handlers/NOPHandler.java
  
  Index: NOPHandler.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/artifact/handlers/NOPHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- NOPHandler.java	26 May 2003 16:25:13 -0000	1.5
  +++ NOPHandler.java	8 Jun 2003 22:13:07 -0000	1.6
  @@ -64,15 +64,18 @@
    * @author Michal Maczka
    * @version $Revision$ $Date$
    */
  -public class NOPHandler
  -    implements ArtifactHandler
  +public class NOPHandler implements ArtifactHandler
   {
   
       /**
        * @see org.apache.maven.artifact.handlers.ArtifactHandler#process(org.apache.maven.artifact.Artifact, org.apache.maven.project.Project)
        */
  -    public void process( Artifact artifact, Project project )
  +    public void process(
  +        Artifact artifact,
  +        Project project,
  +        ArtifactHandlerChain chain)
       {
  +        chain.process( artifact, project );
       }
   
   }
  
  
  
  1.5       +7 -4      maven-new/core/src/java/org/apache/maven/artifact/handlers/PluginHandler.java
  
  Index: PluginHandler.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/artifact/handlers/PluginHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PluginHandler.java	26 May 2003 16:25:13 -0000	1.4
  +++ PluginHandler.java	8 Jun 2003 22:13:07 -0000	1.5
  @@ -66,13 +66,16 @@
    * @author Michal Maczka
    * @version $Revision$ $Date$
    */
  -public class PluginHandler
  -    implements ArtifactHandler
  +public class PluginHandler implements ArtifactHandler
   {
       /**
        * @see org.apache.maven.artifact.handlers.ArtifactHandler#process(org.apache.maven.artifact.Artifact, org.apache.maven.project.Project)
        */
  -    public void process( Artifact artifact, Project project )
  +    public void process(
  +        Artifact artifact,
  +        Project project,
  +        ArtifactHandlerChain chain)
       {
  +       chain.process(artifact, project);
       }
   }
  
  
  
  1.6       +19 -21    maven-new/core/src/java/org/apache/maven/artifact/handlers/DefaultArtifactHandlerManager.java
  
  Index: DefaultArtifactHandlerManager.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/artifact/handlers/DefaultArtifactHandlerManager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DefaultArtifactHandlerManager.java	29 May 2003 20:26:22 -0000	1.5
  +++ DefaultArtifactHandlerManager.java	8 Jun 2003 22:13:07 -0000	1.6
  @@ -72,33 +72,34 @@
       /** Service Manager. */
       private ServiceManager serviceManager;
   
  -    /** Default Handler. */
  -    private ArtifactHandler defaultHandler;
  -
  -    /** Default role-hint tag. */
  -    private static String DEFAULT_HANDLER_ROLE_HINT = "default";
  -
       /**
  +     * 
  +     * @todo build <<real>> chain here
        * @param artifact
        * @return
        */
  -    public ArtifactHandler getHandler( Artifact artifact )
  +    public ArtifactHandlerChain getHandlerChain( Artifact artifact )
           throws MavenException
       {
           String type = artifact.getDependency().getType();
   
  -        ArtifactHandler handler = null;
  -
  +        ArtifactHandlerChain chain = new DefaultArtifactHandlerChain();
  +        
  +        /** Add handler associated with the type */
           try
           {
  -            handler = (ArtifactHandler) serviceManager.lookup( ArtifactHandler.ROLE + type);
  +            ArtifactHandler handler =
  +                (ArtifactHandler) serviceManager.lookup(
  +                    ArtifactHandler.ROLE + type);
  +            if ( handler!= null )
  +            {
  +                chain.addHandler( handler );
  +            }                           
           }
  -        catch ( ServiceException e )
  -        {
  -            handler = defaultHandler;
  +        catch (ServiceException e)
  +        {            
           }
  -
  -        return handler;
  +        return chain;
       }
   
       // ----------------------------------------------------------------------
  @@ -106,11 +107,8 @@
       // ----------------------------------------------------------------------
   
       /** @see Serviceable#service */
  -    public void service( ServiceManager serviceManager )
  -        throws ServiceException
  +    public void service(ServiceManager serviceManager) throws ServiceException
       {
  -        this.serviceManager = serviceManager;
  -
  -        defaultHandler = (ArtifactHandler) serviceManager.lookup( ArtifactHandler.ROLE + DEFAULT_HANDLER_ROLE_HINT );
  +        this.serviceManager = serviceManager;       
       }
   }
  
  
  
  1.8       +6 -41     maven-new/core/src/java/org/apache/maven/artifact/handlers/JarHandler.java
  
  Index: JarHandler.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/artifact/handlers/JarHandler.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JarHandler.java	30 May 2003 11:26:53 -0000	1.7
  +++ JarHandler.java	8 Jun 2003 22:13:07 -0000	1.8
  @@ -55,7 +55,6 @@
    */
   package org.apache.maven.artifact.handlers;
   
  -import org.apache.maven.MavenConstants;
   import org.apache.maven.artifact.Artifact;
   import org.apache.maven.project.Project;
   
  @@ -74,46 +73,12 @@
       /**
        * @see org.apache.maven.artifact.handlers.ArtifactHandler#process(org.apache.maven.artifact.Artifact, org.apache.maven.project.Project)
        */
  -    public void process(Artifact artifact, Project project)
  +    public void process(
  +        Artifact artifact,
  +        Project project,
  +        ArtifactHandlerChain chain)
       {
  -        project.setDependencyPath(
  -            artifact.getDependency().getId(),
  -            artifact.getPath());
  -
  -        String kind = artifact.getDependency().getKind();
  -
  -        if (kind.indexOf( "global" ) != -1)
  -        {
  -            project.addToClassPath(
  -                MavenConstants.GLOBAL_DEPENDENCY_CLASSPATH,
  -                artifact.getFile().getAbsolutePath());
  -
  -        }
  -        else
  -        {
  -            if (kind.indexOf( "test" ) != -1)
  -            {
  -                project.addToClassPath(
  -                    MavenConstants.TEST_DEPENDENCY_CLASSPATH,
  -                    artifact.getFile().getAbsolutePath());
  -
  -            }
  -            if (kind.indexOf( "compile" ) != -1)
  -            {
  -                project.addToClassPath(
  -                    MavenConstants.COMPILE_DEPENDENCY_CLASSPATH,
  -                    artifact.getFile().getAbsolutePath());
  -
  -            }
  -            if (kind.indexOf( "runtime" ) != -1)
  -            {
  -                project.addToClassPath(
  -                    MavenConstants.RUNTIME_DEPENDENCY_CLASSPATH,
  -                    artifact.getFile().getAbsolutePath());
  -            }
  -
  -        }
  -
  +        chain.process( artifact, project );
       }
   
   }
  
  
  
  1.4       +5 -4      maven-new/core/src/java/org/apache/maven/artifact/handlers/ArtifactHandlerManager.java
  
  Index: ArtifactHandlerManager.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/artifact/handlers/ArtifactHandlerManager.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ArtifactHandlerManager.java	26 May 2003 16:25:13 -0000	1.3
  +++ ArtifactHandlerManager.java	8 Jun 2003 22:13:07 -0000	1.4
  @@ -69,9 +69,10 @@
       public static final String ROLE = ArtifactHandlerManager.class.getName();
   
       /**
  -     * Returns handler for given artifact
  -     * @param artifact the Artifact for which
  +     * Returns handler chain for given artifact
  +     * @param artifact the Artifact for which the chain is constructed
        * @return the Handler which will be used for processing the artifact
        */
  -    public ArtifactHandler getHandler( Artifact artifact ) throws MavenException;
  +    public ArtifactHandlerChain getHandlerChain( Artifact artifact ) throws MavenException;
  +            
   }
  
  
  
  1.3       +2 -2      maven-new/core/src/java/org/apache/maven/artifact/handlers/ArtifactHandler.java
  
  Index: ArtifactHandler.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/artifact/handlers/ArtifactHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ArtifactHandler.java	26 May 2003 16:21:01 -0000	1.2
  +++ ArtifactHandler.java	8 Jun 2003 22:13:07 -0000	1.3
  @@ -79,6 +79,6 @@
        * @param artifact the Artifact to process
        * @param project the Project, owner of the artifact
        */
  -    void process( Artifact artifact, Project project );
  +    void process( Artifact artifact, Project project, ArtifactHandlerChain chain );
   
   }
  
  
  
  1.1                  maven-new/core/src/java/org/apache/maven/artifact/handlers/ArtifactHandlerChain.java
  
  Index: ArtifactHandlerChain.java
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache MavenSession" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache MavenSession", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  package org.apache.maven.artifact.handlers;
  
  import org.apache.maven.artifact.Artifact;
  import org.apache.maven.project.Project;
  
  /**
   * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a> 
   * @version $Id: ArtifactHandlerChain.java,v 1.1 2003/06/08 22:13:07 michal Exp $
   */
  public interface ArtifactHandlerChain
  {
     
     /**
      * 
      * @param artifactHandler
      */
     public void addHandler( ArtifactHandler artifactHandler );
        
     /**
      * Add artifact handler at given position
      * @param artifactHandler
      */
     public void addHandlerAt( int position,  ArtifactHandler artifactHandler );
     
     
     /**
      * Remove given handler from the chain
      * @param artifactHandler
      */
     public void removeHandler( ArtifactHandler artifactHandler );
     
     /**
      * Applay next artifact handler in this chain
      * @param artifact
      * @param project
      */
     public void process( Artifact artifact, Project project );
  
  }
  
  
  
  1.1                  maven-new/core/src/java/org/apache/maven/artifact/handlers/DefaultArtifactHandlerChain.java
  
  Index: DefaultArtifactHandlerChain.java
  ===================================================================
  /*
   * Created on 2003-06-08
   *
   * To change the template for this generated file go to
   * Window>Preferences>Java>Code Generation>Code and Comments
   */
  package org.apache.maven.artifact.handlers;
  
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.List;
  
  import org.apache.maven.artifact.Artifact;
  import org.apache.maven.project.Project;
  
  /**
   * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a> 
   * @version $Id: DefaultArtifactHandlerChain.java,v 1.1 2003/06/08 22:13:07 michal Exp $
   */
  public class DefaultArtifactHandlerChain implements ArtifactHandlerChain
  {
      /** List of handlers in this chain */
      private List handlers = new ArrayList();
  
      private Iterator iterator = null;
  
      /**
       * @see org.apache.maven.artifact.handlers.HandlerChain#addHandler(org.apache.maven.artifact.handlers.ArtifactHandler)
       */
      public void addHandler(ArtifactHandler artifactHandler)
      {
          handlers.add(artifactHandler);        
      }
  
      /**
       * @see org.apache.maven.artifact.handlers.HandlerChain#addHandlerAt(org.apache.maven.artifact.handlers.ArtifactHandler)
       */
      public void addHandlerAt(int position, ArtifactHandler artifactHandler)
      {
          handlers.add(position, artifactHandler);
      }
  
      /**
       * @see org.apache.maven.artifact.handlers.HandlerChain#doProccess(org.apache.maven.artifact.Artifact, org.apache.maven.project.Project)
       */
      public void process(Artifact artifact, Project project)
      {
          if (iterator == null)
          {
              iterator = handlers.iterator();
          }
          if (iterator.hasNext())
          {
              ArtifactHandler artifactHandler = (ArtifactHandler) iterator.next();
              artifactHandler.process( artifact, project, this );
          }
      }
  
      /**
       * @see org.apache.maven.artifact.handlers.HandlerChain#removeHandler(org.apache.maven.artifact.handlers.ArtifactHandler)
       */
      public void removeHandler(ArtifactHandler artifactHandler)
      {
          handlers.remove( artifactHandler );
      }
  
  }
  
  
  
  1.6       +4 -4      maven-new/core/src/java/org/apache/maven/artifact/processor/DefaultArtifactProcessor.java
  
  Index: DefaultArtifactProcessor.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/artifact/processor/DefaultArtifactProcessor.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DefaultArtifactProcessor.java	29 May 2003 20:26:24 -0000	1.5
  +++ DefaultArtifactProcessor.java	8 Jun 2003 22:13:08 -0000	1.6
  @@ -66,6 +66,7 @@
   import org.apache.maven.artifact.Artifact;
   import org.apache.maven.artifact.factory.ArtifactFactory;
   import org.apache.maven.artifact.handlers.ArtifactHandler;
  +import org.apache.maven.artifact.handlers.ArtifactHandlerChain;
   import org.apache.maven.artifact.handlers.ArtifactHandlerManager;
   import org.apache.maven.artifact.satisfy.DependencySatisfier;
   import org.apache.maven.artifact.verify.ArtifactVerifier;
  @@ -113,9 +114,8 @@
           for (Iterator iter = artifacts.iterator(); iter.hasNext();)
           {
               Artifact artifact = (Artifact) iter.next();
  -            ArtifactHandler artifactHandler = handlerManager.getHandler( artifact );
  -            artifactHandler.process(artifact, project);
  -
  +            ArtifactHandlerChain chain = handlerManager.getHandlerChain( artifact );
  +            chain.process(artifact, project);
           }
       }
   
  
  
  
  1.9       +3 -2      maven-new/core/src/java/org/apache/maven/project/Project.java
  
  Index: Project.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/project/Project.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Project.java	30 May 2003 11:26:52 -0000	1.8
  +++ Project.java	8 Jun 2003 22:13:08 -0000	1.9
  @@ -203,7 +203,7 @@
        *  <dependency>
        *
        */
  -    private Map classpathMap;
  +    private Map classpathMap = null;
       
   
   
  @@ -232,6 +232,7 @@
       {
           dependencyPaths = new HashMap();
           dependencyMap = new HashMap();
  +        classpathMap = new HashMap();
           goalNames = new ArrayList();
       }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org