You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2013/06/04 14:46:55 UTC
svn commit: r1489418 - in
/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra:
CassandraMetadataRepository.java model/Project.java
Author: olamy
Date: Tue Jun 4 12:46:55 2013
New Revision: 1489418
URL: http://svn.apache.org/r1489418
Log:
fix removeProject
Modified:
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Project.java
Modified: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java?rev=1489418&r1=1489417&r2=1489418&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java Tue Jun 4 12:46:55 2013
@@ -639,7 +639,7 @@ public class CassandraMetadataRepository
}
@Override
- public void removeProject( final String repositoryId, final String namespace, final String projectId )
+ public void removeProject( final String repositoryId, final String namespaceId, final String projectId )
throws MetadataRepositoryException
{
@@ -654,8 +654,8 @@ public class CassandraMetadataRepository
if ( artifactMetadataModel != null )
{
if ( StringUtils.equals( artifactMetadataModel.getRepositoryId(), repositoryId )
- && StringUtils.equals( artifactMetadataModel.getNamespace(), namespace ) && StringUtils.equals(
- artifactMetadataModel.getProject(), projectId ) )
+ && StringUtils.equals( artifactMetadataModel.getNamespace(), namespaceId )
+ && StringUtils.equals( artifactMetadataModel.getProject(), projectId ) )
{
artifactMetadataModels.add( artifactMetadataModel );
}
@@ -666,8 +666,37 @@ public class CassandraMetadataRepository
artifactMetadataModelEntityManager.remove( artifactMetadataModels );
- String key = new Project.KeyBuilder().withNamespace(
- new Namespace( namespace, new Repository( repositoryId ) ) ).withProjectId( projectId ).build();
+ Namespace namespace = new Namespace( namespaceId, new Repository( repositoryId ) );
+
+ final List<ProjectVersionMetadataModel> projectVersionMetadataModels =
+ new ArrayList<ProjectVersionMetadataModel>();
+
+ projectVersionMetadataModelEntityManager.visitAll( new Function<ProjectVersionMetadataModel, Boolean>()
+ {
+ @Override
+ public Boolean apply( ProjectVersionMetadataModel projectVersionMetadataModel )
+ {
+ if ( projectVersionMetadataModel != null )
+ {
+ if ( StringUtils.equals( repositoryId,
+ projectVersionMetadataModel.getNamespace().getRepository().getName() )
+ && StringUtils.equals( namespaceId, projectVersionMetadataModel.getNamespace().getName() )
+ && StringUtils.equals( projectId, projectVersionMetadataModel.getProjectId() ) )
+ {
+ projectVersionMetadataModels.add( projectVersionMetadataModel );
+ }
+ }
+ return Boolean.TRUE;
+ }
+ } );
+
+ if ( !projectVersionMetadataModels.isEmpty() )
+ {
+ projectVersionMetadataModelEntityManager.remove( projectVersionMetadataModels );
+ }
+
+ String key = new Project.KeyBuilder().withNamespace( namespace ).withProjectId( projectId ).build();
+
Project project = projectEntityManager.get( key );
if ( project == null )
{
@@ -675,6 +704,7 @@ public class CassandraMetadataRepository
return;
}
logger.debug( "removeProject {}", project );
+
projectEntityManager.remove( project );
}
Modified: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Project.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Project.java?rev=1489418&r1=1489417&r2=1489418&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Project.java (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/Project.java Tue Jun 4 12:46:55 2013
@@ -157,7 +157,7 @@ public class Project
public String build()
{
// FIXME add some controls
- return new Namespace.KeyBuilder().withNamespace( this.namespace ) + "-" + this.projectId;
+ return new Namespace.KeyBuilder().withNamespace( this.namespace ).build() + "-" + this.projectId;
}
}
}