Return-Path: X-Original-To: apmail-archiva-commits-archive@www.apache.org Delivered-To: apmail-archiva-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5C8B410E61 for ; Mon, 24 Mar 2014 01:37:07 +0000 (UTC) Received: (qmail 63286 invoked by uid 500); 24 Mar 2014 01:37:06 -0000 Delivered-To: apmail-archiva-commits-archive@archiva.apache.org Received: (qmail 63236 invoked by uid 500); 24 Mar 2014 01:37:06 -0000 Mailing-List: contact commits-help@archiva.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@archiva.apache.org Delivered-To: mailing list commits@archiva.apache.org Received: (qmail 63229 invoked by uid 99); 24 Mar 2014 01:37:06 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Mar 2014 01:37:06 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Mar 2014 01:37:02 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 6BD49238890D; Mon, 24 Mar 2014 01:36:40 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1580691 - in /archiva/trunk/archiva-modules: metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/ metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/ plugins/metadata-sto... Date: Mon, 24 Mar 2014 01:36:40 -0000 To: commits@archiva.apache.org From: olamy@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140324013640.6BD49238890D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: olamy Date: Mon Mar 24 01:36:39 2014 New Revision: 1580691 URL: http://svn.apache.org/r1580691 Log: fix checksum search cassandra search Modified: archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraArchivaManager.java archiva/trunk/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java 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=1580691&r1=1580690&r2=1580691&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 Mon Mar 24 01:36:39 2014 @@ -98,7 +98,7 @@ public interface MetadataRepository Collection getRepositories() throws MetadataRepositoryException; - List getArtifactsByChecksum( String repositoryId, String checksum ) + Collection getArtifactsByChecksum( String repositoryId, String checksum ) throws MetadataRepositoryException; void removeArtifact( String repositoryId, String namespace, String project, String version, String id ) Modified: archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java?rev=1580691&r1=1580690&r2=1580691&view=diff ============================================================================== --- archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java (original) +++ archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java Mon Mar 24 01:36:39 2014 @@ -1164,7 +1164,7 @@ public abstract class AbstractMetadataRe ArtifactMetadata artifact = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); - List artifactsByChecksum = repository.getArtifactsByChecksum( TEST_REPO_ID, "not checksum" ); + Collection artifactsByChecksum = repository.getArtifactsByChecksum( TEST_REPO_ID, "not checksum" ); assertEquals( Collections.emptyList(), artifactsByChecksum ); } Modified: archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java?rev=1580691&r1=1580690&r2=1580691&view=diff ============================================================================== --- archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java (original) +++ archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java Mon Mar 24 01:36:39 2014 @@ -723,7 +723,7 @@ public class CassandraMetadataRepository return projectMetadata; } - protected ProjectVersionMetadataModel map( ColumnSlice columnSlice ) + protected ProjectVersionMetadataModel mapProjectVersionMetadataModel( ColumnSlice columnSlice ) { ProjectVersionMetadataModel projectVersionMetadataModel = new ProjectVersionMetadataModel(); projectVersionMetadataModel.setId( getStringValue( columnSlice, "id" ) ); @@ -786,7 +786,8 @@ public class CassandraMetadataRepository boolean creation = true; if ( result.get().getCount() > 0 ) { - projectVersionMetadataModel = map( result.get().getList().get( 0 ).getColumnSlice() ); + projectVersionMetadataModel = + mapProjectVersionMetadataModel( result.get().getList().get( 0 ).getColumnSlice() ); creation = false; } else @@ -1675,27 +1676,11 @@ public class CassandraMetadataRepository for ( Row row : result.get() ) { ColumnSlice columnSlice = row.getColumnSlice(); - String repositoryName = - ss.fromByteBuffer( columnSlice.getColumnByName( "repositoryName" ).getValueBytes() ); + String repositoryName = getAsStringValue( columnSlice, "repositoryName" ); if ( StringUtils.equals( repositoryName, repositoryId ) ) { - ArtifactMetadata artifactMetadata = new ArtifactMetadata(); - artifactMetadata.setNamespace( getAsStringValue( columnSlice, "namespaceId" ) ); - artifactMetadata.setSize( getLongValue( columnSlice, "size" ) ); - artifactMetadata.setId( getAsStringValue( columnSlice, "id" ) ); - artifactMetadata.setFileLastModified( getLongValue( columnSlice, "fileLastModified" ) ); - artifactMetadata.setMd5( getAsStringValue( columnSlice, "md5" ) ); - artifactMetadata.setProject( getAsStringValue( columnSlice, "project" ) ); - artifactMetadata.setProjectVersion( getAsStringValue( columnSlice, "projectVersion" ) ); - artifactMetadata.setRepositoryId( repositoryName ); - artifactMetadata.setSha1( getAsStringValue( columnSlice, "sha1" ) ); - artifactMetadata.setVersion( getAsStringValue( columnSlice, "version" ) ); - Long whenGathered = getLongValue( columnSlice, "whenGathered" ); - if ( whenGathered != null ) - { - artifactMetadata.setWhenGathered( new Date( whenGathered ) ); - } - artifactMetadatas.add( artifactMetadata ); + + artifactMetadatas.add( mapArtifactMetadataLongColumnSlice( columnSlice ) ); } } @@ -1703,6 +1688,27 @@ public class CassandraMetadataRepository } + protected ArtifactMetadata mapArtifactMetadataLongColumnSlice( ColumnSlice columnSlice ) + { + ArtifactMetadata artifactMetadata = new ArtifactMetadata(); + artifactMetadata.setNamespace( getAsStringValue( columnSlice, "namespaceId" ) ); + artifactMetadata.setSize( getLongValue( columnSlice, "size" ) ); + artifactMetadata.setId( getAsStringValue( columnSlice, "id" ) ); + artifactMetadata.setFileLastModified( getLongValue( columnSlice, "fileLastModified" ) ); + artifactMetadata.setMd5( getAsStringValue( columnSlice, "md5" ) ); + artifactMetadata.setProject( getAsStringValue( columnSlice, "project" ) ); + artifactMetadata.setProjectVersion( getAsStringValue( columnSlice, "projectVersion" ) ); + artifactMetadata.setRepositoryId( getStringValue( columnSlice, "repositoryName" ) ); + artifactMetadata.setSha1( getAsStringValue( columnSlice, "sha1" ) ); + artifactMetadata.setVersion( getAsStringValue( columnSlice, "version" ) ); + Long whenGathered = getLongValue( columnSlice, "whenGathered" ); + if ( whenGathered != null ) + { + artifactMetadata.setWhenGathered( new Date( whenGathered ) ); + } + return artifactMetadata; + } + protected void populateFacets( final ArtifactMetadata artifactMetadata ) { /* final List metadataFacetModels = new ArrayList(); @@ -1760,55 +1766,61 @@ public class CassandraMetadataRepository } @Override - public List getArtifactsByChecksum( final String repositoryId, final String checksum ) + public Collection getArtifactsByChecksum( final String repositoryId, final String checksum ) throws MetadataRepositoryException { -/* final List artifactMetadataModels = new ArrayList(); + Keyspace keyspace = cassandraArchivaManager.getKeyspace(); + StringSerializer ss = StringSerializer.get(); - if ( logger.isDebugEnabled() ) - { - logger.debug( "all ArtifactMetadataModel: {}", getArtifactMetadataModelEntityManager().getAll() ); - } + // cql cannot run or in queries so running twice the query + Map artifactMetadataMap = new HashMap(); - // FIXME cql query - getArtifactMetadataModelEntityManager().visitAll( new Function() + RangeSlicesQuery query = HFactory // + .createRangeSlicesQuery( keyspace, ss, ss, ss ) // + .setColumnFamily( cassandraArchivaManager.getArtifactMetadataModelFamilyName() ) // + .setColumnNames( "namespaceId", "size", "id", "fileLastModified", "md5", "project", "projectVersion", + "repositoryName", "version", "whenGathered", "sha1" ); // + + query = query.addEqualsExpression( "sha1", checksum ); + + QueryResult> result = query.execute(); + + for ( Row row : result.get() ) { - @Override - public Boolean apply( ArtifactMetadataModel artifactMetadataModel ) + ColumnSlice columnSlice = row.getColumnSlice(); + String repositoryName = getStringValue( columnSlice, "repositoryName" ); + if ( StringUtils.equals( repositoryName, repositoryId ) ) { - if ( artifactMetadataModel != null ) - { - if ( StringUtils.equals( artifactMetadataModel.getRepositoryId(), repositoryId ) - && artifactMetadataModel.getNamespace() != null && - artifactMetadataModel.getProject() != null && artifactMetadataModel.getId() != null ) - { - if ( StringUtils.equals( checksum, artifactMetadataModel.getMd5() ) || StringUtils.equals( - checksum, artifactMetadataModel.getSha1() ) ) - { - artifactMetadataModels.add( artifactMetadataModel ); - } - } - } - return Boolean.TRUE; + artifactMetadataMap.put( row.getKey(), mapArtifactMetadataLongColumnSlice( columnSlice ) ); } - } ); - List artifactMetadatas = new ArrayList( artifactMetadataModels.size() ); + } - for ( ArtifactMetadataModel model : artifactMetadataModels ) + query = HFactory // + .createRangeSlicesQuery( keyspace, ss, ss, ss ) // + .setColumnFamily( cassandraArchivaManager.getArtifactMetadataModelFamilyName() ) // + .setColumnNames( "namespaceId", "size", "id", "fileLastModified", "md5", "project", "projectVersion", + "repositoryName", "version", "whenGathered", "sha1" ); // + + query = query.addEqualsExpression( "md5", checksum ); + + result = query.execute(); + + for ( Row row : result.get() ) { - ArtifactMetadata artifactMetadata = getModelMapper().map( model, ArtifactMetadata.class ); - populateFacets( artifactMetadata ); - artifactMetadatas.add( artifactMetadata ); - } + ColumnSlice columnSlice = row.getColumnSlice(); + String repositoryName = getStringValue( columnSlice, "repositoryName" ); + if ( StringUtils.equals( repositoryName, repositoryId ) ) + { - logger.debug( "getArtifactsByChecksum repositoryId: {}, checksum: {}, artifactMetadatas: {}", repositoryId, - checksum, artifactMetadatas ); + artifactMetadataMap.put( row.getKey(), mapArtifactMetadataLongColumnSlice( columnSlice ) ); + } + } - return artifactMetadatas;*/ - return Collections.emptyList(); + return artifactMetadataMap.values(); } + @Override public void removeArtifact( final String repositoryId, final String namespace, final String project, final String version, final String id ) Modified: archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraArchivaManager.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraArchivaManager.java?rev=1580691&r1=1580690&r2=1580691&view=diff ============================================================================== --- archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraArchivaManager.java (original) +++ archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraArchivaManager.java Mon Mar 24 01:36:39 2014 @@ -288,6 +288,19 @@ public class DefaultCassandraArchivaMana whenGatheredColumn.setValidationClass( ComparatorType.LONGTYPE.getClassName() ); artifactMetadataModel.addColumnDefinition( whenGatheredColumn ); + BasicColumnDefinition sha1Column = new BasicColumnDefinition(); + sha1Column.setName( StringSerializer.get().toByteBuffer( "sha1" ) ); + sha1Column.setIndexName( "sha1" ); + sha1Column.setIndexType( ColumnIndexType.KEYS ); + sha1Column.setValidationClass( ComparatorType.UTF8TYPE.getClassName() ); + artifactMetadataModel.addColumnDefinition( sha1Column ); + + BasicColumnDefinition md5Column = new BasicColumnDefinition(); + md5Column.setName( StringSerializer.get().toByteBuffer( "md5" ) ); + md5Column.setIndexName( "md5" ); + md5Column.setIndexType( ColumnIndexType.KEYS ); + md5Column.setValidationClass( ComparatorType.UTF8TYPE.getClassName() ); + artifactMetadataModel.addColumnDefinition( md5Column ); } Modified: archiva/trunk/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java?rev=1580691&r1=1580690&r2=1580691&view=diff ============================================================================== --- archiva/trunk/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java (original) +++ archiva/trunk/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java Mon Mar 24 01:36:39 2014 @@ -49,6 +49,7 @@ import javax.inject.Named; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.List; @@ -158,7 +159,7 @@ public class DuplicateArtifactsConsumer MetadataRepository metadataRepository = repositorySession.getRepository(); - List results; + Collection results; try { results = metadataRepository.getArtifactsByChecksum( repoId, checksumSha1 );