Author: olamy
Date: Mon Mar 24 01:37:12 2014
New Revision: 1580694
URL: http://svn.apache.org/r1580694
Log:
use directly query filtering
Modified:
archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
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=1580694&r1=1580693&r2=1580694&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:37:12 2014
@@ -1688,7 +1688,7 @@ public class CassandraMetadataRepository
}
- protected ArtifactMetadata mapArtifactMetadataLongColumnSlice(
ColumnSlice<String,Long> columnSlice )
+ protected ArtifactMetadata mapArtifactMetadataLongColumnSlice(
ColumnSlice<String, Long> columnSlice )
{
ArtifactMetadata artifactMetadata = new ArtifactMetadata();
artifactMetadata.setNamespace( getAsStringValue( columnSlice,
"namespaceId" ) );
@@ -1709,7 +1709,7 @@ public class CassandraMetadataRepository
return artifactMetadata;
}
- protected ArtifactMetadata mapArtifactMetadataStringColumnSlice(
ColumnSlice<String,String> columnSlice )
+ protected ArtifactMetadata mapArtifactMetadataStringColumnSlice(
ColumnSlice<String, String> columnSlice )
{
ArtifactMetadata artifactMetadata = new ArtifactMetadata();
artifactMetadata.setNamespace( getStringValue( columnSlice,
"namespaceId" ) );
@@ -1802,19 +1802,16 @@ public class CassandraMetadataRepository
.setColumnNames( "namespaceId", "size", "id", "fileLastModified",
"md5", "project", "projectVersion",
"repositoryName", "version", "whenGathered",
"sha1" ); //
- query = query.addEqualsExpression( "sha1", checksum );
+ query = query.addEqualsExpression( "sha1", checksum
).addEqualsExpression( "repositoryName", repositoryId );
QueryResult<OrderedRows<String, String, String>> result =
query.execute();
for ( Row<String, String, String> row : result.get() )
{
ColumnSlice<String, String> columnSlice = row.getColumnSlice();
- String repositoryName = getStringValue( columnSlice,
"repositoryName" );
- if ( StringUtils.equals( repositoryName, repositoryId ) )
- {
- artifactMetadataMap.put( row.getKey(),
mapArtifactMetadataStringColumnSlice( columnSlice ) );
- }
+ artifactMetadataMap.put( row.getKey(),
mapArtifactMetadataStringColumnSlice( columnSlice ) );
+
}
query = HFactory //
@@ -1823,19 +1820,16 @@ public class CassandraMetadataRepository
.setColumnNames( "namespaceId", "size", "id", "fileLastModified",
"md5", "project", "projectVersion",
"repositoryName", "version", "whenGathered",
"sha1" ); //
- query = query.addEqualsExpression( "md5", checksum );
+ query = query.addEqualsExpression( "md5", checksum
).addEqualsExpression( "repositoryName", repositoryId );
result = query.execute();
for ( Row<String, String, String> row : result.get() )
{
ColumnSlice<String, String> columnSlice = row.getColumnSlice();
- String repositoryName = getStringValue( columnSlice,
"repositoryName" );
- if ( StringUtils.equals( repositoryName, repositoryId ) )
- {
- artifactMetadataMap.put( row.getKey(),
mapArtifactMetadataStringColumnSlice( columnSlice ) );
- }
+ artifactMetadataMap.put( row.getKey(),
mapArtifactMetadataStringColumnSlice( columnSlice ) );
+
}
return artifactMetadataMap.values();
@@ -1922,36 +1916,33 @@ public class CassandraMetadataRepository
public List<ArtifactMetadata> getArtifacts( final String repositoryId )
throws MetadataRepositoryException
{
-/* final List<ArtifactMetadataModel> artifactMetadataModels = new
ArrayList<ArtifactMetadataModel>();
- // FIXME use cql query !
- getArtifactMetadataModelEntityManager().visitAll( new
Function<ArtifactMetadataModel, Boolean>()
- {
- @Override
- public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
- {
- if ( artifactMetadataModel != null )
- {
- if ( StringUtils.equals( repositoryId,
artifactMetadataModel.getRepositoryId() ) )
- {
- artifactMetadataModels.add( artifactMetadataModel );
- }
- }
+ Keyspace keyspace = cassandraArchivaManager.getKeyspace();
+ StringSerializer ss = StringSerializer.get();
- return Boolean.TRUE;
- }
- } );
+ // cql cannot run or in queries so running twice the query
+
+
+ RangeSlicesQuery<String, String, String> 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( "repositoryName", repositoryId );
- List<ArtifactMetadata> artifactMetadatas = new
ArrayList<ArtifactMetadata>( artifactMetadataModels.size() );
+ QueryResult<OrderedRows<String, String, String>> result =
query.execute();
+
+ List<ArtifactMetadata> artifactMetadatas = new
ArrayList<ArtifactMetadata>( result.get().getCount() );
- for ( ArtifactMetadataModel model : artifactMetadataModels )
+ for ( Row<String, String, String> row : result.get() )
{
- ArtifactMetadata artifactMetadata = getModelMapper().map( model,
ArtifactMetadata.class );
- populateFacets( artifactMetadata );
- artifactMetadatas.add( artifactMetadata );
+ ColumnSlice<String, String> columnSlice = row.getColumnSlice();
+
+ artifactMetadatas.add( mapArtifactMetadataStringColumnSlice(
columnSlice ) );
+
}
- return artifactMetadatas;*/
- return Collections.emptyList();
+ return artifactMetadatas;
}