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