Author: [email protected]
Date: Mon Jun 11 11:27:07 2012
New Revision: 2457
Log:
[AMDATUCASSANDRA-191] Fixed concurrency issues
Modified:
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraConfiguratorImpl.java
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraInstallerImpl.java
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraLauncherImpl.java
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/api/CassandraConfigurator.java
Modified:
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraConfiguratorImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraConfiguratorImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraConfiguratorImpl.java
Mon Jun 11 11:27:07 2012
@@ -48,7 +48,8 @@
// Cassandra HOME dir becomes [prefix][version]
private static final String CASSANDRA_HOME_PREFIX = "cassandra-";
- // Location of source configuration files
+ // Location of source configuration files. Note that the cassandra.yaml
for 1.0 and 1.1 are
+ // the same. So this launcher supports 1.0 and 1.1.
private static final String STORAGE_CONF_SOURCE = "conf/cassandra.yaml";
private static final String LOG4J_SERVER_PROPERTIES =
"conf/log4j-server.properties";
@@ -134,7 +135,7 @@
component.add(dependencies);
}
- public void updateConfiguration(final Dictionary dictionary) {
+ public synchronized void updateConfiguration(final Dictionary dictionary) {
if (dictionary != null) {
m_properties = dictionary;
m_configTools = new ConfigTools(m_logService);
@@ -313,6 +314,10 @@
public String getDownloadversion() {
return m_downloadVersion;
}
+
+ public boolean isDownloadVersionSupported() {
+ return m_downloadVersion.startsWith("1.0") ||
m_downloadVersion.startsWith("1.1");
+ }
public String getDownloadUrl() {
return m_downloadUrl;
Modified:
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraInstallerImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraInstallerImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraInstallerImpl.java
Mon Jun 11 11:27:07 2012
@@ -50,8 +50,16 @@
*
* @return The cassandra home directory of a successfully installed
Cassandra version.
*/
- public File installOrUpdate() {
- // Step 1. Verify if Cassandra needs to be installed or updated.
+ public synchronized File installOrUpdate() {
+ // Step 1. Verify if we support this version
+ if (!m_configurator.isDownloadVersionSupported()) {
+ m_logService.log(LogService.LOG_INFO, "This version of the
Cassandra launcher only supports 1.0 and 1.1. "
+ + "The target version is '" +
m_configurator.getDownloadversion() + "', hence Cassandra "
+ + "will not be installed or updated.");
+ return m_configurator.getInstalledCassandraHome();
+ }
+
+ // Step 2. Verify if Cassandra needs to be installed or updated.
if (m_configurator.isUpdateRequired()) {
// Step 1a. Trigger the update
if (installUpdate()) {
Modified:
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraLauncherImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraLauncherImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/CassandraLauncherImpl.java
Mon Jun 11 11:27:07 2012
@@ -47,7 +47,7 @@
private boolean m_isRunning = false;
@SuppressWarnings("rawtypes")
- public boolean startCassandra() {
+ public synchronized boolean startCassandra() {
if (m_isRunning) {
m_logService.log(LogService.LOG_WARNING, "Cannot launch Cassandra,
it is already running.");
return false;
@@ -91,7 +91,7 @@
}
}
- public void stopCassandra() {
+ public synchronized void stopCassandra() {
m_logService.log(LogService.LOG_INFO, "Stopping Cassandra
instance...");
if (m_config != null) {
try {
@@ -109,7 +109,7 @@
}
@Override
- public boolean isRunning() {
+ public synchronized boolean isRunning() {
return m_isRunning;
}
Modified:
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/api/CassandraConfigurator.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/api/CassandraConfigurator.java
(original)
+++
trunk/amdatu-cassandra/cassandra-launcher/src/main/java/org/amdatu/cassandra/launcher/service/api/CassandraConfigurator.java
Mon Jun 11 11:27:07 2012
@@ -60,6 +60,13 @@
String getDownloadversion();
/**
+ * Returns if the specified download version is supported (must be 1.0 or
1.1).
+ *
+ * @return if the specified download version is supported.
+ */
+ boolean isDownloadVersionSupported();
+
+ /**
* Returns the URL to download Cassandra from.
*
* @return the URL to download Cassandra from.
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits