Author: olamy
Date: Wed Mar 26 06:01:32 2014
New Revision: 1581699

URL: http://svn.apache.org/r1581699
Log:
all tests passed with cassandra implementation: does not mean everyhting is 
really working but a good step :-)

Modified:
    
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/model/ProjectVersionMetadataModel.java

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=1581699&r1=1581698&r2=1581699&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
 Wed Mar 26 06:01:32 2014
@@ -837,10 +837,10 @@ public abstract class AbstractMetadataRe
         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, 
TEST_PROJECT_VERSION, artifact1 );
         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, 
TEST_PROJECT_VERSION, artifact2 );
 
-        List<String> versions = new ArrayList<String>(
-            repository.getArtifactVersions( TEST_REPO_ID, TEST_NAMESPACE, 
TEST_PROJECT, TEST_PROJECT_VERSION ) );
-        Collections.sort( versions );
-        assertEquals( Arrays.asList( version1, version2 ), versions );
+        Collection<String> versions =
+            repository.getArtifactVersions( TEST_REPO_ID, TEST_NAMESPACE, 
TEST_PROJECT, TEST_PROJECT_VERSION );
+
+        assertThat( versions ).isNotNull().isNotEmpty().contains( version1, 
version2 );
     }
 
     @Test
@@ -1235,8 +1235,8 @@ public abstract class AbstractMetadataRe
 
         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, 
TEST_PROJECT_VERSION, artifact );
 
-        assertEquals( Collections.singletonList( artifact ), new 
ArrayList<ArtifactMetadata>(
-            repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, 
TEST_PROJECT, TEST_PROJECT_VERSION ) ) );
+        assertThat( repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, 
TEST_PROJECT,
+                                             TEST_PROJECT_VERSION ) 
).containsExactly( artifact );
 
         repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, 
TEST_PROJECT_VERSION_2_0, artifact );
 

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=1581699&r1=1581698&r2=1581699&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
 Wed Mar 26 06:01:32 2014
@@ -853,8 +853,13 @@ public class CassandraMetadataRepository
         projectVersionMetadataModel.setLicenses( versionMetadata.getLicenses() 
);
 
         // we don't test of repository and namespace really exist !
-        String key = new 
ProjectVersionMetadataModel.KeyBuilder().withRepository( repositoryId 
).withNamespace(
-            namespaceId ).withProjectId( projectId ).withId( 
versionMetadata.getId() ).build();
+        String key = new ProjectVersionMetadataModel.KeyBuilder() //
+            .withRepository( repositoryId ) //
+            .withNamespace( namespaceId ) //
+            .withProjectId( projectId ) //
+            .withProjectVersion( versionMetadata.getVersion() ) //
+            .withVersion( versionMetadata.getId() ) //
+            .build();
 
         // FIXME nested objects to store!!!
         if ( creation )
@@ -1435,10 +1440,25 @@ public class CassandraMetadataRepository
             .withRepository( repositoryId ) //
             .withNamespace( namespace ) //
             .withProjectId( projectId ) //
-            .withId( artifactMeta.getId() ) //
+            .withProjectVersion( projectVersion ) //
+            .withVersion( artifactMeta.getId() ) //
             .build();
 
-        exists = this.projectVersionMetadataModelTemplate.isColumnsExist( key 
);
+        Keyspace keyspace = cassandraArchivaManager.getKeyspace();
+        StringSerializer ss = StringSerializer.get();
+
+        QueryResult<OrderedRows<String, String, String>> result = HFactory //
+            .createRangeSlicesQuery( keyspace, ss, ss, ss ) //
+            .setColumnFamily( 
cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) //
+            .setColumnNames( "version" ) //
+            .addEqualsExpression( "repositoryName", repositoryId ) //
+            .addEqualsExpression( "namespaceId", namespaceId ) //
+            .addEqualsExpression( "projectId", projectId ) //
+            .addEqualsExpression( "projectVersion", projectVersion ) //
+            .addEqualsExpression( "version", artifactMeta.getVersion() ) //
+            .execute();
+
+        exists = result.get().getCount() > 0;
 
         if ( !exists )
         {
@@ -1892,9 +1912,13 @@ public class CassandraMetadataRepository
 
         this.artifactMetadataTemplate.deleteRow( key );
 
-        key =
-            new ProjectVersionMetadataModel.KeyBuilder().withId( version 
).withRepository( repositoryId ).withNamespace(
-                namespace ).withProjectId( project ).build();
+        key = new ProjectVersionMetadataModel.KeyBuilder() //
+            .withRepository( repositoryId ) //
+            .withNamespace( namespace ) //
+            .withProjectId( project ) //
+            .withProjectVersion( version ) //
+            .withVersion( id ) //
+            .build();
 
         this.projectVersionMetadataModelTemplate.deleteRow( key );
     }

Modified: 
archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java?rev=1581699&r1=1581698&r2=1581699&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java
 (original)
+++ 
archiva/trunk/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java
 Wed Mar 26 06:01:32 2014
@@ -248,7 +248,6 @@ public class ProjectVersionMetadataModel
     }
 
 
-
     public static class KeyBuilder
     {
 
@@ -258,11 +257,13 @@ public class ProjectVersionMetadataModel
 
         private String projectId;
 
-        private String id;
+        private String projectVersion;
+
+        private String version;
 
         public KeyBuilder()
         {
-
+            // no op
         }
 
         public KeyBuilder withNamespace( Namespace namespace )
@@ -284,28 +285,29 @@ public class ProjectVersionMetadataModel
             return this;
         }
 
-        public KeyBuilder withRepository( Repository repository )
+        public KeyBuilder withProjectId( String projectId )
         {
-            this.repositoryName = repository.getName();
+            this.projectId = projectId;
             return this;
         }
 
-        public KeyBuilder withProjectId( String projectId )
+        public KeyBuilder withProjectVersion( String projectVersion )
         {
-            this.projectId = projectId;
+            this.projectVersion = projectVersion;
             return this;
         }
 
-        public KeyBuilder withId( String id )
+        public KeyBuilder withVersion( String version )
         {
-            this.id = id;
+            this.version = version;
             return this;
         }
 
         public String build()
         {
             // FIXME add some controls
-            return CassandraUtils.generateKey( this.repositoryName, 
this.namespace, this.projectId, this.id );
+            return CassandraUtils.generateKey( this.repositoryName, 
this.namespace, this.projectId, this.projectVersion,
+                                               this.version );
         }
     }
 }


Reply via email to