Eclipse Graphiti 0.17.0

0.17.0

Description

The main topics for 0.17.0 release of Graphiti are to continue to work on enabling Graphiti to leave incubation and implementing round offs to make the framework more flexible and easy to use.

Graphiti is part of the 2020.06 Eclipse release train since M3. Eclipse will contain the Graphiti framework, examples, tools and  tests. Graphiti has joined the release train for the first time with Eclipse Indigo.

API Certification

The project leadership certifies that the APIs in this release are "Eclipse Quality".

Architectural Issues

Graphiti’s architecture is solid and basically unchanged since the basis of the framework was already productive within SAP SE for several years. There were no changes from architecture point of view in the 0.17.0 timeframe.

Some parts of the framework coding needing some rework (e.g. in the rendering area) which could not be addressed within this release and will be targeted for one of the next releases.

Graphiti will stay in the incubation mode. The reason for this is that there are too many open questions with respect to supporing e4 RCP applications and the GEF framework.

  • The currently used GEF 3.x rendering appears to work fine but has several shortcommings/issues with rendering, e.g. off-by-one-issues. Fixing them would mean to invest massive effort within the Graphiti framework.
  • GEF 4/5 or JavaFX offer themselves as alternative new rendering engines with much more future potential, but switching Graphiti to one of them also requires huge effort first in investigating these alternatives and second in writing a completely new UI layer for one of the frameworks.
  • The second alternative appears much more promising and seems to be the way to go. Unfortunatly, for both things there is currently no capacity in the available development resources. Unless there is much more engagement in  framework development for Graphiti we can only stick to the current GEF 3.x based rendering engine and live with the limitations.

Leaving incubation should happen only after the new rendering engine is in place, because that change will require massive API changes throughout the complete framework.

Security Issues

There are no known vulnerabilities within Graphiti.

Non-Code Aspects
  • User documentation is available as part of the Graphiti SDK/SDK+ installation from the update site
  • A large part of this documentation consists of a tutorial that introduces users step by step to the most common features of Graphiti
  • The tutorial and documentation have been updated to reflect the changes done within the framework
  • Further examples are part of the Graphiti tests and can be synced from Git
  • The project website is available at http://www.eclipse.org/graphiti
  • Graphiti can be downloaded via p2 update sites and as a zipped version of the site
  • Available features
    • Graphiti Feature (the framework)
    • Examples Feature (includes examples, doc plugin with eclipse help integration and javadoc)
    • Export Feature (diagram export to SVG)
    • Tools Feature (tools that can be used to create Graphiti-based editors)
    • SDK Feature (framework, examples, additionally includes sources to enable debugging)
    • SDK+ Feature (additionally includes optional parts, currently the SVG exporter)
  • Graphiti uses a Maven- and Jenkins-based build and test infrastructure
  • The framework plugins are provided with dedicated test plugins checking their valid behavior
  • Unit and SWTBotTests are executed as a part of the Maven Build on the Graphiti JIPP at Eclipse Jenkins
    • https://ci.eclipse.org/graphiti/
  • Each new build is tested at least with Eclipse 2020-06, another test environment is Eclipse 2019.06
  • Graphiti is part of the Release Train since Eclipse Indigo (M4)
Conforms To UI/UX Guidelines
Not verified
Usability Details
  • Tutorial supports the getting started process for new users
  • Good results in tool building can be achieved early
  • Short turnaround cycles support incremental development
  • Easy debugging enables fast problem solving (compared to frameworks based on code generation)
  • Test preferences allow user to enable additional means to identify and analyze issues besides debugging
End of Life

There are no deprecated or removed features within this release.

Standards
  • Execution Environment JavaSE 8
  • Supports Eclipse Platforms 2020.06 and 2019.06
  • Based on Draw2D/GEF 3.x and SWT, de-facto standards for graphics in Eclipse
  • Integrated with and based on EMF, de-facto standard for modeling in Eclipse
  • No native components, therefore there are no further requirements to the execution environment
Communities
  • Bugzilla
    • Bugs and enhancements are tracked using Bugzilla
    • User feedback and enhancement request received
    • Some contributions (bug fixes and enhancements) received
  • Newsgroup
    • Is used as communication channel (~9 threads since last release 0.16.0)
    • Detail questions, discussions and enhancement ideas start there
  • Developer mailing list
  • Eclipse projects using Graphiti
    • eTrice diagram editor
    • JPA Editor diagram editor
    • CDO/Dawn integrates with Graphiti
    • BPMN2 Modeler diagram editor
  • Other open source projects refering to Graphiti
    • Activity BPM Platform offers an Eclipse Designer built on Graphiti
    • The KIELER research project integrates their layouting algorithms with Graphiti
    • Spray supports a generative approach on top of Graphiti