Author: [email protected]
Date: Mon Feb 20 11:16:50 2012
New Revision: 2102

Log:
[AMDATUCASSANDRA-164] Fixed the import-package versions of Hector, proper 
shutdown of Hector cluster upon stopping the service using it and 
deregistration of configuration update listener

Modified:
   trunk/amdatu-cassandra/cassandra-client/pom.xml
   
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationService.java
   
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationServiceImpl.java
   
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientServiceImpl.java
   trunk/amdatu-cassandra/cassandra-hector/pom.xml
   
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/CassandraUpdateListenerImpl.java
   trunk/amdatu-cassandra/cassandra-persistencemanager-hector/pom.xml
   
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/CassandraPersistenceManagerBaseImpl.java
   
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/HectorCassandraPersistenceManagerImpl.java
   trunk/amdatu-cassandra/cassandra-stores/cassandra-store-tenant/pom.xml
   trunk/amdatu-cassandra/cassandra-stores/cassandra-store-token/pom.xml

Modified: trunk/amdatu-cassandra/cassandra-client/pom.xml
==============================================================================
--- trunk/amdatu-cassandra/cassandra-client/pom.xml     (original)
+++ trunk/amdatu-cassandra/cassandra-client/pom.xml     Mon Feb 20 11:16:50 2012
@@ -53,8 +53,15 @@
           <instructions>
             
<Bundle-Activator>org.amdatu.cassandra.client.osgi.Activator</Bundle-Activator>
             
<Bundle-SymbolicName>org.amdatu.cassandra.client</Bundle-SymbolicName>
+            <Import-Package>
+              org.amdatu.cassandra.client,
+              me.prettyprint.hector.*;version="[1.0,1.1)",
+              me.prettyprint.cassandra.*;version="[1.0,1.1)",
+              org.apache.cassandra.thrift.*;version="[1.0,2.0)",
+              *
+            </Import-Package>
             <Export-Package>
-              org.amdatu.cassandra.client;version="1.0.0",
+              org.amdatu.cassandra.client;version="1.0.0"
             </Export-Package>
           </instructions>
         </configuration>

Modified: 
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationService.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationService.java
  (original)
+++ 
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationService.java
  Mon Feb 20 11:16:50 2012
@@ -160,4 +160,12 @@
      * @param listener the listener
      */
     void addListener(ConfigurationUpdateListener listener);
+    
+    
+    /**
+     * Removes a configuration update listener. Listeners are invoked as soon 
as the configuration
+     * is updated.
+     * @param listener the listener
+     */
+    void removeListener(ConfigurationUpdateListener listener);
 }

Modified: 
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationServiceImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationServiceImpl.java
      (original)
+++ 
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationServiceImpl.java
      Mon Feb 20 11:16:50 2012
@@ -152,4 +152,8 @@
     public void addListener(ConfigurationUpdateListener listener) {
         m_listeners.add(listener);
     }
+    
+    public void removeListener(ConfigurationUpdateListener listener) {
+        m_listeners.remove(listener);
+    }
 }

Modified: 
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientServiceImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientServiceImpl.java
   (original)
+++ 
trunk/amdatu-cassandra/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientServiceImpl.java
   Mon Feb 20 11:16:50 2012
@@ -70,12 +70,17 @@
         m_logService.log(LogService.LOG_INFO, getClass().getName() + " service 
initialized");
     }
 
-    public void start() {
+    public synchronized void start() {
         m_configuration.addListener(this);
         m_logService.log(LogService.LOG_INFO, getClass().getName() + "service 
started");
     }
 
-    public void stop() {
+    public synchronized void stop() {
+        m_configuration.removeListener(this);
+        if (m_cluster != null) {
+            m_cluster.getConnectionManager().shutdown();
+            m_cluster = null;
+        }
         m_logService.log(LogService.LOG_INFO, getClass().getName() + "service 
stopped");
     }
 

Modified: trunk/amdatu-cassandra/cassandra-hector/pom.xml
==============================================================================
--- trunk/amdatu-cassandra/cassandra-hector/pom.xml     (original)
+++ trunk/amdatu-cassandra/cassandra-hector/pom.xml     Mon Feb 20 11:16:50 2012
@@ -61,13 +61,17 @@
           <instructions>
             
<Bundle-SymbolicName>org.amdatu.cassandra.hector</Bundle-SymbolicName>
             <Import-Package>
+              me.prettyprint.hector.*;version="1.0.2",,
+              me.prettyprint.cassandra.*;version="1.0.2",,
+              org.apache.cassandra.thrift.*,
+              org.apache.thrift.*,
               !com.sun.xml.fastinfoset.stax,
               !org.apache.http.*,
               *
             </Import-Package>
             <Export-Package>
-              me.prettyprint.hector.*;version="1.0.1",
-              me.prettyprint.cassandra.*;version="1.0.1",
+              me.prettyprint.hector.*;version="1.0.2",
+              me.prettyprint.cassandra.*;version="1.0.2",
               org.apache.cassandra.thrift.*;version="1.0.0",
               org.apache.thrift.*;version="1.0.0",
             </Export-Package>

Modified: 
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/CassandraUpdateListenerImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/CassandraUpdateListenerImpl.java
      (original)
+++ 
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/CassandraUpdateListenerImpl.java
      Mon Feb 20 11:16:50 2012
@@ -70,15 +70,20 @@
 
     private Map<String, Component> m_componentMap = new 
ConcurrentHashMap<String, Component>();
 
-    public void start() {
+    public synchronized void start() {
         // Now start the inspect thread
         m_inspectThread = new InspectKeyspaceColumnFamilyThread();
         m_inspectThread.start();
     }
 
-    public void stop() {
+    public synchronized void stop() {
         // Stop the inspect thread
         m_inspectThread.interrupt();
+        try {
+            m_inspectThread.join();
+        }
+        catch (InterruptedException e) {
+        }
     }
 
     public void setDaemonService(CassandraClientService daemonService) {

Modified: trunk/amdatu-cassandra/cassandra-persistencemanager-hector/pom.xml
==============================================================================
--- trunk/amdatu-cassandra/cassandra-persistencemanager-hector/pom.xml  
(original)
+++ trunk/amdatu-cassandra/cassandra-persistencemanager-hector/pom.xml  Mon Feb 
20 11:16:50 2012
@@ -64,7 +64,8 @@
             
<Bundle-SymbolicName>org.amdatu.cassandra.persistencemanager.hector</Bundle-SymbolicName>
             <Import-Package>
               org.amdatu.cassandra.persistencemanager.hector,
-              me.prettyprint.hector.api.*;version="[1.0,1.1)",
+              me.prettyprint.hector.*;version="[1.0,1.1)",
+              me.prettyprint.cassandra.*;version="[1.0,1.1)",
               org.apache.cassandra.thrift.*;version="[1.0,2.0)",
               *
             </Import-Package>

Modified: 
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/CassandraPersistenceManagerBaseImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/CassandraPersistenceManagerBaseImpl.java
    (original)
+++ 
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/CassandraPersistenceManagerBaseImpl.java
    Mon Feb 20 11:16:50 2012
@@ -53,7 +53,7 @@
     private volatile LogService m_logService;
 
     // Other instances injected by the Felix dependency manager
-    private Component m_component;
+    private volatile Component m_component;
 
     // The keyspace
     private String m_keyspace = null;

Modified: 
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/HectorCassandraPersistenceManagerImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/HectorCassandraPersistenceManagerImpl.java
  (original)
+++ 
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/main/java/org/amdatu/cassandra/persistencemanager/hector/service/HectorCassandraPersistenceManagerImpl.java
  Mon Feb 20 11:16:50 2012
@@ -161,6 +161,17 @@
         // to WARNING for this logger.
         getHectorKeyspace();
         
Logger.getLogger("me.prettyprint.cassandra.hector.TimingLogger").setLevel(Level.WARNING);
+        getLogService().log(LogService.LOG_INFO, getClass().getName() + 
"service started");
+    }
+    
+    public void stop() {
+        // Shutdown the cluster, but ONLY if it exists!
+        Cluster cluster = getHectorCluster(false);
+        if (cluster != null) {
+            HFactory.shutdownCluster(cluster);
+        }
+        
+        getLogService().log(LogService.LOG_INFO, getClass().getName() + 
"service stopped");
     }
 
     public synchronized void updated(Dictionary dictionary) throws 
ConfigurationException {

Modified: trunk/amdatu-cassandra/cassandra-stores/cassandra-store-tenant/pom.xml
==============================================================================
--- trunk/amdatu-cassandra/cassandra-stores/cassandra-store-tenant/pom.xml      
(original)
+++ trunk/amdatu-cassandra/cassandra-stores/cassandra-store-tenant/pom.xml      
Mon Feb 20 11:16:50 2012
@@ -50,6 +50,8 @@
             <Import-Package>
               org.amdatu.cassandra.listener;version="[1.0,2.0)",
               
org.amdatu.cassandra.persistencemanager.hector;version="[1.0,2.0)",
+              me.prettyprint.hector.*;version="[1.0,1.1)",
+              me.prettyprint.cassandra.*;version="[1.0,1.1)",
               *
             </Import-Package>
             <Export-Package />

Modified: trunk/amdatu-cassandra/cassandra-stores/cassandra-store-token/pom.xml
==============================================================================
--- trunk/amdatu-cassandra/cassandra-stores/cassandra-store-token/pom.xml       
(original)
+++ trunk/amdatu-cassandra/cassandra-stores/cassandra-store-token/pom.xml       
Mon Feb 20 11:16:50 2012
@@ -82,6 +82,8 @@
               !org.joda.time,
               org.amdatu.cassandra.listener;version="[1.0,2.0)",
               
org.amdatu.cassandra.persistencemanager.hector;version="[1.0,2.0)",
+              me.prettyprint.hector.*;version="[1.0,1.1)",
+              me.prettyprint.cassandra.*;version="[1.0,1.1)",
               *
             </Import-Package>
             <Export-Package>
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to