Announcing the Open IoT Challenge 3.0 scholars

by Benjamin Cabé at December 08, 2016 04:26 PM

The third edition of the Open IoT Challenge officially started one week ago. More than 80 teams have submitted their entries and are now in the running to win the Open IoT Challenge 3.0!

Participants have about three months to complete their solution and show the world how open source and open standards can help build innovative IoT solutions. On February 27, they will have to submit their final project report and hope that their work ends up in the top 3 winning solutions.

For now, the judges have reviewed all submissions and we have awarded  a “starter kit” to the most promising solutions. We hope this will help them bootstrap their project. The kit comes in the form of $150 gift card to buy IoT hardware, as well as access to special offers from our sponsors.

The lucky teams/participants are (in no particular order):

  • Tom Morocz – Residential home diagnostics
  • Bilal Al-Saeedi – Water management for farms
  • Benjamin Lassillour – Fish farming management
  • Siva Prasad Katru – Agriculture app to manage a farm
  • Sergey Vasiliev – Environmental monitoring
  • Mark Lidd – build a secured device that can scan and detect IoT objects that could be compromised
  • Nedko Nedkov – Domestic intrusion detection system
  • Amarendra Sahoo – Retail food storage management
  • Deepak Sharma – Smart traffic lights and controller
  • Celso Mangueira – Breeding monitor
  • Vinayan H – MPulse: machine health monitor
  • Tien Cao-hoang – Sensor network to monitor fish farms
  • Anupam Datta – Factory equipment maintenance
  • Ettore Verrecchia – Intelligent monitored garbage collection system
  • Juan Pizarro – Greenhouse automation/smart farming platform
  • Marcos OAP – Low cost connected homes smart city system
  • Didier Donsez / i-greenhouse: monitor greenhouses for organic and auto-production agriculture with LoRa and Sigfox endpoints

As you see, all the submissions have very specific use cases in mind, and I’m really looking forward to seeing the solutions that will be built.

If you entered the challenge and your name does not come up in this list, it doesn’t mean you’re out – not at all! There were only so many entries we could select (and you may have noticed we selected more than initially planned), and unfortunately we had to draw a line somewhere. If you haven’t been awarded the “starter kit”, we still very much hope you will work on the project you’ve submitted.

All the participants will be sharing their journey on their blogs and on social media, so stay tuned to see what they will be up to! I will also be relaying some of the cool stuff being built on Twitter as well, of course.

by Benjamin Cabé at December 08, 2016 04:26 PM

JBoss Tools and Red Hat Developer Studio Maintenance Release for Eclipse Neon.1

by jeffmaury at December 07, 2016 11:07 PM

JBoss Tools 4.4.2 and Red Hat JBoss Developer Studio 10.2 for Eclipse Neon.1 are here waiting for you. Check it out!



JBoss Developer Studio comes with everything pre-bundled in its installer. Simply download it from our JBoss Products page and run it like this:

java -jar jboss-devstudio-<installername>.jar

JBoss Tools or Bring-Your-Own-Eclipse (BYOE) JBoss Developer Studio require a bit more:

This release requires at least Eclipse 4.6.1 (Neon.1a) but we recommend using the latest Eclipse 4.6.1 Neon JEE Bundle since then you get most of the dependencies preinstalled.

Once you have installed Eclipse, you can either find us on the Eclipse Marketplace under "JBoss Tools" or "Red Hat JBoss Developer Studio".

For JBoss Tools, you can also use our update site directly.

What is new?

Our main focus for this release was improvements for container based development and bug fixing.

Improved OpenShift 3 and Docker Tools

We continue to work on providing better experience for container based development in JBoss Tools and Developer Studio. Let’s go through a few interesting updates here.

Node.js Debugger

Now it is possible to debug Node.js applications deployed to Openshift. All you need to do is creating a Server Adapter for the app and running it in the Debug mode. After that a new V8 debug session will be created:

v8 debug console

Put some breakpoints in the code and start debugging!

node js debugger

Changing the code during the debug session is also supported - just save the file and new changes will be applied automatically. Here is a short demo video which describes the debugging process in action:

Step by step instructions are available here.

Cluster common namespace

When looking for Openshift resources (builder images, templates), a common namespace is browsed. Earlier hardcoded openshift namespace is now configurable with default value openshift.

It can be accessed and modified through the connection extended properties:

Connection extended properties

User controlled hostname when creating routes

When an application is being deployed to Openshift, a route is optionally created if required by the user. Openshift/CDK used to create an based hostname. User can now set its own hostname. This allows for both changing the DNS to local IP provider ( or using you own enterprise DNS naming strategy.

The hostname can be accessed from the Services and Routing Settings page when deploying an application:

wizard new application hostname

Create routes targetting a specific service port

When an application is being deployed to Openshift, a route is optionally created if required by the user. It is now possible to target a specific port (exposed by a to be created service). When the ports are being displayed, it is now possible to select one of them to be used by the route. By default, the first port is selected.

The route port can be accessed from the Services and Routing Settings page when deploying an application:

wizard new application route port

CDK server using native terminal for better user interactions

The CDK server adapter now uses a native terminal that allows better interaction with the user. In the case credentials are not passed in the Vagrant environment, the user will be asked just as with the standard Vagrant CLI and in case of registration failures, retries will be performed.

First, make sure your CDK server adapter is configured not to pass credentials:

CDK editor

Then, start the CDK server adapter and a new terminal window will open, asking for registration:


If you answered y to the previous questions, then the terminal window will ask for username:


Then the terminal window will ask for password:


If the registration fails, then the terminal window will perform retries and ask again for username and password:


Server Tools

QuickFixes now available in runtime detection

Runtime detection has been a feature of JBossTools for a long while, however, it would sometimes create runtime and server adapters with configuration errors without alerting the user. Now, the user will have an opportunity to execute quickfixes before completing the creation of their runtimes and servers.

JBIDE 15189 rt detect 1

To see this in action, we can first open up the runtime-detection preference page. We can see that our runtime-detection will automatically search three paths for valid runtimes of any type.

JBIDE 15189 rt detect 2

Once we click search, the runtime-detection’s search dialog appears, with results it has found. In this case, it has located an EAP 6.4 and an EAP 7.0 installation. However, we can see that both have errors. If we click on the error column for the discovered EAP 7.0, the error is expanded, and we see that we’re missing a valid / compatible JRE. To fix the issue, we should click on this item.

JBIDE 15189 rt detect 3

When we click on the problem for EAP 7, the new JRE dialog appears, allowing us to add a compatible JRE. The dialog helpfully informs us of what the restrictions are for this specific runtime. In this case, we’re asked to define a JRE with a minimum version of Java-8.

JBIDE 15189 rt detect 4

If we continue along with the process by locating and adding a Java 8 JRE, as shown above, and finish the dialog, we’ll see that all the errors will disappear for both runtimes. In this example, the EAP 6.4 required a JRE of Java 7 or higher. The addition of the Java 8 JRE fixed this issue as well.

JBIDE 15189 rt detect 5

Hopefully, this will help users preemptively discover and fix errors before being hit with surprising errors when trying to use the created server adapters.

Support for WildFly 10.1

The WildFly 10.0 Server adapter has been renamed to WildFly 10.x. It has been tested and verified to work for WildFly 10.1 installations.

Hibernate Tools

Hibernate Runtime Provider Updates

A number of additions and updates have been performed on the available Hibernate runtime providers.

New Hibernate 5.2 Runtime Provider

With final releases available in the Hibernate 5.2 stream, the time was right to make available a corresponding Hibernate 5.2 runtime provider. This runtime provider incorporates Hibernate Core version 5.2.2.Final and Hibernate Tools version 5.2.0.Beta1.

hibernate 5 2
Figure 1. Hibernate 5.2 is available
Other Runtime Provider Updates

The Hibernate 4.3 runtime provider now incorporates Hibernate Core version 4.3.11.Final and Hibernate Tools version 4.3.5.Final.

The Hibernate 5.0 runtime provider now incorporates Hibernate Core version 5.0.10.Final and Hibernate Tools version 5.0.2.Final.

The Hibernate 5.1 runtime provider now incorporates Hibernate Core version 5.1.1.Final and Hibernate Tools version 5.1.0.CR1.

Forge Tools

Added Install addon from the catalog command

From Forge 3.3.0.Final onwards it is now possible to query and install addons listed in the Forge addons page.

addon install from catalog

Forge Runtime updated to 3.3.1.Final

The included Forge runtime is now 3.3.1.Final. Read the official announcement here.



Freemarker 2.3.25

Freemarker library included in the Freemarker IDE was updated to latest available version 2.3.25.

flth / fltx file extensions added

The new flth and fltx extensions have been added and associated with Freemarker IDE. flth stands for HTML content whereas fltx stands for XML content.

Overhaul of the plugin template parser

The parser that FreeMarker IDE uses to extract IDE-centric information (needed for syntax highlighting, related tag highlighting, auto-completion, outline view, etc.) was overhauled. Several bugs were fixed, and support for the newer template language features were added. Also, the syntax highlighting is now more detailed inside expressions.

Fixed the issue when the (by default) yellow highlighting of the related FTL tags shift away from under the tag as you type.

Showing whitespace, block selection mode

The standard "Show whitespace characters" and "Toggle block selection mode" icons are now available when editing a template.

Improved automatic finishing of FreeMarker constructs

When you type <#, <@, ${, #{ and <#-- the freemarker editor now automatically closes them.

When a FreeMarker exception is printed to the console, the error position in it is a link that navigates to the error. This has worked long ago, but was broken for quite a while.

Fixed auto-indentation

When hitting enter, sometimes the new line haven’t inherited the indentation of the last line.

Updated the "database" used for auto completion

Auto completion now knows all directives and "built-ins" up to FreeMarker 2.3.25.

What is next?

Having JBoss Tools 4.4.2 and Developer Studio 10.2 out we are already working on the next maintenance release for Eclipse Neon.2.


Jeff Maury

by jeffmaury at December 07, 2016 11:07 PM

Eclipse Converge and Devoxx US

by Maximilian Koegel and Jonas Helming at December 07, 2016 07:56 PM

EclipseCon North America has become Eclipse Converge in 2017 and is now combined with Devoxx US. Let us briefly discuss why this is great for YOU as attendee and last but not least as speaker.

So why go there from an attendee perspective?

Devoxx is a very renowned and successful series of conferences – mainly in Europe – with literally over 10.000 developers visiting yearly. Finally Devoxx is coming to the US. You can expect Devoxx to bring a great program for developers to a beautiful location in the US – California.  In contrast to EclipseCon, you can expect a broader range of content, that is not focused on Eclipse only. Now the best part: Since Eclipse Converge is now combined with Devoxx, you can on the first day visit EclipseCon and get all the interesting Eclipse content and afterwards visit Devoxx at the same location. Time to register…or maybe time to think about submitting a talk…see next section :)

So why submit a talk and go there as a speaker?

If your talk submitted to Eclipse Converge gets accepted, you will get a speaker discount “as usual”. But this year this discount code is also valid for Devoxx US. So if you are eligible for a 100% discount you can redeem it for a ticket for Eclipse Converge AND for Devoxx US!

Submit your proposal now, we are expecting awesome proposals!



Leave a Comment

by Maximilian Koegel and Jonas Helming at December 07, 2016 07:56 PM

A conference for Eclipse heads

by gorkem ( at December 06, 2016 08:58 PM

Since, the first EclipseCon in 2004, that was held in Disneyland, Eclipse had a conference in US. I missed all the Disney music of 2004 and my first EclipseCon was in 2005 but I have presented on various EclipseCons since then. Throughout these years, I was able to observe the variances on interests for EclipseCon audiences. However it is a challenge to form an EclipseCon program that is equally interesting to developers of Eclipse technology and Eclipse users. This year the job had become a bit easier, to serve varying interests EclipseCon is teaming up with Devoxx US and becoming Eclipse Converge.

As part of the program committee for Eclipse Converge, my goal is to shape a program in the spirit of the early EclipseCons where the talks would be concentrated around building and innovating on Eclipse projects. If you have talks that are deep in Eclipse technology, please submit them. At least I will be voting for them.

And who knows we can bring the Disney music back to EclipseCon next year!

by gorkem ( at December 06, 2016 08:58 PM

CFP Closes in 1 Week | Eclipse Converge

December 05, 2016 05:30 PM

Discover the tracks, and submit your passion to Eclipse Converge 2017!

December 05, 2016 05:30 PM

Schedule Announced for Devoxx US 2017

December 05, 2016 07:00 AM

Schedule for DevoxxUS 2017 is now available! 200+ talks, Hackergarten, hands-on labs, quickies, BoFs & more!

December 05, 2016 07:00 AM

ECF 3.13.3 Available

by Scott Lewis ( at December 05, 2016 05:50 AM

ECF 3.13.3 is now available.

3.13.3 is a maintenance release, focused on fixes for ECF's implementation of OSGi Remote Services and Remote Service Admin.   Among other things, the tutorial that uses Karaf as the remote service host and Eclipse as the remote service consumer has been simplified and updated to use take maximum advantage of Java8 and Eclipse Neon.

by Scott Lewis ( at December 05, 2016 05:50 AM

Eclipse Xtext’s new umbrella repository

by Karsten Thoms ( at December 02, 2016 07:58 AM

On November 18th the Eclipse Xtext project added a new source repository eclipse/xtext-umbrella. This article describes the reasons for this additional repository and what is developed in there. 

In the past Eclipse Xtext was developed in a single repository, first at and since 2015 at GitHub in the repository eclipse/xtext. After Eclipse Neon and Xtext 2.10 the code was splitted into several separate repositories:

While these repositories contain the majority of the code there is still the need for some code that is related to all sub projects and has to be placed in a central “umbrella” project: release engineering, development tools, documentation, website, etc. This code remained in the eclipse/xtext repository.

So why a new umbrella repository?

When developing on Xtext, committers and contributors should have a similar development environment and all relevant Xtext sources. The Xtext project therefore provides an Oomph setup which is automatically available in Oomph’s Eclipse product catalog. All sources also include the mentioned cross-cutting-concern projects for build, documentation, etc. Checking out the eclipse/xtext repository is easy with Oomph. However, the cloned and checked out repository takes 550MB and also cloning takes a bit. The pain of this large download could be lowered if the repository would be cloned shallow. Unfortunately Oomph is not able to configure the Git Clone Task for that and JGit – which is used in the background – isn’t either (see Bug#475615, Bug#507324).

This would be not a problem if developers could choose this repository optionally like any other sub project in Xtext’s setup:


But there is an important requirement for a permanent availability of the umbrella repository.

The Gradle Composite Build

Xtext’s project structure is now due to the repository split a multi-repository multi-project structure. During the development in the IDE it is important that sources from an upstream repository could be changed and seamlessly used by a project in a downstream repository. For example, if a developer debugs code in Xtend (repository eclipse/xtext-xtend) and changes a class in Xbase (repository eclipse/xtext-extras), the change has to be used immediately. This sounds natural, but with Gradle inter-project dependencies can only be resolved within one composite build and the composite is only defined per repository. In order to resolve now cross-repository dependencies, there must be a composite that aggregates the composites of each repository.

The Gradle composite has to be placed in an umbrella repository (xtext-umbrella/releng/gradle-composite). Placing that in the eclipse/xtext repository would require to clone this large repository always although just a very small bit of code is actually needed.

Updated Oomph setup for Xtext

Xtext’s Oomph setup has now been updated. Users that set up a development environment with the Eclipse Installer like described in the Contribution Guide will automatically benefit from the new setup. The setup will now additionally clone the eclipse/xtext-umbrella repository and import the projects from there for any combination of sub projects selected in the Oomph wizard.

During tests of the new setup it becomes apparent that users should pay special attention to the Variables page and therefore the Git clone location rule. The value should be


if the repositories should be checked out within the workspace. On another machine I recognized that the Git branch was another directory layer, but this would break the composite build right now. It is possible that we will make this even more flexible later.


Conclusion and outlook

The Eclipse Xtext project has now a new repository eclipse/xtext-umbrella, which contains sub project independent sources. A new repository became necessary since a new Gradle composite build was required and must be always checked out. Cloning the old main repository takes too much space and time to be reasonable for these sources.

Contributors can now use the new project structure by setting up their environment with the updated Oomph setup.

The new Gradle composite build became mandatory to resolve cross-repository dependencies in the IDE. In a future blog post I will go into some details on this requirement and how and why we created the composite build.

More details can be found in the related discussions in the following issues and PRs at GitHub:

You want to learn more about the project? Check these blogs:

by Karsten Thoms ( at December 02, 2016 07:58 AM

OAuth2 got easy

by pmlopes at December 02, 2016 12:00 AM

Oauth2 support exists in Eclipse Vert.x since version 3.2.0. The implementation follows the principles that rule the whole vert.x ecosystem: unopinionated, it does what you want it to do, simple but not too simple.

This works fine because OAuth2 is a widely spread standard and vendors adhere to it quite well. However due to the API and the details of the specification it requires some knowledge on what kind of flow your application needs to support, what are the endpoints for authorizing and getting tokens. This information, even though easily accessible to anyone who’s got the time and will, to read the vendor documentation is easy to find, but it means that developers would need to spend time in a non-project problem-related task.

Vert.x thrives for being fast and productive, so what if we could help you focusing on your development tasks rather than reading Oauth2 provider documentation? This is what you can expect for the next release.

Out of the box you will find out that you can instantiate an OAuth2 provider as easy as:

Provider.create(vertx, clientId, clientSecret)

That’s it! simple, to the point, sure it makes some assumptions, it assumes that you want to use the “AUTH_CODE“ flow which is what you normally do for web applications with a backend.

The supported Provider implementations will configure the base API (which will be still available) with the correct URLs, scope encoding scheme or extra configuration such as “shopId“/“GUID“ for Shopify/Azure AD.

So what supported Providers can you already find?

That’s a handful of Providers, but there is more. Say that you want to ensure that your SSL connections are valid and want to control the certificate validation. Every provider also accepts a HttpClientOptions object that will be used internally when contacting your provider, so in this case, you have full security control of your connection, not just defaults.

You can expect this new code to land for 3.4 as it is not available in the current release (3.3.3).

by pmlopes at December 02, 2016 12:00 AM

The Open Source Advent Calendar

by Tracy M at December 01, 2016 10:29 AM


It’s that time of year again. But I don’t really like chocolate. And there’s only so many times you can do a Lego advent calendar. However, I do really love open source software. So for a change, it’s time to spread some open source software magic.

The Open Source Advent calendar works like a normal advent calendar, but instead of the usual countdown, in this case each day has a specific ‘act of open source goodness’. Whether you are an existing open source committer, a contributor or even a lurker looking to get involved, the open source advent calendar will get you right into the spirit of things. It’s like the Kindness Calendar but for open source software.

We’ll be working as a team at Kichwa Coders to step through the calendar, focusing on the projects we love.  We’re using the hashtag #OpenSourceAdventCalendar to share our acts of open source. We invite you to join us, create an open source ripple effect and make a difference to open source projects everywhere this December!

Download the Open Source Advent Calendar here.

by Tracy M at December 01, 2016 10:29 AM

The Eclipse User Profile

by Antoine THOMAS at December 01, 2016 10:22 AM

Following a soft release in October 2016, including several features, the collection of user feedback, related testing and adding improvements, it is officially time to announce the launch of…

The Eclipse User Profile


The aim of the Eclipse User Profile (previously known as the User Dashboard), is to provide user’s with an overview of their community user activity on websites and services (such as Eclipse Marketplace).

The User Profile includes:

  • A simple URL, easy to remember and share,;
    An overview of a user’s activity, retrievable from their account, and also made shareable with a link;
    A way for community users to find other users, and to understand who they are;

Use Case:

  • A young developer is using a plugin in the Eclipse IDE, and submits a bug to ask for an improvement. A top contributor or project lead answers the bug. On Bugzilla, the only information you can see about a specific user is their email address. So how can the young engineer contextualize the value and merit of the answer he or she receives?
  • Instead of only being able to see a public email address, a link to the Eclipse User Profile will appear, helping the young developer understand who the other participants are, and why their input is of value.
  • Users can also share their profile URL in their email signature, on social networks, when applying for a job, as a footprint of their activity and software development work…


Every month we will add new features to the Eclipse User Profile. Below you will find a list of the currently available features, and the features scheduled on the roadmap for the next release.

Released :

  • User presentation, including short presentation, social networks and interests;
  • Eclipse status;
  • Upcoming events;
  • Developer tools, Committer tools;
  • Data management;
  • Applications management;

In Progress:

  • Hudson HIPP control;
  • Activity tab has Gerrit, Marketplace and Forum (more to come);
  • Statistics block has Gerrit, Marketplace and Forum (more to come);

December Release:

  • Adding pagination to the activity tab to improve user experience;
  • Adding an activity tab about Projects involvements;
  • Starting migration of the user preferences and information to the user profile;

If you want to submit a bug on Bugzilla, please open it under ‘Community’, and select the ‘’ component. You can set it to block bug 493458.

Coming Soon

Other features are planned on the roadmap, such as the  integration with Eclipse Bugzilla and Wiki, listing talks at events and articles on Eclipse Planet. Anything we deem potentially useful for Eclipse users that are active within the Eclipse ecosystem, but who are not necessarily code contributors.

We are also interested in displaying Github activity, as it affects Eclipse end users. Although it is outside of our infrastructure, it would be very interesting to display Github activity and user information. If you know Github’s API well, your help is welcome in order to assist us in planning the best way to display information like the number of commits a user has per year in the statistic block, and user’s recent activity (e.g: like for the forum, last activity in contributing repositories).


Can I add my project to the Eclipse User Profile?

The User Profile is open to integration with Eclipse projects.

This can be done to:

  • Display information on the activity tab;
  • Store application data on the user profile;
  • Manage access rights with OpenID connect;
  • If you are interested, please, do not hesitate to contact us with your feedback and input.

How do we retrieve user data?

To fetch data from our API and to display it on the user profile, we are using a jQuery library. For some of the services we use their REST API. And for other services, we gather data before on This architecture is very flexible, and allows the User Profile to in theory retrieve data from all of the sites. You can find our work on Github:

Is the data public?

We only display information that is already publicly available on your user profile, coming from the Eclipse’s websites. We may display public information from Github in near future if we proceed with the integration.

How do I find a user?

This is a very good question, and we are working on this capability. The specification should be done before the end of December 2016, in order to start the development of this functionality at the beginning of next year. The general idea is to have a simple search for first-name/name, nickname, or email, with some filtering options. An advanced search form could be made possible, with more fields retrieved from public data, like location, organisation, social networks accounts, projects involvement.

Feedback is welcome

The feedback we have received from early adopters has been positive and instrumental in allowing us to improve the Eclipse User Profile. It is clear that Eclipse end users and contributors don’t have the same needs. That is why your feedback is important and needed to help us distinguish functionality.

If you have ideas, if you want to help, or if you want to share your experience, please:

Thank you!

by Antoine THOMAS at December 01, 2016 10:22 AM


by Sven Efftinge ( at November 30, 2016 08:04 AM

As many of you already noticed, we had to find a company name without 'Xtext' in it. Longer story short, we finally decided for TypeFox (it still has an 'x', ey? ;-)).  We are still all about Xtext and Xtend, of course.

The website is online now and reveals some additional details about what we do. Also we are having a blog there, which will be updated with useful content around Xtext and Xtend and more general about language engineering, code generators and so on on a regular basis. If you want to get notified about the content, there is a monthly newsletter. It will contain information about the latest blog post, upcoming Xtext and Xtend releases and upcoming events. The sign-up form is on the blog page.

Also Jan joined this month as a co-founder and there will be five more friends (Xtext committers) joining TypeFox in the coming weeks.

Finally I wanted to say thank you, for all the good wishes and the trust of our partners who already do business with us. It starts all very well and I am very thankful for that.

How do you like our logo?

by Sven Efftinge ( at November 30, 2016 08:04 AM

YAKINDU Statechart Tools 2.9 – New and noteworthy

by Andreas Mülder ( at November 29, 2016 02:56 PM

The YAKINDU team is happy to announce the new YAKINDU Statechart Tools 2.9.0 release! Only 6 weeks after our last release we are proud to present you the new version with some long-expected features and several bug fixes and improvements.

The product bundle of SCT is shipped with Eclipse Neon.1 as underlying platform. However, SCT does not require Neon to be installed. You can still update the SCT plugins with a Mars based IDE or the previous SCT bundle. You can download the current version of YAKINDU Statechart Tools from our download page where you also find the links to our update sites.

Headless Code Generator

The new release provides a headless code generator infrastructure that allows easy integration in continuous build environments. As the state machine code is fully derived from the statechart model, it is best practice to generate it on the fly during a CI-build instead of polluting your version control system with generated artifacts.

And here is the good news: The headless code generator can simply be called from the command line and thus can be integrated with different CI-Tools easily. No matter if you use Gradle, Maven or Make: all you need is a Java runtime on your build machine.

For more information about headless code generation read our documentation.


Automated Error Reporting (AERI)

To further improve the quality of our code base, we added the well known AERI Feature (Automated Error Reporting) to the latest release. Thanks a lot to the ctrlflow team who provides a great software as a service infrastructure for collecting error reports!


In case you run into an error when using SCT, you will be asked to report this to the developers of YAKINDU Statechart Tools. This feature is disabled by default, so if you do not explicitly enable it nothing will be sent to us. Please see our privacy policy for more details. Every bug report helps! We are looking forward to your feedback.

Download Statechart Tools

by Andreas Mülder ( at November 29, 2016 02:56 PM

Pushing the Limits of Xtext for C/C++ Linker Scripts

by Tracy M at November 28, 2016 02:54 PM


Xtext is the popular Eclipse language development framework for domain specific languages. Its sweet spot is JVM-languages and it is excellent for languages where you can define the grammar yourself. But how well can Xtext cope with a non-JVM language that has undergone decades of evolution?

In our case, we want to see if we can take advantage of Xtext to create an editor for C/C++ linker scripts in CDT. Linker scripts are used to specify the memory sections, layouts and how code relates to these sections. Linker scripts consist of the ld command language, and this is what a simple typical script might look like:

 RAM : ORIGIN = 0x0, LENGTH = 0x2000
 ROM : ORIGIN = 0x80000, LENGTH = 0x10000

 .text : { *(.text) *(.text.*) } > ROM
 .rodata : { *(.rodata) *(.rodata.*) } > ROM
 .data : { *(.data) *(.data.*) } > RAM
 .bss : { _bss = .; *(.bss) *(.bss.*) *(COMMON) _ebss = .; _end = .; } > RAM

Alternatives to Xtext

Besides using Xtext, its worth considering some of the other options there are for this task:

  • Roll-your-own – the existing C/C++ Editor in CDT does this, gives full control, best error-recovery and supports bidirectionality, recreating source from abstract syntax tree (AST), but it is a last resort as it would be an incredible amount of work that would take a long time to get right.
  • Antlr – write your own antlr grammar, but since antlr is already used in Xtext, may as well use Xtext and get benefits of Eclipse editor integration
  • Reuse linker’s bison grammar – would give perfect parsing, but it is a no-go because i) it’s GPL ii) it generates C code not Java & iii) requirements for editing are much more strenuous than for linking and this for example, would not support bidirectionality (i.e you can’t recreate the linker file from the AST).

Benefits of Xtext

The Xtext framework additionally provides these nice features we are interested in:

  • Parsing, lexing & AST generation
    • serialisation support is particularly important to support bidirectionality and preserve users comments, whitespace etc.
  • Rich Editor Features
    • syntax highlighting
    • content assist
    • validation & error markers
    • code folding & bracket matching
  • Integrated Outline editor
  • Ecore model generation which can be used for integration with UI frameworks such as EMF Forms, Sirius, etc.

Linker Script Parsing Challenges

When we talk about the ld command language being a non-JVM language, here are some specific challenges related to what that means.

  1. Crazy Identifiers! The following are valid identifiers in linker scripts:
    • .text
    • *
    • hello*.o
    • “spaces are ok, just quote the identifier”
    • this+is-another*crazy[example]
  2. Identifier or Number? Things that appear to be identifiers may actually be numbers:
    • a123 – identifier
    • a123x – number
    • 123y – identifier
    • 123h -number
  3. Identifier or Expression?

In the grammar 2+3, for example, depending on context, can either be an identifier or an expression:

 .out_name : {
  symbol = 2+3;

The first 2+3 is a filename, so almost anything that can be a filename is allowed there. The second 2+3 is an expression to be assigned to symbol.


Here’s what we did to support the linker language as far as we could:

  1. Custom Xtext grammar – as extending the XType grammar does not make sense, the main job is to craft the grammar to understand all the linker script identifier and expressions specifics. This involves iterating as we add in more and more language feature support, here’s the work in progress.
  2. Limited Identifier Support – in some cases we opted to not support certain identifiers unless they are escaped (double-quoted). While linker scripts theoretically support such identifiers (e.g. 1234abcd) we have not found a single case yet of an identifier that would actually need escaping. If one did crop up, the user could adjust it to work with the editor (e.g. “1234abcd”).
  3. Context Based Lexing – knowing the difference between an identifier or expression would require context based lexing rules. However this will not work with the antlr lexer. We have the option to replace it with a custom or external lexer. This is an option that can be considered in the future if desirable.


Xtext is a great language development framework. While Xtext may not be able to support every theoretical case of the long-lived linker script command language, it can be used to provide a very high level of support for the common features. Support for context based lexing in the future would enable a higher level of language support. Xtext can be used to provide a rich language editor with syntax colouring, command completion, integrated outline view & more in a relatively short space of time. A powerful linker script editor is another great feature for C/C++ developers that use CDT, the reference C/C++ IDE in the industry.

by Tracy M at November 28, 2016 02:54 PM

Improving Min/Max performance in “e4-on-JavaFX” applications

by Tom Schindl at November 25, 2016 08:00 PM

When it comes to performance in JavaFX one of the biggest problems is that if you detach and reattach a big SceneGraph-Part you run:

  • CSS-Pass
  • Layout-Pass

So in general one should avoid those operations as much as possible but there are situations you can’t get something implemented without doing exactly this kind of thing.

In the current architecture of e(fx)clipse we need to use this reparenting in case of minimizing/maximizing certain areas of your e4-on-JavaFX application which might lead to a very poor user experience if you eg have a MPartStack with many complex substructures (like eg our code editor).

Today we took a closer look for one of our customers to find out if we – the e(fx)clipse – framework can do anything to fix that problem and after some experiments we managed to come up with a solution who allows us to reparent the content of an MPartStack in constant time:

In general I’d say that such optimization should not be required and JavaFX CSS and Layout performance HAS to be improved in general and JavaFX-Components have to get smarter in not running CSS-Passes on SG-Parts who are currently not showing.

by Tom Schindl at November 25, 2016 08:00 PM

New SashLayout container has landed in e(fx)clipse

by Tom Schindl at November 25, 2016 10:24 AM

I just pushed a new layout-container who has a similar feature set than the JavaFX built-in SplitPane but ensures that proportions are not corrupted if you shrink the container (just watch the video below to get an idea what I mean).

The layout algorithm is not something I came up myself. I just reworked the one from SWT to be used in JavaFX.

by Tom Schindl at November 25, 2016 10:24 AM

Registration Open | Eclipse Converge

November 25, 2016 07:30 AM

Discover the newest Eclipse Community event. Join us in San Jose alongside Devoxx US.

November 25, 2016 07:30 AM

Chicken and Pig

by Karsten Thoms ( at November 24, 2016 12:00 PM

Question: Concerning a bacon-and-egg breakfast, what's the difference between the role of the chicken and that of the pig?
Answer: The chicken is involved, but the pig is committed!

So what does that have to do with my work on Xtext?

Xtext by now has a history reaching over a whole decade. Since its early beginnings I have been using the framework and developed several DSLs for customers with it. I have given trainings, consulting, and professional support. I wrote articles and blog posts and talked on conferences, demo camps and community events about Xtext and solutions created with it.

Often it was assumed that I was a committer on the Xtext project and people were very confused when I said that I'm not. I was “just” an expert user and active contributor and I was fine with that. I loved working for my customers and was highly dedicated to craft their solutions. Xtext development had a good momentum and I was happy with just applying this wonderful piece of technology.

From feeling involved...

Recently, my perception has changed a little. While Xtext 2.9 brought a big feature boost (e.g. new generator, Web & IDEA support, better Maven & Gradle support etc.), Xtext 2.10 somehow brought no new prominent features and fewer fixes than the community had expected. For the upcoming 2.11 release the main topics are support of the Language Server Protocol and splitting of Xtext’s single source repository into eight smaller ones.

While the main intention behind the repository split is further stabilization, Xtext and Xtend still have more than 1000 bug reports open. So there is plenty to do and I felt that I could help the project best by getting involved in this topic. Also, the bugs document how users actually use Xtext and where they have problems. I would like to focus on the users and their needs.

Therefore I started to contribute to the project more and more actively, hunted and re-tested bugs. Some were not reproducible, some of them I could already fix and others still exist, but at least they are now marked that they have been reproduced currently. For new issues I want to help users to get a more instant feedback and assure that the issues pile does not grow further. For the near future I want to make sure that stabilization does not lead to stagnation and that we do not keep adding technological debt, but will also actively fight against it. being committed

I really feel committed to the project now and I am pleased that itemis grants the necessary time for me and my colleagues to keep improving this interesting piece of technology. Therefore I am happy that my colleagues Holger Schill finally proposed me to become committer on the project and that those who voted for me showed that they appreciate my dedication and work. 

Now I plan to intensify my work on Xtext even more and to use my close relation to users to improve their experience with the framework. I am confident that I can bring a different perspective into the project that is adding value to it.

by Karsten Thoms ( at November 24, 2016 12:00 PM

Production BRMS and Fuse Tooling for Neon

by pleacu at November 18, 2016 08:20 AM

Try our complete Eclipse-Neon capable, Devstudio 10.1.0 compatible integration tooling.

jbosstools jbdevstudio blog header

JBoss Tools Integration Stack 4.4.0.Final / JBoss Developer Studio Integration Stack 10.0.0.GA

All of the Integratioon Stack components have been verified to work with the same dependencies as JBoss Tools 4.4 and Developer Studio 10.

What’s new for this release?

Fuse Tooling/SwitchYard and BRMS Tooling are released for the Eclipse/Neon platform (Devstudio 10.1.0). The latest Fuse runtime and BRMS runtime are supported. Also - we’re happy to offer the latest Mars-based DataVirtualization bits as Early Access on our Neon platform.

Released Tooling Highlights

JBoss Fuse Development Highlights

Fuse Tooling Highlights

See the Fuse Tooling 9.0.0.Final Resolved Issues Section of the Integration Stack 10.0.0.GA release notes.

SwitchYard Highlights

See the SwitchYard 2.2.0.Final Resolved Issues Section of the Integration Stack 10.0.0.GA release notes.

JBoss Business Process and Rules Development

BPMN2 Modeler Highlights

See the BPMN2 1.3.2.Final Resolved Issues Section of the Integration Stack 10.0.0.GA release notes.

Drools/jBPM6 Highlights

Early Access/ Technical Preview Tooling Highlights

Data Virtualization Highlights

Teiid Designer Highlights

What’s an Integration Stack?

Red Hat JBoss Developer Studio Integration Stack is a set of Eclipse-based development tools. It further enhances the IDE functionality provided by JBoss Developer Studio, with plug-ins specifically for use when developing for other Red Hat JBoss products. It’s where the Fuse Tooling, DataVirt Tooling and BRMS tooling is aggregated. The following frameworks are supported:

JBoss Fuse Development

  • Fuse Tooling - JBoss Fuse Development provides tooling for Red Hat JBoss Fuse. It features the latest versions of the Fuse Data Transformation tooling, SwitchYard and access to the Fuse SAP Tool Suite.

  • SwitchYard - A lightweight service delivery framework providing full lifecycle support for developing, deploying, and managing service-oriented applications.

JBoss Business Process and Rules Development

JBoss Business Process and Rules Development plug-ins provide design, debug and testing tooling for developing business processes for Red Hat JBoss BRMS and Red Hat JBoss BPM Suite.

  • BPEL Designer - Orchestrating your business processes.

  • BPMN2 Modeler - A graphical modeling tool which allows creation and editing of Business Process Modeling Notation diagrams using graphiti.

  • Drools - A Business Logic integration Platform which provides a unified and integrated platform for Rules, Workflow and Event Processing including KIE.

  • jBPM6 - A flexible Business Process Management (BPM) suite.

JBoss Data Virtualization Development

JBoss Data Virtualization Development plug-ins provide a graphical interface to manage various aspects of Red Hat JBoss Data Virtualization instances, including the ability to design virtual databases and interact with associated governance repositories.

  • Teiid Designer - A visual tool that enables rapid, model-driven definition, integration, management and testing of data services without programming using the Teiid runtime framework.

JBoss Integration and SOA Development

JBoss Integration and SOA Development plug-ins provide tooling for developing, configuring and deploying BRMS, SwitchYard and Fuse applications to Red Hat JBoss Fuse and Fuse Fabric containers, Apache ServiceMix, and Apache Karaf instances.

  • All of the Business Process and Rules Development plugins, plus…​

  • Fuse Apache Camel Tooling - A graphical tool for integrating software components that works with Apache ServiceMix, Apache ActiveMQ, Apache Camel and the FuseSource distributions.

  • SwitchYard - A lightweight service delivery framework providing full lifecycle support for developing, deploying, and managing service-oriented applications.

The JBoss Tools website features tab

Don’t miss the Features tab for up to date information on your favorite Integration Stack components.


The easiest way to install the Integration Stack components is through the stand-alone installer.

For a complete set of Integration Stack installation instructions, see Integration Stack Installation Instructions

Give it a try!

Paul Leacu.

by pleacu at November 18, 2016 08:20 AM

Eclipse Che 5.0 Brings Docker Compose Support, Workspace Agents, and More

by Sergio De Simone at November 16, 2016 10:00 PM

At the first CheConf16, a virtual user conference dedicated to Eclipse Che, a containerized portable development workspace, Codenvy CEO and Che project leader Tyler Jewell announced Eclipse Che 5.0. Expected to be released before the end of the year, it will introduce support for Docker Compose, Workspace Agents, and more.

By Sergio De Simone

by Sergio De Simone at November 16, 2016 10:00 PM