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

Reply via email to