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

Reply via email to