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 2013/05/08 14:39:15 UTC
svn commit: r1480253 - in /archiva/sandbox/trunk/metadata-store-cassandra:
./ src/cassandra/ src/cassandra/cli/
src/main/java/org/apache/archiva/metadata/repository/jpa/model/
src/main/resources/META-INF/ src/test/filtered-resources/META-INF/
src/test/...
Author: olamy
Date: Wed May 8 12:39:15 2013
New Revision: 1480253
URL: http://svn.apache.org/r1480253
Log:
start working with Kundera
Added:
archiva/sandbox/trunk/metadata-store-cassandra/src/cassandra/
archiva/sandbox/trunk/metadata-store-cassandra/src/cassandra/cli/
archiva/sandbox/trunk/metadata-store-cassandra/src/cassandra/cli/load.script
Modified:
archiva/sandbox/trunk/metadata-store-cassandra/pom.xml
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/main/resources/META-INF/persistence.xml
archiva/sandbox/trunk/metadata-store-cassandra/src/test/filtered-resources/META-INF/spring-context.xml
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=1480253&r1=1480252&r2=1480253&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/pom.xml (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/pom.xml Wed May 8 12:39:15 2013
@@ -18,7 +18,8 @@
~ under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>plugins</artifactId>
@@ -28,6 +29,11 @@
<artifactId>metadata-store-jpa</artifactId>
<packaging>bundle</packaging>
<name>Archiva Core Plugins :: JPA Storage for Metadata</name>
+
+ <properties>
+ <log4j.version>2.0-beta6-SNAPSHOT</log4j.version>
+ </properties>
+
<dependencies>
<dependency>
<groupId>org.apache.archiva</groupId>
@@ -56,6 +62,11 @@
</exclusions>
</dependency>
<dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jpa_2.0_spec</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
<groupId>info.archinnov</groupId>
<artifactId>achilles</artifactId>
<version>1.7</version>
@@ -64,11 +75,46 @@
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.hectorclient</groupId>
+ <artifactId>hector-object-mapper</artifactId>
+ <version>3.1-08</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ </exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.hectorclient</groupId>
+ <artifactId>hector-core</artifactId>
+ <version>1.1-3</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.cassandra</groupId>
+ <artifactId>cassandra-thrift</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
<!-- FIXME -->
<!-- due to some instanceof in kundera it's mandatory -->
- <!--
+ <!-- -->
<dependency>
<groupId>com.impetus.client</groupId>
<artifactId>kundera-cassandra</artifactId>
@@ -82,19 +128,19 @@
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
</exclusion>
-
+ <!-- must be excluded
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</exclusion>
-
+ -->
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
- -->
+
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
@@ -116,10 +162,15 @@
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j</artifactId>
+ <artifactId>log4j-1.2-api</artifactId>
<version>${log4j.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>com.lmax</groupId>
+ <artifactId>disruptor</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
<testResources>
@@ -171,5 +222,4 @@
</plugins>
</build>
-
</project>
Added: archiva/sandbox/trunk/metadata-store-cassandra/src/cassandra/cli/load.script
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/cassandra/cli/load.script?rev=1480253&view=auto
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/cassandra/cli/load.script (added)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/cassandra/cli/load.script Wed May 8 12:39:15 2013
@@ -0,0 +1,6 @@
+create keyspace ArchivaKeySpace
+ with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy'
+ and strategy_options = {replication_factor:1};
+
+
+
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=1480253&r1=1480252&r2=1480253&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 Wed May 8 12:39:15 2013
@@ -1,5 +1,6 @@
package org.apache.archiva.metadata.repository.jpa.model;
+import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@@ -10,13 +11,19 @@ import java.io.Serializable;
* @author Olivier Lamy
*/
@Entity
-@Table( name = "namespaces", schema = "metadata@archiva" )
+@Table( name = "namespaces", schema = "ArchivaKeySpace@archiva")
public class Namespace
implements Serializable
{
+
+ private static final long serialVersionUID = 1L;
+
@Id
private String id;
+ @Column(name = "name")
+ private String name;
+
public Namespace()
{
// no op
@@ -25,6 +32,7 @@ public class Namespace
public Namespace( String id )
{
this.id = id;
+ this.name = id;
}
public String getId()
@@ -36,4 +44,14 @@ public class Namespace
{
this.id = id;
}
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
}
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=1480253&r1=1480252&r2=1480253&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 Wed May 8 12:39:15 2013
@@ -1,5 +1,6 @@
package org.apache.archiva.metadata.repository.jpa.model;
+import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
@@ -14,13 +15,19 @@ import java.util.List;
* @author Olivier Lamy
*/
@Entity
-@Table( name = "repositories", schema = "metadata@archiva" )
+@Table( name = "repositories", schema = "ArchivaKeySpace@archiva" )
public class Repository
implements Serializable
{
+
+ private static final long serialVersionUID = 1L;
+
@Id
private String id;
+ @Column(name = "name")
+ private String name;
+
@OneToMany( fetch = FetchType.EAGER )
private List<Namespace> namespaces = new ArrayList<Namespace>();
@@ -32,6 +39,7 @@ public class Repository
public Repository( String id )
{
this.id = id;
+ this.name = id;
}
public String getId()
@@ -44,6 +52,16 @@ public class Repository
this.id = id;
}
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+
public List<Namespace> getNamespaces()
{
return namespaces;
@@ -53,4 +71,6 @@ public class Repository
{
this.namespaces = namespaces;
}
+
+
}
Modified: archiva/sandbox/trunk/metadata-store-cassandra/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/resources/META-INF/persistence.xml?rev=1480253&r1=1480252&r2=1480253&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/main/resources/META-INF/persistence.xml (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/main/resources/META-INF/persistence.xml Wed May 8 12:39:15 2013
@@ -7,11 +7,12 @@
<properties>
<property name="kundera.nodes" value="localhost"/>
<property name="kundera.port" value="9160"/>
- <property name="kundera.keyspace" value="metadata"/>
+ <property name="kundera.keyspace" value="ArchivaKeySpace"/>
<property name="kundera.dialect" value="cassandra"/>
- <property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.pelops.PelopsClientFactory" />
-
- <property name="kundera.ddl.auto.prepare" value="update" />
+ <!--property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.pelops.PelopsClientFactory" /-->
+ <property name="kundera.ddl.auto.prepare" value="create" />
+ <property name="kundera.client.lookup.class"
+ value="com.impetus.client.cassandra.thrift.ThriftClientFactory" />
<!--
TODO enable caching
Modified: archiva/sandbox/trunk/metadata-store-cassandra/src/test/filtered-resources/META-INF/spring-context.xml
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/test/filtered-resources/META-INF/spring-context.xml?rev=1480253&r1=1480252&r2=1480253&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/test/filtered-resources/META-INF/spring-context.xml (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/test/filtered-resources/META-INF/spring-context.xml Wed May 8 12:39:15 2013
@@ -24,10 +24,10 @@
<bean id="achillesEntityManagerFactory" class="info.archinnov.achilles.integration.spring.ThriftEntityManagerFactoryBean"
init-method="initialize">
- <property name="entityPackages" value="my.package1,my.package2"/>
+ <property name="entityPackages" value="org.apache.archiva.metadata.repository.jpa.model"/>
<property name="cassandraHost" value="localhost:9160"/>
- <property name="clusterName" value="Test Cluster"/>
- <property name="keyspaceName" value="Test Keyspace"/>
+ <property name="clusterName" value="ArchivaCluster"/>
+ <property name="keyspaceName" value="ArchivaKeySpace"/>
<property name="forceColumnFamilyCreation" value="true" />
</bean>
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=1480253&r1=1480252&r2=1480253&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 Wed May 8 12:39:15 2013
@@ -1,6 +1,10 @@
package org.apache.archiva.metadata.repository.jpa;
-import info.archinnov.achilles.entity.manager.ThriftEntityManager;
+import me.prettyprint.cassandra.service.CassandraHostConfigurator;
+import me.prettyprint.hector.api.Cluster;
+import me.prettyprint.hector.api.Keyspace;
+import me.prettyprint.hector.api.factory.HFactory;
+import me.prettyprint.hom.EntityManagerImpl;
import org.apache.archiva.metadata.repository.jpa.model.Repository;
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
import org.fest.assertions.api.Assertions;
@@ -8,15 +12,16 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
-import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
-import java.util.Collection;
import java.util.List;
+import java.util.Properties;
/**
* @author Olivier Lamy
@@ -25,22 +30,34 @@ import java.util.List;
@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" } )
public class RepositoriesNamespaceTest
{
- @Inject
- private ThriftEntityManager em;
+
+ private static Logger LOGGER = LoggerFactory.getLogger( RepositoriesNamespaceTest.class );
+
+ //@Inject
+ //private ThriftEntityManager em;
+ //EntityManagerImpl em;
+ EntityManager em;
@Before
public void setup()
throws Exception
{
- //emf = Persistence.createEntityManagerFactory( "archiva" );
- //em = emf.createEntityManager();
+ LOGGER.info( "setup" );
+ //CassandraHostConfigurator hostConfigurator = new CassandraHostConfigurator( "localhost:9160" );
+ //Cluster cluster = HFactory.getOrCreateCluster( "ArchivaCluster", hostConfigurator );
+ //Keyspace keyspace = HFactory.createKeyspace( "ArchivaKeySpace", cluster );
+ //em = new EntityManagerImpl( keyspace, "org.apache.archiva.metadata.repository.jpa.model" );
+ em = Persistence.createEntityManagerFactory("archiva", new Properties( )).createEntityManager();
+
+ LOGGER.info( "end setup" );
+
}
@After
public void shutdown()
throws Exception
{
- em.close();
+ //em.close();
//emf.close();
}
@@ -56,12 +73,12 @@ public class RepositoriesNamespaceTest
em.persist( repo2 );
- em.flush();
+ //em.flush();
Repository repositoryFromData = em.find( Repository.class, "releases" );
Assertions.assertThat( repositoryFromData ).isNotNull();
- Assertions.assertThat( repositoryFromData.getId() ).isEqualTo( "releases" );
+ Assertions.assertThat( repositoryFromData.getName() ).isEqualTo( "releases" );
repositoryFromData = em.find( Repository.class, "snapshots" );