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 2014/03/24 02:37:12 UTC

svn commit: r1580694 - /archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java

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