You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jd...@apache.org on 2008/06/04 05:50:03 UTC

svn commit: r662968 - in /archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src: main/java/org/apache/maven/archiva/webdav/ test/java/org/apache/maven/archiva/webdav/

Author: jdumay
Date: Tue Jun  3 20:50:03 2008
New Revision: 662968

URL: http://svn.apache.org/viewvc?rev=662968&view=rev
Log:
MRM-781 - Removal of Archiva-Webdav implementation in favor of Jackrabbit-webdav

* Reenabled RepositoryServletBrowseTest
* Added Extra DavResourceLocator tests
* Increased Litmus test score to 87.7%


Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java?rev=662968&r1=662967&r2=662968&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java Tue Jun  3 20:50:03 2008
@@ -222,7 +222,7 @@
                         setHeaders( locator, response );
 
                         // compatibility with MRM-440 to ensure browsing the repository works ok
-                        if ( resource.isCollection() && !resource.getLocator().getResourcePath().endsWith( "/" ) )
+                        if ( resource.isCollection() && !resource.getLocator().getHref(true).endsWith("/" ) )
                         {
                             throw new BrowserRedirectException( resource.getHref() );
                         }

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java?rev=662968&r1=662967&r2=662968&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java Tue Jun  3 20:50:03 2008
@@ -60,14 +60,14 @@
         {
             hrefPrefix = hrefPrefix.substring( 0, hrefPrefix.length() - 1 );
         }
+
+        href = hrefPrefix + escapedPath;
         
         //Remove trailing slashes otherwise Text.getRelativeParent fails
         if (resourcePath.endsWith("/") && resourcePath.length() > 1)
         {
             this.resourcePath = resourcePath.substring( 0, resourcePath.length() - 1 );
         }
-
-        href = hrefPrefix + escapedPath;
     }
 
     public String getRepositoryId()
@@ -108,7 +108,7 @@
     public String getHref( boolean isCollection )
     {
         // avoid doubled trailing '/' for the root item
-        String suffix = ( isCollection && !isRootLocation() ) ? "/" : "";
+        String suffix = ( isCollection && !isRootLocation() && !href.endsWith("/") ) ? "/" : "";
         return href + suffix;
     }
 

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java?rev=662968&r1=662967&r2=662968&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java Tue Jun  3 20:50:03 2008
@@ -35,13 +35,30 @@
         super.setUp();
         factory = new ArchivaDavLocatorFactory();
     }
+    
+    public void testAvoidDoubleSlashInHref()
+        throws Exception
+    {
+        String prefix = "http://myproxy/";
+        String href = "/repository/internal/";
+        ArchivaDavResourceLocator locator = getLocator(prefix, href);
+
+        assertEquals("internal", locator.getRepositoryId());
+        assertEquals("", locator.getWorkspaceName());
+        assertEquals("", locator.getWorkspacePath());
+        assertEquals("http://myproxy/", locator.getPrefix());
+        assertEquals("http://myproxy/repository/internal/", locator.getHref(false));
+        assertEquals("http://myproxy/repository/internal/", locator.getHref(true));
+        assertEquals("/repository/internal", locator.getResourcePath());
+        assertEquals("/repository/internal", locator.getRepositoryPath());        
+    }
 
     public void testLocatorWithPrefixHref()
         throws Exception
     {
         String prefix = "http://myproxy/";
         String href = "/repository/internal";
-        ArchivaDavResourceLocator locator = (ArchivaDavResourceLocator)factory.createResourceLocator(prefix, href);
+        ArchivaDavResourceLocator locator = getLocator(prefix, href);
 
         assertEquals("internal", locator.getRepositoryId());
         assertEquals("", locator.getWorkspaceName());
@@ -58,7 +75,7 @@
     {
         String prefix = "http://myproxy/";
         String href = "http://myproxy/repository/internal";
-        ArchivaDavResourceLocator locator = (ArchivaDavResourceLocator)factory.createResourceLocator(prefix, href);
+        ArchivaDavResourceLocator locator = getLocator(prefix, href);
 
         assertEquals("internal", locator.getRepositoryId());
         assertEquals("", locator.getWorkspaceName());
@@ -75,7 +92,7 @@
     {
         String prefix = "http://myproxy/";
         String href = "/";
-        ArchivaDavResourceLocator locator = (ArchivaDavResourceLocator)factory.createResourceLocator(prefix, href);
+        ArchivaDavResourceLocator locator = getLocator(prefix, href);
 
         assertEquals("", locator.getRepositoryId());
         assertEquals("", locator.getWorkspaceName());
@@ -86,4 +103,9 @@
         assertEquals("/", locator.getResourcePath());
         assertEquals("/", locator.getRepositoryPath());
     }
+    
+    private ArchivaDavResourceLocator getLocator( String prefix, String href )
+    {
+        return (ArchivaDavResourceLocator)factory.createResourceLocator(prefix, href);
+    }
 }

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java?rev=662968&r1=662967&r2=662968&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java Tue Jun  3 20:50:03 2008
@@ -1,62 +1,62 @@
-//package org.apache.maven.archiva.webdav;
-//
-///*
-// * 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 com.meterware.httpunit.GetMethodWebRequest;
-//import com.meterware.httpunit.WebLink;
-//import com.meterware.httpunit.WebRequest;
-//import com.meterware.httpunit.WebResponse;
-//
-//import java.io.File;
-//
-//import javax.servlet.http.HttpServletResponse;
-//
-///**
-// * RepositoryServletBrowseTest 
-// *
-// * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
-// * @version $Id$
-// */
-//public class RepositoryServletBrowseTest
-//    extends AbstractRepositoryServletTestCase
-//{
-//    public void testBrowse()
-//        throws Exception
-//    {
-//        new File( repoRootInternal, "org/apache/archiva" ).mkdirs();
-//        new File( repoRootInternal, "net/sourceforge" ).mkdirs();
-//        new File( repoRootInternal, "commons-lang" ).mkdirs();
-//
-//        WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" );
-//        WebResponse response = sc.getResponse( request );
-//        assertEquals( "Response", HttpServletResponse.SC_OK, response.getResponseCode() );
-//
-//        // dumpResponse( response );
-//
-//        WebLink links[] = response.getLinks();
-//        String expectedLinks[] = new String[] { "./commons-lang/", "./net/", "./org/" };
-//
-//        assertEquals( "Links.length", expectedLinks.length, links.length );
-//        for ( int i = 0; i < links.length; i++ )
-//        {
-//            assertEquals( "Link[" + i + "]", expectedLinks[i], links[i].getURLString() );
-//        }
-//    }
-//}
+package org.apache.maven.archiva.webdav;
+
+/*
+ * 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 com.meterware.httpunit.GetMethodWebRequest;
+import com.meterware.httpunit.WebLink;
+import com.meterware.httpunit.WebRequest;
+import com.meterware.httpunit.WebResponse;
+
+import java.io.File;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * RepositoryServletBrowseTest 
+ *
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class RepositoryServletBrowseTest
+    extends AbstractRepositoryServletTestCase
+{
+    public void testBrowse()
+        throws Exception
+    {
+        new File( repoRootInternal, "org/apache/archiva" ).mkdirs();
+        new File( repoRootInternal, "net/sourceforge" ).mkdirs();
+        new File( repoRootInternal, "commons-lang" ).mkdirs();
+
+        WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" );
+        WebResponse response = sc.getResponse( request );
+        assertEquals( "Response", HttpServletResponse.SC_OK, response.getResponseCode() );
+
+        // dumpResponse( response );
+
+        WebLink links[] = response.getLinks();
+        String expectedLinks[] = new String[] { "./commons-lang/", "./net/", "./org/" };
+
+        assertEquals( "Links.length", expectedLinks.length, links.length );
+        for ( int i = 0; i < links.length; i++ )
+        {
+            assertEquals( "Link[" + i + "]", expectedLinks[i], links[i].getURLString() );
+        }
+    }
+}