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/19 14:24:50 UTC
svn commit: r1484278 -
/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
Author: olamy
Date: Sun May 19 12:24:50 2013
New Revision: 1484278
URL: http://svn.apache.org/r1484278
Log:
test if table already exist before creation
Modified:
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
Modified: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java?rev=1484278&r1=1484277&r2=1484278&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java Sun May 19 12:24:50 2013
@@ -22,6 +22,7 @@ package org.apache.archiva.metadata.repo
import com.google.common.base.Function;
import com.netflix.astyanax.Keyspace;
import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
+import com.netflix.astyanax.connectionpool.exceptions.NotFoundException;
import com.netflix.astyanax.entitystore.DefaultEntityManager;
import com.netflix.astyanax.entitystore.EntityManager;
import org.apache.archiva.configuration.ArchivaConfiguration;
@@ -94,21 +95,49 @@ public class CassandraMetadataRepository
repositoryEntityManager =
new DefaultEntityManager.Builder<Repository, String>().withEntityType( Repository.class ).withKeyspace(
keyspace ).build();
-
- repositoryEntityManager.createStorage( null );
+ boolean exists = columnFamilyExists( "repository" );
+ // TODO very basic test we must test model change too
+ if ( !exists )
+ {
+ repositoryEntityManager.createStorage( null );
+ }
namespaceEntityManager =
new DefaultEntityManager.Builder<Namespace, String>().withEntityType( Namespace.class ).withKeyspace(
keyspace ).build();
- namespaceEntityManager.createStorage( null );
+ exists = columnFamilyExists( "namespace" );
+ if ( !exists )
+ {
+ namespaceEntityManager.createStorage( null );
+ }
}
catch ( PersistenceException e )
{
+ // FIXME report exception
+ logger.error( e.getMessage(), e );
+ }
+ catch ( ConnectionException e )
+ {
+ // FIXME report exception
logger.error( e.getMessage(), e );
}
}
+ private boolean columnFamilyExists( String columnFamilyName )
+ throws ConnectionException
+ {
+ try
+ {
+ Properties properties = keyspace.getColumnFamilyProperties( "repository" );
+ return true;
+ }
+ catch ( NotFoundException e )
+ {
+ return false;
+ }
+ }
+
public EntityManager<Repository, String> getRepositoryEntityManager()
{
return repositoryEntityManager;