]> source.dussan.org Git - archiva.git/commitdiff
fix unit tests
authorOlivier Lamy <olamy@apache.org>
Mon, 9 Dec 2013 02:47:18 +0000 (02:47 +0000)
committerOlivier Lamy <olamy@apache.org>
Mon, 9 Dec 2013 02:47:18 +0000 (02:47 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1549370 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java
archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryStorage.java

index 7bd7fc360f074d5c59f888b31a03ffb93c3fa5c7..20b1ad8e33d7df9ef49b01129c961dd3b30bbeb6 100644 (file)
@@ -524,9 +524,9 @@ public class ArchivaDavResourceFactoryTest
 
             expect( repoFactory.getManagedRepositoryContent( INTERNAL_REPO ) ).andReturn( internalRepo );
 
-            expect( request.getMethod() ).andReturn( "GET" ).times( 2 );
+            expect( request.getMethod() ).andReturn( "GET" ).times( 3 );
 
-            expect( request.getRemoteAddr() ).andReturn( "http://localhost:8080" ).times( 2 );
+            expect( request.getRemoteAddr() ).andReturn( "http://localhost:8080" ).times( 3 );
 
             expect( request.getDavSession() ).andReturn( new ArchivaDavSession() ).times( 2 );
 
@@ -575,7 +575,7 @@ public class ArchivaDavResourceFactoryTest
 
             expect( request.getMethod() ).andReturn( "GET" ).times( 2 );
 
-            expect( request.getRemoteAddr() ).andReturn( "http://localhost:8080" ).times( 2 );
+            expect( request.getRemoteAddr() ).andReturn( "http://localhost:8080" ).times( 3 );
 
             expect( request.getDavSession() ).andReturn( new ArchivaDavSession() ).times( 2 );
 
index 30cc569583792c48271098b0d5995b1f928131ef..6763e8b9b573843d0e71ac1084f18b88d7f88de5 100644 (file)
@@ -106,7 +106,7 @@ import java.util.Map;
  * within the session in the context of a single managed repository's resolution needs.
  * <p/>
  */
-@Service ( "repositoryStorage#maven2" )
+@Service( "repositoryStorage#maven2" )
 public class Maven2RepositoryStorage
     implements RepositoryStorage
 {
@@ -125,7 +125,7 @@ public class Maven2RepositoryStorage
     private NetworkProxyAdmin networkProxyAdmin;
 
     @Inject
-    @Named ( value = "repositoryPathTranslator#maven2" )
+    @Named( value = "repositoryPathTranslator#maven2" )
     private RepositoryPathTranslator pathTranslator;
 
     @Inject
@@ -135,7 +135,7 @@ public class Maven2RepositoryStorage
     private ApplicationContext applicationContext;
 
     @Inject
-    @Named ( value = "pathParser#default")
+    @Named( value = "pathParser#default" )
     private PathParser pathParser;
 
     private static final Logger log = LoggerFactory.getLogger( Maven2RepositoryStorage.class );
@@ -289,8 +289,8 @@ public class Maven2RepositoryStorage
                     if ( ( problem.getException() instanceof FileNotFoundException && e.getModelId() != null &&
                         !e.getModelId().equals( problem.getModelId() ) ) )
                     {
-                        log.warn( "The artifact's parent POM file '{}' cannot be resolved. " +
-                                      "Using defaults for project version metadata..", file );
+                        log.warn( "The artifact's parent POM file '{}' cannot be resolved. "
+                                      "Using defaults for project version metadata..", file );
 
                         ProjectVersionMetadata metadata = new ProjectVersionMetadata();
                         metadata.setId( readMetadataRequest.getProjectVersion() );
@@ -377,7 +377,7 @@ public class Maven2RepositoryStorage
         }
         catch ( RepositoryAdminException e )
         {
-            throw new RepositoryStorageRuntimeException( "repo-admin", e.getMessage(), e);
+            throw new RepositoryStorageRuntimeException( "repo-admin", e.getMessage(), e );
         }
     }
 
@@ -523,7 +523,7 @@ public class Maven2RepositoryStorage
         }
         catch ( RepositoryAdminException e )
         {
-            throw new RepositoryStorageRuntimeException( "repo-admin", e.getMessage(), e);
+            throw new RepositoryStorageRuntimeException( "repo-admin", e.getMessage(), e );
         }
     }
 
@@ -765,41 +765,67 @@ public class Maven2RepositoryStorage
     }
 
     public String getFilePathWithVersion( final String requestPath, ManagedRepositoryContent managedRepositoryContent )
-        throws LayoutException, XMLException
+        throws XMLException
     {
-        String requestPathNoRepository = removePrefix( requestPath );
-        ArtifactReference artifactReference = pathParser.toArtifactReference( requestPathNoRepository );
+
+        if (StringUtils.endsWith( requestPath, METADATA_FILENAME ))
+        {
+            return getFilePath( requestPath, managedRepositoryContent.getRepository() );
+        }
+
 
         String filePath = getFilePath( requestPath, managedRepositoryContent.getRepository() );
 
-        if (StringUtils.endsWith( artifactReference.getVersion(), "SNAPSHOT" ))
+        String requestPathNoRepository = removePrefix( requestPath );
+
+        ArtifactReference artifactReference = null;
+        try
+        {
+            artifactReference = pathParser.toArtifactReference( filePath );
+        }
+        catch ( LayoutException e )
+        {
+            return filePath;
+        }
+
+        if ( StringUtils.endsWith( artifactReference.getVersion(), "SNAPSHOT" ) )
         {
             // read maven metadata to get last timestamp
-            File metadataDir = new File( managedRepositoryContent.getRepoRoot(), filePath).getParentFile();
-            ArchivaRepositoryMetadata archivaRepositoryMetadata = MavenMetadataReader.read( new File(metadataDir, METADATA_FILENAME ) );
+            File metadataDir = new File( managedRepositoryContent.getRepoRoot(), filePath ).getParentFile();
+            if ( !metadataDir.exists() )
+            {
+                return filePath;
+            }
+            File metadataFile = new File( metadataDir, METADATA_FILENAME );
+            if ( !metadataFile.exists() )
+            {
+                return filePath;
+            }
+            ArchivaRepositoryMetadata archivaRepositoryMetadata = MavenMetadataReader.read( metadataFile );
             int buildNumber = archivaRepositoryMetadata.getSnapshotVersion().getBuildNumber();
             String timestamp = archivaRepositoryMetadata.getSnapshotVersion().getTimestamp();
 
             // org/apache/archiva/archiva-checksum/1.4-M4-SNAPSHOT/archiva-checksum-1.4-M4-SNAPSHOT.jar
             // ->  archiva-checksum-1.4-M4-20130425.081822-1.jar
 
-            filePath = StringUtils.replace( filePath, artifactReference.getArtifactId() + "-" + artifactReference.getVersion(),
-                                            artifactReference.getArtifactId() + "-" + StringUtils.remove( artifactReference.getVersion(), "-SNAPSHOT")
-                                                + "-" + timestamp + "-" + buildNumber );
+            filePath =
+                StringUtils.replace( filePath, artifactReference.getArtifactId() + "-" + artifactReference.getVersion(),
+                                     artifactReference.getArtifactId() + "-" + StringUtils.remove(
+                                         artifactReference.getVersion(), "-SNAPSHOT" ) + "-" + timestamp + "-"
+                                         + buildNumber );
 
         }
 
         return filePath;
     }
 
-
-
     //-----------------------------
     // internal
     //-----------------------------
 
     /**
      * FIXME remove
+     *
      * @param href
      * @return
      */
@@ -992,7 +1018,6 @@ public class Maven2RepositoryStorage
     }
 
 
-
     private static final class PomFilenameFilter
         implements FilenameFilter
     {