diff --git a/src/eva2/gui/Main.java b/src/eva2/gui/Main.java index d216a25d..6728fb65 100644 --- a/src/eva2/gui/Main.java +++ b/src/eva2/gui/Main.java @@ -496,7 +496,7 @@ public class Main extends JFrame implements OptimizationStateListener { } }); - LOGGER.log(Level.FINE, "Working directory is: {0}", System.getProperty("user.dir")); + LOGGER.log(Level.INFO, "Working directory is: {0}", System.getProperty("user.dir")); LOGGER.log(Level.FINE, "Class path is: {0}", System.getProperty("java.class.path", ".")); if (!(configurationPane.isVisible())) { diff --git a/src/eva2/optimization/modules/OptimizationParameters.java b/src/eva2/optimization/modules/OptimizationParameters.java index 408e6d20..19e169fd 100644 --- a/src/eva2/optimization/modules/OptimizationParameters.java +++ b/src/eva2/optimization/modules/OptimizationParameters.java @@ -48,8 +48,8 @@ public class OptimizationParameters extends AbstractOptimizationParameters imple try { FileInputStream fileStream = new FileInputStream(yamlFile); instance = (OptimizationParameters) new Yaml().load(fileStream); - } catch (FileNotFoundException ex) { - LOGGER.log(Level.WARNING, "Could not load instance object.", ex); + } catch (Exception ex) { + LOGGER.log(Level.WARNING, "Could not load OptimizationParameters.yml.", ex); } if (instance == null) { diff --git a/src/eva2/optimization/modules/Processor.java b/src/eva2/optimization/modules/Processor.java index bddef2d9..f265140f 100644 --- a/src/eva2/optimization/modules/Processor.java +++ b/src/eva2/optimization/modules/Processor.java @@ -167,15 +167,17 @@ public class Processor extends Thread implements InterfaceProcessor, InterfacePo try { EVAERROR.clearMsgCache(); this.setName(getInfoString()); + if (isOptimizationRunning() && saveParams) { + try { + optimizationParameters.saveInstance(); + + } catch (Exception e) { + LOGGER.log(Level.WARNING, "Could not save optimization instance!", e); + } + } + while (isOptimizationRunning()) { setPriority(3); - if (saveParams) { - try { - optimizationParameters.saveInstance(); - } catch (Exception e) { - LOGGER.log(Level.WARNING, "Could not save optimization instance!", e); - } - } resultPopulation = this.optimize(); setPriority(1); } diff --git a/src/eva2/optimization/statistics/StatisticsParameters.java b/src/eva2/optimization/statistics/StatisticsParameters.java index a83d4a1b..363979e3 100644 --- a/src/eva2/optimization/statistics/StatisticsParameters.java +++ b/src/eva2/optimization/statistics/StatisticsParameters.java @@ -10,11 +10,10 @@ import eva2.tools.StringSelection; import eva2.util.annotation.Description; import eva2.util.annotation.Hidden; import eva2.util.annotation.Parameter; +import eva2.yaml.BeanSerializer; +import org.yaml.snakeyaml.Yaml; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.Serializable; +import java.io.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -62,13 +61,13 @@ public class StatisticsParameters implements InterfaceStatisticsParameters, Inte * * @return A loaded (from file) or new instance of the class. */ - public static StatisticsParameters getInstance(String serFileName) { + public static StatisticsParameters getInstance(String yamlFile) { StatisticsParameters instance = null; try { - FileInputStream fileStream = new FileInputStream(serFileName); - instance = (StatisticsParameters) Serializer.loadObject(fileStream); - } catch (FileNotFoundException ex) { - LOGGER.log(Level.WARNING, "Could not store instance object.", ex); + FileInputStream fileStream = new FileInputStream(yamlFile); + instance = (StatisticsParameters) new Yaml().load(fileStream); + } catch (Exception ex) { + LOGGER.log(Level.WARNING, "Could not load Statistics.yml.", ex); } if (instance == null) { @@ -106,9 +105,11 @@ public class StatisticsParameters implements InterfaceStatisticsParameters, Inte @Override public void saveInstance() { try { - FileOutputStream fileStream = new FileOutputStream("Statistics.ser"); - Serializer.storeObject(fileStream, this); - } catch (FileNotFoundException ex) { + FileOutputStream fileStream = new FileOutputStream("Statistics.yml"); + String yaml = BeanSerializer.serializeObject(this); + fileStream.write(yaml.getBytes()); + fileStream.close(); + } catch (IOException ex) { LOGGER.log(Level.WARNING, "Could not store instance object.", ex); } }