Eclipse Graphiti 0.12.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.

Release

0.12.0

Description

The main topics for 0.12.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 Mars Eclipse release train since M1. Mars will contain the Graphiti framework, examples, tools and  tests. Graphiti has joined the release train for the first time with Eclipse Indigo.

For the full list of changes and implementation details see the Graphiti New & Noteworthy page for 0.12.0.

 

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 AG for several years. There were no changes from architecture point of view in the 0.12.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

Currently there is no indication that there are any 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 Buckminster- 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 Buckminster Build on the Graphiti HIPP at Eclipse Hudson
    • https://hudson.eclipse.org/graphiti/
  • Each new build is tested at least with Eclipse 4.5 (Mars), another test environment is Eclipse 4.4 (Luna)
  • 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.5 and 4.4
  • 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 (~120 threads since last release 0.11.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

Currently, Graphiti has only very limited development resources available, because most of the committers are no longer active in framework development. Especially therefore (but of course also in general) any contributions to the framework be it coding, documentation or other input is highly welcome. This is even more true for people who would like to become active in Graphiti framework development in the longterm and become committers for the project.

 

This release is part of Mars