diff --git a/src/de/deadlocker8/budgetmaster/logic/Utils.java b/src/de/deadlocker8/budgetmaster/logic/Utils.java index 5b949e4a3f3329ab002e266b61921c6c76ddf7df..bb8fefa748e76b72b1f0fa90e952f221898db497 100644 --- a/src/de/deadlocker8/budgetmaster/logic/Utils.java +++ b/src/de/deadlocker8/budgetmaster/logic/Utils.java @@ -33,19 +33,11 @@ public class Utils } } - public static void saveSettings(Settings settings) - { - try - { - Gson gson = new Gson(); - String jsonString = gson.toJson(settings); - - Files.write(Paths.get(PathUtils.getOSindependentPath() + bundle.getString("folder") + "/settings.json"), jsonString.getBytes()); - } - catch(IOException e) - { - //ERRORHANDLING - e.printStackTrace(); - } + public static void saveSettings(Settings settings) throws IOException + { + Gson gson = new Gson(); + String jsonString = gson.toJson(settings); + + Files.write(Paths.get(PathUtils.getOSindependentPath() + bundle.getString("folder") + "/settings.json"), jsonString.getBytes()); } } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/ui/Controller.java b/src/de/deadlocker8/budgetmaster/ui/Controller.java index 8d7c3ed43a9b7df79947e63c05b17f7578a56ec2..409f3e0a448620161d798343d7a502fe36ff11de 100644 --- a/src/de/deadlocker8/budgetmaster/ui/Controller.java +++ b/src/de/deadlocker8/budgetmaster/ui/Controller.java @@ -119,8 +119,10 @@ public class Controller implements Refreshable } catch(IOException e) { - // ERRORHANDLING Logger.error(e); + Platform.runLater(() -> { + AlertGenerator.showAlert(AlertType.ERROR, "Fehler", "", "Beim Erstellen der Benutzeroberfläche ist ein Fehler aufgetreten", icon, stage, null, false); + }); } FontIcon iconPrevious = new FontIcon(FontIconType.CHEVRON_LEFT); diff --git a/src/de/deadlocker8/budgetmaster/ui/SettingsController.java b/src/de/deadlocker8/budgetmaster/ui/SettingsController.java index 92ec0e3fccff33ff627ab70ce8f0f94526e89700..9a829d06ca6598380d33d291a64e9440782a9129 100644 --- a/src/de/deadlocker8/budgetmaster/ui/SettingsController.java +++ b/src/de/deadlocker8/budgetmaster/ui/SettingsController.java @@ -1,5 +1,7 @@ package de.deadlocker8.budgetmaster.ui; +import java.io.IOException; + import de.deadlocker8.budgetmaster.logic.Settings; import de.deadlocker8.budgetmaster.logic.Utils; import javafx.fxml.FXML; @@ -10,6 +12,7 @@ import javafx.scene.control.RadioButton; import javafx.scene.control.TextField; import javafx.scene.control.ToggleGroup; import javafx.scene.layout.AnchorPane; +import logger.Logger; import tools.AlertGenerator; public class SettingsController @@ -75,13 +78,22 @@ public class SettingsController settings.setRestActivated(radioButtonRestActivated.isSelected()); controller.setSettings(settings); } - Utils.saveSettings(controller.getSettings()); + + try + { + Utils.saveSettings(controller.getSettings()); + } + catch(IOException e) + { + Logger.error(e); + AlertGenerator.showAlert(AlertType.ERROR, "Fehler", "", "Beim Speichern der Einstellungen ist ein Fehler aufgetreten", controller.getIcon(), controller.getStage(), null, false); + } controller.refresh(); controller.showNotification("Erfolgreich gespeichert"); } else { - AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Das Server Passwortfel darf nicht leer sein!", controller.getIcon(), controller.getStage(), null, false); + AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Das Server Passwortfeld darf nicht leer sein!", controller.getIcon(), controller.getStage(), null, false); } } else diff --git a/src/de/deadlocker8/budgetmasterserver/main/Main.java b/src/de/deadlocker8/budgetmasterserver/main/Main.java new file mode 100644 index 0000000000000000000000000000000000000000..7db6b448d7ac9916d7e94e0b5a684efc265e3f1e --- /dev/null +++ b/src/de/deadlocker8/budgetmasterserver/main/Main.java @@ -0,0 +1,51 @@ +package de.deadlocker8.budgetmasterserver.main; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Paths; + +import de.deadlocker8.budgetmasterserver.server.SparkServer; +import logger.LogLevel; +import logger.Logger; + +public class Main +{ + public static void main(String[] args) + { + Logger.setLevel(LogLevel.ALL); + try + { + File logFile = new File(Paths.get(SparkServer.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent().toFile() + "/error.log"); + Logger.enableFileOutput(logFile); + } + catch(URISyntaxException e1) + { + Logger.error(e1); + } + + if(!Files.exists(Paths.get("settings.properties"))) + { + try + { + Files.copy(SparkServer.class.getClassLoader().getResourceAsStream("de/deadlocker8/budgetmasterserver/resources/settings.properties"), Paths.get("settings.properties")); + } + catch(IOException e) + { + Logger.error(e); + } + } + + Settings settings; + try + { + settings = Utils.loadSettings(); + new SparkServer(settings); + } + catch(IOException e) + { + Logger.error(e); + } + } +} diff --git a/src/de/deadlocker8/budgetmasterserver/main/Utils.java b/src/de/deadlocker8/budgetmasterserver/main/Utils.java index a79d9ec196cb728c9a86f0dc421fc2a1d7731276..a6d3340fc3cd9d0dc21f70b1cfe625abcd4cdb8d 100644 --- a/src/de/deadlocker8/budgetmasterserver/main/Utils.java +++ b/src/de/deadlocker8/budgetmasterserver/main/Utils.java @@ -8,22 +8,14 @@ import com.google.gson.Gson; public class Utils { - public static Settings loadSettings() + public static Settings loadSettings() throws IOException { String settingsJSON; Settings settings; - try - { - Gson gson = new Gson(); - settingsJSON = new String(Files.readAllBytes(Paths.get("settings.properties"))); - settings = gson.fromJson(settingsJSON, Settings.class); - return settings; - } - catch(IOException e) - { - //ERRORHANDLING - e.printStackTrace(); - return null; - } + + Gson gson = new Gson(); + settingsJSON = new String(Files.readAllBytes(Paths.get("settings.properties"))); + settings = gson.fromJson(settingsJSON, Settings.class); + return settings; } } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java b/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java index 735dcbdd43c5b5197fd48809e1d3b261763413eb..c8957581ece82c9e1100e422dc067d2d2b9d413c 100644 --- a/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java +++ b/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java @@ -10,18 +10,11 @@ import static spark.Spark.post; import static spark.Spark.put; import static spark.Spark.secure; -import java.io.File; -import java.io.IOException; -import java.net.URISyntaxException; -import java.nio.file.Files; -import java.nio.file.Paths; - import com.google.gson.Gson; import com.google.gson.GsonBuilder; import de.deadlocker8.budgetmasterserver.main.DatabaseHandler; import de.deadlocker8.budgetmasterserver.main.Settings; -import de.deadlocker8.budgetmasterserver.main.Utils; import de.deadlocker8.budgetmasterserver.server.category.CategoryAdd; import de.deadlocker8.budgetmasterserver.server.category.CategoryDelete; import de.deadlocker8.budgetmasterserver.server.category.CategoryGet; @@ -37,43 +30,23 @@ import de.deadlocker8.budgetmasterserver.server.payment.repeating.RepeatingPayme import de.deadlocker8.budgetmasterserver.server.payment.repeating.RepeatingPaymentGetAll; import de.deadlocker8.budgetmasterserver.server.rest.RestGet; import de.deadlocker8.budgetmasterserver.server.updater.RepeatingPaymentUpdater; -import logger.LogLevel; import logger.Logger; import spark.Spark; import spark.route.RouteOverview; public class SparkServer -{ - private static Settings settings; - private static Gson gson; - private static DatabaseHandler handler; - - // DEBUG move main method to extra file and start SparkServer from there - public static void main(String[] args) throws URISyntaxException - { - Logger.setLevel(LogLevel.ALL); - File logFile = new File(Paths.get(SparkServer.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent().toFile() + "/error.log"); - Logger.enableFileOutput(logFile); +{ + private Gson gson; + private DatabaseHandler handler; + + public SparkServer(Settings settings) + { Logger.info("Initialized SparkServer"); gson = new GsonBuilder().setPrettyPrinting().create(); - - if(!Files.exists(Paths.get("settings.properties"))) - { - try - { - Files.copy(SparkServer.class.getClassLoader().getResourceAsStream("de/deadlocker8/budgetmasterserver/resources/settings.properties"), Paths.get("settings.properties")); - } - catch(IOException e) - { - // ERRORHANDLING - e.printStackTrace(); - } - } - - settings = Utils.loadSettings(); - + port(settings.getServerPort()); + // DEBUG secure("certs/keystore.jks", "geheim", null, null); RouteOverview.enableRouteOverview(); @@ -120,6 +93,7 @@ public class SparkServer }); Spark.exception(Exception.class, (exception, request, response) -> { + Logger.error(exception); exception.printStackTrace(); }); }