You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2020/03/21 17:03:43 UTC

[archiva] branch master updated (729da58 -> 0941eca)

This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git.


    from 729da58  Adding additional tests
     new 2a6bcd0  Adding toString methods to content items
     new f1fb9c1  Additional documentation
     new 0941eca  Additional tests

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../repository/content/base/ArchivaArtifact.java   |  16 ++
 .../repository/content/base/ArchivaNamespace.java  |   6 +
 .../repository/content/base/ArchivaProject.java    |   5 +
 .../repository/content/base/ArchivaVersion.java    |   6 +
 .../content/ManagedDefaultRepositoryContent.java   |  19 +-
 .../ManagedDefaultRepositoryContentTest.java       | 274 +++++++++++++++++++++
 .../samplejar/1.0/samplejar-1.0-source.jar         |   0
 .../samplejar/1.0/samplejar-1.0-source.jar.sha1    |   0
 .../samplejar/1.0/samplejar-1.0.jar                |   0
 .../samplejar/1.0/samplejar-1.0.jar.md5            |   0
 .../samplejar/1.0/samplejar-1.0.jar.sha1           |   0
 .../apache/test}/samplejar/1.0/samplejar-1.0.pom   |   2 +-
 .../samplejar/2.0/samplejar-2.0.jar                |   0
 .../apache/test}/samplejar/2.0/samplejar-2.0.pom   |   2 +-
 .../{maven => test}/samplejar/maven-metadata.xml   |   0
 .../sub}/samplejar/1.0/samplejar-1.0-source.jar    |   0
 .../samplejar/1.0/samplejar-1.0-source.jar.sha1    |   0
 .../sub}/samplejar/1.0/samplejar-1.0.jar           |   0
 .../sub}/samplejar/1.0/samplejar-1.0.jar.md5       |   0
 .../sub}/samplejar/1.0/samplejar-1.0.jar.sha1      |   0
 .../test/sub}/samplejar/1.0/samplejar-1.0.pom      |   2 +-
 .../sub}/samplejar/2.0/samplejar-2.0.jar           |   0
 .../test/sub}/samplejar/2.0/samplejar-2.0.pom      |   2 +-
 .../sub}/samplejar/maven-metadata.xml              |   0
 24 files changed, 328 insertions(+), 6 deletions(-)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test}/samplejar/1.0/samplejar-1.0-source.jar (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test}/samplejar/1.0/samplejar-1.0-source.jar.sha1 (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test}/samplejar/1.0/samplejar-1.0.jar (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test}/samplejar/1.0/samplejar-1.0.jar.md5 (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test}/samplejar/1.0/samplejar-1.0.jar.sha1 (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/{default-repository/org/apache/maven => delete-repository/org/apache/test}/samplejar/1.0/samplejar-1.0.pom (97%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test}/samplejar/2.0/samplejar-2.0.jar (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/{default-repository/org/apache/maven => delete-repository/org/apache/test}/samplejar/2.0/samplejar-2.0.pom (97%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test}/samplejar/maven-metadata.xml (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test/sub}/samplejar/1.0/samplejar-1.0-source.jar (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test/sub}/samplejar/1.0/samplejar-1.0-source.jar.sha1 (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test/sub}/samplejar/1.0/samplejar-1.0.jar (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test/sub}/samplejar/1.0/samplejar-1.0.jar.md5 (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test/sub}/samplejar/1.0/samplejar-1.0.jar.sha1 (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/{default-repository/org/apache/maven => delete-repository/org/apache/test/sub}/samplejar/1.0/samplejar-1.0.pom (96%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test/sub}/samplejar/2.0/samplejar-2.0.jar (100%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/{default-repository/org/apache/maven => delete-repository/org/apache/test/sub}/samplejar/2.0/samplejar-2.0.pom (96%)
 copy archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/{maven => test/sub}/samplejar/maven-metadata.xml (100%)


[archiva] 01/03: Adding toString methods to content items

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git

commit 2a6bcd0c6a403958cab80826642b360697441f51
Author: Martin Stockhammer <ma...@apache.org>
AuthorDate: Sat Mar 21 18:01:43 2020 +0100

    Adding toString methods to content items
---
 .../archiva/repository/content/base/ArchivaArtifact.java | 16 ++++++++++++++++
 .../repository/content/base/ArchivaNamespace.java        |  6 ++++++
 .../archiva/repository/content/base/ArchivaProject.java  |  5 +++++
 .../archiva/repository/content/base/ArchivaVersion.java  |  6 ++++++
 4 files changed, 33 insertions(+)

diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaArtifact.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaArtifact.java
index b17a9c5..d4d9ef2 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaArtifact.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaArtifact.java
@@ -159,6 +159,22 @@ public class ArchivaArtifact extends ArchivaContentItem implements Artifact
         return result;
     }
 
+    @Override
+    public String toString( )
+    {
+        final StringBuilder sb = new StringBuilder( "ArchivaArtifact{" );
+        sb.append( "id='" ).append( id ).append( '\'' );
+        sb.append( ", artifactVersion='" ).append( artifactVersion ).append( '\'' );
+        sb.append( ", version=" ).append( version );
+        sb.append( ", type='" ).append( type ).append( '\'' );
+        sb.append( ", classifier='" ).append( classifier ).append( '\'' );
+        sb.append( ", remainder='" ).append( remainder ).append( '\'' );
+        sb.append( ", contentType='" ).append( contentType ).append( '\'' );
+        sb.append( ", artifactType=" ).append( artifactType );
+        sb.append( '}' );
+        return sb.toString( );
+    }
+
     private static class Builder
         extends ContentItemBuilder<ArchivaArtifact, ArtifactOptBuilder, WithVersionObjectBuilder>
         implements ArtifactVersionBuilder, WithVersionObjectBuilder, ArtifactWithIdBuilder, ArtifactOptBuilder
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaNamespace.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaNamespace.java
index 5371e03..b85f25a 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaNamespace.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaNamespace.java
@@ -87,6 +87,12 @@ public class ArchivaNamespace extends ArchivaContentItem implements Namespace
         return result;
     }
 
+    @Override
+    public String toString( )
+    {
+        return namespace;
+    }
+
     private static class Builder extends ContentItemBuilder<ArchivaNamespace, NamespaceOptBuilder, WithNamespaceBuilder>
         implements WithNamespaceBuilder, NamespaceOptBuilder
     {
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaProject.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaProject.java
index 4d902f3..ac72f62 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaProject.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaProject.java
@@ -97,6 +97,11 @@ public class ArchivaProject extends ArchivaContentItem implements Project
         return result;
     }
 
+    @Override
+    public String toString( )
+    {
+        return id + ", namespace="+namespace.toString();
+    }
 
     /*
      * Builder class
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaVersion.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaVersion.java
index 90b6921..e10d3b1 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaVersion.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/base/ArchivaVersion.java
@@ -107,6 +107,12 @@ public class ArchivaVersion extends ArchivaContentItem implements Version
         return result;
     }
 
+    @Override
+    public String toString( )
+    {
+        return version+", project="+project.toString();
+    }
+
     private static final class Builder extends ContentItemBuilder<ArchivaVersion, VersionOptBuilder, WithProjectBuilder>
         implements WithProjectBuilder, WithVersionBuilder, VersionOptBuilder
     {


[archiva] 02/03: Additional documentation

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git

commit f1fb9c109b31cc2542ddf226152360a8c0f33525
Author: Martin Stockhammer <ma...@apache.org>
AuthorDate: Sat Mar 21 18:02:22 2020 +0100

    Additional documentation
---
 .../content/ManagedDefaultRepositoryContent.java      | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java
index bc37a0e..4da98e1 100644
--- a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContent.java
@@ -174,6 +174,21 @@ public class ManagedDefaultRepositoryContent
 
 
     /// ************* End of new generation interface ******************
+
+    /**
+     * Removes the item from the filesystem. For namespaces, projects and versions it deletes
+     * recursively.
+     * For namespaces you have to be careful, because maven repositories may have sub namespaces
+     * parallel to projects. Which means deleting a namespaces also deletes the sub namespaces and
+     * not only the projects of the given namespace. Better run the delete for each project of
+     * a namespace.
+     *
+     * Artifacts are deleted as provided. No related artifacts will be deleted.
+     *
+     * @param item the item that should be removed
+     * @throws ItemNotFoundException if the item does not exist
+     * @throws ContentAccessException if some error occurred while accessing the filesystem
+     */
     @Override
     public void deleteItem( ContentItem item ) throws ItemNotFoundException, ContentAccessException
     {
@@ -201,8 +216,8 @@ public class ManagedDefaultRepositoryContent
         }
         catch ( IOException e )
         {
-            log.error( "Could not delete namespace directory {}: {}", itemPath, e.getMessage( ), e );
-            throw new ContentAccessException( "Error occured while deleting namespace " + item + ": " + e.getMessage( ), e );
+            log.error( "Could not delete item from path {}: {}", itemPath, e.getMessage( ), e );
+            throw new ContentAccessException( "Error occured while deleting item " + item + ": " + e.getMessage( ), e );
         }
     }
 


[archiva] 03/03: Additional tests

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git

commit 0941eca68d7cb6a4a5eba6ad53d77495ba1b090e
Author: Martin Stockhammer <ma...@apache.org>
AuthorDate: Sat Mar 21 18:02:47 2020 +0100

    Additional tests
---
 .../ManagedDefaultRepositoryContentTest.java       | 274 +++++++++++++++++++++
 .../test/samplejar/1.0/samplejar-1.0-source.jar    |   1 +
 .../samplejar/1.0/samplejar-1.0-source.jar.sha1    |   1 +
 .../apache/test/samplejar/1.0/samplejar-1.0.jar    |   1 +
 .../test/samplejar/1.0/samplejar-1.0.jar.md5       |   1 +
 .../test/samplejar/1.0/samplejar-1.0.jar.sha1      |   1 +
 .../apache/test/samplejar/1.0/samplejar-1.0.pom    |  29 +++
 .../apache/test/samplejar/2.0/samplejar-2.0.jar    |   1 +
 .../apache/test/samplejar/2.0/samplejar-2.0.pom    |  29 +++
 .../org/apache/test/samplejar/maven-metadata.xml   |  35 +++
 .../sub/samplejar/1.0/samplejar-1.0-source.jar     |   1 +
 .../samplejar/1.0/samplejar-1.0-source.jar.sha1    |   1 +
 .../test/sub/samplejar/1.0/samplejar-1.0.jar       |   1 +
 .../test/sub/samplejar/1.0/samplejar-1.0.jar.md5   |   1 +
 .../test/sub/samplejar/1.0/samplejar-1.0.jar.sha1  |   1 +
 .../test/sub/samplejar/1.0/samplejar-1.0.pom       |  29 +++
 .../test/sub/samplejar/2.0/samplejar-2.0.jar       |   1 +
 .../test/sub/samplejar/2.0/samplejar-2.0.pom       |  29 +++
 .../apache/test/sub/samplejar/maven-metadata.xml   |  35 +++
 19 files changed, 472 insertions(+)

diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
index fc273a6..2d7098d 100644
--- a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/content/ManagedDefaultRepositoryContentTest.java
@@ -19,6 +19,7 @@ package org.apache.archiva.repository.maven.content;
  */
 
 import org.apache.archiva.common.filelock.FileLockManager;
+import org.apache.archiva.common.utils.PathUtil;
 import org.apache.archiva.common.utils.VersionComparator;
 import org.apache.archiva.configuration.ArchivaConfiguration;
 import org.apache.archiva.configuration.FileType;
@@ -28,11 +29,13 @@ import org.apache.archiva.model.ProjectReference;
 import org.apache.archiva.model.VersionedReference;
 import org.apache.archiva.repository.EditableManagedRepository;
 import org.apache.archiva.repository.LayoutException;
+import org.apache.archiva.repository.ManagedRepository;
 import org.apache.archiva.repository.ManagedRepositoryContent;
 import org.apache.archiva.repository.RepositoryContent;
 import org.apache.archiva.repository.content.Artifact;
 import org.apache.archiva.repository.content.BaseArtifactTypes;
 import org.apache.archiva.repository.content.ContentItem;
+import org.apache.archiva.repository.content.ItemNotFoundException;
 import org.apache.archiva.repository.content.ItemSelector;
 import org.apache.archiva.repository.content.Namespace;
 import org.apache.archiva.repository.content.Project;
@@ -1295,4 +1298,275 @@ public class ManagedDefaultRepositoryContentTest
 
     }
 
+    private Path copyRepository(String repoName) throws IOException, URISyntaxException
+    {
+        Path tempDir = Files.createTempDirectory( "archiva-repocontent" );
+        Path repoSource = Paths.get( Thread.currentThread( ).getContextClassLoader( ).getResource( "repositories/" + repoName ).toURI( ) );
+        assertTrue( Files.exists( repoSource ) );
+        FileUtils.copyDirectory( repoSource.toFile( ), tempDir.toFile() );
+        return tempDir;
+    }
+
+    private ManagedRepository createManagedRepoWithContent(String sourceRepoName) throws IOException, URISyntaxException
+    {
+        Path repoDir = copyRepository( sourceRepoName );
+        MavenManagedRepository repo = createRepository( sourceRepoName, sourceRepoName, repoDir );
+        ManagedDefaultRepositoryContent deleteRepoContent = new ManagedDefaultRepositoryContent( repo, artifactMappingProviders, fileTypes, fileLockManager );
+        deleteRepoContent.setMavenContentHelper( contentHelper );
+        return repo;
+    }
+
+    @Test
+    public void deleteNamespaceItem() throws IOException, URISyntaxException, ItemNotFoundException
+    {
+        ManagedRepository repo = createManagedRepoWithContent( "delete-repository" );
+        ManagedRepositoryContent myRepoContent = repo.getContent( );
+        Path repoRoot = repo.getAsset( "" ).getFilePath( );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/maven" )) );
+        ArchivaItemSelector selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.maven" ).build();
+        ContentItem item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Namespace );
+        myRepoContent.deleteItem( item );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/maven" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache" )) );
+
+        // Sub namespaces are deleted too
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar" )) );
+        selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.test" ).build();
+        item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Namespace );
+        myRepoContent.deleteItem( item );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/test/samplejar" )) );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar" )) );
+    }
+
+    @Test
+    public void deleteProjectItem() throws IOException, URISyntaxException, ItemNotFoundException
+    {
+        ManagedRepository repo = createManagedRepoWithContent( "delete-repository" );
+        ManagedRepositoryContent myRepoContent = repo.getContent( );
+        Path repoRoot = repo.getAsset( "" ).getFilePath( );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/maven/A" )) );
+        ArchivaItemSelector selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.maven" )
+            .withProjectId( "A" ).build();
+        ContentItem item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Project );
+        myRepoContent.deleteItem( item );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/maven" )) );
+        assertTrue( Files.exists( repoRoot.resolve( "org/apache/maven/samplejar/1.0" ) ) );
+        assertTrue( Files.exists( repoRoot.resolve( "org/apache/maven/samplejar/2.0" ) ) );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/maven/A" )) );
+
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar" )) );
+        selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.test" )
+            .withProjectId( "samplejar" ).build();
+        item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Project );
+        myRepoContent.deleteItem( item );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/test/samplejar" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar" )) );
+    }
+
+    @Test
+    public void deleteVersionItem() throws IOException, URISyntaxException, ItemNotFoundException
+    {
+        ManagedRepository repo = createManagedRepoWithContent( "delete-repository" );
+        ManagedRepositoryContent myRepoContent = repo.getContent( );
+        Path repoRoot = repo.getAsset( "" ).getFilePath( );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/maven/A/1.0" )) );
+        ArchivaItemSelector selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.maven" )
+            .withProjectId( "A" )
+            .withVersion( "1.0" ).build();
+        ContentItem item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Version );
+        myRepoContent.deleteItem( item );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/maven/A" )) );
+        assertTrue( Files.exists( repoRoot.resolve( "org/apache/maven/samplejar/1.0" ) ) );
+        assertTrue( Files.exists( repoRoot.resolve( "org/apache/maven/samplejar/2.0" ) ) );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/maven/A/1.0" )) );
+
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar" )) );
+        selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.test" )
+            .withProjectId( "samplejar" )
+            .withVersion( "2.0" ).build();
+        item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Version );
+        myRepoContent.deleteItem( item );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/2.0" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar/1.0" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar/2.0" )) );
+    }
+
+    @Test
+    public void deleteArtifactItem() throws IOException, URISyntaxException, ItemNotFoundException
+    {
+        ManagedRepository repo = createManagedRepoWithContent( "delete-repository" );
+        ManagedRepositoryContent myRepoContent = repo.getContent( );
+        Path repoRoot = repo.getAsset( "" ).getFilePath( );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/maven/A/1.0/A-1.0.pom" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/maven/A/1.0/A-1.0.war" )) );
+        ArchivaItemSelector selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.maven" )
+            .withProjectId( "A" )
+            .withVersion( "1.0" )
+            .withArtifactId( "A" )
+            .withArtifactVersion( "1.0" )
+            .withExtension( "pom" )
+            .build();
+        ContentItem item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Artifact );
+        myRepoContent.deleteItem( item );
+        assertTrue( Files.exists( repoRoot.resolve( "org/apache/maven/samplejar/1.0" ) ) );
+        assertTrue( Files.exists( repoRoot.resolve( "org/apache/maven/samplejar/2.0" ) ) );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/maven/A/1.0/A-1.0.pom" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/maven/A/1.0/A-1.0.war" )) );
+
+
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar.md5" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar.sha1" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.pom" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0-source.jar" )) );
+        selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.test" )
+            .withProjectId( "samplejar" )
+            .withVersion( "1.0" )
+            .withArtifactId( "samplejar" )
+            .withArtifactVersion( "1.0" )
+            .withExtension( "jar" )
+            .build();
+        item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Artifact );
+        myRepoContent.deleteItem( item );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar.md5" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar.sha1" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.pom" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0-source.jar" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/2.0" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar/1.0" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar/2.0" )) );
+
+        selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.test" )
+            .withProjectId( "samplejar" )
+            .withVersion( "1.0" )
+            .withArtifactId( "samplejar" )
+            .withArtifactVersion( "1.0" )
+            .withClassifier( "source" )
+            .withExtension( "jar" )
+            .build();
+        item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Artifact );
+        myRepoContent.deleteItem( item );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar.md5" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar.sha1" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.pom" )) );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0-source.jar" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0-source.jar.sha1" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/2.0" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar/1.0" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar/2.0" )) );
+
+        selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.test" )
+            .withProjectId( "samplejar" )
+            .withVersion( "1.0" )
+            .withArtifactId( "samplejar" )
+            .withArtifactVersion( "1.0" )
+            .withExtension( "jar.md5" )
+            .build();
+        item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Artifact );
+        myRepoContent.deleteItem( item );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar" )) );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar.md5" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.jar.sha1" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0.pom" )) );
+        assertFalse( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0-source.jar" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/1.0/samplejar-1.0-source.jar.sha1" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/samplejar/2.0" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar/1.0" )) );
+        assertTrue( Files.exists(repoRoot.resolve( "org/apache/test/sub/samplejar/2.0" )) );
+
+
+    }
+
+    @Test
+    public void deleteItemNotFound() throws IOException, URISyntaxException, ItemNotFoundException
+    {
+        ManagedRepository repo = createManagedRepoWithContent( "delete-repository" );
+        ManagedRepositoryContent myRepoContent = repo.getContent( );
+        Path repoRoot = repo.getAsset( "" ).getFilePath( );
+
+        ArchivaItemSelector selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.test2" )
+            .build( );
+
+        ContentItem item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Namespace );
+        try
+        {
+            myRepoContent.deleteItem( item );
+            assertTrue( "ItemNotFoundException expected for non existing namespace", false );
+        } catch ( ItemNotFoundException e) {
+        }
+
+        selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.test" )
+            .withProjectId( "samplejar2" )
+            .build( );
+        item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Project );
+        try
+        {
+            myRepoContent.deleteItem( item );
+            assertTrue( "ItemNotFoundException expected for non existing project", false );
+        } catch ( ItemNotFoundException e) {
+        }
+
+        selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.test" )
+            .withProjectId( "samplejar" )
+            .withVersion("1.1")
+            .build( );
+        item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Version );
+        try
+        {
+            myRepoContent.deleteItem( item );
+            assertTrue( "ItemNotFoundException expected for non existing version", false );
+        } catch ( ItemNotFoundException e) {
+        }
+
+        selector = ArchivaItemSelector.builder( )
+            .withNamespace( "org.apache.test" )
+            .withProjectId( "samplejar" )
+            .withVersion("1.0")
+            .withArtifactId( "samplejar" )
+            .withArtifactVersion( "1.0" )
+            .withExtension( "jax" )
+            .build( );
+        item = myRepoContent.getItem( selector );
+        assertTrue( item instanceof Artifact );
+        try
+        {
+            myRepoContent.deleteItem( item );
+            assertTrue( "ItemNotFoundException expected for non existing artifact", false );
+        } catch ( ItemNotFoundException e) {
+        }
+
+    }
+
 }
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0-source.jar b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0-source.jar
new file mode 100644
index 0000000..54d190b
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0-source.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0-source.jar.sha1 b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0-source.jar.sha1
new file mode 100644
index 0000000..a5c1a4c
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0-source.jar.sha1
@@ -0,0 +1 @@
+754133cd9c36adef86d35b96c0e96e11a9c6bfc9  samplejar-1.0.jar
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.jar b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.jar
new file mode 100644
index 0000000..54d190b
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.jar.md5 b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.jar.md5
new file mode 100644
index 0000000..a5c2bc9
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.jar.md5
@@ -0,0 +1 @@
+fd4275a6811332d67075ffd879d13d4a  samplejar-1.0.jar
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.jar.sha1 b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.jar.sha1
new file mode 100644
index 0000000..a5c1a4c
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.jar.sha1
@@ -0,0 +1 @@
+754133cd9c36adef86d35b96c0e96e11a9c6bfc9  samplejar-1.0.jar
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.pom b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.pom
new file mode 100644
index 0000000..9b104cd
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/1.0/samplejar-1.0.pom
@@ -0,0 +1,29 @@
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.test</groupId>
+  <artifactId>samplejar</artifactId>
+  <version>1.0</version>
+  <name>Maven Test Repository Artifact Discovery</name>
+  <!-- default packaging is jar -->
+  <!--packaging>jar</packaging-->
+</project>
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/2.0/samplejar-2.0.jar b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/2.0/samplejar-2.0.jar
new file mode 100644
index 0000000..54d190b
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/2.0/samplejar-2.0.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/2.0/samplejar-2.0.pom b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/2.0/samplejar-2.0.pom
new file mode 100644
index 0000000..757fde4
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/2.0/samplejar-2.0.pom
@@ -0,0 +1,29 @@
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.test</groupId>
+  <artifactId>samplejar</artifactId>
+  <version>2.0</version>
+  <name>Maven Test Repository Artifact Discovery</name>
+  <!-- specified packaging -->
+  <packaging>jar</packaging>
+</project>
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/maven-metadata.xml b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/maven-metadata.xml
new file mode 100644
index 0000000..89de35f
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/samplejar/maven-metadata.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<metadata>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>samplejar</artifactId>
+  <version>6.0-SNAPSHOT</version>
+  <versioning>
+    <release>2.0</release>
+    <latest>6.0-SNAPSHOT</latest>
+    <snapshot>
+      <buildNumber>26</buildNumber>
+    </snapshot>
+    <versions>
+      <version>6.0-SNAPSHOT</version>
+      <version>6.0-20060311.093250-41</version>
+      <version>6.0-20060311.183228-42</version>
+      <version>6.0-20060311.183228-40</version>
+      <version>6.0-20060311.183228-37</version>
+      <version>6.0-20060311.183228-30</version>
+      <version>6.0-20060311.183228-29</version>
+      <version>6.0-20060311.183228-6</version>
+      <version>6.0-20060311.183228-9</version>
+      <version>6.0-20060311.183228-10</version>
+      <version>6.0-20060313.001659-43</version>
+      <version>6.0-20060313.001659-41</version>
+      <version>6.0-20060313.001659-38</version>
+      <version>6.0-20060313.001659-31</version>
+      <version>6.0-20060313.001659-30</version>
+      <version>6.0-20060313.001659-7</version>
+      <version>6.0-20060313.001659-10</version>
+      <version>6.0-20060313.001659-11</version>
+    </versions>
+    <lastUpdated>20060313010719</lastUpdated>
+  </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0-source.jar b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0-source.jar
new file mode 100644
index 0000000..54d190b
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0-source.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0-source.jar.sha1 b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0-source.jar.sha1
new file mode 100644
index 0000000..a5c1a4c
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0-source.jar.sha1
@@ -0,0 +1 @@
+754133cd9c36adef86d35b96c0e96e11a9c6bfc9  samplejar-1.0.jar
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.jar b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.jar
new file mode 100644
index 0000000..54d190b
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.jar.md5 b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.jar.md5
new file mode 100644
index 0000000..a5c2bc9
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.jar.md5
@@ -0,0 +1 @@
+fd4275a6811332d67075ffd879d13d4a  samplejar-1.0.jar
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.jar.sha1 b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.jar.sha1
new file mode 100644
index 0000000..a5c1a4c
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.jar.sha1
@@ -0,0 +1 @@
+754133cd9c36adef86d35b96c0e96e11a9c6bfc9  samplejar-1.0.jar
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.pom b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.pom
new file mode 100644
index 0000000..b94cc5c
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/1.0/samplejar-1.0.pom
@@ -0,0 +1,29 @@
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.test.sub</groupId>
+  <artifactId>samplejar</artifactId>
+  <version>1.0</version>
+  <name>Maven Test Repository Artifact Discovery</name>
+  <!-- default packaging is jar -->
+  <!--packaging>jar</packaging-->
+</project>
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/2.0/samplejar-2.0.jar b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/2.0/samplejar-2.0.jar
new file mode 100644
index 0000000..54d190b
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/2.0/samplejar-2.0.jar
@@ -0,0 +1 @@
+dummy content. sample file only.
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/2.0/samplejar-2.0.pom b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/2.0/samplejar-2.0.pom
new file mode 100644
index 0000000..e5dc101
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/2.0/samplejar-2.0.pom
@@ -0,0 +1,29 @@
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.test.sub</groupId>
+  <artifactId>samplejar</artifactId>
+  <version>2.0</version>
+  <name>Maven Test Repository Artifact Discovery</name>
+  <!-- specified packaging -->
+  <packaging>jar</packaging>
+</project>
diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/maven-metadata.xml b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/maven-metadata.xml
new file mode 100644
index 0000000..89de35f
--- /dev/null
+++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/resources/repositories/delete-repository/org/apache/test/sub/samplejar/maven-metadata.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<metadata>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>samplejar</artifactId>
+  <version>6.0-SNAPSHOT</version>
+  <versioning>
+    <release>2.0</release>
+    <latest>6.0-SNAPSHOT</latest>
+    <snapshot>
+      <buildNumber>26</buildNumber>
+    </snapshot>
+    <versions>
+      <version>6.0-SNAPSHOT</version>
+      <version>6.0-20060311.093250-41</version>
+      <version>6.0-20060311.183228-42</version>
+      <version>6.0-20060311.183228-40</version>
+      <version>6.0-20060311.183228-37</version>
+      <version>6.0-20060311.183228-30</version>
+      <version>6.0-20060311.183228-29</version>
+      <version>6.0-20060311.183228-6</version>
+      <version>6.0-20060311.183228-9</version>
+      <version>6.0-20060311.183228-10</version>
+      <version>6.0-20060313.001659-43</version>
+      <version>6.0-20060313.001659-41</version>
+      <version>6.0-20060313.001659-38</version>
+      <version>6.0-20060313.001659-31</version>
+      <version>6.0-20060313.001659-30</version>
+      <version>6.0-20060313.001659-7</version>
+      <version>6.0-20060313.001659-10</version>
+      <version>6.0-20060313.001659-11</version>
+    </versions>
+    <lastUpdated>20060313010719</lastUpdated>
+  </versioning>
+</metadata>