]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1846] Regression in 2.0.1 : uniqueVersion false not supported
authorOlivier Lamy <olamy@apache.org>
Tue, 10 Jun 2014 16:44:41 +0000 (02:44 +1000)
committerOlivier Lamy <olamy@apache.org>
Tue, 10 Jun 2014 16:44:41 +0000 (02:44 +1000)
archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryStorage.java

index 21865cafa318e585b828e39ddae0ec1ad1c4aca0..65aeae274291605f4c63b0916ee0dad787f2f290 100644 (file)
@@ -586,8 +586,11 @@ public class ArchivaDavResourceFactory
         DavResource resource = null;
         if ( isAuthorized( request, managedRepositoryContent.getId() ) )
         {
+            boolean readMethod = WebdavMethodUtil.isReadMethod( request.getMethod() );
             // Maven Centric part ask evaluation if -SNAPSHOT
-            String path = evaluatePathWithVersion( archivaLocator, managedRepositoryContent, request.getContextPath() );
+            String path = readMethod ?
+                evaluatePathWithVersion( archivaLocator, managedRepositoryContent, request.getContextPath() )
+                : getLogicalResource( archivaLocator, managedRepository, false );
             if ( path.startsWith( "/" ) )
             {
                 path = path.substring( 1 );
index 6db2b79ab5dcb8bb52ed6066eb2d6f99a5d87e84..f1027f255eff17175c420abcf401680d3dea2cbf 100644 (file)
@@ -102,12 +102,12 @@ import java.util.Map;
  * Maven 2 repository format storage implementation. This class currently takes parameters to indicate the repository to
  * deal with rather than being instantiated per-repository.
  * FIXME: instantiate one per repository and allocate permanently from a factory (which can be obtained within the session).
- * <p>
+ * <p/>
  * The session is passed in as an argument to obtain any necessary resources, rather than the class being instantiated
  * within the session in the context of a single managed repository's resolution needs.
- * <p>
+ * <p/>
  */
-@Service( "repositoryStorage#maven2" )
+@Service("repositoryStorage#maven2")
 public class Maven2RepositoryStorage
     implements RepositoryStorage
 {
@@ -129,7 +129,7 @@ public class Maven2RepositoryStorage
     private NetworkProxyAdmin networkProxyAdmin;
 
     @Inject
-    @Named( "repositoryPathTranslator#maven2" )
+    @Named("repositoryPathTranslator#maven2")
     private RepositoryPathTranslator pathTranslator;
 
     @Inject
@@ -139,7 +139,7 @@ public class Maven2RepositoryStorage
     private ApplicationContext applicationContext;
 
     @Inject
-    @Named( "pathParser#default" )
+    @Named("pathParser#default")
     private PathParser pathParser;
 
     private static final String METADATA_FILENAME_START = "maven-metadata";
@@ -402,8 +402,7 @@ public class Maven2RepositoryStorage
 
     private List<org.apache.archiva.metadata.model.Dependency> convertDependencies( List<Dependency> dependencies )
     {
-        List<org.apache.archiva.metadata.model.Dependency> l =
-            new ArrayList<>();
+        List<org.apache.archiva.metadata.model.Dependency> l = new ArrayList<>();
         for ( Dependency dependency : dependencies )
         {
             org.apache.archiva.metadata.model.Dependency newDependency =
@@ -461,8 +460,7 @@ public class Maven2RepositoryStorage
 
     private List<org.apache.archiva.metadata.model.MailingList> convertMailingLists( List<MailingList> mailingLists )
     {
-        List<org.apache.archiva.metadata.model.MailingList> l =
-            new ArrayList<>();
+        List<org.apache.archiva.metadata.model.MailingList> l = new ArrayList<>();
         for ( MailingList mailingList : mailingLists )
         {
             org.apache.archiva.metadata.model.MailingList newMailingList =
@@ -810,11 +808,14 @@ public class Maven2RepositoryStorage
             // 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(), "-" + VersionUtil.SNAPSHOT ) + "-" + timestamp
-                                         + "-" + buildNumber );
+            filePath = StringUtils.replace( filePath, //
+                                            artifactReference.getArtifactId() //
+                                                + "-" + artifactReference.getVersion(), //
+                                            artifactReference.getArtifactId() //
+                                                + "-" + StringUtils.remove( artifactReference.getVersion(),
+                                                                            "-" + VersionUtil.SNAPSHOT ) //
+                                                + "-" + timestamp //
+                                                + "-" + buildNumber );
 
             throw new RelocationException( "/repository/" + managedRepositoryContent.getRepository().getId() +
                                                ( StringUtils.startsWith( filePath, "/" ) ? "" : "/" ) + filePath,