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);
+ }
+ }
}