diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..70afca2
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,40 @@
+---
+name: Bug report
+about: Create a report to help us improve the following components of the GEMOC Studio: java engine, java_xdsml (K3) (if you know that the issue is relative to another component, consider opening the issue on one of the other GEMOC github repositories)
+title: ''
+labels: bug
+assignees: ''
+
+---
+
+## Bug description
+
+
+
+
+## Expected behavior
+
+
+
+
+## How to reproduce
+
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+## Additional context
+
+
+
+- **GEMOC Studio version**:
+- **Java version**:
+- **OS**:
+
+## Screenshot
+
+
+
+
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..f918bc2
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,22 @@
+---
+name: Feature request
+about: Suggest an idea to improve the following components of the GEMOC Studio: java engine, java_xdsml (K3) (if you know that the issue is relative to another component, consider opening the issue on one of the other GEMOC github repositories)
+title: ''
+labels: enhancement
+assignees: ''
+
+---
+
+## Motivation
+
+
+
+
+## Proposed Solution
+
+
+
+
+## Proposed Implementation
+
+
\ No newline at end of file
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 0000000..ecfe4a0
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,25 @@
+
+## Description
+
+
+
+
+Does X
+
+## Changes
+
+
+
+ -
+
+## Contribution to issues
+
+Contribute to #
+Closes #
+
+## Companion Pull Requests
+
+
+
+
+ - PR #
diff --git a/.gitignore b/.gitignore
index aeca2a8..d201c50 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,5 @@
bin/
-**/xtend-gen/
\ No newline at end of file
+**/xtend-gen/
+*/*.class
+**/target/
+**/.settings
diff --git a/.grenrc.yml b/.grenrc.yml
new file mode 100644
index 0000000..7dd1c06
--- /dev/null
+++ b/.grenrc.yml
@@ -0,0 +1,23 @@
+---
+ dataSource: "prs"
+ prefix: "v"
+ ignoreLabels:
+ - "duplicate"
+ - "invalid"
+ - "question"
+ - "to do"
+ - "wontfix"
+ ignoreIssuesWith:
+ - "duplicate"
+ - "invalid"
+ - "question"
+ - "wontfix"
+ "groupBy": {
+ "Enhancements:": ["enhancement"],
+ "Bug Fixes:": ["bug"],
+ "Refactorings": ["refactoring"],
+ "Version upgrades": ["bump"],
+ "Release Engineering": ["releng"]
+ }
+ onlyMilestones: false
+ changelogFilename: "CHANGELOG.md"
diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
index 5724f5e..c8b79d9 100644
--- a/.mvn/extensions.xml
+++ b/.mvn/extensions.xml
@@ -3,6 +3,6 @@
org.eclipse.tycho.extras
tycho-pomless
- 1.5.1
+ 1.7.0
\ No newline at end of file
diff --git a/.project b/.project
index c7d5d0a..e53bcff 100644
--- a/.project
+++ b/.project
@@ -1,11 +1,17 @@
- org.eclipse.gemoc.execution.sequential.java.root
+ gemoc-studio-execution-java
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+ org.eclipse.m2e.core.maven2Nature
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..355a23d
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,23 @@
+# Changelog
+
+## v3.2.0 (16/06/2020)
+
+#### Enhancements:
+
+- [**enhancement**] ValidationRule added to languageComponent in plugin [#10](https://github.com/eclipse/gemoc-studio-execution-java/pull/10)
+- [**enhancement**] Metaprogramming approach name changed to FullyQualifiedName [#8](https://github.com/eclipse/gemoc-studio-execution-java/pull/8)
+- [**enhancement**] Metaprog plugin modified to fit new extension point description + added LanguageComponent [#9](https://github.com/eclipse/gemoc-studio-execution-java/pull/9)
+- [**enhancement**] Validator removed from plugin.xml [#12](https://github.com/eclipse/gemoc-studio-execution-java/pull/12)
+- [**enhancement**] Validation plug-in for the Kermeta3 meta-programming approach in GEMOC Studio [#5](https://github.com/eclipse/gemoc-studio-execution-java/pull/5)
+
+#### Bug Fixes:
+
+- [**bug**] Fix windows specific issue on the K3 project creation wizard [#3](https://github.com/eclipse/gemoc-studio-execution-java/pull/3)
+
+#### Refactorings
+
+- [**refactoring**] Kermeta3Rule moved to the gemoc-modeldebugging [#6](https://github.com/eclipse/gemoc-studio-execution-java/pull/6)
+
+#### Release Engineering
+
+- [**releng**] Deploy GEMOC artefacts to maven repository (repo.eclipse.org) [#4](https://github.com/eclipse/gemoc-studio-execution-java/pull/4)
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e0f1458
--- /dev/null
+++ b/README.md
@@ -0,0 +1,20 @@
+-------------
+This repository is part of a serie of repositories related to [GEMOC Studio](http://eclipse.org/gemoc) :
+- https://github.com/eclipse/gemoc-studio
+- https://github.com/eclipse/gemoc-studio-modeldebugging
+- https://github.com/eclipse/gemoc-studio-execution-ale
+- https://github.com/eclipse/gemoc-studio-execution-java
+- https://github.com/eclipse/gemoc-studio-execution-moccml
+- https://github.com/eclipse/gemoc-studio-moccml
+-------------
+
+
+
+JAVA engine for GEMOC
+====================
+
+The repository includes the component related to ___java_execution___. Its contains an implementation of the GEMOC framework using a sequential java engine (based on xtend+k3).
+
+# Development
+- Continuous integration on [Eclipse CI](https://ci.eclipse.org/gemoc/job/gemoc-studio/)
+- [Instructions for building](https://github.com/eclipse/gemoc-studio/tree/master/dev_support/full_compilation)
diff --git a/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine.ui/.project b/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine.ui/.project
index 940f6ba..7533254 100644
--- a/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine.ui/.project
+++ b/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine.ui/.project
@@ -25,8 +25,14 @@
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+ org.eclipse.m2e.core.maven2Nature
org.eclipse.jdt.core.javanature
org.eclipse.pde.PluginNature
org.eclipse.xtext.ui.shared.xtextNature
diff --git a/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine.ui/src/org/eclipse/gemoc/execution/sequential/javaengine/ui/launcher/Launcher.java b/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine.ui/src/org/eclipse/gemoc/execution/sequential/javaengine/ui/launcher/Launcher.java
index 5043d1e..9ddea77 100644
--- a/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine.ui/src/org/eclipse/gemoc/execution/sequential/javaengine/ui/launcher/Launcher.java
+++ b/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine.ui/src/org/eclipse/gemoc/execution/sequential/javaengine/ui/launcher/Launcher.java
@@ -18,15 +18,18 @@
import org.eclipse.gemoc.commons.eclipse.ui.ViewHelper;
import org.eclipse.gemoc.execution.sequential.javaengine.PlainK3ExecutionEngine;
import org.eclipse.gemoc.execution.sequential.javaengine.ui.Activator;
+import org.eclipse.gemoc.executionframework.engine.commons.DefaultExecutionPlatform;
import org.eclipse.gemoc.executionframework.engine.commons.EngineContextException;
import org.eclipse.gemoc.executionframework.engine.commons.GenericModelExecutionContext;
+import org.eclipse.gemoc.executionframework.engine.commons.sequential.ISequentialModelExecutionContext;
import org.eclipse.gemoc.executionframework.engine.commons.sequential.ISequentialRunConfiguration;
+import org.eclipse.gemoc.executionframework.engine.commons.sequential.SequentialModelExecutionContext;
import org.eclipse.gemoc.executionframework.engine.commons.sequential.SequentialRunConfiguration;
import org.eclipse.gemoc.executionframework.engine.ui.launcher.AbstractSequentialGemocLauncher;
import org.eclipse.gemoc.executionframework.ui.views.engine.EnginesStatusView;
import org.eclipse.gemoc.xdsmlframework.api.core.ExecutionMode;
-public class Launcher extends AbstractSequentialGemocLauncher, ISequentialRunConfiguration> {
+public class Launcher extends AbstractSequentialGemocLauncher {
public final static String TYPE_ID = Activator.PLUGIN_ID + ".launcher";
@@ -35,8 +38,7 @@ protected PlainK3ExecutionEngine createExecutionEngine(ISequentialRunConfigurati
ExecutionMode executionMode) throws CoreException, EngineContextException {
// create and initialize engine
PlainK3ExecutionEngine executionEngine = new PlainK3ExecutionEngine();
- GenericModelExecutionContext executioncontext = new GenericModelExecutionContext(
- runConfiguration, executionMode);
+ SequentialModelExecutionContext executioncontext = new SequentialModelExecutionContext(runConfiguration, executionMode);
executioncontext.getExecutionPlatform().getModelLoader().setProgressMonitor(this.launchProgressMonitor);
executioncontext.initializeResourceModel();
executionEngine.initialize(executioncontext);
diff --git a/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/.project b/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/.project
index 0c10230..f1bc942 100644
--- a/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/.project
+++ b/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/.project
@@ -25,8 +25,14 @@
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+ org.eclipse.m2e.core.maven2Nature
org.eclipse.pde.PluginNature
org.eclipse.jdt.core.javanature
net.sf.eclipsecs.core.CheckstyleNature
diff --git a/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/pomfirst/pom.xml b/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/pomfirst/pom.xml
new file mode 100644
index 0000000..cc14dfa
--- /dev/null
+++ b/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/pomfirst/pom.xml
@@ -0,0 +1,91 @@
+
+
+ 4.0.0
+
+ org.eclipse.gemoc.pomfirst
+ org.eclipse.gemoc.execution.sequential.javaengine
+ 4.0.0-SNAPSHOT
+
+ jar
+
+
+ scm:git:https://github.com/eclipse/gemoc-studio-modeldebugging.git
+ UTF-8
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ unpack
+ prepare-package
+
+ unpack
+
+
+
+
+ org.eclipse.gemoc.execution.sequential.java
+ ${project.artifactId}
+ ${project.version}
+ jar
+ true
+ ${project.build.directory}/classes
+ **
+
+
+
+
+
+
+
+
+
+
+
+ org.eclipse.gemoc.pomfirst
+ org.eclipse.gemoc.xdsmlframework.api
+ 4.0.0-SNAPSHOT
+
+
+ org.eclipse.gemoc.pomfirst
+ org.eclipse.gemoc.trace.commons.model
+ 3.0.1-SNAPSHOT
+
+
+ org.eclipse.gemoc.pomfirst
+ org.eclipse.gemoc.trace.commons
+ 3.0.1-SNAPSHOT
+
+
+ org.eclipse.gemoc.pomfirst
+ org.eclipse.gemoc.trace.gemoc.api
+ 3.0.1-SNAPSHOT
+
+
+ org.eclipse.gemoc.pomfirst
+ org.eclipse.gemoc.executionframework.engine
+ 4.0.0-SNAPSHOT
+
+
+
+
+ nexus-eclipse-gemoc
+ Nexus Eclipse GEMOC
+
+ true
+
+
+ true
+
+ https://repo.eclipse.org/content/groups/gemoc/
+
+
+
\ No newline at end of file
diff --git a/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/src/org/eclipse/gemoc/execution/sequential/javaengine/PlainK3ExecutionEngine.java b/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/src/org/eclipse/gemoc/execution/sequential/javaengine/PlainK3ExecutionEngine.java
index 0cfb77b..04dfc58 100644
--- a/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/src/org/eclipse/gemoc/execution/sequential/javaengine/PlainK3ExecutionEngine.java
+++ b/java_engine/plugins/org.eclipse.gemoc.execution.sequential.javaengine/src/org/eclipse/gemoc/execution/sequential/javaengine/PlainK3ExecutionEngine.java
@@ -26,8 +26,8 @@
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.emf.transaction.impl.InternalTransactionalEditingDomain;
-import org.eclipse.gemoc.executionframework.engine.commons.GenericModelExecutionContext;
import org.eclipse.gemoc.executionframework.engine.commons.K3DslHelper;
+import org.eclipse.gemoc.executionframework.engine.commons.sequential.ISequentialModelExecutionContext;
import org.eclipse.gemoc.executionframework.engine.commons.sequential.ISequentialRunConfiguration;
import org.eclipse.gemoc.executionframework.engine.core.AbstractCommandBasedSequentialExecutionEngine;
import org.eclipse.gemoc.executionframework.engine.core.EngineStoppedException;
@@ -54,7 +54,7 @@
* @author Didier Vojtisek
*
*/
-public class PlainK3ExecutionEngine extends AbstractCommandBasedSequentialExecutionEngine, ISequentialRunConfiguration>
+public class PlainK3ExecutionEngine extends AbstractCommandBasedSequentialExecutionEngine, ISequentialRunConfiguration>
implements IStepManager {
private Method initializeMethod;
@@ -76,7 +76,7 @@ public String engineKindName() {
* operation.
*/
@Override
- protected void prepareEntryPoint(GenericModelExecutionContext executionContext) {
+ protected void prepareEntryPoint(ISequentialModelExecutionContext> executionContext) {
/*
* Get info from the RunConfiguration
*/
@@ -94,12 +94,31 @@ protected void prepareEntryPoint(GenericModelExecutionContext findEntryPointClass(String aspectClassName) {
+ ISequentialModelExecutionContext> executionContext = getExecutionContext();
Bundle bundle = findBundle(executionContext, aspectClassName);
if (bundle == null)
throw new RuntimeException("Could not find bundle for language \""
+ executionContext.getRunConfiguration().getLanguageName() + "\"");
- // search the class
+ Class> entryPointClass;
try {
entryPointClass = bundle.loadClass(aspectClassName);
} catch (ClassNotFoundException e) {
@@ -109,28 +128,21 @@ protected void prepareEntryPoint(GenericModelExecutionContext();
- EObject root = executionContext.getResourceModel().getEObject(mainModelElementURI);
+ return entryPointClass;
+ }
+
+ protected List