]> source.dussan.org Git - archiva.git/commitdiff
fix deleting project version
authorOlivier Lamy <olamy@apache.org>
Mon, 24 Mar 2014 06:15:44 +0000 (06:15 +0000)
committerOlivier Lamy <olamy@apache.org>
Mon, 24 Mar 2014 06:15:44 +0000 (06:15 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1580762 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java

index 89f36b0e83401382b7107aee305ad221ce0250f5..62b3bf3be6ef9ac8e37b5c2f584e025d1d505962 100644 (file)
@@ -1778,46 +1778,33 @@ public class CassandraMetadataRepository
                                       final String projectVersion )
         throws MetadataRepositoryException
     {
-        /*
-        final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
 
-        // FIXME use cql query
+        String key = new ProjectVersionMetadataModel.KeyBuilder().withRepository( repoId ).withNamespace(
+            namespace ).withProjectId( projectId ).withId( projectVersion ).build();
 
-        getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
-        {
-            @Override
-            public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
-            {
-                if ( artifactMetadataModel != null )
-                {
-                    if ( StringUtils.equals( repoId, artifactMetadataModel.getRepositoryId() ) && StringUtils.equals(
-                        namespace, artifactMetadataModel.getNamespace() ) && StringUtils.equals( projectId,
-                                                                                                 artifactMetadataModel.getProject() )
-                        && StringUtils.equals( projectVersion, artifactMetadataModel.getProjectVersion() ) )
-                    {
-                        artifactMetadataModels.add( artifactMetadataModel );
-                    }
-                }
-                return Boolean.TRUE;
-            }
-        } );
+        this.projectVersionMetadataModelTemplate.deleteRow( key );
 
-        logger.debug( "removeProjectVersions:{}", artifactMetadataModels );
-        if ( artifactMetadataModels.isEmpty() )
-        {
-            return;
-        }
+        Keyspace keyspace = cassandraArchivaManager.getKeyspace();
 
-        getArtifactMetadataModelEntityManager().remove( artifactMetadataModels );
+        StringSerializer ss = StringSerializer.get();
 
-        String key = new ProjectVersionMetadataModel.KeyBuilder().withProjectId( projectId ).withId(
-            projectVersion ).withRepository( repoId ).withNamespace( namespace ).build();
+        RangeSlicesQuery<String, String, String> query = HFactory //
+            .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
+            .setColumnFamily( cassandraArchivaManager.getArtifactMetadataModelFamilyName() ) //
+            .setColumnNames( "namespaceId" ); //
 
-        ProjectVersionMetadataModel projectVersionMetadataModel = new ProjectVersionMetadataModel();
-        projectVersionMetadataModel.setRowId( key );
+        query = query.addEqualsExpression( "repositoryName", repoId ) //
+            .addEqualsExpression( "namespaceId", namespace ) //
+            .addEqualsExpression( "project", projectId ) //
+            .addEqualsExpression( "projectVersion", projectVersion );
+
+        QueryResult<OrderedRows<String,String,String>> result = query.execute();
+
+        for (Row<String,String,String> row : result.get())
+        {
+            this.artifactMetadataTemplate.deleteRow( row.getKey() );
+        }
 
-        getProjectVersionMetadataModelEntityManager().remove( projectVersionMetadataModel );
-        */
     }
 
     @Override