You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/10/22 22:00:56 UTC

svn commit: r587224 - in /maven/archiva/trunk/archiva-base/archiva-repository-layer/src: main/java/org/apache/maven/archiva/repository/content/ test/java/org/apache/maven/archiva/repository/content/

Author: joakime
Date: Mon Oct 22 13:00:55 2007
New Revision: 587224

URL: http://svn.apache.org/viewvc?rev=587224&view=rev
Log:
[MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
Added ability in default and legacy layouts to detect the 'maven-plugin' type.


Added:
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java   (with props)
Modified:
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContent.java
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultPathParser.java
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/FilenameParser.java
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContentTestCase.java
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContentTestCase.java
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultPathParserTest.java
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyPathParserTest.java

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContent.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContent.java?rev=587224&r1=587223&r2=587224&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContent.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContent.java Mon Oct 22 13:00:55 2007
@@ -47,6 +47,7 @@
     {
         typeToDirectoryMap = new HashMap<String, String>();
         typeToDirectoryMap.put( "ejb-client", "ejb" );
+        typeToDirectoryMap.put( ArtifactExtensionMapping.MAVEN_PLUGIN, "plugin" );
         typeToDirectoryMap.put( "distribution-tgz", "distribution" );
         typeToDirectoryMap.put( "distribution-zip", "distribution" );
     }

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java?rev=587224&r1=587223&r2=587224&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java Mon Oct 22 13:00:55 2007
@@ -24,6 +24,7 @@
 import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.regex.Pattern;
 
 /**
  * ArtifactExtensionMapping
@@ -33,7 +34,13 @@
  */
 public class ArtifactExtensionMapping
 {
-    protected static final Map<String, String> typeToExtensionMap;
+    public static final String MAVEN_ARCHETYPE = "maven-archetype";
+
+    public static final String MAVEN_PLUGIN = "maven-plugin";
+    
+    private static final Map<String, String> typeToExtensionMap;
+
+    private static final Pattern mavenPluginPattern = Pattern.compile( "^(maven-.*-plugin)|(.*-maven-plugin)$" );
 
     static
     {
@@ -47,9 +54,8 @@
         typeToExtensionMap.put( "javadoc", "jar" );
         typeToExtensionMap.put( "aspect", "jar" );
         typeToExtensionMap.put( "uberjar", "jar" );
-        typeToExtensionMap.put( "plugin", "jar" );
-        typeToExtensionMap.put( "maven-plugin", "jar" );
-        typeToExtensionMap.put( "maven-archetype", "jar" );
+        typeToExtensionMap.put( MAVEN_PLUGIN, "jar" );
+        typeToExtensionMap.put( MAVEN_ARCHETYPE, "jar" );
     }
 
     public static String getExtension( String type )
@@ -108,5 +114,16 @@
         {
             return normalizedName.substring( idx + 1 );
         }
+    }
+    
+    /**
+     * Determine if a given artifact Id conforms to the naming scheme for a maven plugin.
+     * 
+     * @param artifactId the artifactId to test.
+     * @return true if this artifactId conforms to the naming scheme for a maven plugin.
+     */
+    public static boolean isMavenPlugin( String artifactId )
+    {
+        return mavenPluginPattern.matcher( artifactId ).matches();
     }
 }

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultPathParser.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultPathParser.java?rev=587224&r1=587223&r2=587224&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultPathParser.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/DefaultPathParser.java Mon Oct 22 13:00:55 2007
@@ -147,8 +147,13 @@
 
             // Set the type.
             artifact.setType( ArtifactExtensionMapping.guessTypeFromFilename( filename ) );
-
-            artifact.setType( ArtifactExtensionMapping.guessTypeFromFilename( filename ) );
+            
+            // Special case for maven plugins
+            if ( StringUtils.equals( "jar", artifact.getType() ) && 
+                 ArtifactExtensionMapping.isMavenPlugin( artifact.getArtifactId() ) )
+            {
+                artifact.setType( ArtifactExtensionMapping.MAVEN_PLUGIN );
+            }
         }
         catch ( LayoutException e )
         {
@@ -181,4 +186,5 @@
 
         return artifact;
     }
+    
 }

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/FilenameParser.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/FilenameParser.java?rev=587224&r1=587223&r2=587224&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/FilenameParser.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/FilenameParser.java Mon Oct 22 13:00:55 2007
@@ -38,7 +38,7 @@
 
     private int offset;
 
-    private static final Pattern specialCases = Pattern.compile( "(maven-.*-plugin)|(maven-plugin)" );
+    private static final Pattern mavenPluginPattern = Pattern.compile( "(maven-.*-plugin)|(.*-maven-plugin)" );
 
     private static final Pattern extensionPattern = Pattern.compile( "(.tar.gz$)|(.tar.bz2$)|(.[a-z0-9]{1,4}$)",
                                                                      Pattern.CASE_INSENSITIVE );
@@ -143,7 +143,7 @@
         StringBuffer ver = new StringBuffer();
 
         // Any text upto the end of a special case is considered non-version. 
-        Matcher specialMat = specialCases.matcher( name );
+        Matcher specialMat = mavenPluginPattern.matcher( name );
         if ( specialMat.find() )
         {
             ver.append( name.substring( offset, specialMat.end() ) );

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java?rev=587224&r1=587223&r2=587224&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java Mon Oct 22 13:00:55 2007
@@ -127,25 +127,34 @@
             }
         }
 
+        // Set Type
         artifact.setType( ArtifactExtensionMapping.guessTypeFromFilename( filename ) );
-
+        
         // Sanity Check: does it have an extension?
         if ( StringUtils.isEmpty( artifact.getType() ) )
         {
             throw new LayoutException( INVALID_ARTIFACT_PATH + "no extension found." );
         }
 
-        String trimPathType = expectedType.substring( 0, expectedType.length() - 1 );
-
-        // Sanity Check: does extension match pathType on path?
-        String expectedExtension = ArtifactExtensionMapping.getExtension( trimPathType );
-        String actualExtension = parser.getExtension();
-
-        if ( !expectedExtension.equals( actualExtension ) )
+        // Special Case with Maven Plugins
+        if ( StringUtils.equals( "jar", artifact.getType() ) && StringUtils.equals( "plugins", expectedType ) )
+        {
+            artifact.setType( ArtifactExtensionMapping.MAVEN_PLUGIN );
+        }
+        else
         {
-            throw new LayoutException( INVALID_ARTIFACT_PATH + "mismatch on extension [" + actualExtension
-                + "] and layout specified type [" + expectedType + "] (which maps to extension: [" + expectedExtension
-                + "]) on path [" + path + "]" );
+            // Sanity Check: does extension match pathType on path?
+            String trimPathType = expectedType.substring( 0, expectedType.length() - 1 );
+    
+            String expectedExtension = ArtifactExtensionMapping.getExtension( trimPathType );
+            String actualExtension = parser.getExtension();
+    
+            if ( !expectedExtension.equals( actualExtension ) )
+            {
+                throw new LayoutException( INVALID_ARTIFACT_PATH + "mismatch on extension [" + actualExtension
+                    + "] and layout specified type [" + expectedType + "] (which maps to extension: ["
+                    + expectedExtension + "]) on path [" + path + "]" );
+            }
         }
 
         return artifact;

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContentTestCase.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContentTestCase.java?rev=587224&r1=587223&r2=587224&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContentTestCase.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractDefaultRepositoryContentTestCase.java Mon Oct 22 13:00:55 2007
@@ -257,6 +257,39 @@
 
         assertLayout( path, groupId, artifactId, version, classifier, type );
     }
+    
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     * Example uses "test" in artifact Id, which is also part of the versionKeyword list.
+     */
+    public void testGoodDetectMavenTestPlugin()
+        throws LayoutException
+    {
+        String groupId = "maven";
+        String artifactId = "maven-test-plugin";
+        String version = "1.8.2";
+        String classifier = null;
+        String type = "maven-plugin";
+        String path = "maven/maven-test-plugin/1.8.2/maven-test-plugin-1.8.2.jar";
+
+        assertLayout( path, groupId, artifactId, version, classifier, type );
+    }
+
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     */
+    public void testGoodDetectCoberturaMavenPlugin()
+        throws LayoutException
+    {
+        String groupId = "org.codehaus.mojo";
+        String artifactId = "cobertura-maven-plugin";
+        String version = "2.1";
+        String classifier = null;
+        String type = "maven-plugin";
+        String path = "org/codehaus/mojo/cobertura-maven-plugin/2.1/cobertura-maven-plugin-2.1.jar";
+
+        assertLayout( path, groupId, artifactId, version, classifier, type );
+    }
 
     public void testToArtifactOnEmptyPath()
     {

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContentTestCase.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContentTestCase.java?rev=587224&r1=587223&r2=587224&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContentTestCase.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/AbstractLegacyRepositoryContentTestCase.java Mon Oct 22 13:00:55 2007
@@ -252,9 +252,70 @@
         String groupId = "maven";
         String artifactId = "maven-test-plugin";
         String version = "1.8.2";
-        String type = "jar";
+        String type = "pom";
 
-        String path = "maven/jars/maven-test-plugin-1.8.2.jar";
+        String path = "maven/poms/maven-test-plugin-1.8.2.pom";
+
+        assertLayout( path, groupId, artifactId, version, type );
+    }
+    
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     * Example uses "test" in artifact Id, which is also part of the versionKeyword list.
+     */
+    public void testGoodDetectPluginMavenTest()
+        throws LayoutException
+    {
+        String groupId = "maven";
+        String artifactId = "maven-test-plugin";
+        String version = "1.8.2";
+        String type = "maven-plugin";
+        String path = "maven/plugins/maven-test-plugin-1.8.2.jar";
+
+        assertLayout( path, groupId, artifactId, version, type );
+    }
+    
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     */
+    public void testGoodDetectPluginAvalonMeta()
+        throws LayoutException
+    {
+        String groupId = "avalon-meta";
+        String artifactId = "avalon-meta-plugin";
+        String version = "1.1";
+        String type = "maven-plugin";
+        String path = "avalon-meta/plugins/avalon-meta-plugin-1.1.jar";
+
+        assertLayout( path, groupId, artifactId, version, type );
+    }
+    
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     */
+    public void testGoodDetectPluginCactusMaven()
+        throws LayoutException
+    {
+        String groupId = "cactus";
+        String artifactId = "cactus-maven";
+        String version = "1.7dev-20040815";
+        String type = "maven-plugin";
+        String path = "cactus/plugins/cactus-maven-1.7dev-20040815.jar";
+
+        assertLayout( path, groupId, artifactId, version, type );
+    }
+    
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     */
+    public void testGoodDetectPluginGeronimoPackaging()
+        throws LayoutException
+    {
+        String groupId = "geronimo";
+        String artifactId = "geronimo-packaging-plugin";
+        String version = "1.0.1";
+        String type = "maven-plugin";
+        String path = "geronimo/plugins/geronimo-packaging-plugin-1.0.1.jar";
 
         assertLayout( path, groupId, artifactId, version, type );
     }

Added: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java?rev=587224&view=auto
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java (added)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java Mon Oct 22 13:00:55 2007
@@ -0,0 +1,58 @@
+package org.apache.maven.archiva.repository.content;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.archiva.repository.AbstractRepositoryLayerTestCase;
+
+/**
+ * ArtifactExtensionMappingTest 
+ *
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class ArtifactExtensionMappingTest
+extends AbstractRepositoryLayerTestCase
+{
+    public void testIsMavenPlugin()
+    {
+        assertMavenPlugin( "maven-test-plugin"  );
+        assertMavenPlugin( "maven-clean-plugin"  );
+        assertMavenPlugin( "cobertura-maven-plugin"  );
+        assertMavenPlugin( "maven-project-info-reports-plugin"  );
+        assertMavenPlugin( "silly-name-for-a-maven-plugin"  );
+        
+        assertNotMavenPlugin( "maven-plugin-api"  );
+        assertNotMavenPlugin( "foo-lib"  );
+        assertNotMavenPlugin( "another-maven-plugin-api"  );
+        assertNotMavenPlugin( "secret-maven-plugin-2"  );
+    }
+    
+    private void assertMavenPlugin( String artifactId )
+    {
+        assertTrue( "Should be detected as maven plugin: <" + artifactId + ">", 
+                    ArtifactExtensionMapping.isMavenPlugin( artifactId ) );
+    }
+    
+    private void assertNotMavenPlugin( String artifactId )
+    {
+        assertFalse( "Should NOT be detected as maven plugin: <" + artifactId + ">", 
+                    ArtifactExtensionMapping.isMavenPlugin( artifactId ) );
+    }
+}

Propchange: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMappingTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultPathParserTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultPathParserTest.java?rev=587224&r1=587223&r2=587224&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultPathParserTest.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/DefaultPathParserTest.java Mon Oct 22 13:00:55 2007
@@ -258,6 +258,39 @@
         assertLayout( path, groupId, artifactId, version, classifier, type );
     }
 
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     * Example uses "test" in artifact Id, which is also part of the versionKeyword list.
+     */
+    public void testGoodDetectMavenTestPlugin()
+        throws LayoutException
+    {
+        String groupId = "maven";
+        String artifactId = "maven-test-plugin";
+        String version = "1.8.2";
+        String classifier = null;
+        String type = "maven-plugin";
+        String path = "maven/maven-test-plugin/1.8.2/maven-test-plugin-1.8.2.jar";
+
+        assertLayout( path, groupId, artifactId, version, classifier, type );
+    }
+
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     */
+    public void testGoodDetectCoberturaMavenPlugin()
+        throws LayoutException
+    {
+        String groupId = "org.codehaus.mojo";
+        String artifactId = "cobertura-maven-plugin";
+        String version = "2.1";
+        String classifier = null;
+        String type = "maven-plugin";
+        String path = "org/codehaus/mojo/cobertura-maven-plugin/2.1/cobertura-maven-plugin-2.1.jar";
+
+        assertLayout( path, groupId, artifactId, version, classifier, type );
+    }
+
     public void testToArtifactOnEmptyPath()
     {
         try
@@ -309,7 +342,7 @@
             /* expected path */
         }
     }
-    
+
     /**
      * Perform a path to artifact reference lookup, and verify the results. 
      */
@@ -321,7 +354,7 @@
         ArtifactReference testReference = DefaultPathParser.toArtifactReference( path );
         assertArtifactReference( testReference, groupId, artifactId, version, classifier, type );
     }
-    
+
     private void assertArtifactReference( ArtifactReference actualReference, String groupId, String artifactId,
                                           String version, String classifier, String type )
     {

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyPathParserTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyPathParserTest.java?rev=587224&r1=587223&r2=587224&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyPathParserTest.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/LegacyPathParserTest.java Mon Oct 22 13:00:55 2007
@@ -253,9 +253,70 @@
         String groupId = "maven";
         String artifactId = "maven-test-plugin";
         String version = "1.8.2";
-        String type = "jar";
+        String type = "pom";
 
-        String path = "maven/jars/maven-test-plugin-1.8.2.jar";
+        String path = "maven/poms/maven-test-plugin-1.8.2.pom";
+
+        assertLayout( path, groupId, artifactId, version, type );
+    }
+    
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     * Example uses "test" in artifact Id, which is also part of the versionKeyword list.
+     */
+    public void testGoodDetectPluginMavenTest()
+        throws LayoutException
+    {
+        String groupId = "maven";
+        String artifactId = "maven-test-plugin";
+        String version = "1.8.2";
+        String type = "maven-plugin";
+        String path = "maven/plugins/maven-test-plugin-1.8.2.jar";
+
+        assertLayout( path, groupId, artifactId, version, type );
+    }
+    
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     */
+    public void testGoodDetectPluginAvalonMeta()
+        throws LayoutException
+    {
+        String groupId = "avalon-meta";
+        String artifactId = "avalon-meta-plugin";
+        String version = "1.1";
+        String type = "maven-plugin";
+        String path = "avalon-meta/plugins/avalon-meta-plugin-1.1.jar";
+
+        assertLayout( path, groupId, artifactId, version, type );
+    }
+    
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     */
+    public void testGoodDetectPluginCactusMaven()
+        throws LayoutException
+    {
+        String groupId = "cactus";
+        String artifactId = "cactus-maven";
+        String version = "1.7dev-20040815";
+        String type = "maven-plugin";
+        String path = "cactus/plugins/cactus-maven-1.7dev-20040815.jar";
+
+        assertLayout( path, groupId, artifactId, version, type );
+    }
+    
+    /**
+     * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
+     */
+    public void testGoodDetectPluginGeronimoPackaging()
+        throws LayoutException
+    {
+        String groupId = "geronimo";
+        String artifactId = "geronimo-packaging-plugin";
+        String version = "1.0.1";
+        String type = "maven-plugin";
+        String path = "geronimo/plugins/geronimo-packaging-plugin-1.0.1.jar";
 
         assertLayout( path, groupId, artifactId, version, type );
     }