vmassol     2003/06/18 14:50:14

  Modified:    src/java/org/apache/maven/project Dependency.java
               xdocs    changes.xml
  Added:       src/java/org/apache/maven/project ArtifactType.java
  Log:
  Added dependency type mapping to support extensions different than the artifact 
type. This fixes the EJB plugin issue (MAVEN-196).
  
  Revision  Changes    Path
  1.34      +29 -10    maven/src/java/org/apache/maven/project/Dependency.java
  
  Index: Dependency.java
  ===================================================================
  RCS file: /home/cvs/maven/src/java/org/apache/maven/project/Dependency.java,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- Dependency.java   12 Apr 2003 00:02:03 -0000      1.33
  +++ Dependency.java   18 Jun 2003 21:50:14 -0000      1.34
  @@ -58,6 +58,7 @@
   
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Massol</a>
    * @version $Id$
    */
   public class Dependency
  @@ -79,7 +80,7 @@
       private String groupId;
   
       /** The dependency type */
  -    private String type;
  +    private ArtifactType type;
   
       /** Flag to indicate the artifact is poorly named. */
       //private boolean isPoorlyNamed = false;
  @@ -222,7 +223,7 @@
               return jar;
           }
   
  -        return getArtifactId() + "-" + getVersion() + "." + getType();
  +        return getArtifactId() + "-" + getVersion() + "." + getExtension();
       }
   
       /**
  @@ -297,15 +298,33 @@
   
   
       /**
  -     * Set the type of the dependency.
  -     *
  -     * @return dependency type such as "jar" or "war"
  +     * @return dependency type such as "jar", "war", etc.
        */
       public String getType()
       {
  -        return type;
  -    }
  -
  +             String result = null;
  +             
  +             if (this.type != null)
  +             {
  +                     result = this.type.getType(); 
  +             }
  +        return result;
  +    }
  +
  +     /**
  +      * @return dependency extension such as "jar", "war", etc.
  +      */
  +     public String getExtension()
  +     {
  +             String result = null;
  +             
  +             if (this.type != null)
  +             {
  +                     result = this.type.getExtension(); 
  +             }
  +             return result;
  +     }
  +     
       /**
        * Sets the dependency type such as "jar" or "war"
        *
  @@ -313,7 +332,7 @@
        */
       public void setType( String type )
       {
  -        this.type = type;
  +        this.type = ArtifactType.findType(type);
       }
   
       /**
  
  
  
  1.1                  maven/src/java/org/apache/maven/project/ArtifactType.java
  
  Index: ArtifactType.java
  ===================================================================
  package org.apache.maven.project;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 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 Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", 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/>.
   *
   * ====================================================================
   */
  
  /**
   * Provides mapping between artifact types and an extension associated
   * with these types.
   * 
   * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Massol</a>
   * @version $Id: ArtifactType.java,v 1.1 2003/06/18 21:50:14 vmassol Exp $
   */
  public class ArtifactType
  {
        /**
         * EJB artifact mapping.
         */
        public static final ArtifactType EJB = new ArtifactType("ejb", "jar");
  
        /**
         * Artifact type.
         */
        private String type;
  
        /**
         * Artifact file extension.
         */
        private String extension;
                
        /**
         * @param type the artifact type
         * @param extension the artifact extension
         */
        private ArtifactType(String type, String extension)
        {
                this.type = type;
                this.extension = extension;
        }
  
        /**
         * @return the artifact type
         */
        public String getType()
        {
                return this.type;
        }
  
        /**
         * @return the artifact extension
         */     
        public String getExtension()
        {
                return this.extension;
        }
  
        /**
         * Factory to return the correct [EMAIL PROTECTED] ArtifactType} object.
         * 
         * @param type the artifact type
         * @return the artifact mapping
         */     
        public static ArtifactType findType(String type)
        {
                ArtifactType result;
  
                if (type == null)
                {
                        result = null;          
                }
                else if (type.equalsIgnoreCase("ejb"))
                {
                        result = EJB;   
                }
                else
                {
                        result = new ArtifactType(type, type);
                }
                return result;
        }
  }
  
  
  
  1.12      +5 -0      maven/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/maven/xdocs/changes.xml,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- changes.xml       13 Jun 2003 12:24:36 -0000      1.11
  +++ changes.xml       18 Jun 2003 21:50:14 -0000      1.12
  @@ -8,6 +8,11 @@
     <body>
   
       <release version="1.0RC1" date="in CVS">
  +      <action dev="vmassol" type="fix">
  +        Fixed dependency for ejb so that ejbs file have a jar extension. Fixes
  +        bug 
  +        <a 
href="http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-196";>MAVEN-196</a>.
  +      </action>
         <action dev="vmassol" type="add">
           Added support for filtering resources both for runtime and test 
           resources. To use it, define a
  
  
  

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

Reply via email to