diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
index f9988103..320ec994 100644
--- a/.mvn/extensions.xml
+++ b/.mvn/extensions.xml
@@ -1,8 +1,8 @@
-
- org.eclipse.tycho.extras
- tycho-pomless
- 2.5.0
-
+
+ org.eclipse.tycho
+ tycho-build
+ 2.7.0
+
\ No newline at end of file
diff --git a/dev_support/pomfirst_full_compilation/README.asciidoc b/dev_support/pomfirst_full_compilation/README.asciidoc
new file mode 100644
index 00000000..b84e9d89
--- /dev/null
+++ b/dev_support/pomfirst_full_compilation/README.asciidoc
@@ -0,0 +1,74 @@
+////////////////////////////////////////////////////////////////
+// Reproduce title only if not included in master documentation
+////////////////////////////////////////////////////////////////
+ifndef::includedInMaster[]
+
+= Developer Guide
+== Contributing
+
+endif::[]
+
+
+=== Compilation of the pom first jar
+
+==== Introduction
+
+Some of the components provided as part of the GEMOC Studio are now available as pomfirst. This means that the jar are compiled and provided using
+maven dependency system (while the Eclipse studio is compiled using manifest dependency information using tycho).
+
+Only a subset of the components are provided as pomfirst. You can still use them in your pomfirst build but will need to rebuild the dependencies for maven.
+(You can also open a request https://github.com/eclipse/gemoc-studio/issues for a given jar you may require).
+
+The source code of the [GEMOC Studio](http://gemoc.org/studio/) is currently spread among different git repositories in Eclipse organization.
+
+This project relies on the presence of the correct git repositories (cloned with the correct name) to locally build a working studio.
+
+
+==== Usage
+
+First checkout the git repositories :
+
+[source,bourne]
+----
+git clone https://github.com/eclipse/gemoc-studio
+git clone https://github.com/eclipse/gemoc-studio-modeldebugging
+git clone https://github.com/eclipse/gemoc-studio-execution-moccml
+git clone https://github.com/eclipse/gemoc-studio-moccml
+git clone https://github.com/eclipse/gemoc-studio-execution-ale
+git clone https://github.com/eclipse/gemoc-studio-execution-java
+----
+
+Note: the repositories must keep their names (Ie. do not change the destination folder name) as the maven pom file expects to find them at specific locations.
+
+Generate the protocols code
+
+[source,bourne]
+----
+cd gemoc-studio-modeldebugging/protocols/generators/ts/JSONSchema2APIProtocolGenerator
+npm run build
+npm run generate
+----
+
+Then compile and install the pomfirst component:
+
+[source,bourne]
+----
+cd gemoc-studio/dev_support/pomfirst_full_compilation
+mvn install
+----
+
+[NOTE]
+====
+Most of the pomfirst component are completely recompiled from the same sources as their tycho equivalent but using maven dependencies instead of platform target.
+This is NOT only a repackaging of the .class and ensure that the dependencies are all defined.
+
+They typically use `maven-resources-plugin` to copy the java sources.
+====
+
+[NOTE]
+====
+`gemoc-studio/dev_support/pomfirst_full_compilation/pom.xml` is a convenient central place to compile all of them across the GEMOC repositories in one command.
+====
+
+
+
diff --git a/dev_support/tycho_full_compilation/README.asciidoc b/dev_support/tycho_full_compilation/README.asciidoc
index 7995ab94..4a2c4a3c 100644
--- a/dev_support/tycho_full_compilation/README.asciidoc
+++ b/dev_support/tycho_full_compilation/README.asciidoc
@@ -34,7 +34,16 @@ git clone https://github.com/eclipse/gemoc-studio-execution-java
Note: the repositories must keep their names (Ie. do not change the destination folder name) as the maven pom file expects to find them at specific locations.
-Then compile using maven:
+Generate the protocols code
+
+[source,bourne]
+----
+cd gemoc-studio-modeldebugging/protocols/generators/ts/JSONSchema2APIProtocolGenerator
+npm run build
+npm run generate
+----
+
+Then compile the Eclipse Studio using maven:
[source,bourne]
----
diff --git a/docs/org.eclipse.gemoc.studio.doc/pom.xml b/docs/org.eclipse.gemoc.studio.doc/pom.xml
index afd320d8..b001ef9c 100644
--- a/docs/org.eclipse.gemoc.studio.doc/pom.xml
+++ b/docs/org.eclipse.gemoc.studio.doc/pom.xml
@@ -171,6 +171,10 @@
${basedir}/../../../gemoc-studio-modeldebugging/commons/docs/dev/images
images
+
+
+ ${basedir}/../../../gemoc-studio-modeldebugging/protocols/engine_addon_protocol/docs/images
+ images
${basedir}/../../../gemoc-studio-execution-java/docs/dev/images
diff --git a/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/dev/Protocols_headContent.asciidoc b/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/dev/Protocols_headContent.asciidoc
new file mode 100644
index 00000000..9f4a7981
--- /dev/null
+++ b/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/dev/Protocols_headContent.asciidoc
@@ -0,0 +1,28 @@
+////////////////////////////////////////////////////////////////
+// Reproduce title only if not included in master documentation
+////////////////////////////////////////////////////////////////
+ifndef::includedInMaster[]
+
+= Developer Guide
+== Components Overview
+
+endif::[]
+
+
+footnote:[asciidoc source of this page: https://github.com/eclipse/gemoc-studio/tree/master/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/dev/Protocols_headContent.asciidoc.]
+
+In addition to java API, the GEMOC Studio implements several web protocols.
+
+For consistency, these protocols are defined using the same mechanism as LSP.
+
+However, in order to be deployed internally in web browsers, instead of defining a socket or a port for each protocol, most implementation in the studio use websockets.
+
+For convenience, an extensible websocket server is provided as an eclipse plugin. This allows to deploy a new endpoint in any eclipse based application or IDE,
+simply by adding a plugin extension.
+
+<> shows an overview of the components that offer or use the protocols in the Eclipse Studio.
+
+[[img-ProtocolsOverview-devguide]]
+.Protocols overview
+image::images/dev/ProtocolsOverview.png["Protocols overview"]
+
diff --git a/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/images/dev/ProtocolsOverview.plantuml b/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/images/dev/ProtocolsOverview.plantuml
new file mode 100644
index 00000000..d5d19f7e
--- /dev/null
+++ b/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/images/dev/ProtocolsOverview.plantuml
@@ -0,0 +1,15 @@
+@startuml
+skinparam ComponentBorderColor black
+
+scale max 1024 width
+scale max 800 height
+
+node "Execution Framework" as exec_framework {
+ [org.eclipse.gemoc.executionframework.addon.eaop.server]
+}
+
+interface "Engine AddOn Protocol" as EAOP
+
+org.eclipse.gemoc.executionframework.addon.eaop.server - EAOP
+
+@enduml
\ No newline at end of file
diff --git a/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/master.asciidoc b/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/master.asciidoc
index f4c2b0c0..2b97b5ca 100644
--- a/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/master.asciidoc
+++ b/docs/org.eclipse.gemoc.studio.doc/src/main/asciidoc/master.asciidoc
@@ -316,10 +316,17 @@ include::../../../../../../gemoc-studio-execution-java/docs/dev/JavaExecution.as
include::../../../../../../gemoc-studio-execution-ale/docs/dev/ALEExecution.asciidoc[]
+== Protocols
+
+include::dev/Protocols_headContent.asciidoc[]
+
+include::../../../../../../gemoc-studio-modeldebugging/protocols/engine_addon_protocol/docs/EngineAddonProtocol.asciidoc[]
+
== Contributing
-include::../../../../../../gemoc-studio/dev_support/full_compilation/README.asciidoc[]
+include::../../../../../../gemoc-studio/dev_support/tycho_full_compilation/README.asciidoc[]
+include::../../../../../../gemoc-studio/dev_support/pomfirst_full_compilation/README.asciidoc[]
=== Developing new features
diff --git a/gemoc_studio/plugins/gemoc_studio-eclipse-bom/pom.xml b/gemoc_studio/plugins/gemoc_studio-eclipse-bom/pom.xml
index a65aa057..ca3156e6 100644
--- a/gemoc_studio/plugins/gemoc_studio-eclipse-bom/pom.xml
+++ b/gemoc_studio/plugins/gemoc_studio-eclipse-bom/pom.xml
@@ -33,7 +33,7 @@
UTF-8
true
- 2.5.0
+ 2.7.0
2.25.0
http://download.eclipse.org/releases/2021-12
diff --git a/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.headless.feature/feature.xml b/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.headless.feature/feature.xml
index f65dffc6..578d3f27 100644
--- a/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.headless.feature/feature.xml
+++ b/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.headless.feature/feature.xml
@@ -101,6 +101,9 @@ http://www.eclipse.org/legal/epl-v10.html
+
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+ org.eclipse.jetty.osgi
+ jetty-osgi-boot
+ 10.0.6
+ jar
+
+
+
+
+
+
+ org.apache.aries.spifly
+ org.apache.aries.spifly.dynamic.bundle
+ 1.3.4
+ jar
+
+
+
+
+
+
+ com.ibm.icu
+ icu4j
+ 70.1
+ jar
+
+
+
+
+
+
+ javax.servlet
+ javax.servlet-api
+ 3.1.0
+ jar
+
+
+
+
+
+
+ org.eclipse.jetty.websocket
+ websocket-javax-server
+ 10.0.6
+ jar
+
+
+
+
+
+
+ org.eclipse.jetty.toolchain
+ jetty-javax-websocket-api
+ 1.1.2
+ jar
+
+
+
+
+
+
+ org.mapstruct
+ mapstruct
+ 1.4.2.Final
+ jar
+
+
+
-
+
\ No newline at end of file
diff --git a/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.targetplatform/gemoc_studio.tpd b/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.targetplatform/gemoc_studio.tpd
index 841a6557..0403627e 100644
--- a/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.targetplatform/gemoc_studio.tpd
+++ b/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.targetplatform/gemoc_studio.tpd
@@ -32,6 +32,8 @@ location eclipse "https://download.eclipse.org/releases/2021-12" {
org.eclipse.epp.mpc.feature.group
org.eclipse.equinox.p2.sdk.feature.group
org.eclipse.equinox.executable.feature.group
+ org.eclipse.equinox.server.jetty.feature.group
+ org.eclipse.lsp4j.sdk.feature.group
org.eclipse.m2e.feature.feature.group
org.eclipse.m2e.logback.feature.feature.group
org.eclipse.m2m.qvt.oml.feature.group
@@ -45,6 +47,7 @@ location eclipse "https://download.eclipse.org/releases/2021-12" {
org.eclipse.swtbot.eclipse.feature.group
org.eclipse.swtbot.ide.feature.group
org.eclipse.swtbot.feature.group
+ org.eclipse.wst.web_core.feature.feature.group
org.eclipse.wst.xml_core.feature.feature.group
org.eclipse.wst.xml_ui.feature.feature.group
org.eclipse.xtext.sdk.feature.group
@@ -129,4 +132,8 @@ location fxclipse "https://download.eclipse.org/efxclipse/updates-released/3.7.0
org.eclipse.fx.runtime.min.feature.feature.group
}
+location jetty "https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.44.v20210927" {
+ org.eclipse.jetty.bundles.f.feature.group
+}
+
diff --git a/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.targetplatform/gemoc_studio_dev.target b/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.targetplatform/gemoc_studio_dev.target
new file mode 100644
index 00000000..3dbc5bf6
--- /dev/null
+++ b/gemoc_studio/releng/org.eclipse.gemoc.gemoc_studio.targetplatform/gemoc_studio_dev.target
@@ -0,0 +1,1862 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.eclipse.jetty.osgi
+ jetty-osgi-boot
+ 10.0.6
+ jar
+
+
+
+
+
+
+ org.apache.aries.spifly
+ org.apache.aries.spifly.dynamic.bundle
+ 1.3.4
+ jar
+
+
+
+
+
+
+ com.ibm.icu
+ icu4j
+ 70.1
+ jar
+
+
+
+
+
+
+ javax.servlet
+ javax.servlet-api
+ 3.1.0
+ jar
+
+
+
+
+
+
+ org.eclipse.jetty.websocket
+ websocket-javax-server
+ 10.0.6
+ jar
+
+
+
+
+
+
+ org.eclipse.jetty.toolchain
+ jetty-javax-websocket-api
+ 1.1.2
+ jar
+
+
+
+
+
+
+ org.mapstruct
+ mapstruct
+ 1.4.2.Final
+ jar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file