Author: olamy
Date: Mon Dec  9 11:22:27 2013
New Revision: 1549551

URL: http://svn.apache.org/r1549551
Log:
use a temporary redirect for SNAPSHOT download

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java?rev=1549551&r1=1549550&r2=1549551&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
 Mon Dec  9 11:22:27 2013
@@ -528,7 +528,7 @@ public class ArchivaDavResourceFactory
         return path;
     }
 
-    private String evaluatePathWithVersion( ArchivaDavResourceLocator 
archivaLocator, ManagedRepositoryContent managedRepositoryContent )
+    private String evaluatePathWithVersion( ArchivaDavResourceLocator 
archivaLocator, ManagedRepositoryContent managedRepositoryContent, String 
contextPath )
         throws DavException
     {
         String layout = managedRepositoryContent.getRepository() == null ? new 
ManagedRepository( ).getLayout() : 
managedRepositoryContent.getRepository().getLayout();
@@ -540,8 +540,10 @@ public class ArchivaDavResourceFactory
         }
         catch ( RelocationException e )
         {
-            log.debug( "Relocation to {}", e.getPath() );
-            throw new BrowserRedirectException( e.getPath(), 
e.getRelocationType() );
+            String path = e.getPath();
+            log.debug( "Relocation to {}", path );
+
+            throw new BrowserRedirectException(contextPath + ( 
StringUtils.startsWith( path, "/" ) ? "": "/" ) + path, e.getRelocationType() );
         }
         catch ( XMLException e )
         {
@@ -559,7 +561,7 @@ public class ArchivaDavResourceFactory
         if ( isAuthorized( request, managedRepositoryContent.getId() ) )
         {
             // Maven Centric part ask evaluation if -SNAPSHOT
-            String path = evaluatePathWithVersion(archivaLocator, 
managedRepositoryContent);
+            String path = evaluatePathWithVersion(archivaLocator, 
managedRepositoryContent, request.getContextPath());
             if ( path.startsWith( "/" ) )
             {
                 path = path.substring( 1 );

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java?rev=1549551&r1=1549550&r2=1549551&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java
 Mon Dec  9 11:22:27 2013
@@ -240,8 +240,9 @@ public class ArchivaDavResourceFactoryTe
 
             expect( request.getDavSession() ).andReturn( new 
ArchivaDavSession() ).times( 2 );
 
-            expect( repoRequest.isSupportFile(
-                
"org/apache/archiva/archiva/1.2-SNAPSHOT/archiva-1.2-SNAPSHOT.jar" ) 
).andReturn( true );
+            expect( request.getContextPath() ).andReturn( "" ).times( 2 );
+
+            expect( repoRequest.isSupportFile( 
"org/apache/archiva/archiva/1.2-SNAPSHOT/archiva-1.2-SNAPSHOT.jar" ) 
).andReturn( true );
 
             expect(
                 repoRequest.isDefault( 
"org/apache/archiva/archiva/1.2-SNAPSHOT/archiva-1.2-SNAPSHOT.jar" ) 
).andReturn(
@@ -319,8 +320,9 @@ public class ArchivaDavResourceFactoryTe
 
             expect( request.getDavSession() ).andReturn( new 
ArchivaDavSession() ).times( 2 );
 
-            expect( repoRequest.isSupportFile(
-                
"org/apache/archiva/archiva/1.2-SNAPSHOT/archiva-1.2-SNAPSHOT.jar" ) 
).andReturn( false );
+            expect( request.getContextPath() ).andReturn( "" ).times( 2 );
+
+            expect( repoRequest.isSupportFile( 
"org/apache/archiva/archiva/1.2-SNAPSHOT/archiva-1.2-SNAPSHOT.jar" ) 
).andReturn( false );
 
             expect(
                 repoRequest.isDefault( 
"org/apache/archiva/archiva/1.2-SNAPSHOT/archiva-1.2-SNAPSHOT.jar" ) 
).andReturn(
@@ -400,8 +402,9 @@ public class ArchivaDavResourceFactoryTe
 
             expect( request.getDavSession() ).andReturn( new 
ArchivaDavSession() ).times( 4 );
 
-            expect( repoRequest.isSupportFile(
-                
"org/apache/archiva/archiva/1.2-SNAPSHOT/archiva-1.2-SNAPSHOT.jar" ) 
).andReturn( false ).times( 2 );
+            expect( request.getContextPath() ).andReturn( "" ).times( 2 );
+
+            expect( repoRequest.isSupportFile( 
"org/apache/archiva/archiva/1.2-SNAPSHOT/archiva-1.2-SNAPSHOT.jar" ) 
).andReturn( false ).times( 2 );
 
             expect(
                 repoRequest.isDefault( 
"org/apache/archiva/archiva/1.2-SNAPSHOT/archiva-1.2-SNAPSHOT.jar" ) 
).andReturn(
@@ -469,6 +472,8 @@ public class ArchivaDavResourceFactoryTe
 
             expect( request.getRemoteAddr() ).andReturn( 
"http://localhost:8080"; ).times( 3 );
 
+            expect( request.getContextPath() ).andReturn( "" ).times( 1 );
+
             expect( request.getDavSession() ).andReturn( new 
ArchivaDavSession() ).times( 2 );
 
             expect( request.getRequestURI() ).andReturn( 
"http://localhost:8080/archiva/repository/"; + INTERNAL_REPO + 
"/eclipse/jdtcore/maven-metadata.xml" );
@@ -530,6 +535,8 @@ public class ArchivaDavResourceFactoryTe
 
             expect( request.getDavSession() ).andReturn( new 
ArchivaDavSession() ).times( 2 );
 
+            expect( request.getContextPath() ).andReturn( "" ).times( 2 );
+
             archivaConfigurationControl.replay();
             repoContentFactoryControl.replay();
             requestControl.replay();
@@ -579,6 +586,8 @@ public class ArchivaDavResourceFactoryTe
 
             expect( request.getDavSession() ).andReturn( new 
ArchivaDavSession() ).times( 2 );
 
+            expect( request.getContextPath() ).andReturn( "" ).times( 2 );
+
             archivaConfigurationControl.replay();
             repoContentFactoryControl.replay();
             requestControl.replay();


Reply via email to