diff options
author | Olivier Lamy <olamy@apache.org> | 2013-06-11 12:57:01 +0000 |
---|---|---|
committer | Olivier Lamy <olamy@apache.org> | 2013-06-11 12:57:01 +0000 |
commit | 51de2202989c9afdbbc480e3f1e4b4e7aa863540 (patch) | |
tree | 8d2da6dcfd8750fc499a2ee0dd186cb59f377e6f /archiva-modules | |
parent | fe46c1491d89ddf36d5da3f2731075977d40b65b (diff) | |
download | archiva-51de2202989c9afdbbc480e3f1e4b4e7aa863540.tar.gz archiva-51de2202989c9afdbbc480e3f1e4b4e7aa863540.zip |
do not create keyspace if exists
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1491771 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-modules')
-rw-r--r-- | archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraEntityManagerFactory.java | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraEntityManagerFactory.java b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraEntityManagerFactory.java index da24f178c..1e6418e36 100644 --- a/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraEntityManagerFactory.java +++ b/archiva-modules/plugins/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/DefaultCassandraEntityManagerFactory.java @@ -23,10 +23,12 @@ import com.google.common.collect.ImmutableMap; import com.netflix.astyanax.AstyanaxContext; import com.netflix.astyanax.Keyspace; import com.netflix.astyanax.connectionpool.NodeDiscoveryType; +import com.netflix.astyanax.connectionpool.exceptions.BadRequestException; import com.netflix.astyanax.connectionpool.exceptions.ConnectionException; import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl; import com.netflix.astyanax.connectionpool.impl.ConnectionPoolType; import com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor; +import com.netflix.astyanax.ddl.KeyspaceDefinition; import com.netflix.astyanax.impl.AstyanaxConfigurationImpl; import com.netflix.astyanax.thrift.ThriftFamilyFactory; import org.springframework.context.ApplicationContext; @@ -40,7 +42,7 @@ import javax.inject.Inject; * * @author Olivier Lamy */ -@Service("archivaEntityManagerFactory#cassandra") +@Service( "archivaEntityManagerFactory#cassandra" ) public class DefaultCassandraEntityManagerFactory implements CassandraEntityManagerFactory { @@ -82,7 +84,26 @@ public class DefaultCassandraEntityManagerFactory "1" ).build() ).put( "strategy_class", "SimpleStrategy" ).build(); - keyspace.createKeyspace( options ); + // test if the namespace already exists if exception or null create it + boolean keyspaceExists = false; + try + { + KeyspaceDefinition keyspaceDefinition = keyspace.describeKeyspace(); + if ( keyspaceDefinition != null ) + { + keyspaceExists = true; + } + + } + catch ( ConnectionException e ) + { + } + + if ( !keyspaceExists ) + { + keyspace.createKeyspace( options ); + } + } |