Try to shutdown running Virgo if necessary before starting a smoke test
diff --git a/org.eclipse.virgo.test.tools/src/main/java/org/eclipse/virgo/test/tools/AbstractSmokeTests.java b/org.eclipse.virgo.test.tools/src/main/java/org/eclipse/virgo/test/tools/AbstractSmokeTests.java
index 26dc190..74f12e5 100644
--- a/org.eclipse.virgo.test.tools/src/main/java/org/eclipse/virgo/test/tools/AbstractSmokeTests.java
+++ b/org.eclipse.virgo.test.tools/src/main/java/org/eclipse/virgo/test/tools/AbstractSmokeTests.java
@@ -20,6 +20,7 @@
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
+import java.util.concurrent.TimeUnit;
 
 import org.junit.After;
 import org.junit.Before;
@@ -34,6 +35,17 @@
 
     @Before
     public void startServer() throws Exception {
+        if (!isDefaultJmxPortAvailable()) {
+            System.out.println("Port not available. Waiting for a few seconds.");
+            TimeUnit.SECONDS.sleep(10);
+            if (!isDefaultJmxPortAvailable()) {
+                System.out.println("Port still not available. Trying to shutdown running Virgo.");
+                shutdown(ServerUtils.getBinDir(getVirgoFlavor()));
+                if (!isDefaultJmxPortAvailable()) {
+                    System.out.println("Port still not available. Giving up.");
+                }
+            }
+        }
         assertTrue("Default JMX port in use. Is another Virgo server still up and running?!", isDefaultJmxPortAvailable());
         startup(ServerUtils.getBinDir(getVirgoFlavor()));
         assertTrue("Server '" + getVirgoFlavor() + "' not started properly.", waitForVirgoServerStartFully());