diff --git a/src/core/de.evoal.core.main/pom.xml b/src/core/de.evoal.core.main/pom.xml index d9962933e1db1fcd72818273543ef04ef7043086..20a852e0e02951f4b81e74ea209c921e3b704f8e 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 0000000000000000000000000000000000000000..698635a63d43592af8e2a6d33446141913153c84 --- /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 375e918114077458a9edec88dd52d6661506cc9f..bd1fbec6ed89fde20a30b1dcc41437c0956db713 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 1ed2b04c43c708c5306069be6c1868ad6a8924c9..f4b0fc43e31b6be241a34c6e0764d0e30411324e 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 1d960bcc74a8a0bc61a1b77c05a2e79b7b583428..8f197727f0d0eef3a4edebca88d50ace475cdf9d 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); + } } }