Author: [email protected]
Date: Mon Sep 26 11:06:17 2011
New Revision: 1414
Log:
[AMDATUCASSANDRA-92] Added getHectorCluster to the Hector PM API
Modified:
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/HectorCassandraPersistenceManager.java
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
Modified:
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/HectorCassandraPersistenceManager.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/HectorCassandraPersistenceManager.java
(original)
+++
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/HectorCassandraPersistenceManager.java
Mon Sep 26 11:06:17 2011
@@ -15,6 +15,7 @@
*/
package org.amdatu.cassandra.persistencemanager;
+import me.prettyprint.hector.api.Cluster;
import me.prettyprint.hector.api.Keyspace;
/**
@@ -30,4 +31,11 @@
* @return the Hector keyspace
*/
Keyspace getHectorKeyspace();
+
+ /**
+ * Returns the Cluster in which this Cassandra node runs. The Hector
Cluster is required for
+ * keyspace and ColumnFamily operations, provided by the HFactory API.
+ * @return the Hector Cluster
+ */
+ Cluster getHectorCluster();
}
Modified:
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
Mon Sep 26 11:06:17 2011
@@ -103,10 +103,7 @@
// Perform a classloader switch to prevent log4j trying to load
classes from the system classloader
// instead of the bundle classloader.
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
- String thriftHost =
- getConfigurationService().getRPCAddress() + ":" +
getConfigurationService().getRPCPort();
- String clusterName = getConfigurationService().getClustername();
- Cluster cluster = HFactory.getOrCreateCluster(clusterName,
thriftHost);
+ Cluster cluster = getHectorCluster();
Keyspace keyspace =
HFactory.createKeyspace(getKeyspaceName(), cluster, new
InternalConsistencyLevelPolicy());
return keyspace;
@@ -115,6 +112,22 @@
Thread.currentThread().setContextClassLoader(oldClassLoader);
}
}
+
+ public Cluster getHectorCluster() {
+ ClassLoader oldClassLoader =
Thread.currentThread().getContextClassLoader();
+ try {
+ // Perform a classloader switch to prevent log4j trying to load
classes from the system classloader
+ // instead of the bundle classloader.
+
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+ String thriftHost =
+ getConfigurationService().getRPCAddress() + ":" +
getConfigurationService().getRPCPort();
+ String clusterName = getConfigurationService().getClustername();
+ return HFactory.getOrCreateCluster(clusterName, thriftHost);
+ }
+ finally {
+ Thread.currentThread().setContextClassLoader(oldClassLoader);
+ }
+ }
public boolean exists(final String columnFamilyName, final String rowKey) {
StringSerializer stringSerializer = StringSerializer.get();
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits