Author: brett
Date: Tue Mar 25 03:07:15 2008
New Revision: 640759

URL: http://svn.apache.org/viewvc?rev=640759&view=rev
Log:
[MRM-659] archiva cannot serve ejb artifacts from a maven1 repository

Modified:
    
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java
    
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java
    
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContentTest.java
    
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java

Modified: 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java?rev=640759&r1=640758&r2=640759&view=diff
==============================================================================
--- 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java
 (original)
+++ 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ArtifactExtensionMapping.java
 Tue Mar 25 03:07:15 2008
@@ -80,6 +80,12 @@
 
     public static String mapExtensionAndClassifierToType( String classifier, 
String extension )
     {
+        return mapExtensionAndClassifierToType( classifier, extension, 
extension );
+    }
+
+    public static String mapExtensionAndClassifierToType( String classifier, 
String extension,
+                                                           String 
defaultExtension )
+    {
         if ( "sources".equals( classifier ) )
         {
             return "java-source";
@@ -88,11 +94,16 @@
         {
             return "javadoc";
         }
-        return mapExtensionToType( extension );
+        return mapExtensionToType( extension, defaultExtension );
     }
 
     public static String mapExtensionToType( String extension )
     {
+        return mapExtensionToType( extension, extension );
+    }
+
+    private static String mapExtensionToType( String extension, String 
defaultExtension )
+    {
         if ( "tar.gz".equals( extension ) )
         {
             return "distribution-tgz";
@@ -105,6 +116,6 @@
         {
             return "distribution-zip";
         }
-        return extension;
+        return defaultExtension;
     }
 }

Modified: 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java?rev=640759&r1=640758&r2=640759&view=diff
==============================================================================
--- 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java
 (original)
+++ 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/LegacyPathParser.java
 Tue Mar 25 03:07:15 2008
@@ -178,7 +178,9 @@
         String extension = parser.getExtension();
 
         // Set Type
-        artifact.setType( 
ArtifactExtensionMapping.mapExtensionAndClassifierToType( classifier, extension 
) );
+        String defaultExtension = expectedType.substring( 0, 
expectedType.length() - 1 );
+        artifact.setType(
+            ArtifactExtensionMapping.mapExtensionAndClassifierToType( 
classifier, extension, defaultExtension ) );
 
         // Sanity Check: does it have an extension?
         if ( StringUtils.isEmpty( artifact.getType() ) )
@@ -187,21 +189,19 @@
         }
 
         // Special Case with Maven Plugins
-        if ( StringUtils.equals( "jar", artifact.getType() ) && 
StringUtils.equals( "plugins", expectedType ) )
+        if ( StringUtils.equals( "jar", extension ) && StringUtils.equals( 
"plugins", expectedType ) )
         {
             artifact.setType( ArtifactExtensionMapping.MAVEN_PLUGIN );
         }
         else
         {
             // Sanity Check: does extension match pathType on path?
-            String trimPathType = expectedType.substring( 0, 
expectedType.length() - 1 );
-
-            String expectedExtension = ArtifactExtensionMapping.getExtension( 
trimPathType );
+            String expectedExtension = ArtifactExtensionMapping.getExtension( 
artifact.getType() );
 
             if ( !expectedExtension.equals( extension ) )
             {
                 throw new LayoutException( INVALID_ARTIFACT_PATH + "mismatch 
on extension [" + extension
-                    + "] and layout specified type [" + expectedType + "] 
(which maps to extension: ["
+                    + "] and layout specified type [" + artifact.getType() + 
"] (which maps to extension: ["
                     + expectedExtension + "]) on path [" + path + "]" );
             }
         }

Modified: 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContentTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContentTest.java?rev=640759&r1=640758&r2=640759&view=diff
==============================================================================
--- 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContentTest.java
 (original)
+++ 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContentTest.java
 Tue Mar 25 03:07:15 2008
@@ -129,6 +129,8 @@
             "org.apache.maven/java-sources/testing-1.0-sources.jar",
             "org.apache.maven/jars/testing-1.0-20050611.112233-1.jar",
             "org.apache.maven/poms/testing-1.0.pom",
+            "org.apache.maven/distributions/testing-1.0.tar.gz",
+            "org.apache.maven/distributions/testing-1.0.zip",
             "org.apache.maven/javadoc.jars/testing-1.0-javadoc.jar" };
 
         StringBuffer relatedDebugString = new StringBuffer();
@@ -140,8 +142,6 @@
         }
         relatedDebugString.append( "]" );
 
-        assertEquals( "Related <" + relatedDebugString + ">:", 
expected.length, related.size() );
-
         for ( String expectedPath : expected )
         {
             boolean found = false;
@@ -160,6 +160,7 @@
                     + "Related <" + relatedDebugString + ">" );
             }
         }
+        assertEquals( "Related <" + relatedDebugString + ">:", 
expected.length, related.size() );
     }
 
     @Override

Modified: 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java?rev=640759&r1=640758&r2=640759&view=diff
==============================================================================
--- 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java
 (original)
+++ 
maven/archiva/branches/archiva-1.0.x/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java
 Tue Mar 25 03:07:15 2008
@@ -338,8 +338,38 @@
         ManagedRepositoryContent repository = createManagedRepo( "default" );
 
         // Test (pom) legacy to default
-        assertEquals( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.pom", 
repoRequest
-            .toNativePath( "org.apache.derby/poms/derby-10.2.2.0.pom", 
repository ) );
+        assertEquals( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.pom",
+                      repoRequest.toNativePath( 
"org.apache.derby/poms/derby-10.2.2.0.pom", repository ) );
+    }
+
+    public void testNativePathPomLegacyToLegacy()
+        throws Exception
+    {
+        ManagedRepositoryContent repository = createManagedRepo( "legacy" );
+
+        // Test (pom) legacy to default
+        assertEquals( "org.apache.derby/poms/derby-10.2.2.0.pom",
+                      repoRequest.toNativePath( 
"org.apache.derby/poms/derby-10.2.2.0.pom", repository ) );
+    }
+
+    public void testNativePathPomLegacyToDefaultEjb()
+        throws Exception
+    {
+        ManagedRepositoryContent repository = createManagedRepo( "default" );
+
+        // Test (pom) legacy to default
+        assertEquals( "mygroup/myejb/1.0/myejb-1.0.jar",
+                      repoRequest.toNativePath( "mygroup/ejbs/myejb-1.0.jar", 
repository ) );
+    }
+
+    public void testNativePathPomLegacyToLegacyEjb()
+        throws Exception
+    {
+        ManagedRepositoryContent repository = createManagedRepo( "legacy" );
+
+        // Test (pom) legacy to default
+        assertEquals( "mygroup/ejbs/myejb-1.0.jar",
+                      repoRequest.toNativePath( "mygroup/ejbs/myejb-1.0.jar", 
repository ) );
     }
 
     public void testNativePathSupportFileLegacyToDefault()


Reply via email to