diff options
author | Roberto E. Escobar | 2012-11-14 17:23:08 +0000 |
---|---|---|
committer | Roberto E. Escobar | 2012-11-14 17:23:08 +0000 |
commit | 8420b43aa5d261650eca8d3866e02ae67b336f79 (patch) | |
tree | 7a1d57971f2d3f5d04b990799a1a383c3fb0c8e4 | |
parent | 91621dc253d1761da573fb711e4d245f5c18039f (diff) | |
download | org.eclipse.osee-8420b43aa5d261650eca8d3866e02ae67b336f79.tar.gz org.eclipse.osee-8420b43aa5d261650eca8d3866e02ae67b336f79.tar.xz org.eclipse.osee-8420b43aa5d261650eca8d3866e02ae67b336f79.zip |
feature[ats_TL5SF]: Add H2 Web Server port system property
Need ability to specify H2 web server port or scan for a valid open port
so H2 server does not exception out when web server port is in use.
Change-Id: I238b4f6045d2f1c62a4c36fee1b8d0ad2bf2c91c
7 files changed, 39 insertions, 17 deletions
diff --git a/plugins/org.eclipse.osee.framework.h2/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.h2/META-INF/MANIFEST.MF index 11a01955918..537273bedef 100644 --- a/plugins/org.eclipse.osee.framework.h2/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.osee.framework.h2/META-INF/MANIFEST.MF @@ -8,6 +8,7 @@ Import-Package: org.eclipse.osee.framework.database.core, org.eclipse.osee.framework.jdk.core.type, org.eclipse.osee.framework.jdk.core.util, + org.eclipse.osee.framework.jdk.core.util.network, org.eclipse.osee.framework.logging, org.osgi.framework Export-Package: org.eclipse.osee.framework.h2 diff --git a/plugins/org.eclipse.osee.framework.h2/build.properties b/plugins/org.eclipse.osee.framework.h2/build.properties index c58ea2178c3..b0ce2ab8573 100644 --- a/plugins/org.eclipse.osee.framework.h2/build.properties +++ b/plugins/org.eclipse.osee.framework.h2/build.properties @@ -3,3 +3,6 @@ output.. = bin/ bin.includes = META-INF/,\ .,\ OSGI-INF/ +additional.bundles = org.eclipse.osee.framework.logging,\ + org.eclipse.osee.framework.jdk.core,\ + org.eclipse.osee.framework.database diff --git a/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2ClientConnection.java b/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2ClientConnection.java index 56832bc51f2..a6ff10f8d5b 100644 --- a/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2ClientConnection.java +++ b/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2ClientConnection.java @@ -16,6 +16,7 @@ import java.util.Properties; import org.eclipse.osee.framework.database.core.IConnectionFactory; import org.eclipse.osee.framework.jdk.core.type.Pair; import org.eclipse.osee.framework.jdk.core.util.OseeProperties; +import org.eclipse.osee.framework.jdk.core.util.network.PortUtil; /** * @author Roberto E. Escobar @@ -33,7 +34,11 @@ public class H2ClientConnection implements IConnectionFactory { firstTime = false; Pair<String, Integer> addressAndPort = OseeProperties.getOseeDbEmbeddedServerAddress(); if (addressAndPort != null) { - H2DbServer.startServer(addressAndPort.getFirst(), addressAndPort.getSecond()); + int webPort = OseeProperties.getOseeDbEmbeddedWebServerPort(); + if (webPort < 0) { + webPort = PortUtil.getInstance().getValidPort(); + } + H2DbServer.startServer(addressAndPort.getFirst(), addressAndPort.getSecond(), webPort); } } Connection connection = DriverManager.getConnection(connectionURL, properties); diff --git a/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2DbServer.java b/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2DbServer.java index 481e62c0e8f..1ea61668f82 100644 --- a/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2DbServer.java +++ b/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2DbServer.java @@ -27,18 +27,19 @@ public class H2DbServer { this.nwServer = null; } - public static void startServer(String host, int port) throws Exception { - instance.startServerInternal(host, port); + public static void startServer(String host, int port, int webPort) throws Exception { + instance.startServerInternal(host, port, webPort); } public static void stopServer() { instance.shutdown(); } - private void startServerInternal(String host, int port) throws Exception { - OseeLog.logf(H2DbServer.class, Level.INFO, "Starting H2 Database Server on [%s:%s]....", host, port); + private void startServerInternal(String host, int port, int webPort) throws Exception { + OseeLog.logf(H2DbServer.class, Level.INFO, + "Starting H2 Database Server on [%s:%s] with webserver on [%s,%s]....", host, port, host, webPort); try { - nwServer = new H2DbServerUtil(InetAddress.getByName(host), port); + nwServer = new H2DbServerUtil(InetAddress.getByName(host), port, webPort); nwServer.start(); if (isConnectionAvailable()) { diff --git a/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2DbServerUtil.java b/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2DbServerUtil.java index a6f7346948b..aeae223fa79 100644 --- a/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2DbServerUtil.java +++ b/plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2DbServerUtil.java @@ -22,17 +22,17 @@ public final class H2DbServerUtil { private final Collection<Server> serverControls = new ArrayList<Server>(); - public H2DbServerUtil(InetAddress host, int port) { + public H2DbServerUtil(InetAddress host, int dbPort, int webPort) throws Exception { + String[] dbArgs = new String[] {"-tcp", "-tcpAllowOthers", "true", "-tcpPort", String.valueOf(dbPort)}; + serverControls.add(Server.createTcpServer(dbArgs)); + OseeLog.logf(H2DbServer.class, Level.INFO, "H2 Database Server created on [%s:%s]", host, dbPort); + try { - String[] webArgs = new String[] {"-webAllowOthers", "true", "-webPort", String.valueOf(port - 1)}; + String[] webArgs = new String[] {"-webAllowOthers", "true", "-webPort", String.valueOf(webPort)}; serverControls.add(Server.createWebServer(webArgs)); - - String[] dbArgs = new String[] {"-tcp", "-tcpAllowOthers", "true", "-tcpPort", String.valueOf(port)}; - serverControls.add(Server.createTcpServer(dbArgs)); - - OseeLog.log(H2DbServer.class, Level.INFO, "H2 Database Server created"); - } catch (Exception e) { - OseeLog.log(H2DbServer.class, Level.SEVERE, "Error Initializing Server Control.", e); + } catch (Exception ex) { + OseeLog.logf(H2DbServer.class, Level.SEVERE, ex, + "Error Initializing Database Web Server Control on port [%s]", webPort); } for (Server server : serverControls) { diff --git a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/OseeProperties.java b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/OseeProperties.java index 1e72caa4ad3..928776c7956 100644 --- a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/OseeProperties.java +++ b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/OseeProperties.java @@ -30,6 +30,7 @@ public class OseeProperties { public static final String OSEE_DB_CONNECTION_ID = "osee.db.connection.id"; private static final String OSEE_CONNECTION_INFO_URI = "osee.connection.info.uri"; private static final String OSEE_EMBEDDED_DB_SERVER = "osee.db.embedded.server"; + private static final String OSEE_EMBEDDED_DB_WEB_SERVER_PORT = "osee.db.embedded.web.server.port"; private static final String OSEE_DEFAULT_BROKER_URI = "osee.default.broker.uri"; private static final String OSEE_PROXY_BYPASS_ENABLED = "osee.proxy.bypass.enabled"; private static final String OSEE_DB_CONNECTION_COUNT = "osee.db.connection.count"; @@ -42,6 +43,15 @@ public class OseeProperties { return System.getProperty(OSEE_DEFAULT_BROKER_URI); } + public static int getOseeDbEmbeddedWebServerPort() { + int port = -1; + String portStr = System.getProperty(OSEE_EMBEDDED_DB_WEB_SERVER_PORT, ""); + if (Strings.isValid(portStr)) { + port = Integer.parseInt(portStr); + } + return port; + } + public static Pair<String, Integer> getOseeDbEmbeddedServerAddress() { Pair<String, Integer> addressAndPort = null; String serverAddress = System.getProperty(OSEE_EMBEDDED_DB_SERVER, ""); diff --git a/plugins/org.eclipse.osee.orcs.db.mock/src/org/eclipse/osee/orcs/db/mock/internal/TestDatabase.java b/plugins/org.eclipse.osee.orcs.db.mock/src/org/eclipse/osee/orcs/db/mock/internal/TestDatabase.java index deb779b81bc..7339f1b09bd 100644 --- a/plugins/org.eclipse.osee.orcs.db.mock/src/org/eclipse/osee/orcs/db/mock/internal/TestDatabase.java +++ b/plugins/org.eclipse.osee.orcs.db.mock/src/org/eclipse/osee/orcs/db/mock/internal/TestDatabase.java @@ -76,7 +76,9 @@ public class TestDatabase { String dbPath = getDbHomePath(tempFolder, "h2"); - int port = PortUtil.getInstance().getValidPort() + 1; + int port = PortUtil.getInstance().getConsecutiveValidPorts(2); + int webPort = port + 1; + IDatabaseInfo databaseInfo = new DbInfo(connectionId, port, dbPath); TestDbProvider provider = new TestDbProvider(databaseInfo); @@ -87,7 +89,7 @@ public class TestDatabase { IOseeDatabaseService dbService = OsgiUtil.getService(IOseeDatabaseService.class); Assert.assertNotNull(dbService); - H2DbServer.startServer("0.0.0.0", port); + H2DbServer.startServer("0.0.0.0", port, webPort); OseeConnection connection = dbService.getConnection(); try { |