summaryrefslogtreecommitdiffstats
path: root/archiva-modules
diff options
context:
space:
mode:
authorOlivier Lamy <olamy@apache.org>2013-06-11 12:57:01 +0000
committerOlivier Lamy <olamy@apache.org>2013-06-11 12:57:01 +0000
commit51de2202989c9afdbbc480e3f1e4b4e7aa863540 (patch)
tree8d2da6dcfd8750fc499a2ee0dd186cb59f377e6f /archiva-modules
parentfe46c1491d89ddf36d5da3f2731075977d40b65b (diff)
downloadarchiva-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.java25
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 );
+ }
+
}