From 1dfb1f80da2118ba27245a425f7f9a690992cee8 Mon Sep 17 00:00:00 2001
From: "Bernhard J. Berger" <bernhard.berger@uni-bremen.de>
Date: Sun, 5 Feb 2023 18:03:59 +0100
Subject: [PATCH] Towards OL #6

---
 src/core/de.evoal.core.arff/pom.xml            |  7 +++++++
 .../core/arff/io/ArffPropertiesReader.java     |  2 +-
 .../src/main/java/module-info.java             |  1 -
 .../evoal/core/arff/utils/LanguageUtils.java   |  2 +-
 src/core/de.evoal.core.plugin/pom.xml          | 13 ++++++++++---
 src/core/de.evoal.core/pom.xml                 | 11 +++++++++--
 .../correlation/el/RangeSwitch.java            |  2 +-
 .../producer/ConfigurationValueProducer.java   |  4 ++--
 .../main/producer/DataConstraintProducer.java  |  4 ++--
 .../EvolutionaryAlgorithmModelLoader.java      | 18 +++++++++---------
 .../core/main/search/HeuristicSearch.java      |  4 ++--
 .../src/main/java/module-info.java             |  6 +++---
 .../src/main/java/module-info.java             |  1 -
 src/core/de.evoal.releng.parent/pom.xml        | 10 +++++++---
 .../src/main/java/module-info.java             |  1 -
 15 files changed, 54 insertions(+), 32 deletions(-)

diff --git a/src/core/de.evoal.core.arff/pom.xml b/src/core/de.evoal.core.arff/pom.xml
index 78baba99..c9ab7639 100644
--- a/src/core/de.evoal.core.arff/pom.xml
+++ b/src/core/de.evoal.core.arff/pom.xml
@@ -23,5 +23,12 @@
 			<groupId>org.junit.jupiter</groupId>
 			<artifactId>junit-jupiter</artifactId>
 		</dependency>
+
+		<dependency>
+			<groupId>org.eclipse.xtext</groupId>
+			<artifactId>org.eclipse.xtext.util</artifactId>
+			<version>2.29.0</version>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 </project>
diff --git a/src/core/de.evoal.core.arff/src/main/java/de/evoal/core/arff/io/ArffPropertiesReader.java b/src/core/de.evoal.core.arff/src/main/java/de/evoal/core/arff/io/ArffPropertiesReader.java
index 17e147ae..ac6580d2 100644
--- a/src/core/de.evoal.core.arff/src/main/java/de/evoal/core/arff/io/ArffPropertiesReader.java
+++ b/src/core/de.evoal.core.arff/src/main/java/de/evoal/core/arff/io/ArffPropertiesReader.java
@@ -95,7 +95,7 @@ public class ArffPropertiesReader implements PropertiesReader {
                     if(instance.isMissing(index)) {
                         return decoratee.apply(instance, template, builder);
                     }
-                    
+
                     // add current specification to builder and let the chain complete it
                     builder.add(pSpec);
                     final Properties properties = decoratee.apply(instance, template, builder);
diff --git a/src/core/de.evoal.core.arff/src/main/java/module-info.java b/src/core/de.evoal.core.arff/src/main/java/module-info.java
index 425f4937..0be6a9f5 100644
--- a/src/core/de.evoal.core.arff/src/main/java/module-info.java
+++ b/src/core/de.evoal.core.arff/src/main/java/module-info.java
@@ -2,7 +2,6 @@ module de.evoal.core.arff {
     requires jakarta.inject.api;
     requires jakarta.enterprise.cdi.api;
 
-    requires guice;
     requires lombok;
     requires org.slf4j;
 
diff --git a/src/core/de.evoal.core.arff/src/test/java/de/evoal/core/arff/utils/LanguageUtils.java b/src/core/de.evoal.core.arff/src/test/java/de/evoal/core/arff/utils/LanguageUtils.java
index 8ab0f281..1d1bd18d 100644
--- a/src/core/de.evoal.core.arff/src/test/java/de/evoal/core/arff/utils/LanguageUtils.java
+++ b/src/core/de.evoal.core.arff/src/test/java/de/evoal/core/arff/utils/LanguageUtils.java
@@ -32,7 +32,7 @@ public class LanguageUtils {
     }
 
     private static void loadPackages() {
-        //DataDescriptionLanguageStandaloneSetup.doSetup();
+        DataDescriptionLanguageStandaloneSetup.doSetup();
     }
 
     private static <T extends EObject> T load(final URI modelURI, final Class<T> cl) {
diff --git a/src/core/de.evoal.core.plugin/pom.xml b/src/core/de.evoal.core.plugin/pom.xml
index 6f77eb60..d142111b 100644
--- a/src/core/de.evoal.core.plugin/pom.xml
+++ b/src/core/de.evoal.core.plugin/pom.xml
@@ -78,21 +78,28 @@
 		<dependency>
 			<groupId>org.eclipse.emf</groupId>
 			<artifactId>org.eclipse.emf.ecore</artifactId>
-			<version>2.25.0</version>
+			<version>2.29.0</version>
 			<scope>provided</scope>
 		</dependency>
 
 		<dependency>
 			<groupId>org.eclipse.emf</groupId>
 			<artifactId>org.eclipse.emf.common</artifactId>
-			<version>2.25.0</version>
+			<version>2.27.0</version>
 			<scope>provided</scope>
 		</dependency>
 
 		<dependency>
 			<groupId>org.eclipse.xtext</groupId>
 			<artifactId>org.eclipse.xtext</artifactId>
-			<version>2.25.0</version>
+			<version>2.29.0</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.eclipse.xtext</groupId>
+			<artifactId>org.eclipse.xtext.util</artifactId>
+			<version>2.29.0</version>
 			<scope>provided</scope>
 		</dependency>
 
diff --git a/src/core/de.evoal.core/pom.xml b/src/core/de.evoal.core/pom.xml
index 2fec84e8..c004fee0 100644
--- a/src/core/de.evoal.core/pom.xml
+++ b/src/core/de.evoal.core/pom.xml
@@ -143,7 +143,7 @@
 
 		<dependency>
 			<groupId>de.evoal.languages</groupId>
-			<artifactId>de.evoal.languages.model.eal</artifactId>
+			<artifactId>de.evoal.languages.model.ol</artifactId>
 			<version>${evoal.languages.version}</version>
 			<scope>compile</scope>
 		</dependency>
@@ -186,7 +186,7 @@
 
 		<dependency>
 			<groupId>de.evoal.languages</groupId>
-			<artifactId>de.evoal.languages.model.eal.dsl</artifactId>
+			<artifactId>de.evoal.languages.model.ol.dsl</artifactId>
 			<version>${evoal.languages.version}</version>
 			<scope>compile</scope>
 		</dependency>
@@ -231,6 +231,13 @@
 			<scope>compile</scope>
 		</dependency>
 
+		<dependency>
+			<groupId>org.eclipse.xtext</groupId>
+			<artifactId>org.eclipse.xtext.util</artifactId>
+			<version>2.29.0</version>
+			<scope>compile</scope>
+		</dependency>
+
 		<dependency>
 			<groupId>io.jenetics</groupId>
 			<artifactId>jenetics.ext</artifactId>
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/constraints/correlation/el/RangeSwitch.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/constraints/correlation/el/RangeSwitch.java
index 02f35952..33f382bd 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/constraints/correlation/el/RangeSwitch.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/ea/constraints/correlation/el/RangeSwitch.java
@@ -97,7 +97,7 @@ public class RangeSwitch extends ELSwitch<Range> {
 
     @Override
     public Range caseCall(final Call object) {
-        final de.evoal.languages.model.eal.FunctionName calledFunction = (de.evoal.languages.model.eal.FunctionName)object.getFunction();
+        final de.evoal.languages.model.ol.FunctionName calledFunction = (de.evoal.languages.model.ol.FunctionName)object.getFunction();
         if(!"range".equals(calledFunction.getDefinition().getName())) {
             throw new IllegalStateException("Searching for range but found: " + calledFunction.getDefinition().getName());
         }
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/ConfigurationValueProducer.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/ConfigurationValueProducer.java
index 4f341d3e..6898925d 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/ConfigurationValueProducer.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/ConfigurationValueProducer.java
@@ -4,7 +4,7 @@ import de.evoal.core.api.board.Blackboard;
 import de.evoal.core.api.board.BlackboardEntry;
 import de.evoal.core.api.cdi.ConfigurationValue;
 import de.evoal.core.api.utils.LanguageHelper;
-import de.evoal.languages.model.eal.EAModel;
+import de.evoal.languages.model.ol.OptimisationModel;
 import de.evoal.languages.model.el.DoubleLiteral;
 import de.evoal.languages.model.instance.Array;
 import de.evoal.languages.model.instance.Instance;
@@ -78,7 +78,7 @@ public class ConfigurationValueProducer {
                 .toArray();
     }
 
-    private static <T> T lookup(final EAModel model, final String access) {
+    private static <T> T lookup(final OptimisationModel model, final String access) {
         return LanguageHelper.lookup(model.getInstance(), access);
     }
 }
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/DataConstraintProducer.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/DataConstraintProducer.java
index 3058fd2f..f9a5a649 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/DataConstraintProducer.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/DataConstraintProducer.java
@@ -4,7 +4,7 @@ import de.evoal.core.api.ea.constraints.model.DataConstraints;
 import de.evoal.languages.model.ddl.DataDescription;
 import de.evoal.languages.model.ddl.DataDescriptionModel;
 import de.evoal.languages.model.ddl.TypedDataDescription;
-import de.evoal.languages.model.eal.EAModel;
+import de.evoal.languages.model.ol.OptimisationModel;
 import de.evoal.languages.model.el.Expression;
 import de.evoal.languages.model.instance.DataReference;
 import org.eclipse.emf.common.util.TreeIterator;
@@ -24,7 +24,7 @@ import java.util.stream.StreamSupport;
 @ApplicationScoped
 public class DataConstraintProducer {
     @Produces @Dependent
-    public DataConstraints produceDataInformation(final EAModel model) {
+    public DataConstraints produceDataInformation(final OptimisationModel model) {
         final TreeIterator<EObject> iterator = model.eAllContents();
         Iterable<EObject> iterable = () -> iterator;
 
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/EvolutionaryAlgorithmModelLoader.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/EvolutionaryAlgorithmModelLoader.java
index 67567444..bc57b1b6 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/EvolutionaryAlgorithmModelLoader.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/producer/EvolutionaryAlgorithmModelLoader.java
@@ -10,9 +10,9 @@ import javax.enterprise.inject.Produces;
 
 import de.evoal.languages.model.ddl.dsl.DataDescriptionLanguageStandaloneSetup;
 import de.evoal.languages.model.dl.dsl.DefinitionLanguageStandaloneSetup;
-import de.evoal.languages.model.eal.EAModel;
-import de.evoal.languages.model.eal.dsl.EvolutionaryAlgorithmLanguageStandaloneSetup;
-import de.evoal.languages.model.eal.impl.EALPackageImpl;
+import de.evoal.languages.model.ol.OptimisationModel;
+import de.evoal.languages.model.ol.dsl.OptimisationLanguageStandaloneSetup;
+import de.evoal.languages.model.ol.impl.OLPackageImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
@@ -28,7 +28,7 @@ import java.io.File;
 public class EvolutionaryAlgorithmModelLoader {
     @Inject
     private Blackboard board;
-    private EAModel model;
+    private OptimisationModel model;
 
     public void load(final @Observes BlackboardEntry entry) {
         if(!entry.isSame(BlackboardEntry.EA_CONFIGURATION_FILE)) {
@@ -46,7 +46,7 @@ public class EvolutionaryAlgorithmModelLoader {
 
         initializeEMF();
 
-        final Injector ealInjector = new EvolutionaryAlgorithmLanguageStandaloneSetup().createInjectorAndDoEMFRegistration();
+        final Injector ealInjector = new OptimisationLanguageStandaloneSetup().createInjectorAndDoEMFRegistration();
         // do not remove the following line even if the injector is not used. Otherwise, parsing eal files breaks.
         final Injector idlInjector = new DefinitionLanguageStandaloneSetup().createInjectorAndDoEMFRegistration();
 
@@ -80,7 +80,7 @@ public class EvolutionaryAlgorithmModelLoader {
                 throw new IllegalArgumentException("EAL file contains errors. Please fix the file.");
             }
 
-            model = (EAModel) resource.getContents().get(0);
+            model = (OptimisationModel) resource.getContents().get(0);
             board.bind(BlackboardEntry.EA_CONFIGURATION, model);
         } catch (final Exception e) {
             log.error("Unable to evolutionary algorithm configuration file '{}'.", configurationFile, e);
@@ -91,15 +91,15 @@ public class EvolutionaryAlgorithmModelLoader {
      * Initialize the model packages and perform the parser setup.
      */
     private void initializeEMF() {
-        EALPackageImpl.init();
+        OLPackageImpl.init();
 
-        EvolutionaryAlgorithmLanguageStandaloneSetup.doSetup();
+        OptimisationLanguageStandaloneSetup.doSetup();
         DataDescriptionLanguageStandaloneSetup.doSetup();
     }
 
     @Produces
     @Dependent
-    public EAModel getConfiguration() {
+    public OptimisationModel getConfiguration() {
         return model;
     }
 }
diff --git a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/search/HeuristicSearch.java b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/search/HeuristicSearch.java
index d70e8419..e1a610f4 100644
--- a/src/core/de.evoal.core/src/main/java/de/evoal/core/main/search/HeuristicSearch.java
+++ b/src/core/de.evoal.core/src/main/java/de/evoal/core/main/search/HeuristicSearch.java
@@ -21,11 +21,11 @@ import de.evoal.core.main.ea.codec.DynamicCodec;
 import de.evoal.core.main.ea.fitness.JeneticsFitnessFunction;
 import de.evoal.core.main.ea.initial.InitialPopulationFactory;
 import de.evoal.core.main.jenetics.ConstraintList;
-import de.evoal.languages.model.eal.EAModel;
 import de.evoal.languages.model.instance.Array;
 import de.evoal.languages.model.instance.Attribute;
 import de.evoal.languages.model.instance.Name;
 import de.evoal.languages.model.instance.Value;
+import de.evoal.languages.model.ol.OptimisationModel;
 import io.jenetics.*;
 import io.jenetics.engine.*;
 import io.jenetics.stat.MinMax;
@@ -137,7 +137,7 @@ public class HeuristicSearch {
 	}
 
 	private void setup() {
-		final EAModel configuration = board.get(BlackboardEntry.EA_CONFIGURATION);
+		final OptimisationModel configuration = board.get(BlackboardEntry.EA_CONFIGURATION);
 
 		final de.evoal.languages.model.instance.Instance alterers = LanguageHelper.lookup(configuration.getInstance(), "algorithm.alterers");
 
diff --git a/src/core/de.evoal.core/src/main/java/module-info.java b/src/core/de.evoal.core/src/main/java/module-info.java
index dabb7fc3..139b49af 100644
--- a/src/core/de.evoal.core/src/main/java/module-info.java
+++ b/src/core/de.evoal.core/src/main/java/module-info.java
@@ -21,7 +21,6 @@ module de.evoal.core {
     requires smile.math;
 
     requires decimal4j;
-    requires guice;
 
     requires com.fasterxml.jackson.databind;
 
@@ -33,11 +32,12 @@ module de.evoal.core {
     requires de.evoal.languages.model.ddl.dsl;
     requires de.evoal.languages.model.dl;
     requires de.evoal.languages.model.dl.dsl;
-    requires de.evoal.languages.model.eal;
-    requires de.evoal.languages.model.eal.dsl;
+    requires de.evoal.languages.model.ol;
+    requires de.evoal.languages.model.ol.dsl;
     requires de.evoal.languages.model.el;
     requires de.evoal.languages.model.el.dsl;
     requires de.evoal.languages.model.instance;
+    requires com.google.guice;
 
     exports de.evoal.core.api.board;
     exports de.evoal.core.api.cdi;
diff --git a/src/core/de.evoal.generator.main/src/main/java/module-info.java b/src/core/de.evoal.generator.main/src/main/java/module-info.java
index d615d991..813509a4 100644
--- a/src/core/de.evoal.generator.main/src/main/java/module-info.java
+++ b/src/core/de.evoal.generator.main/src/main/java/module-info.java
@@ -24,7 +24,6 @@ module de.evoal.generator.main {
     requires de.evoal.languages.model.generator.dsl;
 
     requires de.evoal.core;
-    requires guice;
     requires commons.math3;
 
     opens de.evoal.generator.main;
diff --git a/src/core/de.evoal.releng.parent/pom.xml b/src/core/de.evoal.releng.parent/pom.xml
index c750a06c..ddd671d7 100644
--- a/src/core/de.evoal.releng.parent/pom.xml
+++ b/src/core/de.evoal.releng.parent/pom.xml
@@ -113,21 +113,21 @@
             <dependency>
                 <groupId>org.eclipse.emf</groupId>
                 <artifactId>org.eclipse.emf.ecore</artifactId>
-                <version>2.25.0</version>
+                <version>2.29.0</version>
                 <scope>provided</scope>
             </dependency>
 
             <dependency>
                 <groupId>org.eclipse.emf</groupId>
                 <artifactId>org.eclipse.emf.common</artifactId>
-                <version>2.25.0</version>
+                <version>2.27.0</version>
                 <scope>provided</scope>
             </dependency>
 
             <dependency>
                 <groupId>org.eclipse.xtext</groupId>
                 <artifactId>org.eclipse.xtext</artifactId>
-                <version>2.25.0</version>
+                <version>2.29.0</version>
                 <scope>provided</scope>
             </dependency>
 
@@ -290,6 +290,10 @@
                         <version>9.4</version>
                     </dependency>
                 </dependencies>
+                <configuration>
+
+                </configuration>
+
             </plugin>
 
             <plugin>
diff --git a/src/core/de.evoal.surrogate.api/src/main/java/module-info.java b/src/core/de.evoal.surrogate.api/src/main/java/module-info.java
index 6d39848b..fcb98f44 100644
--- a/src/core/de.evoal.surrogate.api/src/main/java/module-info.java
+++ b/src/core/de.evoal.surrogate.api/src/main/java/module-info.java
@@ -10,7 +10,6 @@ module de.evoal.surrogate.api {
 
     requires org.eclipse.emf.ecore;
     requires org.eclipse.emf.common;
-    requires guice;
     requires org.eclipse.xtext;
     requires com.fasterxml.jackson.databind;
     requires smile.math;
-- 
GitLab