diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2015-11-27 14:39:34 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2015-11-27 14:39:34 +1300 |
commit | dcf55c4f291c441b5e9921ec5b25ec8d3414140d (patch) | |
tree | 49997e43f6524162a95065d8fb405ed5f2b30c1f /src/org/traccar/Context.java | |
parent | 67f512fb2b481ebca78dab2163733ca2c3cef55a (diff) | |
download | trackermap-server-dcf55c4f291c441b5e9921ec5b25ec8d3414140d.tar.gz trackermap-server-dcf55c4f291c441b5e9921ec5b25ec8d3414140d.tar.bz2 trackermap-server-dcf55c4f291c441b5e9921ec5b25ec8d3414140d.zip |
Option to enable H2 database console
Diffstat (limited to 'src/org/traccar/Context.java')
-rw-r--r-- | src/org/traccar/Context.java | 24 |
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(); |