Author: olamy
Date: Thu Sep 6 12:37:14 2012
New Revision: 1381575
URL: http://svn.apache.org/viewvc?rev=1381575&view=rev
Log:
add a method to remove namespace(groupId) in MetadataRepository
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
archiva/trunk/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepository.java
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java?rev=1381575&r1=1381574&r2=1381575&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
Thu Sep 6 12:37:14 2012
@@ -31,6 +31,7 @@ import org.apache.archiva.common.plexusb
import org.apache.archiva.common.utils.VersionComparator;
import org.apache.archiva.common.utils.VersionUtil;
import org.apache.archiva.maven2.metadata.MavenMetadataReader;
+import org.apache.archiva.maven2.model.Artifact;
import org.apache.archiva.metadata.model.ArtifactMetadata;
import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.archiva.metadata.repository.MetadataRepositoryException;
@@ -61,7 +62,6 @@ import org.apache.archiva.repository.met
import org.apache.archiva.repository.scanner.RepositoryScanStatistics;
import org.apache.archiva.repository.scanner.RepositoryScanner;
import org.apache.archiva.repository.scanner.RepositoryScannerException;
-import org.apache.archiva.maven2.model.Artifact;
import org.apache.archiva.rest.api.model.ArtifactTransferRequest;
import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
import org.apache.archiva.rest.api.services.RepositoriesService;
@@ -105,7 +105,7 @@ import java.util.TimeZone;
* @author Olivier Lamy
* @since 1.4-M1
*/
-@Service( "repositoriesService#rest" )
+@Service ( "repositoriesService#rest" )
public class DefaultRepositoriesService
extends AbstractRestService
implements RepositoriesService
@@ -113,11 +113,11 @@ public class DefaultRepositoriesService
private Logger log = LoggerFactory.getLogger( getClass() );
@Inject
- @Named( value = "archivaTaskScheduler#repository" )
+ @Named ( value = "archivaTaskScheduler#repository" )
private RepositoryArchivaTaskScheduler repositoryTaskScheduler;
@Inject
- @Named( value = "taskExecutor#indexing" )
+ @Named ( value = "taskExecutor#indexing" )
private ArchivaIndexingTaskExecutor archivaIndexingTaskExecutor;
@Inject
@@ -136,14 +136,14 @@ public class DefaultRepositoriesService
private RepositoryContentFactory repositoryFactory;
@Inject
- @Named( value = "archivaTaskScheduler#repository" )
+ @Named ( value = "archivaTaskScheduler#repository" )
private ArchivaTaskScheduler scheduler;
@Inject
private DownloadRemoteIndexScheduler downloadRemoteIndexScheduler;
@Inject
- @Named( value = "repositorySessionFactory" )
+ @Named ( value = "repositorySessionFactory" )
protected RepositorySessionFactory repositorySessionFactory;
@Inject
@@ -861,18 +861,35 @@ public class DefaultRepositoriesService
throw new ArchivaRestServiceException( "artifact.groupId cannot be
null", 400, null );
}
+ RepositorySession repositorySession =
repositorySessionFactory.createSession();
+
try
{
ManagedRepositoryContent repository =
repositoryFactory.getManagedRepositoryContent( repositoryId );
repository.deleteGroupId( groupId );
+ MetadataRepository metadataRepository =
repositorySession.getRepository();
+
+ metadataRepository.removeNamespace( repositoryId, groupId );
+
+ metadataRepository.save();
+ }
+ catch ( MetadataRepositoryException e )
+ {
+ log.error( e.getMessage(), e );
+ throw new ArchivaRestServiceException( "Repository exception: " +
e.getMessage(), 500, e );
}
catch ( RepositoryException e )
{
log.error( e.getMessage(), e );
throw new ArchivaRestServiceException( "Repository exception: " +
e.getMessage(), 500, e );
}
+ finally
+ {
+
+ repositorySession.close();
+ }
return true;
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java?rev=1381575&r1=1381574&r2=1381575&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
Thu Sep 6 12:37:14 2012
@@ -287,7 +287,7 @@ public class RepositoriesServiceTest
assertTrue( "directory not exists", directory.exists() );
RepositoriesService repositoriesService = getRepositoriesService(
authorizationHeader );
- repositoriesService.deleteGroupId( "org.apache.karaf.features",
SOURCE_REPO_ID );
+ repositoriesService.deleteGroupId( "org.apache.karaf",
SOURCE_REPO_ID );
assertFalse( "directory not exists", directory.exists() );
@@ -297,7 +297,13 @@ public class RepositoriesServiceTest
Assertions.assertThat( browseResult.getBrowseResultEntries()
).isNotNull().isEmpty();
- log.info( "browseResult: {}", browseResult );
+ browseResult = browseService.browseGroupId( "org.apache.karaf",
SOURCE_REPO_ID );
+
+ assertNotNull( browseResult );
+
+ Assertions.assertThat( browseResult.getBrowseResultEntries()
).isNotNull().isEmpty();
+
+ log.info( "browseResult empty: {}", browseResult );
}
finally
{
Modified:
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java?rev=1381575&r1=1381574&r2=1381575&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
(original)
+++
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
Thu Sep 6 12:37:14 2012
@@ -81,6 +81,7 @@ public interface MetadataRepository
/**
* used for deleting timestamped version of SNAPSHOT artifacts
+ *
* @param artifactMetadata the artifactMetadata with the timestamped
version (2.0-20120618.214135-2)
* @param baseVersion the base version of the snapshot (2.0-SNAPSHOT)
* @throws MetadataRepositoryException
@@ -110,6 +111,16 @@ public interface MetadataRepository
void removeRepository( String repositoryId )
throws MetadataRepositoryException;
+ /**
+ *
+ * @param repositoryId
+ * @param project
+ * @since 1.4-M3
+ * @throws MetadataRepositoryException
+ */
+ void removeNamespace( String repositoryId, String project )
+ throws MetadataRepositoryException;
+
List<ArtifactMetadata> getArtifacts( String repositoryId )
throws MetadataRepositoryException;
Modified:
archiva/trunk/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepository.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepository.java?rev=1381575&r1=1381574&r2=1381575&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepository.java
(original)
+++
archiva/trunk/archiva-modules/plugins/metadata-store-jcr/src/main/java/org/apache/archiva/metadata/repository/jcr/JcrMetadataRepository.java
Thu Sep 6 12:37:14 2012
@@ -476,6 +476,28 @@ public class JcrMetadataRepository
}
}
+ public void removeNamespace( String repositoryId, String projectId )
+ throws MetadataRepositoryException
+ {
+ try
+ {
+ Node root = getJcrSession().getRootNode();
+ String path = getNamespacePath( repositoryId, projectId );
+ if ( root.hasNode( path ) )
+ {
+ Node node = root.getNode( path );
+ if ( node.isNodeType( NAMESPACE_NODE_TYPE ) )
+ {
+ node.remove();
+ }
+ }
+ }
+ catch ( RepositoryException e )
+ {
+ throw new MetadataRepositoryException( e.getMessage(), e );
+ }
+ }
+
public void removeMetadataFacets( String repositoryId, String facetId )
throws MetadataRepositoryException
{