diff options
author | Olivier Lamy <olamy@apache.org> | 2014-03-21 04:57:15 +0000 |
---|---|---|
committer | Olivier Lamy <olamy@apache.org> | 2014-03-21 04:57:15 +0000 |
commit | 8c88e1f44625e482df2b0c3202dd5b9b383aa749 (patch) | |
tree | d2b7509161242a27a0e2177d767c168577d95b81 | |
parent | 269ede5bf074376a507385bba990255624b811a0 (diff) | |
download | archiva-8c88e1f44625e482df2b0c3202dd5b9b383aa749.tar.gz archiva-8c88e1f44625e482df2b0c3202dd5b9b383aa749.zip |
fix project deletion
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1579883 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java | 119 |
1 files changed, 51 insertions, 68 deletions
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java index 0871bc85c..a2447893f 100644 --- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java +++ b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java @@ -21,7 +21,6 @@ package org.apache.archiva.metadata.repository.cassandra; import me.prettyprint.cassandra.model.CqlQuery; import me.prettyprint.cassandra.model.CqlRows; -import me.prettyprint.cassandra.serializers.LongSerializer; import me.prettyprint.cassandra.serializers.StringSerializer; import me.prettyprint.cassandra.service.template.ColumnFamilyTemplate; import me.prettyprint.cassandra.service.template.ColumnFamilyUpdater; @@ -138,11 +137,12 @@ public class CassandraMetadataRepository public Repository getOrCreateRepository( String repositoryId ) throws MetadataRepositoryException { + String cf = cassandraArchivaManager.getRepositoryFamilyName(); Keyspace keyspace = cassandraArchivaManager.getKeyspace(); QueryResult<OrderedRows<String, String, String>> result = HFactory // .createRangeSlicesQuery( keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get() ) // - .setColumnFamily( cassandraArchivaManager.getRepositoryFamilyName() ) // + .setColumnFamily( cf ) // .setColumnNames( "repositoryName" ) // .addEqualsExpression( "repositoryName", repositoryId ) // .execute(); @@ -156,7 +156,7 @@ public class CassandraMetadataRepository { MutationResult mutationResult = HFactory.createMutator( keyspace, StringSerializer.get() ) // .addInsertion( repositoryId, // - cassandraArchivaManager.getRepositoryFamilyName(), // + cf, // CassandraUtils.column( "repositoryName", repository.getName() ) ) // .execute(); return repository; @@ -210,14 +210,15 @@ public class CassandraMetadataRepository Namespace namespace = getNamespace( repositoryId, namespaceId ); if ( namespace == null ) { + String cf = cassandraArchivaManager.getNamespaceFamilyName(); namespace = new Namespace( namespaceId, repository ); HFactory.createMutator( keyspace, StringSerializer.get() ) // values .addInsertion( key, // - cassandraArchivaManager.getNamespaceFamilyName(), // + cf, // CassandraUtils.column( "name", namespace.getName() ) ) // .addInsertion( key, // - cassandraArchivaManager.getNamespaceFamilyName(), // + cf, // CassandraUtils.column( "repositoryName", repository.getName() ) ) // .execute(); } @@ -557,8 +558,6 @@ public class CassandraMetadataRepository .addEqualsExpression( "projectId", projectMetadata.getId() ) // .execute(); - - // project exists ? if yes return nothing to update here if ( result.get().getCount() > 0 ) { @@ -571,16 +570,17 @@ public class CassandraMetadataRepository String key = new Project.KeyBuilder().withProjectId( projectMetadata.getId() ).withNamespace( namespace ).build(); + String cf = cassandraArchivaManager.getProjectFamilyName(); projectTemplate.createMutator() // values .addInsertion( key, // - cassandraArchivaManager.getProjectFamilyName(), // + cf, // CassandraUtils.column( "projectId", projectMetadata.getId() ) ) // .addInsertion( key, // - cassandraArchivaManager.getProjectFamilyName(), // + cf, // CassandraUtils.column( "repositoryName", repositoryId ) ) // .addInsertion( key, // - cassandraArchivaManager.getProjectFamilyName(), // + cf, // CassandraUtils.column( "namespaceId", projectMetadata.getNamespace() ) )// .execute(); } @@ -618,17 +618,39 @@ public class CassandraMetadataRepository public void removeProject( final String repositoryId, final String namespaceId, final String projectId ) throws MetadataRepositoryException { + Keyspace keyspace = cassandraArchivaManager.getKeyspace(); String key = new Project.KeyBuilder() // .withProjectId( projectId ) // .withNamespace( new Namespace( namespaceId, new Repository( repositoryId ) ) ) // .build(); - + /* HFactory.createMutator( cassandraArchivaManager.getKeyspace(), new StringSerializer() ) // .addDeletion( key, cassandraArchivaManager.getProjectFamilyName() ) // .execute(); + */ + this.projectTemplate.deleteRow( key ); - // TODO finish linked data to delete + QueryResult<OrderedRows<String, String, String>> result = HFactory // + .createRangeSlicesQuery( keyspace, // + StringSerializer.get(), // + StringSerializer.get(), // + StringSerializer.get() ) // + .setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataModelFamilyName() ) // + .setColumnNames( "id" ) // + .addEqualsExpression( "repositoryName", repositoryId ) // + .addEqualsExpression( "namespaceId", namespaceId ) // + .addEqualsExpression( "projectId", projectId ) // + .execute(); + + + + for (Row<String,String,String> row : result.get()) + { + this.projectVersionMetadataModelTemplate.deleteRow( row.getKey() ); + } + + // TODO finish linked data to delete metadata /* // cleanup ArtifactMetadataModel final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>(); @@ -653,46 +675,7 @@ public class CassandraMetadataRepository getArtifactMetadataModelEntityManager().remove( artifactMetadataModels ); - Namespace namespace = new Namespace( namespaceId, new Repository( repositoryId ) ); - - final List<ProjectVersionMetadataModel> projectVersionMetadataModels = - new ArrayList<ProjectVersionMetadataModel>(); - - getProjectVersionMetadataModelEntityManager().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() ) - { - getProjectVersionMetadataModelEntityManager().remove( projectVersionMetadataModels ); - } - - String key = new Project.KeyBuilder().withNamespace( namespace ).withProjectId( projectId ).build(); - - Project project = getProjectEntityManager().get( key ); - if ( project == null ) - { - logger.debug( "removeProject notfound" ); - return; - } - logger.debug( "removeProject {}", project ); - - getProjectEntityManager().remove( project );*/ + */ } @Override @@ -796,7 +779,7 @@ public class CassandraMetadataRepository if ( namespace == null ) { - namespace = updateOrAddNamespace( repositoryId, namespaceId ); + updateOrAddNamespace( repositoryId, namespaceId ); } if ( getProject( repositoryId, namespaceId, projectId ) == null ) @@ -1021,19 +1004,19 @@ public class CassandraMetadataRepository { String cf = this.cassandraArchivaManager.getArtifactMetadataModelFamilyName(); // create - this.artifactMetadataTemplate.createMutator().addInsertion( key, // - cf, // - column( "id", artifactMeta.getId() ) )// + this.artifactMetadataTemplate.createMutator() // + .addInsertion( key, // + cf, // + column( "id", artifactMeta.getId() ) )// .addInsertion( key, // cf, // column( "repositoryName", repositoryId ) ) // .addInsertion( key, // cf, // - column( "namespaceId", namespaceId ) ).addInsertion( key, // - cf, // - column( "project", - artifactMeta.getProject() ) - ) // + column( "namespaceId", namespaceId ) ) // + .addInsertion( key, // + cf, // + column( "project", artifactMeta.getProject() ) ) // .addInsertion( key, // cf, // column( "projectVersion", artifactMeta.getProjectVersion() ) ) // @@ -1551,15 +1534,15 @@ public class CassandraMetadataRepository .execute(); */ StringSerializer ss = StringSerializer.get(); - CqlQuery<String,String,String> cqlQuery = new CqlQuery<String,String,String>(keyspace, ss, ss, ss); - cqlQuery.setQuery("select * from " + cassandraArchivaManager.getArtifactMetadataModelFamilyName() // - + " where 'whenGathered' >= " + startTime.getTime() // - + " and 'whenGathered' <= " + endTime.getTime() // - + " and respositoryName = '" + repositoryId + "'"); - QueryResult<CqlRows<String,String,String>> result = cqlQuery.execute(); + CqlQuery<String, String, String> cqlQuery = new CqlQuery<String, String, String>( keyspace, ss, ss, ss ); + cqlQuery.setQuery( "select * from " + cassandraArchivaManager.getArtifactMetadataModelFamilyName() // + + " where 'whenGathered' >= " + startTime.getTime() // + + " and 'whenGathered' <= " + endTime.getTime() // + + " and respositoryName = '" + repositoryId + "'" ); + QueryResult<CqlRows<String, String, String>> result = cqlQuery.execute(); List<String> keys = new ArrayList<String>( result.get().getCount() ); - for (Row<String,String,String> row : result.get()) + for ( Row<String, String, String> row : result.get() ) { keys.add( row.getKey() ); } |