Eclipse Graphiti 0.14.0 Release Review

Type: 
Release
State: 
Successful
End Date of the Review Period: 

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Wednesday, June 7, 2017
Release: 

Eclipse Graphiti 0.14.0

Description: 

The main topics for 0.14.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 Oxygen Eclipse release train since M1. Oxygen 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.14.0 timeframe.
Some parts of the framework coding needing some rework (e.g. in the rendering area) 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 upcoming support for e4 RCP applications and the upcoming GEF4 version.

  • 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 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
  • Website 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 Hudson-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 HIPP at Eclipse Hudson
  • Each new build is tested at least with Eclipse 4.7 (Oxygen), another test environment is Eclipse 4.6 (Neon)
  • Graphiti is part of the Release Train since Eclipse Indigo (M4)

 

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 1.6, but also runs on Java 7 and Java 8
  • Supports Eclipse Platforms 4.7 and 4.6
  • 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 active communication channel (~35 threads since last release 0.13.0)
    • Many 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

 

This release is part of Eclipse Oxygen.