Author: [email protected]
Date: Fri Jun 22 15:34:01 2012
New Revision: 2520

Log:
[AMDATUCASSANDRA-211] Fixed nullpointer and possible concurrency issues, 
re-using the ConfigTools from auth

Modified:
   branches/amdatu-cassandra-0.2.5/cassandra-client/pom.xml
   
branches/amdatu-cassandra-0.2.5/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationServiceImpl.java
   
branches/amdatu-cassandra-0.2.5/cassandra-client/src/main/java/org/amdatu/cassandra/client/util/ConfigurationUtil.java
   
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-consumer/pom.xml
   
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-nonce/pom.xml
   
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-token/pom.xml
   branches/amdatu-cassandra-0.2.5/pom.xml
   branches/amdatu-cassandra-0.2.5/release-demo/pom.xml
   branches/amdatu-cassandra-0.2.5/test-integration/pom.xml

Modified: branches/amdatu-cassandra-0.2.5/cassandra-client/pom.xml
==============================================================================
--- branches/amdatu-cassandra-0.2.5/cassandra-client/pom.xml    (original)
+++ branches/amdatu-cassandra-0.2.5/cassandra-client/pom.xml    Fri Jun 22 
15:34:01 2012
@@ -39,6 +39,13 @@
       <type>jar</type>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.amdatu.auth</groupId>
+      <artifactId>org.amdatu.auth.tools.config</artifactId>
+      <version>${amdatu.auth.version}</version>
+      <scope>compile</scope>
+      <type>jar</type>
+    </dependency>
   </dependencies>
 
   <build>
@@ -53,6 +60,7 @@
           <instructions>
             
<Bundle-Activator>org.amdatu.cassandra.client.osgi.Activator</Bundle-Activator>
             
<Bundle-SymbolicName>org.amdatu.cassandra.client</Bundle-SymbolicName>
+            <Embed-Dependency>*;scope=compile</Embed-Dependency>
             <Import-Package>
               org.amdatu.cassandra.client,
               me.prettyprint.hector.*;version="[1.0,1.1)",

Modified: 
branches/amdatu-cassandra-0.2.5/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationServiceImpl.java
==============================================================================
--- 
branches/amdatu-cassandra-0.2.5/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationServiceImpl.java
     (original)
+++ 
branches/amdatu-cassandra-0.2.5/cassandra-client/src/main/java/org/amdatu/cassandra/client/service/CassandraClientConfigurationServiceImpl.java
     Fri Jun 22 15:34:01 2012
@@ -25,8 +25,8 @@
 import me.prettyprint.cassandra.service.CassandraHost;
 import me.prettyprint.cassandra.service.CassandraHostConfigurator;
 
-import org.amdatu.cassandra.client.util.ConfigurationUtil;
-import org.amdatu.cassandra.client.util.ConfigurationUtil.ConfigProperty;
+import org.amdatu.auth.tools.config.ConfigTools;
+import org.amdatu.auth.tools.config.ConfigTools.ConfigProperty;
 
 import java.util.ArrayList;
 import java.util.Dictionary;
@@ -38,8 +38,8 @@
 
 @SuppressWarnings("rawtypes")
 /**
- * This class manages the configuration for this bundle. Since this bundle 
contains multipel services that
- * depend on this configuration, we must use such a shared configruation 
service for this bundle.
+ * This class manages the configuration for this bundle. Since this bundle 
contains multiple services that
+ * depend on this configuration, we must use such a shared configuration 
service for this bundle.
  * 
  * @author <a href="mailto:[email protected]";>Amdatu Project 
Team</a>
  */
@@ -81,47 +81,67 @@
     // Properties
     private Dictionary m_config = null;
 
-    private ConfigurationUtil m_configUtil;
+    private ConfigTools m_configTools;
     private CassandraHostConfigurator m_hostConfig = null;
 
     // Injected service dependencies
     private volatile LogService m_logService;
 
-    public void start() {
-        m_configUtil = new ConfigurationUtil(m_logService);
-        m_configUtil.init(CONFIG_PROPERTIES, m_config);
+    public synchronized void start() {
+        initConfigTools();
+    }
+    
+    public synchronized void updated(final Dictionary dictionary) throws 
ConfigurationException {
+        if (dictionary != null) {
+            m_config = dictionary;
+            initConfigTools();
+            m_hostConfig = null;
+
+            for (ConfigurationUpdateListener listener : m_listeners) {
+                listener.configurationUpdated();
+            }
+        }
+    }
+    
+    private void initConfigTools() {
+        if (m_config != null && m_logService != null) {
+            if (m_configTools == null) {
+                m_configTools = new ConfigTools(m_logService);
+            }
+            m_configTools.init(CONFIG_PROPERTIES, m_config);
+        }
     }
 
     public void setLogService(final LogService logService) {
         m_logService = logService;
     }
 
-    public CassandraHostConfigurator getCassandraHostConfigurator() {
+    public synchronized CassandraHostConfigurator 
getCassandraHostConfigurator() {
         if (m_hostConfig == null) {
             m_hostConfig = new CassandraHostConfigurator();
-            m_hostConfig.setHosts(m_configUtil.get(HOSTS, String.class)); // 
comma separated
-            m_hostConfig.setPort(m_configUtil.get(PORT, Integer.class));
-            m_hostConfig.setMaxActive(m_configUtil.get(MAXACTIVE, 
Integer.class));
-            
m_hostConfig.setMaxWaitTimeWhenExhausted(m_configUtil.get(MAXWAITTIMEWHENEXHAUSTED,
 Long.class));
-            
m_hostConfig.setCassandraThriftSocketTimeout(m_configUtil.get(CASSANDRATHRIFTSOCKETTIMEOUT,
+            m_hostConfig.setHosts(m_configTools.get(HOSTS, String.class)); // 
comma separated
+            m_hostConfig.setPort(m_configTools.get(PORT, Integer.class));
+            m_hostConfig.setMaxActive(m_configTools.get(MAXACTIVE, 
Integer.class));
+            
m_hostConfig.setMaxWaitTimeWhenExhausted(m_configTools.get(MAXWAITTIMEWHENEXHAUSTED,
 Long.class));
+            
m_hostConfig.setCassandraThriftSocketTimeout(m_configTools.get(CASSANDRATHRIFTSOCKETTIMEOUT,
                 Integer.class));
-            
m_hostConfig.setUseThriftFramedTransport(m_configUtil.get(USETHRIFTFRAMEDTRANSPORT,
 Boolean.class));
-            
m_hostConfig.setRetryDownedHosts(m_configUtil.get(RETRYDOWNEDHOSTS, 
Boolean.class));
-            
m_hostConfig.setRetryDownedHostsDelayInSeconds(m_configUtil.get(RETRYDOWNEDHOSTSDELAYINSECONDS,
+            
m_hostConfig.setUseThriftFramedTransport(m_configTools.get(USETHRIFTFRAMEDTRANSPORT,
 Boolean.class));
+            
m_hostConfig.setRetryDownedHosts(m_configTools.get(RETRYDOWNEDHOSTS, 
Boolean.class));
+            
m_hostConfig.setRetryDownedHostsDelayInSeconds(m_configTools.get(RETRYDOWNEDHOSTSDELAYINSECONDS,
                 Integer.class));
-            
m_hostConfig.setRetryDownedHostsQueueSize(m_configUtil.get(RETRYDOWNEDHOSTSQUEUESIZE,
 Integer.class));
-            
m_hostConfig.setAutoDiscoverHosts(m_configUtil.get(AUTODISCOVERHOSTS, 
Boolean.class));
+            
m_hostConfig.setRetryDownedHostsQueueSize(m_configTools.get(RETRYDOWNEDHOSTSQUEUESIZE,
 Integer.class));
+            
m_hostConfig.setAutoDiscoverHosts(m_configTools.get(AUTODISCOVERHOSTS, 
Boolean.class));
             m_hostConfig
-                
.setAutoDiscoveryDelayInSeconds(m_configUtil.get(AUTODISCOVERYDELAYINSECONDS, 
Integer.class));
-            
m_hostConfig.setRunAutoDiscoveryAtStartup(m_configUtil.get(RUNAUTODISCOVERYATSTARTUP,
 Boolean.class));
-            
m_hostConfig.setUseHostTimeoutTracker(m_configUtil.get(USEHOSTTIMEOUTTRACKER, 
Boolean.class));
-            
m_hostConfig.setHostTimeoutCounter(m_configUtil.get(HOSTTIMEOUTCOUNTER, 
Integer.class));
-            
m_hostConfig.setHostTimeoutWindow(m_configUtil.get(HOSTTIMEOUTWINDOW, 
Integer.class));
-            
m_hostConfig.setHostTimeoutSuspensionDurationInSeconds(m_configUtil.get(
+                
.setAutoDiscoveryDelayInSeconds(m_configTools.get(AUTODISCOVERYDELAYINSECONDS, 
Integer.class));
+            
m_hostConfig.setRunAutoDiscoveryAtStartup(m_configTools.get(RUNAUTODISCOVERYATSTARTUP,
 Boolean.class));
+            
m_hostConfig.setUseHostTimeoutTracker(m_configTools.get(USEHOSTTIMEOUTTRACKER, 
Boolean.class));
+            
m_hostConfig.setHostTimeoutCounter(m_configTools.get(HOSTTIMEOUTCOUNTER, 
Integer.class));
+            
m_hostConfig.setHostTimeoutWindow(m_configTools.get(HOSTTIMEOUTWINDOW, 
Integer.class));
+            
m_hostConfig.setHostTimeoutSuspensionDurationInSeconds(m_configTools.get(
                 HOSTTIMEOUTSUSPENSIONDURATIONINSECONDS, Integer.class));
-            
m_hostConfig.setHostTimeoutUnsuspendCheckDelay(m_configUtil.get(HOSTTIMEOUTUNSUSPENDCHECKDELAY,
+            
m_hostConfig.setHostTimeoutUnsuspendCheckDelay(m_configTools.get(HOSTTIMEOUTUNSUSPENDCHECKDELAY,
                 Integer.class));
-            
m_hostConfig.setUseSocketKeepalive(m_configUtil.get(USESOCKETKEEPALIVE, 
Boolean.class));
+            
m_hostConfig.setUseSocketKeepalive(m_configTools.get(USESOCKETKEEPALIVE, 
Boolean.class));
 
             // Set our special load balancer for schema modifications
             m_hostConfig.setLoadBalancingPolicy(new 
SchemaModificationsLoadBalancer());
@@ -129,24 +149,8 @@
         return m_hostConfig;
     }
 
-    public <T> T get(final String key, final Class<T> clazz) {
-        return m_configUtil.get(key, clazz);
-    }
-
-    public void updated(final Dictionary dictionary) throws 
ConfigurationException {
-        if (m_config == null) {
-            // This is just initialization of the configuration
-            m_config = dictionary;
-        }
-        else {
-            m_config = dictionary;
-            m_configUtil.init(CONFIG_PROPERTIES, m_config);
-            m_hostConfig = null;
-
-            for (ConfigurationUpdateListener listener : m_listeners) {
-                listener.configurationUpdated();
-            }
-        }
+    public synchronized <T> T get(final String key, final Class<T> clazz) {
+        return m_configTools.get(key, clazz);
     }
 
     public void addListener(final ConfigurationUpdateListener listener) {

Modified: 
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-consumer/pom.xml
==============================================================================
--- 
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-consumer/pom.xml
   (original)
+++ 
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-consumer/pom.xml
   Fri Jun 22 15:34:01 2012
@@ -27,10 +27,6 @@
   <name>Amdatu Cassandra - OAuth Service Consumer Store</name>
   <description>Provides an implementation of the OAuth Service Consumer 
store</description>
 
-  <properties>
-    <amdatu.auth.version>0.2.0</amdatu.auth.version>
-  </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.amdatu.core</groupId>

Modified: 
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-nonce/pom.xml
==============================================================================
--- 
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-nonce/pom.xml  
    (original)
+++ 
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-nonce/pom.xml  
    Fri Jun 22 15:34:01 2012
@@ -27,10 +27,6 @@
   <name>Amdatu Cassandra - OAuth nonce Store</name>
   <description>Provides an implementation of the OAuth nonce 
store</description>
 
-  <properties>
-    <amdatu.auth.version>0.2.0</amdatu.auth.version>
-  </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.amdatu.core</groupId>

Modified: 
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-token/pom.xml
==============================================================================
--- 
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-token/pom.xml  
    (original)
+++ 
branches/amdatu-cassandra-0.2.5/cassandra-stores/cassandra-store-token/pom.xml  
    Fri Jun 22 15:34:01 2012
@@ -27,10 +27,6 @@
   <name>Amdatu Cassandra - Token Store</name>
   <description>Provides an implementation of a Token Store</description>
 
-  <properties>
-    <amdatu.auth.version>0.2.0</amdatu.auth.version>
-  </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.amdatu.core</groupId>

Modified: branches/amdatu-cassandra-0.2.5/pom.xml
==============================================================================
--- branches/amdatu-cassandra-0.2.5/pom.xml     (original)
+++ branches/amdatu-cassandra-0.2.5/pom.xml     Fri Jun 22 15:34:01 2012
@@ -34,6 +34,7 @@
     <!-- Version of dependend projects -->
     <amdatu.core.version>0.2.1</amdatu.core.version>
     <amdatu.web.version>0.2.1</amdatu.web.version>
+    <amdatu.auth.version>0.2.3-RC1</amdatu.auth.version>
 
     <!-- Version of cassandra itself -->
     <cassandra.version>0.8.10-5</cassandra.version>

Modified: branches/amdatu-cassandra-0.2.5/release-demo/pom.xml
==============================================================================
--- branches/amdatu-cassandra-0.2.5/release-demo/pom.xml        (original)
+++ branches/amdatu-cassandra-0.2.5/release-demo/pom.xml        Fri Jun 22 
15:34:01 2012
@@ -35,7 +35,7 @@
     <org.amdatu.core.version>0.2.1</org.amdatu.core.version>
     <org.amdatu.web.version>0.2.1</org.amdatu.web.version>
     <org.amdatu.lib.version>0.2.1</org.amdatu.lib.version>
-    <org.amdatu.auth.version>0.2.2</org.amdatu.auth.version>
+    <org.amdatu.auth.version>0.2.3-RC1</org.amdatu.auth.version>
     <org.amdatu.opensocial.version>0.2.2-RC1</org.amdatu.opensocial.version>
 
     <org.apache.felix.main.version>4.0.2</org.apache.felix.main.version>

Modified: branches/amdatu-cassandra-0.2.5/test-integration/pom.xml
==============================================================================
--- branches/amdatu-cassandra-0.2.5/test-integration/pom.xml    (original)
+++ branches/amdatu-cassandra-0.2.5/test-integration/pom.xml    Fri Jun 22 
15:34:01 2012
@@ -30,7 +30,7 @@
   <properties>
     <org.amdatu.core.version>0.2.1</org.amdatu.core.version>
     <org.amdatu.web.version>0.2.1</org.amdatu.web.version>
-    <org.amdatu.auth.version>0.2.0</org.amdatu.auth.version>
+    <org.amdatu.auth.version>0.2.3-RC1</org.amdatu.auth.version>
   </properties>
 
   <modules>
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to