Author: jdumay
Date: Tue Jun  3 01:23:06 2008
New Revision: 662691

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

* Implementing litmus compatible removeMember() (DELETE)
* Unit tests


Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java?rev=662691&r1=662690&r2=662691&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResource.java
 Tue Jun  3 01:23:06 2008
@@ -307,37 +307,28 @@
         throws DavException
     {
         File resource = checkDavResourceIsArchivaDavResource( member 
).getLocalResource();
-
-        if ( !resource.exists() )
-        {
-            throw new DavException( HttpServletResponse.SC_NOT_FOUND, 
member.getResourcePath() );
-        }
-
-        boolean suceeded = false;
-
-        if ( resource.isDirectory() )
+        
+        if ( resource.exists() )
         {
             try
             {
-                FileUtils.deleteDirectory( resource );
-                suceeded = true;
+                if ( resource.isDirectory() )
+                {
+                    FileUtils.deleteDirectory(resource);
+                }
+                else
+                {
+                    if (!resource.delete())
+                    {
+                        throw new IOException("Could not remove file");
+                    }
+                }
             }
             catch ( IOException e )
             {
-                throw new DavException( 
HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e );
+                throw new DavException( 
HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
             }
         }
-
-        if ( !suceeded && resource.isFile() )
-        {
-            suceeded = resource.delete();
-        }
-
-        if ( !suceeded )
-        {
-            throw new DavException( 
HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Could not delete resource " +
-                member.getResourcePath() );
-        }
     }
 
     public void move( DavResource destination )

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java?rev=662691&r1=662690&r2=662691&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/DavResourceTest.java
 Tue Jun  3 01:23:06 2008
@@ -23,6 +23,9 @@
 import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.webdav.DavException;
 import org.apache.jackrabbit.webdav.DavResource;
+import org.apache.jackrabbit.webdav.DavResourceFactory;
+import org.apache.jackrabbit.webdav.DavResourceLocator;
+import org.apache.jackrabbit.webdav.DavServletRequest;
 import org.apache.jackrabbit.webdav.DavServletResponse;
 import org.apache.jackrabbit.webdav.DavSession;
 import org.apache.jackrabbit.webdav.lock.ActiveLock;
@@ -43,6 +46,8 @@
     
     private ArchivaDavResourceLocator resourceLocator;
     
+    private DavResourceFactory resourceFactory;
+    
     private File baseDir;
     
     private final String REPOPATH = "myresource.jar";
@@ -64,6 +69,7 @@
         baseDir.mkdirs();
         myResource = new File(baseDir, "myresource.jar");
         assertTrue("Could not create " + myResource.getAbsolutePath(), 
myResource.createNewFile());
+        resourceFactory = new RootContextDavResourceFactory();
         resourceLocator = (ArchivaDavResourceLocator)new 
ArchivaDavLocatorFactory().createResourceLocator("/", REPOPATH);
         resource = getDavResource(resourceLocator.getHref(false), myResource);
         lockManager = new SimpleLockManager();
@@ -81,7 +87,32 @@
     
     private DavResource getDavResource(String logicalPath, File file)
     {
-        return new ArchivaDavResource(file.getAbsolutePath(), logicalPath, 
mimeTypes, session, resourceLocator, null);
+        return new ArchivaDavResource(file.getAbsolutePath(), logicalPath, 
mimeTypes, session, resourceLocator, resourceFactory);
+    }
+    
+    public void testDeleteCollection()
+        throws Exception
+    {
+        File dir = new File(baseDir, "testdir");
+        try
+        {
+            assertTrue(dir.mkdir());
+            DavResource directoryResource = getDavResource("/testdir", dir);
+            directoryResource.getCollection().removeMember(directoryResource);
+            assertFalse(dir.exists());
+        }
+        finally
+        {
+            FileUtils.deleteDirectory(dir);
+        }
+    }
+    
+    public void testDeleteResource()
+        throws Exception
+    {
+        assertTrue(myResource.exists());
+        resource.getCollection().removeMember(resource);
+        assertFalse(myResource.exists());
     }
     
     public void testIsLockable()
@@ -232,4 +263,15 @@
         
         assertEquals(0, resource.getLocks().length);      
     }
+    
+    private class RootContextDavResourceFactory implements DavResourceFactory
+    {
+        public DavResource createResource(DavResourceLocator locator, 
DavServletRequest request, DavServletResponse response) throws DavException {
+            throw new UnsupportedOperationException("Not supported yet.");
+        }
+
+        public DavResource createResource(DavResourceLocator locator, 
DavSession session) throws DavException {
+            return new ArchivaDavResource(baseDir.getAbsolutePath(), "/", 
mimeTypes, session, resourceLocator, resourceFactory);
+        }
+    }
 }


Reply via email to