From cc50bff96152821a183d4ce7692df36d7069e792 Mon Sep 17 00:00:00 2001 From: "Bernhard J. Berger" <bernhard.berger@uni-bremen.de> Date: Fri, 10 Feb 2023 17:28:12 +0100 Subject: [PATCH] Added empty module builtin-provider. --- src/core/de.evoal.core.main/pom.xml | 6 ++++++ .../main/language/ModuleBuiltinProvider.java | 17 +++++++++++++++++ .../src/main/java/module-info.java | 3 +++ src/core/de.evoal.core.plugin/pom.xml | 7 +++++++ .../utils/builtin/BuiltinProviderFactory.java | 10 +++++++++- 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/core/de.evoal.core.main/src/main/java/de/evoal/core/main/language/ModuleBuiltinProvider.java diff --git a/src/core/de.evoal.core.main/pom.xml b/src/core/de.evoal.core.main/pom.xml index d9962933..20a852e0 100644 --- a/src/core/de.evoal.core.main/pom.xml +++ b/src/core/de.evoal.core.main/pom.xml @@ -218,6 +218,12 @@ <scope>runtime</scope> </dependency> + <dependency> + <groupId>de.evoal.languages</groupId> + <artifactId>de.evoal.languages.model.utils</artifactId> + <version>${evoal.languages.version}</version> + </dependency> + <!-- Xtext --> <dependency> <groupId>org.eclipse.emf</groupId> diff --git a/src/core/de.evoal.core.main/src/main/java/de/evoal/core/main/language/ModuleBuiltinProvider.java b/src/core/de.evoal.core.main/src/main/java/de/evoal/core/main/language/ModuleBuiltinProvider.java new file mode 100644 index 00000000..698635a6 --- /dev/null +++ b/src/core/de.evoal.core.main/src/main/java/de/evoal/core/main/language/ModuleBuiltinProvider.java @@ -0,0 +1,17 @@ +package de.evoal.core.main.language; + +import de.evoal.languages.model.utils.builtin.BuiltinProvider; +import lombok.extern.slf4j.Slf4j; + +import java.net.URI; +import java.util.Collection; +import java.util.Collections; + +@Slf4j +public class ModuleBuiltinProvider implements BuiltinProvider { + @Override + public Collection<URI> findBuiltins(String name) { + System.err.println("Builtins"); + return Collections.emptyList(); + } +} diff --git a/src/core/de.evoal.core.main/src/main/java/module-info.java b/src/core/de.evoal.core.main/src/main/java/module-info.java index 375e9181..bd1fbec6 100644 --- a/src/core/de.evoal.core.main/src/main/java/module-info.java +++ b/src/core/de.evoal.core.main/src/main/java/module-info.java @@ -39,6 +39,7 @@ module de.evoal.core.main { requires de.evoal.languages.model.el; requires de.evoal.languages.model.el.dsl; requires de.evoal.languages.model.instance; + requires de.evoal.languages.model.utils; requires com.google.guice; exports de.evoal.core.api.board; @@ -100,4 +101,6 @@ module de.evoal.core.main { opens de.evoal.core.api.ea.constraints.strategies to weld.core.impl; opens de.evoal.core.main.properties to weld.core.impl; opens de.evoal.core.main.ea.search to weld.core.impl; + + provides de.evoal.languages.model.utils.builtin.BuiltinProvider with de.evoal.core.main.language.ModuleBuiltinProvider; } diff --git a/src/core/de.evoal.core.plugin/pom.xml b/src/core/de.evoal.core.plugin/pom.xml index 1ed2b04c..f4b0fc43 100644 --- a/src/core/de.evoal.core.plugin/pom.xml +++ b/src/core/de.evoal.core.plugin/pom.xml @@ -167,6 +167,13 @@ <scope>provided</scope> </dependency> + <dependency> + <groupId>de.evoal.languages</groupId> + <artifactId>de.evoal.languages.model.utils</artifactId> + <version>${evoal.languages.version}</version> + <scope>provided</scope> + </dependency> + <!-- Dependency to EvoAl core --> <dependency> <groupId>de.evoal</groupId> diff --git a/src/languages/de.evoal.languages.model.utils/src/de/evoal/languages/model/utils/builtin/BuiltinProviderFactory.java b/src/languages/de.evoal.languages.model.utils/src/de/evoal/languages/model/utils/builtin/BuiltinProviderFactory.java index 1d960bcc..8f197727 100644 --- a/src/languages/de.evoal.languages.model.utils/src/de/evoal/languages/model/utils/builtin/BuiltinProviderFactory.java +++ b/src/languages/de.evoal.languages.model.utils/src/de/evoal/languages/model/utils/builtin/BuiltinProviderFactory.java @@ -3,6 +3,7 @@ package de.evoal.languages.model.utils.builtin; import java.util.Iterator; import java.util.ServiceLoader; +import java.util.function.Supplier; public final class BuiltinProviderFactory { public static BuiltinProvider create() { @@ -12,6 +13,13 @@ public final class BuiltinProviderFactory { return iterator.next(); } - return new ExtensionPointLookup().get(); + + try { + final Class<Supplier<BuiltinProvider>> clazz = (Class<Supplier<BuiltinProvider>>) Class.forName("de.evoal.languages.model.utils.builtin.ExtensionPointLookup"); + return clazz.newInstance().get(); + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { + e.printStackTrace(); + throw new RuntimeException(e); + } } } -- GitLab