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