Author: olamy
Date: Tue May 14 22:34:48 2013
New Revision: 1482629

URL: http://svn.apache.org/r1482629
Log:
commit test for share issue with Kundera folks

Modified:
    archiva/sandbox/trunk/metadata-store-cassandra/pom.xml
    
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/CassandraMetadataRepository.java
    
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/model/Namespace.java
    
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/model/Repository.java
    
archiva/sandbox/trunk/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/jpa/RepositoriesNamespaceTest.java

Modified: archiva/sandbox/trunk/metadata-store-cassandra/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/pom.xml?rev=1482629&r1=1482628&r2=1482629&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/pom.xml (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/pom.xml Tue May 14 22:34:48 
2013
@@ -89,6 +89,18 @@
     </dependency>
 
     <dependency>
+      <groupId>com.alvazan</groupId>
+      <artifactId>playorm</artifactId>
+      <version>1.5</version>
+      <exclusions>
+        <exclusion>
+          <groupId>stax</groupId>
+          <artifactId>stax-api</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-jcl</artifactId>
     </dependency>

Modified: 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/CassandraMetadataRepository.java
URL: 
http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/CassandraMetadataRepository.java?rev=1482629&r1=1482628&r2=1482629&view=diff
==============================================================================
--- 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/CassandraMetadataRepository.java
 (original)
+++ 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/CassandraMetadataRepository.java
 Tue May 14 22:34:48 2013
@@ -31,13 +31,17 @@ import org.apache.archiva.metadata.repos
 import org.apache.archiva.metadata.repository.MetadataResolutionException;
 import org.apache.archiva.metadata.repository.jpa.model.Namespace;
 import org.apache.archiva.metadata.repository.jpa.model.Repository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
 import javax.persistence.EntityManager;
 import javax.persistence.Persistence;
 import javax.persistence.TypedQuery;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -50,6 +54,8 @@ public class CassandraMetadataRepository
     implements MetadataRepository
 {
 
+    private Logger logger = LoggerFactory.getLogger( getClass() );
+
     private EntityManager entityManager;
 
     private ArchivaConfiguration configuration;
@@ -76,7 +82,7 @@ public class CassandraMetadataRepository
 
             Namespace namespace = new Namespace( namespaceId );
             namespace.setRepository( repository );
-            repository.getNamespaces().add( namespace );
+            //repository.getNamespaces().add( namespace );
             this.entityManager.persist( repository );
             this.entityManager.persist( namespace );
         }
@@ -87,12 +93,14 @@ public class CassandraMetadataRepository
             namespace.setRepository( repository );
             entityManager.persist( namespace );
             // contains the namespace ?
+            /*
             if ( !repository.getNamespaces().contains( namespace ) )
             {
                 repository.getNamespaces().add( namespace );
                 entityManager.merge( repository );
                 entityManager.persist( namespace );
             }
+            */
         }
     }
 
@@ -108,11 +116,35 @@ public class CassandraMetadataRepository
 
         Namespace n = typedQuery.getSingleResult();
 
-        if ( n != null )
-        {
+        this.entityManager.remove( n );
+    }
+
+    @Override
+    public void removeRepository( String repositoryId )
+        throws MetadataRepositoryException
+    {
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
 
+    @Override
+    public Collection<String> getRepositories()
+        throws MetadataRepositoryException
+    {
+        logger.debug( "getRepositories" );
+        TypedQuery<Repository> typedQuery = entityManager.createQuery( "select 
r from Repository r", Repository.class );
+        List<Repository> repositories = typedQuery.getResultList();
+        if ( repositories == null )
+        {
+            return Collections.emptyList();
         }
-        this.entityManager.remove( n );
+        List<String> repoIds = new ArrayList<String>( repositories.size() );
+        for ( Repository repository : repositories )
+        {
+            repoIds.add( repository.getName() );
+        }
+        logger.debug( "getRepositories found: {}", repoIds );
+        return repoIds;
+
     }
 
     @Override
@@ -130,6 +162,33 @@ public class CassandraMetadataRepository
     }
 
 
+    public List<String> getNamespaces( String repoId )
+        throws MetadataResolutionException
+    {
+        logger.debug( "getNamespaces for repository '{}'", repoId );
+        //TypedQuery<Repository> typedQuery =
+        //    entityManager.createQuery( "select n from Namespace n where 
n.repository_id=:id", Namespace.class );
+
+        //List<Repository> namespaces = typedQuery.setParameter( "id", repoId 
).getResultList();
+
+        Repository repository = entityManager.find( Repository.class, repoId );
+
+        if ( repository == null || repository.getNamespaces().isEmpty())
+        {
+            return Collections.emptyList();
+        }
+        List<String> namespaceIds = new ArrayList<String>( 
repository.getNamespaces().size() );
+
+        for ( Namespace n : repository.getNamespaces() )
+        {
+            namespaceIds.add( n.getName() );
+        }
+
+        logger.debug( "getNamespaces for repository '{}' found {}", repoId, 
namespaceIds.size() );
+        return namespaceIds;
+    }
+
+
     @Override
     public void updateProject( String repositoryId, ProjectMetadata project )
         throws MetadataRepositoryException
@@ -203,13 +262,6 @@ public class CassandraMetadataRepository
     }
 
     @Override
-    public Collection<String> getRepositories()
-        throws MetadataRepositoryException
-    {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
-    }
-
-    @Override
     public List<ArtifactMetadata> getArtifactsByChecksum( String repositoryId, 
String checksum )
         throws MetadataRepositoryException
     {
@@ -238,13 +290,6 @@ public class CassandraMetadataRepository
         //To change body of implemented methods use File | Settings | File 
Templates.
     }
 
-    @Override
-    public void removeRepository( String repositoryId )
-        throws MetadataRepositoryException
-    {
-        //To change body of implemented methods use File | Settings | File 
Templates.
-    }
-
 
     @Override
     public List<ArtifactMetadata> getArtifacts( String repositoryId )

Modified: 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/model/Namespace.java
URL: 
http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/model/Namespace.java?rev=1482629&r1=1482628&r2=1482629&view=diff
==============================================================================
--- 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/model/Namespace.java
 (original)
+++ 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/model/Namespace.java
 Tue May 14 22:34:48 2013
@@ -19,6 +19,10 @@ package org.apache.archiva.metadata.repo
  * under the License.
  */
 
+import com.alvazan.orm.api.base.anno.NoSqlId;
+import com.alvazan.orm.api.base.anno.NoSqlIndexed;
+import com.alvazan.orm.api.base.anno.NoSqlManyToOne;
+
 import javax.persistence.Basic;
 import javax.persistence.CascadeType;
 import javax.persistence.Column;
@@ -47,15 +51,17 @@ public class Namespace
     private static final long serialVersionUID = 1L;
 
     @Id
-    //@GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "namespace_id")
+    @NoSqlId
+    @Column(name = "id")
     private String id;
 
-    @Column(name = "NAME")
+    @Column(name = "name")
+    @NoSqlIndexed
     private String name;
 
-    @ManyToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
+    @ManyToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, 
targetEntity = Repository.class)
     @JoinColumn(name = "repository_id")
+    @NoSqlManyToOne(columnName = "repository_id")
     private Repository repository;
 
 
@@ -64,6 +70,7 @@ public class Namespace
         // no op
     }
 
+
     public Namespace( String id )
     {
         this.id = id;

Modified: 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/model/Repository.java
URL: 
http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/model/Repository.java?rev=1482629&r1=1482628&r2=1482629&view=diff
==============================================================================
--- 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/model/Repository.java
 (original)
+++ 
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/jpa/model/Repository.java
 Tue May 14 22:34:48 2013
@@ -19,6 +19,10 @@ package org.apache.archiva.metadata.repo
  * under the License.
  */
 
+import com.alvazan.orm.api.base.anno.NoSqlId;
+import com.alvazan.orm.api.base.anno.NoSqlIndexed;
+import com.alvazan.orm.api.base.anno.NoSqlOneToMany;
+
 import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -48,14 +52,17 @@ public class Repository
     private static final long serialVersionUID = 1L;
 
     @Id
-    //@GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column( name = "repository_id" )
+    @NoSqlId
+    @Column( name = "id" )
     private String id;
 
     @Column(name = "name")
+    @NoSqlIndexed
     private String name;
 
-    @OneToMany( fetch = FetchType.EAGER, mappedBy = "repository" )
+    @OneToMany( fetch = FetchType.EAGER, mappedBy = "namespace", targetEntity 
= Namespace.class)
+    @JoinColumn(name = "repository_id",table = "namespace")
+    @NoSqlOneToMany(columnName = "repository_id")
     private List<Namespace> namespaces = new ArrayList<Namespace>();
 
     public Repository()
@@ -89,6 +96,7 @@ public class Repository
         this.name = name;
     }
 
+
     public List<Namespace> getNamespaces()
     {
         if ( this.namespaces == null )
@@ -138,7 +146,7 @@ public class Repository
         final StringBuilder sb = new StringBuilder( "Repository{" );
         sb.append( "id='" ).append( id ).append( '\'' );
         sb.append( ", name='" ).append( name ).append( '\'' );
-        sb.append( ", namespaces=" ).append( namespaces );
+        //sb.append( ", namespaces=" ).append( namespaces );
         sb.append( '}' );
         return sb.toString();
     }

Modified: 
archiva/sandbox/trunk/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/jpa/RepositoriesNamespaceTest.java
URL: 
http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/jpa/RepositoriesNamespaceTest.java?rev=1482629&r1=1482628&r2=1482629&view=diff
==============================================================================
--- 
archiva/sandbox/trunk/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/jpa/RepositoriesNamespaceTest.java
 (original)
+++ 
archiva/sandbox/trunk/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/jpa/RepositoriesNamespaceTest.java
 Tue May 14 22:34:48 2013
@@ -22,6 +22,7 @@ package org.apache.archiva.metadata.repo
 import org.apache.archiva.metadata.repository.jpa.model.Namespace;
 import org.apache.archiva.metadata.repository.jpa.model.Repository;
 import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
+import org.apache.cassandra.dht.BootStrapper;
 import org.fest.assertions.api.Assertions;
 import org.junit.After;
 import org.junit.Before;
@@ -59,11 +60,14 @@ public class RepositoriesNamespaceTest
 
     EntityManager em;
 
+    CassandraMetadataRepository cmr;
+
     @Before
     public void setup()
         throws Exception
     {
         em = archivaEntityManagerFactory.getEntityManager();
+        cmr = new CassandraMetadataRepository( null, null, em );
     }
 
     @After
@@ -74,75 +78,15 @@ public class RepositoriesNamespaceTest
         //emf.close();
     }
 
-    //@Test
-    @Ignore
-    public void quicktest()
-        throws Exception
-    {
-        try
-        {
-            em.clear();
-
-            Repository repoReleases = new Repository( "releases" );
-
-            em.persist( repoReleases );
-
-            Repository repoSnapshots = new Repository( "snapshots" );
-
-            em.persist( repoSnapshots );
-
-            Repository repositoryFromData = em.find( Repository.class, 
"releases" );
-
-            Assertions.assertThat( repositoryFromData ).isNotNull();
-            Assertions.assertThat( repositoryFromData.getName() ).isEqualTo( 
"releases" );
-
-            repositoryFromData = em.find( Repository.class, "snapshots" );
-
-            Assertions.assertThat( repositoryFromData ).isNotNull();
-            Assertions.assertThat( repositoryFromData.getId() ).isEqualTo( 
"snapshots" );
-
-            //em.clear();
-
-            TypedQuery<Repository> query = em.createQuery( "SELECT r FROM 
Repository r", Repository.class );
-
-            List<Repository> repositories = query.getResultList();
-
-            Assertions.assertThat( repositories 
).isNotNull().isNotEmpty().hasSize( 2 );
-
-            Namespace namespace = new Namespace( "org" );
-            namespace.setRepository( repoReleases );
-
-            repoReleases.getNamespaces().add( namespace );
-
-            em.persist( namespace );
-
-            em.persist( repoReleases );
-
-            repositoryFromData = em.find( Repository.class, "releases" );
-
-            Assertions.assertThat( repositoryFromData ).isNotNull();
-            Assertions.assertThat( repositoryFromData.getName() ).isEqualTo( 
"releases" );
-            //Assertions.assertThat( repositoryFromData.getNamespaces() 
).isNotNull().isNotEmpty().hasSize( 1 );
-
-            namespace = em.find( Namespace.class, "org" );
-            Assertions.assertThat( namespace ).isNotNull();
-            Assertions.assertThat( namespace.getRepository() ).isNotNull();
-
-        }
-        finally
-        {
-            clearReposAndNamespace();
-        }
-
-    }
 
     @Test
     public void testMetadataRepo()
         throws Exception
     {
+        //com.alvazan.orm.api.base.Bootstrap.create( null 
).createEntityManager().
         Repository r = null;
         Namespace n = null;
-        CassandraMetadataRepository cmr = new CassandraMetadataRepository( 
null, null, em );
+
         try
         {
 
@@ -151,7 +95,9 @@ public class RepositoriesNamespaceTest
             r = em.find( Repository.class, "release" );
 
             Assertions.assertThat( r ).isNotNull();
-            Assertions.assertThat( r.getNamespaces() ).isNotEmpty().hasSize( 1 
);
+
+            Assertions.assertThat( 
cmr.getRepositories()).isNotEmpty().hasSize( 1 );
+            Assertions.assertThat( cmr.getNamespaces( "release" ) 
).isNotEmpty().hasSize( 1 );
 
             n = em.find( Namespace.class, "org" );
 
@@ -163,7 +109,7 @@ public class RepositoriesNamespaceTest
             r = em.find( Repository.class, "release" );
 
             Assertions.assertThat( r ).isNotNull();
-            Assertions.assertThat( r.getNamespaces() ).isNotEmpty().hasSize( 2 
);
+            Assertions.assertThat( cmr.getNamespaces( "release" ) 
).isNotEmpty().hasSize( 2 );
 
         }
         finally


Reply via email to