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