From 60e09462f402b4599c67e7d863b24ce1dc50be9b Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 26 Nov 2017 17:34:30 +0100 Subject: [PATCH] worked on #235 - create server settings from client; download server from client --- .../ui/controller/Controller.java | 11 +++ .../LocalServerSettingsController.java | 88 ++++++++++++++++- .../OnlineServerSettingsController.java | 2 +- .../budgetmaster/languages/_de.properties | 9 +- .../budgetmaster/languages/_en.properties | 7 ++ .../logic/LocalServerHandler.java | 99 +++++++++++++++++++ .../budgetmaster/logic/utils/Strings.java | 9 +- .../budgetmasterserver/logic/Utils.java | 30 +++--- .../server/SparkServer.java | 4 +- .../server/database/DatabaseDelete.java | 2 +- .../budgetmasterserver/settings.json | 2 +- .../tests/database/DatabaseHandlerTest.java | 2 +- .../database/DatabaseImportExportTest.java | 2 +- .../database/DatabaseTagHandlerTest.java | 2 +- 14 files changed, 243 insertions(+), 26 deletions(-) create mode 100644 BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerHandler.java diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java index f5902dac3..6c6824cac 100644 --- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java +++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java @@ -107,6 +107,7 @@ public class Controller extends BaseController private Payment selectedPayment; private SearchPreferences searchPreferences; private CommandLine cmd; + private Process localServerProcess; private boolean alertIsShowing = false; private static DateTimeFormatter DATE_FORMAT; @@ -136,6 +137,11 @@ public class Controller extends BaseController public void init() { getStage().setOnCloseRequest((event)->{ + if(localServerProcess != null) + { + Logger.debug("Stopping local BudgetMasterServer..."); + localServerProcess.destroy(); + } Worker.shutdown(); System.exit(0); }); @@ -315,6 +321,11 @@ public class Controller extends BaseController { this.settings = settings; } + + public void setLocalServerProcess(Process process) + { + this.localServerProcess = process; + } public void showNotification(String text) { diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java index 1f5350ea3..d15e8952c 100644 --- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java +++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java @@ -3,6 +3,7 @@ package de.deadlocker8.budgetmasterclient.ui.controller; import java.io.IOException; import java.util.ArrayList; +import de.deadlocker8.budgetmaster.logic.LocalServerHandler; import de.deadlocker8.budgetmaster.logic.ServerType; import de.deadlocker8.budgetmaster.logic.Settings; import de.deadlocker8.budgetmaster.logic.updater.Updater; @@ -98,10 +99,17 @@ public class LocalServerSettingsController extends SettingsController hboxSettings.prefWidthProperty().bind(scrollPane.widthProperty().subtract(25)); refreshLabelsUpdate(); + + save(); } + @Override public void prefill() { + checkServerStatus(); + + textFieldCurrency.setText(controller.getSettings().getCurrency()); + if(controller.getSettings().isRestActivated()) { radioButtonRestActivated.setSelected(true); @@ -121,6 +129,82 @@ public class LocalServerSettingsController extends SettingsController checkboxEnableAutoUpdate.setSelected(controller.getSettings().isAutoUpdateCheckEnabled()); } + private void checkServerStatus() + { + LocalServerHandler serverHandler = new LocalServerHandler(); + if(serverHandler.isServerPresent()) + { + if(serverHandler.isServerRunning()) + { + labelLocalServerStatus.setText(Localization.getString(Strings.LOCAL_SERVER_STATUS_OK)); + buttonLocalServerAction.setVisible(false); + } + else + { + labelLocalServerStatus.setText(Localization.getString(Strings.LOCAL_SERVER_STATUS_NOT_STARTED)); + buttonLocalServerAction.setText(Localization.getString(Strings.LOCAL_SERVER_ACTION_NOT_STARTED)); + buttonLocalServerAction.setVisible(true); + buttonLocalServerAction.setDisable(false); + buttonLocalServerAction.setOnAction((event)->{ + buttonLocalServerAction.setDisable(true); + try + { + controller.setLocalServerProcess(serverHandler.startServer()); + try + { + Thread.sleep(2000); + } + catch(InterruptedException e) + { + } + checkServerStatus(); + + //TODO refresh all data + //TODO modals for download and start of server + //TODO autostart server on startup if serverType = local and server is present + } + catch(IOException e) + { + Logger.error(e); + AlertGenerator.showAlert(AlertType.ERROR, + Localization.getString(Strings.TITLE_ERROR), + "", + Localization.getString(Strings.ERROR_LOCAL_SERVER_START, e.getMessage()), + controller.getIcon(), controller.getStage(), null, false); + buttonLocalServerAction.setDisable(false); + } + }); + } + } + else + { + labelLocalServerStatus.setText(Localization.getString(Strings.LOCAL_SERVER_STATUS_NOT_PRESENT)); + buttonLocalServerAction.setText(Localization.getString(Strings.LOCAL_SERVER_ACTION_NOT_PRESENT)); + buttonLocalServerAction.setVisible(true); + buttonLocalServerAction.setDisable(false); + + buttonLocalServerAction.setOnAction((event)->{ + try + { + buttonLocalServerAction.setDisable(true); + serverHandler.downloadServer(Localization.getString(Strings.VERSION_NAME)); + serverHandler.createServerSettings(); + checkServerStatus(); + } + catch(Exception e) + { + Logger.error(e); + AlertGenerator.showAlert(AlertType.ERROR, + Localization.getString(Strings.TITLE_ERROR), + "", + Localization.getString(Strings.ERROR_LOCAL_SERVER_DOWNLOAD, e.getMessage()), + controller.getIcon(), controller.getStage(), null, false); + buttonLocalServerAction.setDisable(false); + } + }); + } + } + @Override void refreshLabelsUpdate() { @@ -161,7 +245,6 @@ public class LocalServerSettingsController extends SettingsController return; } - //TODO if(controller.getSettings().isComplete()) { if(!clientSecret.equals("******")) @@ -195,7 +278,7 @@ public class LocalServerSettingsController extends SettingsController } controller.getSettings().setSecret(HashUtils.hash("BudgetMaster", Helpers.SALT)); - controller.getSettings().setUrl("localhost:9000"); + controller.getSettings().setUrl("https://localhost:9000"); ArrayList<String> trustedHosts = new ArrayList<>(); trustedHosts.add("localhost"); controller.getSettings().setTrustedHosts(trustedHosts); @@ -235,6 +318,7 @@ public class LocalServerSettingsController extends SettingsController toggleButtonOnline.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14; -fx-background-radius: 3 0 0 3"); toggleButtonLocal.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_DARK_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14; -fx-background-radius: 0 3 3 0; -fx-effect: innershadow(gaussian, rgba(0,0,0,0.7), 10,0,0,0);"); buttonSave.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 16;"); + buttonLocalServerAction.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14;"); buttonExportDB.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14;"); buttonImportDB.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14;"); buttonDeleteDB.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_RED) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14;"); diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/OnlineServerSettingsController.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/OnlineServerSettingsController.java index 5d6f616d3..365a45b53 100644 --- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/OnlineServerSettingsController.java +++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/OnlineServerSettingsController.java @@ -112,7 +112,7 @@ public class OnlineServerSettingsController extends SettingsController { textFieldURL.setText(controller.getSettings().getUrl()); textFieldSecret.setText("******"); - textFieldCurrency.setText(controller.getSettings().getCurrency()); + textFieldCurrency.setText(controller.getSettings().getCurrency()); } if(controller.getSettings().isRestActivated()) diff --git a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties index 9408c7b3c..7441d6681 100644 --- a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties +++ b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties @@ -1,7 +1,7 @@ # DEFAULT app.name=BudgetMaster version.code=13 -version.name=1.8.0_alpha +version.name=1.7.0 version.date=07.11.17 author=Robert Goldmann credits=L�nderflaggen von Freepik auf https://www.flaticon.com\nVerwendete Schriftarten: OpenSans\nVerwendete Bibliotheken:\ngson 2.8.1\njoda-time 2.9.7\nitextpdf 5.0.6\nlaunch4j-maven-plugin 1.7.21\nspark-core 2.5.4\nslf4j 1.7.21\nmysql-connector 6.0.5\njunit 4.12\nsqlite-jdbc 3.21.0 @@ -67,6 +67,11 @@ trusted.hosts.placeholder=z.B. localhost undefined=unbekannt tagfield.placeholder=Neuen Tag hier eingeben shortcut.dev.console=F12 +local.server.status.ok=Server ist gestartet. +local.server.status.not.started=Server is nicht gestartet. +local.server.action.not.started=Starten +local.server.status.not.present=Server nicht gefunden. +local.server.action.not.present=Herunterladen # REPORT report.position=Nr. @@ -208,6 +213,8 @@ error.password.save=Beim Speichern des Passworts ist ein Fehler aufgetreten. error.updater.get.latest.version=Beim �berpr�fen auf Updates ist ein Fehler aufgetreten. Informationen zu neuen Versionen konnten nicht abgerufen werden. Versuche es sp�ter noch einmal. error.updater.download.latest.version=Beim Herunterladen des Updates ist ein Fehler aufgetreten.\n\n{0} error.open.browser=Beim �ffnen des Standardwebbrowsers ist ein Fehler aufgetreten. +error.local.server.start=Beim Starten des BudgetMasterServers ist ein Fehler aufgetreten.\n\n{0} +error.local.server.download=Beim Herunterladen des BudgetMasterServers ist ein Fehler aufgetreten.\n\n{0} # UI categorytab.button.category.new=\ Neue Kategorie diff --git a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties index d5b062fb3..9f40fe8fa 100644 --- a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties +++ b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties @@ -67,6 +67,11 @@ trusted.hosts.placeholder=e.g. localhost undefined=undefined tagfield.placeholder=Enter new Tag here shortcut.dev.console=F12 +local.server.status.ok=Server is running. +local.server.status.not.started=Server is not running. +local.server.action.not.started=Start +local.server.status.not.present=Server not found. +local.server.action.not.present=Download # REPORT report.position=No. @@ -208,6 +213,8 @@ error.password.save=An error occurred while saving the password. error.updater.get.latest.version=An error occurred while checking for updates. Information about latest versions could not be retrieved. Please try again later. error.updater.download.latest.version=An error occurred while downloading the update.\n\n{0} error.open.browser=An error occurred while opening the default web browser. +error.local.server.start=An error occurred while starting the BudgetMasterServer.\n\n{0} +error.local.server.download=An error occurred while downloading the BudgetMasterServer.\n\n{0} # UI categorytab.button.category.new=\ New Category diff --git a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerHandler.java b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerHandler.java new file mode 100644 index 000000000..ca9fb5f6d --- /dev/null +++ b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerHandler.java @@ -0,0 +1,99 @@ +package de.deadlocker8.budgetmaster.logic; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; + +import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; +import de.deadlocker8.budgetmaster.logic.utils.Strings; +import logger.Logger; +import tools.HashUtils; +import tools.Localization; +import tools.PathUtils; + +public class LocalServerHandler +{ + private static final String BUILD_FOLDER = "https://github.com/deadlocker8/BudgetMaster/raw/{}/build/"; + + public LocalServerHandler() + { + + } + + public boolean isServerPresent() + { + File file = new File(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/BudgetMasterServer.jar"); + return file.exists(); + } + + public boolean isServerRunning() + { + try + { + Settings settings = new Settings(); + settings.setUrl("https://localhost:9000"); + settings.setSecret(HashUtils.hash("BudgetMaster", Helpers.SALT)); + ArrayList<String> trustedHosts = new ArrayList<>(); + trustedHosts.add("localhost"); + settings.setTrustedHosts(trustedHosts); + ServerConnection connection = new ServerConnection(settings); + connection.getServerInfo(); + + return true; + } + catch(Exception e) + { + Logger.error(e); + return false; + } + } + + public void createServerSettings() throws FileNotFoundException + { + String databasePath = PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/BudgetMaster.db"; + String settings = "{\"databaseType\": \"sqlite\"," + + "\"databaseUrl\": \"" + databasePath + "\"," + + "\"databaseName\": \"budgetmaster\"," + + "\"databaseUsername\": \"root\"," + + "\"databasePassword\": \"\"," + + "\"serverPort\": 9000," + + "\"serverSecret\": \"BudgetMaster\"," + + "\"keystorePath\": \"default\"," + + "\"keystorePassword\": \"BudgetMaster\"}"; + PrintWriter writer = new PrintWriter(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/settings.json"); + writer.println(settings); + writer.close(); + } + + public void downloadServer(String versionName) throws Exception + { + PathUtils.checkFolder(new File(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer")); + + //download into temp directory and file + Path target = Paths.get(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/BudgetMasterServer.jar"); + download(BUILD_FOLDER.replace("{}", "v" + versionName) + "BudgetMasterServer.jar", target); + Logger.debug("Successfully downloaded BudgetMasterServer " + versionName); + } + + private void download(String url, Path target) throws IOException + { + URL website = new URL(url); + InputStream in = website.openStream(); + Files.copy(in, target, StandardCopyOption.REPLACE_EXISTING); + } + + public Process startServer() throws IOException + { + ProcessBuilder pb = new ProcessBuilder("java", "-jar", Paths.get(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/BudgetMasterServer.jar").toString()); + return pb.start(); + } +} \ No newline at end of file diff --git a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java index ebbd78bc2..9fdf6543d 100644 --- a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java +++ b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java @@ -70,6 +70,11 @@ public class Strings public static final String UNDEFINED = "undefined"; public static final String TAGFIELD_PLACEHOLDER = "tagfield.placeholder"; public static final String SHORTCUT_DEV_CONSOLE = "shortcut.dev.console"; + public static final String LOCAL_SERVER_STATUS_OK = "local.server.status.ok"; + public static final String LOCAL_SERVER_STATUS_NOT_STARTED = "local.server.status.not.started"; + public static final String LOCAL_SERVER_STATUS_NOT_PRESENT = "local.server.status.not.present"; + public static final String LOCAL_SERVER_ACTION_NOT_STARTED = "local.server.action.not.started"; + public static final String LOCAL_SERVER_ACTION_NOT_PRESENT = "local.server.action.not.present"; //REPORT public static final String REPORT_POSITION = "report.position"; @@ -177,7 +182,7 @@ public class Strings public static final String WARNING_PAYMENT_AMOUNT = "warning.payment.amount"; public static final String WARNING_EMPTY_PAYMENT_DATE = "warning.empty.payment.date"; public static final String WARNING_PAYMENT_REPEATING = "warning.payment.repeating"; - public static final String WARNING_EMPTY_SECRET_CLIENT = " warning.empty.secret.client"; + public static final String WARNING_EMPTY_SECRET_CLIENT = "warning.empty.secret.client"; public static final String WARNING_EMPTY_URL = "warning.empty.url"; public static final String WARNING_EMPTY_SECRET_SERVER = "warning.empty.secret.server"; public static final String WARNING_EMPTY_CURRENCY = "warning.empty.currency"; @@ -211,6 +216,8 @@ public class Strings public static final String ERROR_UPDATER_GET_LATEST_VERSION = "error.updater.get.latest.version"; public static final String ERROR_UPDATER_DOWNLOAD_LATEST_VERSION = "error.updater.download.latest.version"; public static final String ERROR_OPEN_BROWSER = "error.open.browser"; + public static final String ERROR_LOCAL_SERVER_START = "error.local.server.start"; + public static final String ERROR_LOCAL_SERVER_DOWNLOAD = "error.local.server.download"; //ABOUT public static final String ABOUT = "about"; diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/logic/Utils.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/logic/Utils.java index 3b8f6ac01..4d4fd5d39 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/logic/Utils.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/logic/Utils.java @@ -28,14 +28,14 @@ public class Utils { String settingsJSON; Settings settings; - + Gson gson = new Gson(); - - settingsJSON = new String(Files.readAllBytes(Paths.get(Settings.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent().resolve("settings.json"))); - settings = gson.fromJson(settingsJSON, Settings.class); - return settings; + + settingsJSON = new String(Files.readAllBytes(Paths.get(Settings.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent().resolve("settings.json"))); + settings = gson.fromJson(settingsJSON, Settings.class); + return settings; } - + public static void saveSettings(Settings settings) throws IOException, URISyntaxException { Gson gson = new GsonBuilder().setPrettyPrinting().create(); @@ -44,9 +44,11 @@ public class Utils writer.write(jsonString); writer.close(); } - - public static Connection getDatabaseConnection(Settings settings) throws SQLException + + public static Connection getDatabaseConnection(Settings settings) throws SQLException, ClassNotFoundException { + Class.forName("org.sqlite.JDBC"); + if(settings.getDatabaseType().equals("mysql")) { return DriverManager.getConnection("jdbc:mysql://" + settings.getDatabaseUrl() + settings.getDatabaseName() + "?useLegacyDatetimeCode=false&serverTimezone=Europe/Berlin&autoReconnect=true&wait_timeout=86400", settings.getDatabaseUsername(), settings.getDatabasePassword()); @@ -56,38 +58,38 @@ public class Utils return DriverManager.getConnection("jdbc:sqlite://" + settings.getDatabaseUrl()); } } - + public static DatabaseCreator getDatabaseCreator(Connection connection, Settings settings) { if(settings.getDatabaseType().equals("mysql")) { return new MysqlDatabaseCreator(connection, settings); } - else + else { return new SqliteDatabaseCreator(connection, settings); } } - + public static DatabaseHandler getDatabaseHandler(Settings settings) { if(settings.getDatabaseType().equals("mysql")) { return new MysqlDatabaseHandler(settings); } - else + else { return new SqliteDatabaseHandler(settings); } } - + public static DatabaseTagHandler getDatabaseTagHandler(Settings settings) { if(settings.getDatabaseType().equals("mysql")) { return new MysqlDatabaseTagHandler(settings); } - else + else { return new SqliteDatabaseTagHandler(settings); } diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java index 5ff516091..900e3b54e 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java @@ -108,14 +108,14 @@ public class SparkServer RouteOverview.enableRouteOverview(); - Logger.info("Trying to connect to database (jdbc:" + settings.getDatabaseType() + "://" + settings.getDatabaseUrl() + settings.getDatabaseName() + ")"); + Logger.info("Trying to connect to database (jdbc:" + settings.getDatabaseType() + "://" + settings.getDatabaseUrl() + ", databaseName: " + settings.getDatabaseName() + ")"); try { Connection connection = Utils.getDatabaseConnection(settings); DatabaseCreator creator = Utils.getDatabaseCreator(connection, settings); creator.createTables(); - Logger.info("Successfully initialized database (jdbc:" + settings.getDatabaseType() + "://" + settings.getDatabaseUrl() + settings.getDatabaseName() + ")"); + Logger.info("Successfully initialized database (jdbc:" + settings.getDatabaseType() + "://" + settings.getDatabaseUrl() + ", databaseName: " + settings.getDatabaseName() + ")"); connection.close(); } catch(Exception e) diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/database/DatabaseDelete.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/database/DatabaseDelete.java index e6a5f5ced..c9a6c1379 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/database/DatabaseDelete.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/database/DatabaseDelete.java @@ -44,7 +44,7 @@ public class DatabaseDelete implements AdvancedRoute return ""; } - catch(IllegalStateException | SQLException ex) + catch(IllegalStateException | SQLException | ClassNotFoundException ex) { halt(500, "Internal Server Error"); } diff --git a/BudgetMasterServer/src/main/resources/de/deadlocker8/budgetmasterserver/settings.json b/BudgetMasterServer/src/main/resources/de/deadlocker8/budgetmasterserver/settings.json index 4de1cf29b..bbe6f030a 100644 --- a/BudgetMasterServer/src/main/resources/de/deadlocker8/budgetmasterserver/settings.json +++ b/BudgetMasterServer/src/main/resources/de/deadlocker8/budgetmasterserver/settings.json @@ -5,7 +5,7 @@ "databaseUsername": "root", "databasePassword": "", "serverPort": 9000, - "serverSecret": "geheim", + "serverSecret": "BudgetMaster", "keystorePath": "default", "keystorePassword": "BudgetMaster" } \ No newline at end of file diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseHandlerTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseHandlerTest.java index 4014f6c79..216c65fc4 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseHandlerTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseHandlerTest.java @@ -51,7 +51,7 @@ public class DatabaseHandlerTest Localization.init("de/deadlocker8/budgetmaster/"); Localization.loadLanguage(Locale.ENGLISH); } - catch(IOException | URISyntaxException | SQLException e) + catch(IOException | URISyntaxException | SQLException | ClassNotFoundException e) { fail(e.getMessage()); } diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseImportExportTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseImportExportTest.java index f3d334296..ad8214ff3 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseImportExportTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseImportExportTest.java @@ -62,7 +62,7 @@ public class DatabaseImportExportTest Localization.init("de/deadlocker8/budgetmaster/"); Localization.loadLanguage(Locale.ENGLISH); } - catch(IOException | URISyntaxException | SQLException e) + catch(IOException | URISyntaxException | SQLException | ClassNotFoundException e) { fail(e.getMessage()); } diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseTagHandlerTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseTagHandlerTest.java index 49d8a5fef..5a6520d6a 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseTagHandlerTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseTagHandlerTest.java @@ -50,7 +50,7 @@ public class DatabaseTagHandlerTest Localization.init("de/deadlocker8/budgetmaster/"); Localization.loadLanguage(Locale.ENGLISH); } - catch(IOException | URISyntaxException | SQLException e) + catch(IOException | URISyntaxException | SQLException | ClassNotFoundException e) { fail(e.getMessage()); } -- GitLab