diff --git a/corefx/src/main/java/com/core/Main.java b/corefx/src/main/java/com/core/Main.java
index a3fa5396..626a3ffa 100644
--- a/corefx/src/main/java/com/core/Main.java
+++ b/corefx/src/main/java/com/core/Main.java
@@ -1,5 +1,6 @@
package com.core;
+import com.core.utils.ConfigUtils;
import com.jfoenix.controls.JFXDecorator;
import com.jfoenix.svg.SVGGlyphLoader;
import javafx.application.Application;
@@ -11,14 +12,21 @@ import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.text.Font;
import javafx.stage.Stage;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
public class Main extends Application {
- private static final Logger logger = LogManager.getLogger();
+ private static final Path LOG_FILE = Paths.get(System.getProperty("user.home"), ".core", "core.log");
@Override
public void start(Stage window) throws Exception {
+ // set core dir property for logging
+ System.setProperty("core_log", LOG_FILE.toString());
+
+ // check for and create gui home directory
+ ConfigUtils.checkForHomeDirectory();
+
// load svg icons
SVGGlyphLoader.loadGlyphsFont(getClass().getResourceAsStream("/icons/icomoon_material.svg"),
"icomoon.svg");
@@ -51,11 +59,9 @@ public class Main extends Application {
// configure window
window.setOnCloseRequest(event -> {
- logger.info("exiting gui");
Platform.exit();
System.exit(0);
});
- window.setOnShown(windowEvent -> logger.info("stage show event"));
window.show();
}
diff --git a/corefx/src/main/java/com/core/utils/ConfigUtils.java b/corefx/src/main/java/com/core/utils/ConfigUtils.java
index d5c0fec7..a48a1b0d 100644
--- a/corefx/src/main/java/com/core/utils/ConfigUtils.java
+++ b/corefx/src/main/java/com/core/utils/ConfigUtils.java
@@ -14,9 +14,9 @@ import java.util.*;
public final class ConfigUtils {
private static final Logger logger = LogManager.getLogger();
+ private static final Path HOME = Paths.get(System.getProperty("user.home"), ".core");
private static final String CONFIG_FILE_NAME = "config.json";
private static final String DEFAULT_CONFIG = "/" + CONFIG_FILE_NAME;
- private static final Path HOME = Paths.get(System.getProperty("user.home"), ".core");
private static final Path CONFIG_FILE = Paths.get(HOME.toString(), CONFIG_FILE_NAME);
private static final Path XML_DIR = Paths.get(HOME.toString(), "xml");
private static final Path MOBILITY_DIR = Paths.get(HOME.toString(), "mobility");
@@ -59,29 +59,31 @@ public final class ConfigUtils {
return new NodeTypeConfig(model, display, iconPath.toUri().toString(), services);
}
+ public static void checkForHomeDirectory() throws IOException {
+ if (!HOME.toFile().exists()) {
+ logger.info("creating core home directory");
+ Files.createDirectory(HOME);
+ Files.createDirectory(XML_DIR);
+ Files.createDirectory(MOBILITY_DIR);
+ Files.createDirectory(ICON_DIR);
+ createDefaultConfigFile();
+ }
+ }
+
+ private static void createDefaultConfigFile() throws IOException {
+ logger.info("creating default configuration");
+ Files.copy(ConfigUtils.class.getResourceAsStream(DEFAULT_CONFIG), CONFIG_FILE);
+ Configuration configuration = readConfig();
+ configuration.setXmlPath(XML_DIR.toString());
+ configuration.setMobilityPath(MOBILITY_DIR.toString());
+ configuration.setIconPath(ICON_DIR.toString());
+ configuration.setNodeTypeConfigs(createDefaults());
+ save(configuration);
+ }
+
public static Configuration load() {
try {
- if (!HOME.toFile().exists()) {
- logger.info("creating core home directory");
- Files.createDirectory(HOME);
- Files.createDirectory(XML_DIR);
- Files.createDirectory(MOBILITY_DIR);
- Files.createDirectory(ICON_DIR);
- }
-
- Configuration configuration;
- if (!CONFIG_FILE.toFile().exists()) {
- logger.info("creating default configuration");
- Files.copy(ConfigUtils.class.getResourceAsStream(DEFAULT_CONFIG), CONFIG_FILE);
- configuration = readConfig();
- configuration.setXmlPath(XML_DIR.toString());
- configuration.setMobilityPath(MOBILITY_DIR.toString());
- configuration.setIconPath(ICON_DIR.toString());
- configuration.setNodeTypeConfigs(createDefaults());
- save(configuration);
- } else {
- configuration = readConfig();
- }
+ Configuration configuration = readConfig();
// initialize node types
for (NodeTypeConfig nodeTypeConfig : configuration.getNodeTypeConfigs()) {
diff --git a/corefx/src/main/resources/log4j2.xml b/corefx/src/main/resources/log4j2.xml
index 2fda6f43..6e369f1f 100644
--- a/corefx/src/main/resources/log4j2.xml
+++ b/corefx/src/main/resources/log4j2.xml
@@ -4,10 +4,14 @@
+
+
+
+