You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2010/05/10 20:57:33 UTC

svn commit: r942843 - in /geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo: ServerProxy.java server/StartServerMojo.java server/StopServerMojo.java

Author: gawor
Date: Mon May 10 18:57:32 2010
New Revision: 942843

URL: http://svn.apache.org/viewvc?rev=942843&view=rev
Log:
1) attempt to wait for server to stop and 2) decrease polling frequency to see if the server is running

Modified:
    geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ServerProxy.java
    geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StartServerMojo.java
    geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StopServerMojo.java

Modified: geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ServerProxy.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ServerProxy.java?rev=942843&r1=942842&r2=942843&view=diff
==============================================================================
--- geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ServerProxy.java (original)
+++ geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/ServerProxy.java Mon May 10 18:57:32 2010
@@ -211,23 +211,43 @@ public class ServerProxy
         return lastError;
     }
 
+    private ObjectName getMBean(String name) throws Exception {
+        Set<ObjectName> objectNameSet =
+            mbeanConnection.queryNames(new ObjectName(name), null);
+        if (objectNameSet.isEmpty()) {
+            throw new Exception("Mbean not found");
+        } else if (objectNameSet.size() == 1) {
+            return objectNameSet.iterator().next();
+        } else {
+            throw new Exception("Multiple mbeans found");
+        }
+    }
+    
     public void shutdown() {
         try {
-            Set<ObjectName> objectNameSet =
-                mbeanConnection.queryNames(new ObjectName("osgi.core:type=framework,*"), null);
-            if (objectNameSet.isEmpty()) {
-                throw new Exception("Framework mbean not found");
-            } else if (objectNameSet.size() == 1) {
-                mbeanConnection.invoke(objectNameSet.iterator().next(), "stopBundle",
-                                          new Object[] { 0 }, new String[] { long.class.getName() });
-            }
-        }
-        catch (Exception e) {
+            ObjectName frameworkMBean = getMBean("osgi.core:type=framework,*");
+            mbeanConnection.invoke(frameworkMBean, "stopBundle",
+                                   new Object[] { 0 }, new String[] { long.class.getName() });
+        } catch (Exception e) {
             log.warn("Unable to shutdown the server", e);
             lastError = e;
         }
     }
 
+    public void waitForStop() {    
+        // wait for first IOException
+        try {
+            while (true) {
+                ObjectName bundleStateMBean = getMBean("osgi.core:type=bundleState,*");
+                Thread.sleep(5 * 1000);
+            }
+        } catch (IOException e) {
+            // connection error means server is shutdown
+        } catch (Exception e) {
+            log.warn("Unexpected error while waiting for server shutdown", e);
+        }
+    }
+    
     //
     // Kernel invocation helpers
     //

Modified: geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StartServerMojo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StartServerMojo.java?rev=942843&r1=942842&r2=942843&view=diff
==============================================================================
--- geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StartServerMojo.java (original)
+++ geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StartServerMojo.java Mon May 10 18:57:32 2010
@@ -375,7 +375,7 @@ public class StartServerMojo
                     log.debug("Server query failed; ignoring", error);
                 }
 
-                Thread.sleep(1000);
+                Thread.sleep(5 * 1000);
             }
         }
         server.closeConnection();

Modified: geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StopServerMojo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StopServerMojo.java?rev=942843&r1=942842&r2=942843&view=diff
==============================================================================
--- geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StopServerMojo.java (original)
+++ geronimo/server/trunk/framework/buildsupport/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/server/StopServerMojo.java Mon May 10 18:57:32 2010
@@ -62,6 +62,7 @@ public class StopServerMojo
             log.info("Stopping Geronimo server...");
             
             server.shutdown();
+            server.waitForStop();
             server.closeConnection();
 
             //