Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoberto E. Escobar2012-11-14 17:23:08 +0000
committerRoberto E. Escobar2012-11-14 17:23:08 +0000
commit8420b43aa5d261650eca8d3866e02ae67b336f79 (patch)
tree7a1d57971f2d3f5d04b990799a1a383c3fb0c8e4
parent91621dc253d1761da573fb711e4d245f5c18039f (diff)
downloadorg.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
-rw-r--r--plugins/org.eclipse.osee.framework.h2/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.osee.framework.h2/build.properties3
-rw-r--r--plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2ClientConnection.java7
-rw-r--r--plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2DbServer.java11
-rw-r--r--plugins/org.eclipse.osee.framework.h2/src/org/eclipse/osee/framework/h2/H2DbServerUtil.java18
-rw-r--r--plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/OseeProperties.java10
-rw-r--r--plugins/org.eclipse.osee.orcs.db.mock/src/org/eclipse/osee/orcs/db/mock/internal/TestDatabase.java6
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 {

Back to the top