diff --git a/pom.xml b/pom.xml
index 0c68cde5..173f37e9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,8 +68,8 @@
maven-compiler-plugin
2.3.2
- 1.7
- 1.7
+ 1.8
+ 1.8
diff --git a/src/eva2/gui/JTextoutputFrame.java b/src/eva2/gui/JTextoutputFrame.java
index 3b1973d5..33586681 100644
--- a/src/eva2/gui/JTextoutputFrame.java
+++ b/src/eva2/gui/JTextoutputFrame.java
@@ -80,6 +80,7 @@ public class JTextoutputFrame implements JTextoutputFrameInterface, ActionListen
textArea.setCaretPosition(0);
textArea.setTabSize(16);
textArea.setFont(new Font("Courier New", Font.PLAIN, 12));
+ // Limit text output to 2500 Lines
((AbstractDocument)textArea.getDocument()).setDocumentFilter(new LineBufferDocumentFilter(textArea, 2500));
diff --git a/src/eva2/optimization/OptimizationParameters.java b/src/eva2/optimization/OptimizationParameters.java
index fef93cbe..daf63d2e 100644
--- a/src/eva2/optimization/OptimizationParameters.java
+++ b/src/eva2/optimization/OptimizationParameters.java
@@ -7,6 +7,7 @@ import eva2.optimization.strategies.InterfaceOptimizer;
import eva2.problems.F1Problem;
import eva2.problems.InterfaceOptimizationProblem;
import eva2.util.annotation.Description;
+import eva2.yaml.OptimizationConstructor;
import org.yaml.snakeyaml.Yaml;
import java.io.FileInputStream;
@@ -45,7 +46,7 @@ public class OptimizationParameters extends AbstractOptimizationParameters imple
OptimizationParameters instance = null;
try {
FileInputStream fileStream = new FileInputStream(yamlFile);
- instance = (OptimizationParameters) new Yaml().load(fileStream);
+ instance = (OptimizationParameters) new Yaml(new OptimizationConstructor()).load(fileStream);
} catch (Exception ex) {
System.out.println(ex.getStackTrace() + "\n" + ex.getMessage());
LOGGER.log(Level.INFO, "Could not load OptimizationParameters.yml.", ex);
diff --git a/src/eva2/yaml/BeanSerializer.java b/src/eva2/yaml/BeanSerializer.java
index 4c9dd487..6b66a459 100644
--- a/src/eva2/yaml/BeanSerializer.java
+++ b/src/eva2/yaml/BeanSerializer.java
@@ -7,6 +7,7 @@ import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.error.YAMLException;
import org.yaml.snakeyaml.introspector.Property;
import org.yaml.snakeyaml.nodes.Node;
+import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Represent;
import org.yaml.snakeyaml.representer.Representer;
@@ -39,6 +40,7 @@ public class BeanSerializer {
class OptimizationRepresenter extends Representer {
public OptimizationRepresenter() {
this.representers.put(Population.class, new RepresentPopulation());
+ this.addClassTag(Population.class, new Tag("!population"));
}
@Override
@@ -71,7 +73,6 @@ class OptimizationRepresenter extends Representer {
private class RepresentPopulation implements Represent {
public Node representData(Object data) {
try {
-
return representJavaBean(getProperties(data.getClass()), data);
} catch (IntrospectionException var3) {
throw new YAMLException(var3);
diff --git a/src/eva2/yaml/OptimizationConstructor.java b/src/eva2/yaml/OptimizationConstructor.java
new file mode 100644
index 00000000..e61bf536
--- /dev/null
+++ b/src/eva2/yaml/OptimizationConstructor.java
@@ -0,0 +1,43 @@
+package eva2.yaml;
+
+import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric;
+import eva2.optimization.population.Population;
+import eva2.optimization.population.PopulationInitMethod;
+import eva2.tools.Pair;
+import org.yaml.snakeyaml.constructor.AbstractConstruct;
+import org.yaml.snakeyaml.constructor.Constructor;
+import org.yaml.snakeyaml.nodes.MappingNode;
+import org.yaml.snakeyaml.nodes.Node;
+import org.yaml.snakeyaml.nodes.Tag;
+
+import java.util.ArrayList;
+import java.util.Map;
+
+/**
+ * Created by fabian on 07/12/15.
+ */
+public class OptimizationConstructor extends Constructor {
+ public OptimizationConstructor() {
+ this.yamlConstructors.put(new Tag("!population"), new ConstructPopulation());
+ }
+
+ private class ConstructPopulation extends AbstractConstruct {
+
+ @Override
+ public Object construct(Node node) {
+ Population pop = new Population();
+ Map