Vert.x 3 init.d Script

by cescoffier at July 02, 2015 12:00 AM

Let’s say you have a Vert.x 3 application you want to install on a Linux server. But you want the old school way (I meant not the docker way ☺). So, in other words, you need an init.d script. This post proposes an init.d script that you can use to start / stop / restart a Vert.x 3 application.

by cescoffier at July 02, 2015 12:00 AM

Presentation: 10 Platforms in 30 Minutes–Powered by Eclipse

by Jonas Helming, Maximilian Koegel at July 01, 2015 07:20 PM

Jonas Helming, Maximilian Koegel develop a simple client-server app using a variety of Eclipse frameworks and producing 10 different versions of the same client running on the multiple platforms.

By Jonas Helming, Maximilian Koegel

by Jonas Helming, Maximilian Koegel at July 01, 2015 07:20 PM

MesosCon 2015 Keynotes and Lightning Talk CFP

by Chris Aniszczyk at July 01, 2015 06:01 PM

Holy it’s July already!

Last year I helped organized the first MesosCon community conference and we’re doing the same this year with a slightly larger Program Committee (thankfully, organizing conferences is so under appreciated in the tech industry).

Recently we announced the schedule and some of the keynote speakers for MesosCon 2015. On top of an amazing program, we’re excited to have a bunch of keynote speakers with @benh, @neha, @kenowens12, @adrianco and more.


Honestly, it’s been great to watch the Mesos community grow over the years, from its humble beginnings at Twitter to Apple announcing their adoption to seeing a plethora of other companies using it within their infrastructure.

What’s also fun at MesosCon is that we’re co-locating it with LinuxCon and ContainerCon in Seattle so you have the opportunity to attend those events too if they are of interest.

Also, if you’re interested, the lightning talk CFP is open until July 14th.

Hope to see you there! In my opinion, there really is no better set of events if you’re interested in seeing how the future of infrastructure will be run, along with having the opportunity to shape that direction.

by Chris Aniszczyk at July 01, 2015 06:01 PM

Vert.x3 Web easy as Pi

by pmlopes at July 01, 2015 12:00 AM

Vert.x Web distinguishes itself from traditional application servers like JavaEE by just
being a simple extension toolkit to Vert.x, which makes it quite lightweight and small but
nevertheless very powerful.

by pmlopes at July 01, 2015 12:00 AM

Mars on Linux

by Andrey Loskutov ( at June 30, 2015 06:32 PM

Eclipse is landed on Mars, and now Platform UI team (as well as SWT and EGit teams) start to receive new bug reports from our end users. That's OK, business as usual after each release. Not OK is that we could get much less bug reports, especially from our Linux users. Why?

Eclipse Mars on Linux uses first time GTK3 toolkit by default (all versions before 4.5 were on GTK2), and that is the major driver for new bugs from Linux users. I'm writing this on Linux, and know what I'm talking about. Eclipse SWT team crafted the SWT GTK3 port with tremendous effort, but unfortunately GTK3 exists an a bunch of (partly incompatible) versions with different API behavior, and developing a widget toolkit on top of it is a pain, not a pleasure (IMHO).

The major issue with GTK3 is that if SWT is broken, it affects each and every Eclipse UI plugin, at most unexpected places! Anyway, now this is default toolkit and we must know how to work with it (or workaround it).

So if you are on Linux and see a new UI regression on Eclipse Mars, please be aware that if this a GTK3 issue, there is easy way to fix it - switch to back to the GTK2 version (which is still supported by Eclipse 4.5). But before switching the toolkit - try to help Eclipse and report the issue you observe, so that the next release has a bug fix for it!

1. Search for similar bugs

Before reporting, please search for bugs! All properly reported GTK related bugs contain [GTK], [GTK2] or [GTK3] keywords in the summary. If your bug is already reported, do not report another one, but just add extra details you want to mention.

2. Check if the GTK3 to blame? 

Try to check if your issue is GTK3 related: switch to GTK2. Either export SWT_GTK3=0 in the shell before starting Eclipse or add this two lines to your eclipse.ini:
which has exact the same effect. If this helps, we will know that the problem is most likely GTK3 related.

3. Check if the GTK+ theme to blame?

Not always the GTK itself is a problem, but the current GTK theme (widget style).

GTK applications can be "styled" - they can look and feel differently on same GTK version due the currently selected "style" or "theme". There are various GTK themes available, and some are better for use with Eclipse as others.

Beware of oxygen-gtk theme on GTK3! This pair is known to be extremely buggy!

Unfortunately, many distributions set the default KDE GTK theme to oxygen-gtk. It worked well in the past with the old GTK2, but on GTK3 this can be a source of multiple issues. If you are using KDE desktop, the first thing you should do is to check if you are using oxygen-gtk. If so, switch to another theme (Adwaita or Clearlooks-Phenix). Later one is my favorite, and I even forked it to make it working on GTK2 in the way I like it :-).

Please note, that after switching GTK theme it is highly recommended to restart Eclipse to avoid unexpected side effects of half-zombied theme artifacts. If the problem do not disappear after restart we know it is independent from the theme.

4. Report the bug

If your bug is not on the list, prepare the information we need to triage it properly! First and foremost we want know exact Eclipse and GTK version used. Eclipse version is shown in the "About" dialog, GTK version is not that easy to retrieve. If you are on Eclipse 4.5, you can see GTK version used by SWT in the "Help -> About -> Installation Details -> Configuration" dialog - search for the "org.eclipse.swt.internal.gtk.version" property, it looks like:

But of course on Linux we want use command line tools :-)
For the rpm - based distributions (Fedora, RHEL, CentOS) it's easy: just call
rpm -q gtk2; rpm -q gtk3
and you will see something like:

For the debian based distributions (Ubuntu & Co) I know about two commands:
apt list | grep installed | grep libgtk2.; apt list | grep installed | grep libgtk-3.
dpkg -l | grep libgtk2.; dpkg -l | grep libgtk-3.
but both of them aren't that concise as rpm and print lot of unneeded information. Please also note inconsistent naming schema: libgtk2 but libgtk-3. Nice and makes lot of sense, isn't?

Now we know the installed GTK version we can go and submit bug report against Platform/SWT.
NB: please also add your operating system details, desktop environment (Unity/Gnome/KDE) and GTK+ theme used.

From my personal point of view SWT GTK3 port is still not on par with GTK2 and ideally shouldn't be made default for 4.5 - it wastes lot of space and introduces multiple regressions. But the decision was made and only way to fix it now is to contribute to Eclipse.

by Andrey Loskutov ( at June 30, 2015 06:32 PM

It’s Time to Revise the Eclipse Development Process: 2015 Edition

by waynebeaton at June 30, 2015 05:05 PM


Every couple of years, I work with the Eclipse Architecture Council to revise the Eclipse Development Process (EDP). The EDP is the document that describes the structure of projects, relationships between projects and committers, and the sorts of activities that projects are expected to engage in.

After many years and many revisions, it’s past time for a complete (or near complete) rewrite. That’s an exhausting thought, frankly, but it’s my hope that we’ll be able to do just that.

I’ve started gathering ideas for how the EDP can change on Bug 463857; this is an umbrella bug to collect the issues that need to be addressed. I’ve already added a few blocker bugs for some issues that I feel need to be addressed. Feel free to add your comments and other blockers as you see fit. Please do join in the discussion.

The first thing on my list is release reviews. Originally, a release review was an event: a conference call on which the project was required to defend their release to the community (or at least that subset of the community that joined the call). In those days, review materials needed to be prepared and disseminated a week in advance of the call to allow the community to prepare. But as community participation dropped, so to was the conference call and we turned the week of review material availability into the review itself.

I’m not at all convinced that there’s much value in the formal week of waiting to release. The community rarely–if ever–comments on release review documentation and since we set reviews up to succeed, they never fail. Further, I’m of the mind that anybody who is interested in an open source project is either already following the progress of the project or should be. If you’re waiting for the release review to be notified that something new is coming from your favourite open source project, it may be time to consider getting more directly involved with project discussion.

For releases, I’m thinking:

  • Get IP Team approval of the IP Log;
  • Get Project Management Committee (PMC) Approval of the release; and
  • Ship it.

Documentation requirements are the PMC’s call. Personally, I think that it’s totally reasonable to require that projects produce at least a single paragraph that describes the nature of the release in broad terms. And planning needs to happen in some form: either as a formal plan or more informally via target milestones on Bugzilla records.

Add your thoughts on Bug 415620.

by waynebeaton at June 30, 2015 05:05 PM

New RFPs under discussion at OSGi

by David Bosschaert ( at June 30, 2015 02:02 PM

While the Enterprise R6 release is currently in the process of being released, new topics are being worked on in the OSGi Alliance. These topics are currently discussed in RFP documents, which hold the requirements. The plan is to finalize these RFPs by the end of the summer, then we can start on the RFCs, the technical design that will ultimately be the basis for future spec texts. Below you

by David Bosschaert ( at June 30, 2015 02:02 PM

Democamp Double Feature: Munich and Zurich

by Matthias Zimmermann at June 30, 2015 12:41 PM

With close to 100 participants each, Munich and Zurich are among the largest Eclipse democamps. Last week, participants in the two towns north of the Alps had the opportunity to meet old and new friends and learn about a wide variety of topics in the Eclipse ecosystem.


Democamp Munich, June 23rd

The democamp in Munich was hosted for the second time in the building of Capgemini (many thanks to the friendly staff) and organized by BSI Business Systems Integration, EclipseSource Munich and Angelika Wittek.

The official sessions started with a demo by Tom Schindl presenting his e(fx)clipse Compensator project.  Compensator, a set of loosely coupled components, can be used to build light weight IDE.  With its Java FX front end the developer may take advantage of the available CSS styling. In the impressive second part of the demo the participants watched Tom assembling a small Dart IDE in less than 10 minutes that included syntax highlighting, error marks and code completion.

In the following session, Jörg Hohwiller demonstrated OASP4J-IDE that helps to quickly share and update complete Eclipse IDE setups for Java projects. As individual project installations do not interfere with each other developers are free to work with as many concurrent project setups as they need.

Next was Jens Reimann and Jürgen Rose with the Package Drone project that was accepted very recently as an Eclipse Foundation Project. With a Package Drone repository Maven Tycho can now also be used to upload software artifacts to a Package Drone repository. Once in this repository Package Drone can provide the artifacts in different forms such as P2 update site or a OSGi R5 repository. For future versions of Package Drone support for additional formats like APT and YUM are planned.

With Profiles for Eclipse (based on Oomph) Frederic Ebelshäuser was addressing the pains of reliably setting up your Eclipse IDE. Profiles for Eclipse is currently available via a proprietary Eclipse HUB portal that also includes some social features. Using this portal it is possible to share profiles between participants, following profiles and getting notified when subscribed profiles are updated.

In the last session before the break, Matthias Zimmermann demonstrated how to build modularized enterprise applications with Eclipse Scout. For modularization, the Scout framework supports both technical layers and business slices. Matthias also announced that with the Neon release train, Scout is removing its dependency on the Eclipse runtime and become a pure Java framework. At the same time, Scout will also get a HTML5 new renderer.

01_eclipse_dc_muc_jubula 02_P1080908_small

After the break, Alexandra Schladebeck presented the new Jubula Client API in an entertaining talk. With the new Jubula client API that is shipped with the Mars release UI tests can now also be written in the form of JUnit test cases. After the audience had to promise to use these new possibilities only with great responsibility, Tom Zierer performed a hands-on COBOL programming session for mainframe development creating a “Legacy in Action“ feeling. After demonstrating the pain of working with too many character based screens, an Eclipse based IDE was presented that covered syntax highlighting, compiling on the back-end, collecting the result and displaying error markers in the source code.

In his talk about EMF Forms Jonas Helming presented the state of version 1.6 that is shipped with the Eclipse Mars release. The session demonstrated the available tooling to create the view model that maps elements of an entity model to UI controls. After demonstrating the tooling to create a form to manage persons, the created UI was shown in preview mode and in the form of a standalone RCP application. Jonas also mentioned current work on JSONForms a new web renderer that is based on AngularJS.

The democamp in Munich concluded with the Eclipse Smarthome session by Jochen Hiller. This talk concentrated on demonstrating the new features such as the auto-dicovery for attached devices. In the extensive demo, a variety of devices such as light bulbs, smart sockets, audio devices and even a hair dryer were included. For the demo itself Jochen showed the new slick Paper UI of openHAB 2,  that is based on the Smarthome project.

The democamp concluded with prolonged networking, buffet and beer that was greatly enjoyed by the participants.

Democamp Zurich, June 24th

Taking place for the 4th time, the democamp Zurich was very well attended and attracted around 90 participants. As in previous years, the Swiss Federal Institute of Technology (ETHZ) was hosting the democamp in one of the centrally located lecture halls and the event was organized by itemis Schweiz and BSI Business Systems Integration and with the Java User Group Switzerland as a partner organisation.

05_eclipse_dc_zrh_spring_tooling 06_eclipse_dc_zrh_dom_compensator

The first session in Zurich by Martin Lippert was all about the Spring and Cloud Foundry Tooling for Eclipse. The demonstration covered various aspects of setting up Spring projects with Spring Boot and included Spring development with advanced code completion, for example when working with YAML configuration files. As an experimental feature Martin also demonstrated the capability to debug a Spring application that is running on a server node in the cloud.

In the following three sessions before the break the audience was listening to contributions that have been presented the day before in Munich. Tom Schindl introduced the e(fx)clipse Compensator, Jonas Helming talked about the latest features of EMF Forms and Matthias Zimmermann demonstrated how to build highly modular enterprise applications with Eclipse Scout.


After a short break, Dierk Koenig presented Grails in a live-coding session to the audience (no slides). In this way Dierk demonstrated how simple data-centric applications can be built with Grails by creating a simple application to manage participants.

In the next talk Axel Terfloth introduced the audience into the Yakindu Statechart Tools, an Eclipse based open source project to specify, validate and implement event-driven systems based on state charts. After creating a first simple state chart, the demo included running simulations, adding parallel execution paths to the example and generating Java sources from the model.

Following the agenda in Munich Jochen Hillers Eclipse Smarthome session also concluded the democamp in Zurich.


In the networking session with food and beer many stimulated discussions took place. As the university was closing down earlier than the more commercial location in Munich, individual groups were simply taking the ongoing discussions to nearby beer places.

Democamps are about the participating People

From repeatedly attending and organizing Eclipse demcoamps it becomes obvious that these events are not only about learning new things and staying up to date with the projects presenting the latest features. Having developers and project leads on-site in an informal setting also allows for interesting discussions about work, personal views and potential collaborations. In addition, the local character of the democamps helps to build and maintain relationships across organisations over many years. It seems that this last point lets attendants come back to these events and makes them look forward to meet their colleagues. 

If you have attended one of the democamps and would like to share your thoughts please use this forum post.

Project HomeForumWikiTwitter

by Matthias Zimmermann at June 30, 2015 12:41 PM

Call for papers, EclipseCon Europe 2015

by Torkild at June 30, 2015 10:40 AM

Time flies when you’re having fun! EclipseCon France has just finished and it’s already time to plan for EclipseCon Europe 2015 in November. The call for papers is out, and you should not miss the chance to present at the tenth European Eclipse Conference. It’s a great opportunity to meet people and show off your technology.

The first Eclipse Summit Europe was convened in 2006 – a two day event in the charming town of Esslingen am Neckar just south of Stuttgart. Since then the conference has been at the Forum am Schlosspark in Ludwigsburg, also in the Stuttgart region. In 2011, for the tenth anniversary of Eclipse, the name was changed to EclipseCon Europe. The number of attendees, from around 30 different countries, have been growning steadily to about 600 in 2014. It’s now a three day event, well packed with activities and interesting talks. This year we’re even adding a science track for talks about the tools on the scientific workbench.

The deadline for EclipseCon Europe submissions is the 31. of July, so you have a whole month to work on your abstract!

You may also consider submitting a paper for the Trondheim Eclipse Mars DemoCamp in August. We have space for a couple more talks and it’s a good opportunity to try your talk on an Eclipse-savvy audience before the real deal at EclipseCon.

See you there!

by Torkild at June 30, 2015 10:40 AM

Eclipse Mars New and Noteworthy: Java 9 Beta

by waynebeaton at June 30, 2015 12:27 AM

Java™ 9 support has not yet landed in our standard download packages. But you can add an early access preview to your existing Eclipse Mars install.

The Eclipse Java™ 9 Support (BETA) contains the following:

  • ability to add JRE and JDK 9 as installed JRE;
  • support for JavaSE-1.9 execution environment; and
  • ability to create Java and Plug-in projects that use a JRE or JDK 9.

At the moment Eclipse must be run with Java™ 9 if you want to use Java™ 9 in your workspace. You can download from

This is an implementation of an early-draft specification developed under the Java Community Process (JCP) and is made available for testing and evaluation purposes only. The code is not compatible with any specification of the JCP.

Install the Java 9 Beta via the Eclipse Marketplace:

Drag to your running Eclipse workspace to install Eclipse Java™ 9 Support (BETA) for Mars

by waynebeaton at June 30, 2015 12:27 AM

Vert.x 2.1.6 released !

by cescoffier at June 30, 2015 12:00 AM

The Vert.x team is pleased to announce the release of Vert.x 2.1.6.

by cescoffier at June 30, 2015 12:00 AM

Android Developer Tools is dead….long live Andmore.

by kingargyle at June 29, 2015 01:03 PM

It is now official.   A posting from the official Android Developer’s blog has confirmed what many of us already knew, that the days of the original Android Developer Tools based on Eclipse was numbered.   Honestly, I think this is not  a bad thing.  It does free up the resources that Google has to fully concentrate on the Android Studio tooling, and continue to improve and advance their chosen strategy going forward.

However, all is not lost, as the Andmore project is here to continue to provide Android tooling for the Eclipse community.  However, progress right now is pretty slow, and that is because my own time has been limited.   With this said, we do have integrated support with Maven and the android-maven-plugin through the m2e-android project’s support.   The Buildship project can import an existing Android gradle project, and even run some tests, but it still has problems in setting up the project natures and make things work with Andmore.   There is a feature request opened to have some sort of project configuration extension so that Andmore can help configure such projects to better work with the tooling.

The state of Android development with Andmore and how well it keeps up with the yearly and quarterly updates coming from the Android Open Source Platform is going to greatly depend on contributions from the community.   We need your help, as one person definitely can not maintain the project alone.    So please do take a look at the bug/feature backlog, feel free to fork the project on GitHub, roll up your sleeves and get a bit dirty, submit pull requests and file new bugs.   Andmore is going to be what the community makes it.   We wished for years that ADT had been open more to contributions from the community, now is the time for us to follow through on that wish.

by kingargyle at June 29, 2015 01:03 PM

EMF Forms and EMF Client Platform 1.6.0 released!

by Maximilian Koegel and Jonas Helming at June 29, 2015 09:57 AM

We are happy to announce that together with Mars we have released  EMF Forms and EMF Client Platform 1.6.0! We want to thank all committers and all contributors for their work as well as the active ecosystem of users and adopters for the feedback and support!

EMF Forms is a framework focused on the creation of form-based UIs. EMF Client Platform is designed to support the development of applications based on an EMF data model. If you are not yet familiar with EMF Forms, please refer to this tutorial for a introduction of EMF Forms.

Both frameworks are part of Eclipse Modeling Tools Mars (version 1.6.0), however, we have already released a service release (1.6.1) fixing a Bug with the double control, so if you use EMF Forms or want to get started, we recommend to update to 1.6.1, available from our download page.:

Please have a look at our migration guide, e.g. if you have used the service provider interface in a previous version.

Since February 2015 and with the 1.6.x release, we have closed 111 Feature Requests and Bug Reports.

It is amazing to see, that the number of active contributors is still growing and how much effort was spent so far. OpenHub shows some impressive numbers:

We will describe the most notable new features in a small blog post series starting next week. We hope you enjoy the new release and provide us with feedback!




Leave a Comment. Tagged with eclipse, emf, emfforms, mars, eclipse, emf, emfforms, mars

by Maximilian Koegel and Jonas Helming at June 29, 2015 09:57 AM

Never ending fight on IDE related meta-files included in code source found an alternative: Eclipse Smart Importer rocks!

by aurelien.pupier at June 29, 2015 09:04 AM

Should the meta files related to an IDE be committed?

There is a never-ending fight over this question. I'm sure that most of the advanced Eclipse users will answer yes but unfortunately in a team you might get some Eclipse haters (and sometimes even IDE haters, who I also call last-century coders). This second and third categories will answer no.

When the answer is no, setting up your preferred IDE might become cumbersome. There is missing meta-information, for instance contained in .project files, which can lead a developer to import projects with the wrong nature into the IDE. Hopefully, here comes the Smart Importer! It enables Eclipse to guess the most appropriate nature when importing a project.

For instance, with the Bonita BPM engine project, you just have to specify the git clone repository that you want to import and all the correct natures for every projects are detected automagically.

screenshot list of imported project with nature

The project is not integrated in the Eclipse Mars Release train but is available from a dedicated update sites. It will enable you to test and contribute - ideas and code - for Neon, the next version.

by aurelien.pupier at June 29, 2015 09:04 AM

Eclipse 3x PDE/RCP Public Classroom in Bangalore

by Its_Me_Malai ( at June 27, 2015 12:34 PM

Too few developers for onsite courses? Try our public courses @ ANCIT on Eclipse based Technologies.

We at ANCIT are planning to organise a list of Eclipse based Public Training Courses. As part of that we are planning to organise a Public Classroom for Eclipse PDE & RCP. Course Content of the training is attached to the email.

Workshop Title : Eclipse 3x PDE/RCP - 2 Day Workshop
Trainer Profile : Annamalai Chockalingam
[Linked In Profile :]
Date of Workshop : 9th & 10th July 2015
Time of Workshop : 10.00am to 5.00pm
Venue : ANCIT Consulting Office [Apponix Technologies], Rajaji Nagar, Bangalore
Location on Google Map :

Cost of the Workshop : Rs.7500/participant + ST.

If you have more than 3 nominations you will get a discount of 10%.
If you register before 1st July 2015 you will get 20% discount on the above mentioned price.
For more information write to

by Its_Me_Malai ( at June 27, 2015 12:34 PM

Google Ends Support for Android Eclipse Tools

by Abel Avram at June 27, 2015 08:15 AM

Google has announced the end of all Eclipse-based tooling for Android development by the end of the year.

By Abel Avram

by Abel Avram at June 27, 2015 08:15 AM

Presentation: Innovating in IoT Using Eclipse - Experience and Recommendations

by Max Domeika at June 27, 2015 02:30 AM

Max Domeika discusses the relative strengths and weaknesses of the current Eclipse IDE for IoT development, and tooling support for Sensor emulation, Power Analysis, and Cloud.

By Max Domeika

by Max Domeika at June 27, 2015 02:30 AM

Eclipse Code of Conduct

by Chris Aniszczyk at June 26, 2015 02:01 PM

At the recent Eclipse Foundation board meeting this week in Toulouse as part of EclipseCon France, the committer representatives helped move forward a code of conduct for the Eclipse community. As for a bit of background, the request for this initially came from bugzilla and also the LocationTech working group which was looking for a code of conduct for its community. The board opted for a simple code of conduct based on the Contributor Convenant, see this email from Mike Milinkovich:

I am very pleased to announce that the Eclipse Foundation Board of Directors approved a Community Code of Conduct[1] at their meeting earlier this week at EclipseCon France. This brings the Eclipse community in line with the best practices for open source communities around the world.

Our community already has a strong culture of respect and professionalism. Neither I nor the Board expect anyone’s behaviour to change as a result of this. This is simply codifying the high expectations we already meet in terms of professionalism, respect, and simply courtesy.

I agree with Mike and couldn’t have said it better, we have a great community and this simply codifies our high expectations.

by Chris Aniszczyk at June 26, 2015 02:01 PM

Eclipse Newsletter - Landed on Mars

June 26, 2015 02:00 PM

Read up on new and exciting things for the Mars release, the Oomph Insaller, Docker tooling, and Java 9 support.

June 26, 2015 02:00 PM

Sirius 3.0 “Harder, Better, Faster, Stronger”

by Melanie Bats at June 26, 2015 01:45 PM

Today is a great day: with the announcement of Eclipse Mars, many great projects are released, and Sirius 3.0 is part of this release train.

When I have a look at the status of the Sirius project today, one soundtrack immediately comes to mind: Harder, Better, Faster, Stronger

Work on it harder

One first fact, looking at the project’s statistics, is that the Sirius team worked hard on this release to deliver some new cool features and improve the existing ones:

Version Date Total Closed Feature Requests
1.0.0(Luna) June 14 100 2
1.0.1 Aug 14 20 -
2.0.0 Oct 14 113 27
2.0.1 Nov 14 2 -
2.0.2 Dec 14 15 -
2.0.3 Jan 15 16 -
2.0.4 Feb 15 8 -
2.0.5 Apr 15 8 -
3.0.0(Mars) Jun 15 213 35
426 64

This release is the first one on which the team worked at full speed, so for the future you can expect the same amount of work done.

Make it better

Their goal was to provide a better tooling for the end users by improving the diagram user experience. This work started with Sirius 2.0 and some of the following features are there since then.

Resizing a container

Positioning elements

Snap To Shape enabled by default for new diagrams
Snap To Grid now used when an element is created
Resize no longer change ports or children’s location
Actions to distribute shapes
Action to reset the diagram origin

Edges layouting

Beautiful editor

The editor was also improved to provide:

  • Anchor on borders: Now the edges are linked closely to the images, you just need to define images with an transparent background.

  • Underlined and strike through style for labels

  • Compartments: There are two new values available for a container mapping Vertical Stack and Horizontal Stack. This means that the defined container will show its children as a vertical/horizontal stack of compartments. Thanks to this new feature, you are able to define a dynamic number of compartments.

Compartments are just a specific setting of a full blown container mapping making it easy to create any artificial level of compartments independently from the metamodel structure.

Have a look at the Sirius compartments documentation for more details.

Do it faster

The goal was to get a runtime which react well with 1 million elements. Why one million? Because it is a beautiful number… but also because we noted that the modeling projects are fastly growing to 200K elements and 500K in case of in-depth analysis. Usually when you are over 500K, it means it’s time to re-think the process as you will likely need to decouple models with a clear and defined life-cycle. That is why we aim Sirius to work with 1 millions, then it will be really smoothly with the more usual 500K use case.

Sirius performances are in constant improvements, and this version comes with significant enhancements on heap consumption and time execution.

Time (sec) Heap (Mb) Time Variation Heap Variation
Open Huge Project 80 276 -31,00% -20,00%
Open Big Class Diagram 11 24 -54,00% +20,00%
Refresh Big Class Diagram 0,731 0 -18,00% 0,00%
Save After Diagram Change 26 0 -23,00% 0,00%
Close Diagram 0,1 -6 0,00% 0,00%
Close Project 55 294 0,00% 0,00%

On big operations, the model footprint is reduced by 20%. To do so, major work was done on:

  • using MinimalEObject
  • Transforming Colors from full-blown EObject into Immutable DataType
  • Detecting and fixing leaks
  • Reducing the usage of adapters.

Then the save strategy was reviewed as well as the diagram refresh and the image cache.

Another big task was to reduce the latency. First, on the UI runtime:

  • model element selection dialogs must be used for big models.
  • the right-click in the explorer was optimized.
  • and the property views made with EEF are better integrated.

And then to reduce the latency on tables, SWT refreshes are now done in batch and the team also improved the table model refresh.

Performance is also your matter! It really depends on your .odesign specification. You should focus on queries which will have a complexity depending on the size of the model: measure, improve and repeat! Think about using the Sirius embedded profiler:

Make us stronger

Definition tooling

The Sirius team also worked to polish the specifier editor. They improved many different small things which will really enhance the specifier work as it will guarantee a better odesign validation and an efficient navigation.

  • Workspace class loading is BACK: With Sirius 3 you can define Java services and then try them directly in your current development environment, you do not need anymore to launch another runtime just to test your services!
  • Image path validation and selection wizard: Now, there is a selection wizard to choose an image and then validation exists on image path. You will never get a not found image.

  • Quick Outline: An awesome improvement: it allows to quickly find any element in a odesign! Just call Ctrl+O and a wizard shows up to help you searching through the viewpoint specification.

  • Prioritized sub menus: Another great thing, the menus have been reordered and now the most used elements are available at the top.

Query languages

If you are used to work with Sirius, you already know that writing queries can turn to a severe headache due to the lack of detailed type information.

Actually, there are in Sirius 5 different interpreters to write your queries:

  • Feature: feature:
  • Service: service:
  • Var: var:
  • MTL: [/]
  • and the legacy one: <%%>

The .odesign specification is as flexible as possible, tools can be reused among mappings, mappings can be reused by other mappings, but that means one variable definition can actually have several types depending on the .odesign structure. If we have a look at the following query: What is the type of var:source?

Regarding our example, source can be a Man or a Woman but it could be Woman or Package. Then the source variable can be of multiple types and those types may have no common ancestor other than EObject.

Type analysis within the action language requires a stronger type information from interpreters. It is implemented in feature:, var:. We made some improvements in [/] and there is simply no support in legacy <%%> and ocl:. What we want is a good reference support.

The Acceleo Query Language also known as AQL comes to our rescue. The implementation of AQL is specifically tailored for the Sirius use case. We have many variables for a given expression and null values are common. The usage is really interactive and so the context is constantly changing. I can hear you “Hoooo no, not yet another language…”. Don’t be afraid! You know OCL ? Then you know AQL.

The most important things to know is that:

  • You will find the classic operations like filter, collect,
  • And some convenient ones as: eInverse(), eResource()
  • There is no implicit variable:
[name/] is invalid becomes 
[self.eContents()->select(name.startsWith('A'))/] is invalid and becomes self.eContents()->select(i |'A') 
self.referenceWithNoValue.someOtherAttribute has no evaluation error, returns "Nothing" 

AQL is not strictly compatible with MTL but a subset of MTL works for both.

We did some benchmarks with the different queries engines available in Sirius:

There is no good reason not to use it considering the overhead vs the flexibility and strong validation. In Sirius 3.0, it is delivered as an experimental feature but it will be available officially for the next 3.1 release.

So consider using it from now on if you are still using Acceleo 2 expressions (<%%>). Otherwise, if you are using MTL ([/]), you can prepare your queries to make the migration easier.

To get more details about what is arriving in Sirius 3.0, have a look at the release notes and to the slides or the video of Cédric Brun EclipseCon France talk.

Even if Sirius 3.0 is major version, don’t be afraid! The models are automatically migrated by Sirius, the API changes are well documented in the release notes and some projects such as EcoreTools or UML Designer could upgrade just by changing the version range in the plugin, no impact on the code.

The 3.1 version is planned for November and the next topics of work will be: more flexibility for diagram UX, compartments feature complete, bullet-proof AQL and again more performance and scalability improvements… and your priority is our priority for the future. So don’t be shy, report what you need and want on the bugzilla and remember you can sponsor us to get it done quickly!

Let’s have Daft Punk conclude this post:

More than ever
Hour after
Our work is
Never over

by Melanie Bats at June 26, 2015 01:45 PM