aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules/archiva-base/archiva-repository-layer
diff options
context:
space:
mode:
authorOlivier Lamy <olamy@apache.org>2012-06-05 23:17:23 +0000
committerOlivier Lamy <olamy@apache.org>2012-06-05 23:17:23 +0000
commit710489fc7288eb61079356058eff72429751fb60 (patch)
tree842ca18034411a8e6950081a6489b4275666806c /archiva-modules/archiva-base/archiva-repository-layer
parentf31f36553560b16931149082b4ba724484877c0e (diff)
downloadarchiva-710489fc7288eb61079356058eff72429751fb60.tar.gz
archiva-710489fc7288eb61079356058eff72429751fb60.zip
implement service to delete groupId
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1346651 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-modules/archiva-base/archiva-repository-layer')
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java9
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/ManagedDefaultRepositoryContent.java22
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/ManagedLegacyRepositoryContent.java55
3 files changed, 61 insertions, 25 deletions
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
index a23415ed9..01c5fc06f 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
@@ -49,6 +49,7 @@ public interface ManagedRepositoryContent
/**
* delete a specified artifact from the repository
+ *
* @param artifactReference
* @throws ContentNotFoundException
*/
@@ -56,6 +57,14 @@ public interface ManagedRepositoryContent
throws ContentNotFoundException;
/**
+ * @since 1.4-M3
+ * @param groupId
+ * @throws ContentNotFoundException
+ */
+ void deleteGroupId( String groupId )
+ throws ContentNotFoundException;
+
+ /**
* <p>
* Convenience method to get the repository id.
* </p>
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/ManagedDefaultRepositoryContent.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/ManagedDefaultRepositoryContent.java
index 0c626436f..36b32df06 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/ManagedDefaultRepositoryContent.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/ManagedDefaultRepositoryContent.java
@@ -31,6 +31,7 @@ import org.apache.archiva.repository.ContentNotFoundException;
import org.apache.archiva.repository.ManagedRepositoryContent;
import org.apache.archiva.repository.layout.LayoutException;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.StringUtils;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
@@ -102,6 +103,27 @@ public class ManagedDefaultRepositoryContent
}
}
+ public void deleteGroupId( String groupId )
+ throws ContentNotFoundException
+ {
+
+ String path = StringUtils.replaceChars( groupId, '.', '/' );
+
+ File directory = new File( getRepoRoot(), path );
+
+ if ( directory.exists() )
+ {
+ try
+ {
+ FileUtils.deleteDirectory( directory );
+ }
+ catch ( IOException e )
+ {
+ log.warn( "skip error deleting directory {}:", directory.getPath(), e );
+ }
+ }
+ }
+
public String getId()
{
return repository.getId();
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/ManagedLegacyRepositoryContent.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/ManagedLegacyRepositoryContent.java
index 56690c7b6..a03626a90 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/ManagedLegacyRepositoryContent.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/ManagedLegacyRepositoryContent.java
@@ -20,8 +20,6 @@ package org.apache.archiva.repository.content;
*/
import org.apache.archiva.admin.model.beans.ManagedRepository;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
import org.apache.archiva.common.utils.PathUtil;
import org.apache.archiva.configuration.FileTypes;
import org.apache.archiva.model.ArchivaArtifact;
@@ -31,6 +29,8 @@ import org.apache.archiva.model.VersionedReference;
import org.apache.archiva.repository.ContentNotFoundException;
import org.apache.archiva.repository.ManagedRepositoryContent;
import org.apache.archiva.repository.layout.LayoutException;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
@@ -40,14 +40,13 @@ import java.util.HashSet;
import java.util.Set;
/**
- * ManagedLegacyRepositoryContent
+ * ManagedLegacyRepositoryContent
*
* @version $Id$
- *
* @todo no need to be a component when filetypes, legacy path parser is not
*/
-@Service("managedRepositoryContent#legacy")
-@Scope("prototype")
+@Service( "managedRepositoryContent#legacy" )
+@Scope( "prototype" )
public class ManagedLegacyRepositoryContent
extends AbstractLegacyRepositoryContent
implements ManagedRepositoryContent
@@ -67,14 +66,14 @@ public class ManagedLegacyRepositoryContent
if ( !groupDir.exists() )
{
- throw new ContentNotFoundException( "Unable to get versions using a non-existant groupId directory: "
- + groupDir.getAbsolutePath() );
+ throw new ContentNotFoundException(
+ "Unable to get versions using a non-existant groupId directory: " + groupDir.getAbsolutePath() );
}
if ( !groupDir.isDirectory() )
{
- throw new ContentNotFoundException( "Unable to get versions using a non-directory: "
- + groupDir.getAbsolutePath() );
+ throw new ContentNotFoundException(
+ "Unable to get versions using a non-directory: " + groupDir.getAbsolutePath() );
}
// First gather up the versions found as artifacts in the managed repository.
@@ -159,14 +158,14 @@ public class ManagedLegacyRepositoryContent
if ( !repoDir.exists() )
{
- throw new ContentNotFoundException( "Unable to get related artifacts using a non-existant directory: "
- + repoDir.getAbsolutePath() );
+ throw new ContentNotFoundException(
+ "Unable to get related artifacts using a non-existant directory: " + repoDir.getAbsolutePath() );
}
if ( !repoDir.isDirectory() )
{
- throw new ContentNotFoundException( "Unable to get related artifacts using a non-directory: "
- + repoDir.getAbsolutePath() );
+ throw new ContentNotFoundException(
+ "Unable to get related artifacts using a non-directory: " + repoDir.getAbsolutePath() );
}
Set<ArtifactReference> foundArtifacts = new HashSet<ArtifactReference>();
@@ -210,14 +209,14 @@ public class ManagedLegacyRepositoryContent
if ( !groupDir.exists() )
{
- throw new ContentNotFoundException( "Unable to get versions using a non-existant groupId directory: "
- + groupDir.getAbsolutePath() );
+ throw new ContentNotFoundException(
+ "Unable to get versions using a non-existant groupId directory: " + groupDir.getAbsolutePath() );
}
if ( !groupDir.isDirectory() )
{
- throw new ContentNotFoundException( "Unable to get versions using a non-directory: "
- + groupDir.getAbsolutePath() );
+ throw new ContentNotFoundException(
+ "Unable to get versions using a non-directory: " + groupDir.getAbsolutePath() );
}
Set<String> foundVersions = new HashSet<String>();
@@ -250,14 +249,14 @@ public class ManagedLegacyRepositoryContent
if ( !groupDir.exists() )
{
- throw new ContentNotFoundException( "Unable to get versions using a non-existant groupId directory: "
- + groupDir.getAbsolutePath() );
+ throw new ContentNotFoundException(
+ "Unable to get versions using a non-existant groupId directory: " + groupDir.getAbsolutePath() );
}
if ( !groupDir.isDirectory() )
{
- throw new ContentNotFoundException( "Unable to get versions using a non-directory: "
- + groupDir.getAbsolutePath() );
+ throw new ContentNotFoundException(
+ "Unable to get versions using a non-directory: " + groupDir.getAbsolutePath() );
}
Set<String> foundVersions = new HashSet<String>();
@@ -322,7 +321,7 @@ public class ManagedLegacyRepositoryContent
/**
* Convert a path to an artifact reference.
- *
+ *
* @param path the path to convert. (relative or full location path)
* @throws LayoutException if the path cannot be converted to an artifact reference.
*/
@@ -337,7 +336,7 @@ public class ManagedLegacyRepositoryContent
return super.toArtifactReference( path );
}
-
+
public File toFile( ArchivaArtifact reference )
{
return new File( repository.getLocation(), toPath( reference ) );
@@ -454,7 +453,7 @@ public class ManagedLegacyRepositoryContent
}
}
}
-
+
public void setFileTypes( FileTypes fileTypes )
{
this.filetypes = fileTypes;
@@ -465,4 +464,10 @@ public class ManagedLegacyRepositoryContent
{
// TODO implements for legacy ??
}
+
+ public void deleteGroupId( String groupId )
+ throws ContentNotFoundException
+ {
+ // TODO implements for legacy ??
+ }
}