In this post, a rectification is made on the use of Theia + EMF.cloud and we return to the point where eclipse IDE + EMF is used for the development of the PIACERE IDE. This is due to the lack of documentation and the constant problems that we have encountered when using Theia and EMF.cloud.
Most of these errors are caused by the need to modify the basic IDE offered by theia to adapt it to piacere's own needs. After facing a large number of issues, it has been decided to opt for the use of the classic eclipse framework. This IDE is in a more mature state and therefore does not generate so many inconveniences. As a consequence, it facilitates the correct development of the project.
Some of these problems were: Version conflict, unstable installations, problems with theia tree generator, incompatibility with docker, conflict between different plug-ins and poor official support and documentation.
The Eclipse IDE is an Eclipse Rich Client Platform (RCP) application. The core functionalities of the Eclipse IDE are provided via plug-ins(components). The PIACERE IDE functionality is based on the concept of extensions and extension points.
To build the IDE some Eclipse modelling plugins should be added to extend the basic eclipse functions. Thanks to EMF, the IDE will support metamodels. In the case of the PIACERE IDE, DOML and DOML-E will be the supported metamodels used for modelling application infrastructures.
IDE Integration mechanism
The pivotal tool of the project will be the IDE and it will give support to the PIACERE Framework. The other Key Results of the project will be integrated into the IDE using some of the integration mechanism that these technologies provide. The PIACERE IDE will be customized with suitable plug-ins that will integrate the different tools, in order to minimize the learning curve and simplify adoption of IaC approach.
Not all KR/tools will be integrated in the same way. Some of these tools could be fully integrated into Eclipse and should be developed as Eclipse plugins. On the other hand, other tools could be run in isolation and through a REST API or any other integration mechanism could be invoked remotely.
Figure 31: eclipse IDE components
The IDE will use “Cheat sheets”, which is a built-in mechanism for displaying mini tutorials “Wizards”, in order to guide users on how to use the different tools.
This section lists some modelling plugins that could be interesting for building the PIACERE IDE.
These plugins are the core of Eclipse and involve the minimum plugin set to build an executable desktop application. The current version of these plugins is 4.21.
Graphical Modelling Framework is the most used library to develop graphical editors on Eclipse. It is mainly based on EMF models, and generates EMF based models too. The current version of GMF is >= 1.9.0.
Graphiti is another library for developing graphical editors on Eclipse, that enables rapid development of state-of-the-art diagram editors for domain models. The current version of Graphiti is 0.12.0.
Sirius is a tool based on EMF and GMF that allows to easily create graphical modelling workbenches. A modeling workbench created with Sirius is composed of a set of Eclipse editors (diagrams, tables and trees) which allow the users to create, edit and visualize EMF models. The current version of Sirius is 6.5.1.
Acceleo is a template-based technology to create code generators from an EMF model, that has been designed to be customizable, interoperable, and easy to kick-start. The current version of Acceleo is 3.7.
ATL is a model transformation-oriented language that helps to convert a model defined in a Domain Specific Language (DSL) into another model defined in a distinct (or not) DSL. These include some sample ATL transformations, an ATL transformation engine, and an IDE for ATL. The current version of ATL is 4.5.0.
QVTO is another language that provides features to implement transformations between models. Eclipse QVTo is the only actively maintained QVTo implementation, and so conversely, QVT 1.2 has evolved to resolve issues uncovered by Eclipse QVTo and its users. The current version of QVTo is 3.10.5.
Eclipse UML2 is a set of plugins based on EMF that brings support to UML OMG Metamodel in Eclipse. Although UML2 provides the metamodel, it does not provide UML modelling tools itself. It is the base of other important projects like Papyrus, which incorporates these kinds of tools. The current version of UML2 is 5.5.2.
The M2Eclipse, or M2E plugin provides Apache Maven functionality into Eclipse. It allows building projects based on Maven within Eclipse, as well as integrated dependency management and other features. The current version of M2E is 1.19.0.
Papyrus is the most popular open-source environment for editing UML models based on EMF for Eclipse. It provides many editors such as the Class diagram editor, Activity diagram editor, State Machine diagram editor, Components diagram editor, Profile diagram editor, etc. The current version of Papyrus is 5.2.0.
EGit is a set of plugins that enables to connect to GIT source code repositories. The current version of EGit is 5.13.0.
Xtext (to analyse with Polimi)
Xtext is a framework for development of programming languages and domain-specific languages. With Xtext you define your language using a powerful grammar language. As a result, you get a full infrastructure, including parser, linker, type checker, compiler as well as editing support for Eclipse, any editor that supports the Language Server Protocol and your favourite web browser The current version of Xtext is 2.25.0.