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