aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/Context.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/Context.java')
-rw-r--r--src/org/traccar/Context.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/org/traccar/Context.java b/src/org/traccar/Context.java
index c833d0c2e..675465aff 100644
--- a/src/org/traccar/Context.java
+++ b/src/org/traccar/Context.java
@@ -16,6 +16,8 @@
package org.traccar;
import com.ning.http.client.AsyncHttpClient;
+import org.h2.server.web.ConnectionInfo;
+import org.h2.tools.Server;
import org.traccar.database.ConnectionManager;
import org.traccar.database.DataManager;
import org.traccar.database.IdentityManager;
@@ -34,6 +36,8 @@ import org.traccar.location.MozillaLocationProvider;
import org.traccar.location.OpenCellIdLocationProvider;
import org.traccar.web.WebServer;
+import java.lang.reflect.Method;
+
public final class Context {
private Context() {
@@ -93,6 +97,12 @@ public final class Context {
return webServer;
}
+ private static Server databaseConsole;
+
+ public static Server getDatabaseConsole() {
+ return databaseConsole;
+ }
+
private static ServerManager serverManager;
public static ServerManager getServerManager() {
@@ -175,6 +185,20 @@ public final class Context {
webServer = new WebServer(config, dataManager.getDataSource());
}
+ if (config.getBoolean("console.enable")) {
+ databaseConsole = Server.createWebServer("-webPort", config.getString("console.port"));
+ org.h2.server.web.WebServer databaseService = (org.h2.server.web.WebServer) databaseConsole.getService();
+
+ ConnectionInfo connectionInfo = new ConnectionInfo("Traccar|"
+ + config.getString("database.driver") + "|"
+ + config.getString("database.url") + "|"
+ + config.getString("database.user"));
+
+ Method method = databaseService.getClass().getDeclaredMethod("updateSetting", ConnectionInfo.class);
+ method.setAccessible(true);
+ method.invoke(databaseService, connectionInfo);
+ }
+
connectionManager = new ConnectionManager(dataManager);
serverManager = new ServerManager();