[jbosstools-commits] JBoss Tools SVN: r39637 - trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/helper.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Mon Mar 19 16:08:12 EDT 2012


Author: jpeterka
Date: 2012-03-19 16:08:11 -0400 (Mon, 19 Mar 2012)
New Revision: 39637

Modified:
   trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/helper/DatabaseHelper.java
Log:
DatabaseHelper portAvailable method added

Modified: trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/helper/DatabaseHelper.java
===================================================================
--- trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/helper/DatabaseHelper.java	2012-03-19 20:06:49 UTC (rev 39636)
+++ trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/helper/DatabaseHelper.java	2012-03-19 20:08:11 UTC (rev 39637)
@@ -8,6 +8,8 @@
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.net.DatagramSocket;
+import java.net.ServerSocket;
 import java.nio.channels.FileChannel;
 import java.sql.Connection;
 import java.sql.ResultSet;
@@ -349,6 +351,14 @@
 	 * @param dbname - database name
 	 */
 	public static void startHSQLDBServer(final String dbFilePath, final String dbname) {
+		if (isHSQLDBRunning()) {
+			log.info("Internal HSQLDB is already running");
+		}		
+		// port check
+		log.info("Check HSQLDB (9001) port availablity");
+		boolean available = portAvailable(9001);
+		if (!available) throw new RuntimeException("HSQLDB port is already in use");		
+		
 		Thread hsqlThread = null;
 		log.info("Starting HSQLDB...");
 		try {
@@ -370,6 +380,9 @@
 		log.info("HSQLDB started");
 	}
 	
+	
+	
+	
 	/**
 	 * Stop HSQL Database by sending SHUTDOWN command
 	 */
@@ -474,4 +487,37 @@
 		}
 		return ret;
 	}
+	
+	/**
+	 * Checks to see if a specific port is available.
+	 *
+	 * @param port the port to check for availability
+	 */
+	public static boolean portAvailable(int port) {
+	    ServerSocket ss = null;
+	    DatagramSocket ds = null;
+	    try {
+	        ss = new ServerSocket(port);
+	        ss.setReuseAddress(true);
+	        ds = new DatagramSocket(port);
+	        ds.setReuseAddress(true);
+	        return true;
+	    } catch (IOException e) {
+	    } finally {
+	        if (ds != null) {
+	            ds.close();
+	        }
+
+	        if (ss != null) {
+	            try {
+	                ss.close();
+	            } catch (IOException e) {
+	                /* should not be thrown */
+	            }
+	        }
+	    }
+
+	    return false;
+	}
+
 }



More information about the jbosstools-commits mailing list