JavaLand 2015

by Kai Tödter at March 28, 2015 12:18 PM

Last week I attended the JavaLand conference (March 23-24, 2015) and this is a short personal blog about it.

The Venue

The conference took place at Phantasialand, a great theme park in Brühl, close to Cologne. I really liked the atmosphere there, it reminded me a lot of Disneyland, which I visited 6 months ago. The sessions were held both in the Quantum conference center, as well as the movie theater and the main stage. At the end of the first conference day, 11 attractions of the park were opened just for the conference attendees. I took the advice of some friends very seriously: Don’t drink a beer until you have finished all the rides! When I was younger, I was a big roller coaster fan, so I tried Black Mamba, Colorado Adventure and Temple of the Night Hawk. Then I had enough of roller coasters :).


The Sessions

For many conference attendees the sessions are the most important part of a conference. In my point of view the sessions were a good mix of technical and non-technical topics. Since I am a Java veteran for 20 years, I usually only attend sessions about content that is either totally new for me or I have very little knowledge about. My personal highlights were:

  • Coding Culture (by Sven Peters)
  • Effective Asciidoc (by Dan Allen and Sarah White)
  • Use Cases for Elasticsearch (by Florian Hopf)

Of course there were many more great talks but these 3 gave me new insights and made me think most.


The Community

I really liked the atmosphere at the conference. It was very easy for me to talk to people I did not know before. In the community area there were lots of interesting booths, playgrounds, open spaces, katas, workshops and more. It was fun to experience a few Oculus Rift demos that I did not know before. It was also very nice to meet old friends like Wayne Beaton and Lars Vogel from the Eclipse community, as well as many people I know from my JCP work or other conferences.

The Food

While many developers are happy if they get pizza or fast food, I appreciate good catering at conferences. I was invited to the community dinner on Monday, hosted in the restaurant of one of the theme hotels. This dinner was the start of great catering during the whole conference, so JavaLand easily made it into my all-time top 5 conference caterings.

The Band

I have to admit that I did not expect anything when I heard a band was playing Tuesday night. To make it short: The Band (Sonnabend) was awesome! After enjoying few songs I could not resist to dance for more than one hour. 20 years ago I played keyboards in my Band DC Robertson (see MultiMedia) so I had a special eye on the awesome keyboarder :).



There were a few things that I was missing: Reliable Wifi and a conference app. Another thing: When I attended sessions in the theater, it was pretty chilly. So, as always, there is room for improvements :).


All in all I liked the conference a lot and looking forward to JavaLand 2016.

Flattr this!

by Kai Tödter at March 28, 2015 12:18 PM

Less than a week to contribute your Great Fix for Mars

March 27, 2015 02:21 PM

The contributors with the best fixes will be awarded a new Nexus 9 tablet! Next deadline is April 1.

March 27, 2015 02:21 PM

Announcing the bnd Maven Plugin

March 27, 2015 12:00 PM

I am pleased to announce the availability of a new Maven plugin for building OSGi bundles, based on bnd. The plugin is called bnd-maven-plugin and it will be developed as part of the wider bnd and Bndtools projects.

The plugin has been kindly donated by one of Paremus’ customers – a very well known company whose identity we expect to be able to confirm in due course – under the terms of the Apache License version 2.

You might very well wonder: why did we build a new Maven plugin for OSGi development? Most OSGi developers who use Maven today are using the maven-bundle-plugin from Apache Felix. That plugin is mature and stable but it does have a number of issues that our customer wanted resolved.

The first major issue with maven-bundle-plugin is that it replaces Maven’s default plugin for JAR generation (the maven-jar-plugin). This means that it must use a different packaging type – “bundle” instead of “jar” – and must use the extensions=true setting to override Maven’s default lifecycle. As a result, the output artifacts are harder to consume in ordinary non-OSGi projects. Therefore, many Maven developers either don’t bother to release OSGi bundles at all because of the hassle, or they release both a “plain JAR” and a separate OSGi bundle. This is deeply frustrating because OSGi bundles already are plain JARs!… they can be used unalterered in non-OSGi applications.

The new bnd-maven-plugin instead hooks into Maven’s process-classes phase. It prepares all of the generated resources, such as MANIFEST.MF, Declarative Services descriptors, Metatype XML files and so on, under the target/classes directory, where they will be automatically included by the standard maven-jar-plugin (with one caveat discussed below).

The second issue is that maven-bundle-plugin has some questionable features and design choices. For example it automatically exports all packages that do not contain the substrings “impl” or “internal”. The motivation was understandable at the time – it is closer to normal Java with all packages being implicitly exported – but this is really just wrong from a modularity point of view, and goes against OSGi best practices. The bnd-maven-plugin instead includes all packages from the project in the bundle but exports nothing by default. The developer must choose explicitly which packages are exported.

The third issue with maven-bundle-plugin is that it is difficult to use in an incremental build environment. In Bndtools we have had literally years of discussions about how to best accommodate Maven users while still supporting the rapid development cycle that Bndtools users love. The new plugin will make this easier: for example after the process-classes phase has completed, the content of the target/classes directory is already a valid OSGi bundle, albeit in folder form rather than a JAR file. Also the new plugin takes its bnd instructions from the bnd.bnd file in each project, rather than from a funky XML encoding of those instructions deep inside the POM.

Finally, we believe that by delivering a Maven plugin directly from the bnd project, we can more quickly take advantage of new features in bnd, and develop features in bnd that directly benefit Maven users. Note however that the Gradle and Ant integrations of bnd will still be supported: we want everybody to use bnd to build their OSGi bundles, irrespective of IDE and build system.

So much for motivation, let’s look at some of the technical details.

The plugin has been released as version 2.4.1 because there was a previous experimental plugin with the same name. That experiment was not a success, and we abandoned it some time ago – the new plugin is a complete rewrite. The version of the plugin will track the version of bnd itself, so 2.4.1 of the plugin builds against 2.4.1 bnd, which is released and available from Maven Central. From now on we will work on version 3.0, which will track version 3.0 of bnd.

The plugin generates the JAR manifest into target/classes/META-INF/MANIFEST.MF, but due to a limitation of the maven-jar-plugin this file is ignored and replaced by an empty, non-OSGi manifest. We are preparing a patch against maven-jar-plugin to modify this behaviour and hope that it will be accepted, but in the meantime it is necessary to set the following configuration one time in your parent POM:


The plugin is available now from Maven Central or jCenter. It is not yet thoroughly documented, although bnd itself does have very good documentation. All options from bnd automatically work in bnd-maven-plugin, with the exception of “sub bundles” (-sub) since Maven projects are meant to produce exactly one output artifact per project.

To add the plugin to your project, insert the following into your POM:



We have example projects to get started. Questions, problems or offers of help can be can be directed to the bnd/Bndtools mailing list.

March 27, 2015 12:00 PM

Open IoT Challenge – Final submissions

by Benjamin Cabé at March 26, 2015 05:55 PM

The Open IoT challenge ended earlier this week, and it was pretty exciting to see the final submissions coming in the form of blog posts and video during the last hours before the deadline.

Below are the 10 projects who validated their participation to the challenge, together with the links to learn more about what they have built during the 2 months the challenge lasted. Exciting stuff!


The project aims to build an advanced monitoring car system, integrating the huge amount of sensors data from the car ECU (read by standard OBD-II interface) with smartphone sensors data (like GPS). A gateway (a Raspberry Pi with Kura OSGi framework) can collect the data, wrap them in a MQTT packet and finally send them to a remote MQTT server exploiting the 3G connection provided by the smartphone (the latter could be connected to the Raspberry Pi with bluetooth interface).

→ Read more:


IoNeeds basically measures fullness, light, temperature and humidity of storage boxes and jars continuously. It stores the data on cloud and when it encounters with extreme values, it applies the rules which previously configured on control panel such as sending SMS, Android/iOS notifications. Also it can be configured with e-commerce web sites’ order APIs. So it enables auto-order scenarios like “Automatically order the product from web if fullness value is under 50%”

→ Read more :

DIY Home Automation

A DIY “home automation” solution based on MQTT-SN, Node-RED, Arduino, Raspberry Pi and nRF24L01+ RF transceivers.

→ Read more:

Raspberry Pi R/C car

Program a remote controlled Raspberry Pi Robot car using Reactive Blocks.

→ Read more:, Internet of Plants

Keeping plants alive in an office without regular hours is hard: Either everybody thinks their colleagues have already watered the plants or multiple people water the same plant, resulting in either drought or overhydration.

→ Read more:

Hot Desking Dilemma

More and more companies offer their employees the possibility to work remote from home instead of working in the office. Hot desking – multiple employees share one desk over a week – is a common practice for such companies in order to reduce costs. People who know this setting also know the downsides of this model: it is just pretty hard to get a desk when you need one.

→ Read more:

LwM2M over MQTT

The current stack for LWM2M relies on CoAP as the protocol. Along with CoAP, MQTT is another standard which is being very widely used in M2M scenarios. Our solution involves development of an LWM2M server prototype, as well as, a client prototype, which make use of MQTT as the underlying M2M protocol. Thus LWM2M can be used for both CoAP, as well as, MQTT.

→ Read more:

Monitoring industrial automation

This project realizes a device that monitors a set of defined parameters (mapped to MODBUS registers on a device) and based on defined rule take action (store in internal memory, show as value or graph on local LCD or send using MQTT protocol to defined server). User is able to freely define mapping to MODBUS registers, poling interval, monitoring rules and actions).

→ Read more:

Smart Helmet

According to a survey, in India, 139,091 persons were killed in road accidents during the year 2012, out of which 23% constituted for Two-wheeler related incidents. The objective of the solution is to detect impact of the accident or fall occurred using the accelerometer mounted on the helmet.

→ Read more:

Monitoring snow and ice falling down of roofs

In Norway it is the responsibility of building owners to warn people of risk of snow and ice falling down from the roofs of buildings. It is a serious liability. Some years ago in Oslo, a pedestrian got paralyzed after a iceblock fell from a building and hit his head.

→ Read more:

by Benjamin Cabé at March 26, 2015 05:55 PM

Maven, Tycho, Surefire, AspectJ and Equinox Weaving

by Andreas Graf at March 26, 2015 02:33 PM

This is a very short technical post. But since it took us some time to find the solution (there is little information on the Web), we wanted to add another possible search hit for others.

JUnit tests from within Eclipse work well with AspectJ runtime weaving in Equinox. Finding information on how to activate the same in Maven Tycho surefire was more difficult.

You have to configure the surefireplugin to use the Equinox Weaving hook and start the AspectJ Weaving Bundle:


In addition, on command line configuration, you could pass debug information. We have set the property:
<aspectj.weavingargs>-Daj.weaving.verbose=true -Dorg.aspectj.weaver.showWeaveInfo=true -Dorg.aspectj.osgi.verbose=true</aspectj.weavingargs>
and use it later on
<argLine>${tycho.surefire.vmargs} {aspectj.weavingargs} ... </argLine>

by Andreas Graf at March 26, 2015 02:33 PM

Eclipse Newsletter - Eclipse in Automotive

March 26, 2015 02:22 PM

In this newsletter, you will find an article about Eclipse in Automotive and two articles focusing on Almathea4public and Artop.

March 26, 2015 02:22 PM

Welcome Andrey Loskutov as a new eclipse.platform.ui Committer

by Lars Vogel at March 26, 2015 08:49 AM

I would like to welcome Andrey as new platform.ui committer. Andrey is a very active Eclipse tools developer who maintain popular Eclipse tools like the Eclipse Findbugs plug-in and AnyEdit. And now is is already the second most active developer of platform.ui takeling a bunch of critical and difficult issues.


Welcome Andrey!

See the message on the platform.ui mailing list. See also Andrey blog post about this topic.

by Lars Vogel at March 26, 2015 08:49 AM

Thoughts on running an open source program (via @TODOGroup)

by Chris Aniszczyk at March 25, 2015 06:05 PM

I recently posted on the @TODOGroup blog on why we run an open source program at Twitter:

Outside of just my experience, it’s been great to see other companies participating in this effort so you can hear from them too on running open source programs:

There should be more blog posts from us in the future about this topic, on top of us discussing other issues pertinent to companies working with open source communities.

Anyways, I hope you learned something new from these posts and if you’re a fan of company open source programs, please consider pushing your company or others to establish an official open source program or office. We all should give back as it’s in our best interest.

by Chris Aniszczyk at March 25, 2015 06:05 PM

FoundationDB and Open Source Foundations

by Chris Aniszczyk at March 25, 2015 03:29 PM

Just like any other day, I saw a funny tweet across my timeline this morning:

Not sure if you heard the news, but FoundationDB was a company/open source project around a NoSQL database. They recently were bought by a much larger company and decided to close down the project, including removing the source and binaries from distribution channels.

I don’t want to sound like a broken record, but open source foundations are really useful. As a consumer, it helps you ensure that there is an independent governance structure in place along with fair ownership of the code (usually the foundation). This means that code won’t disappear overnight since an independent entity owns it, along with the broader community. From a producer point of view, you can build diversity in ownership and committers which will help you in the long run in building a sustainable open source community.

Oh well, c’est la vie.

Quick update and nice set of genuine tweets from the CouchDB folks who saw the benefits of having the code exist at an open source foundation:

by Chris Aniszczyk at March 25, 2015 03:29 PM

speaking at MobileTechCon 2015

by ekkescorner at March 24, 2015 08:02 AM


This week at MobileTechCon I’m speaking about “Secure Workspaces” (Tuesday) and “Bluetooth in Business Apps” (Wednesday)

Secure Workspaces – Islands of Security

  • learn all about BYOD, COPE, COBO, Regulated, MDM, EMM and more
  • live demo BES12
  • get tips what’s important to know about BES12, Airwatch, Good, MobileIron, Samsung KNOX, Android for Work, …

MobileTechCon 2015-03-24, 16:15, Forum 15

Bluetooth in Business Apps

  • new workflows possible for enterprise workflows using iBeacons, Beacons, NFC, Bluetooth LE, ‘old’ Bluetooth
  • live demo Beacons and NFC
  • live demo two devices connected using SPP: Barcode Printer and FingerScanner

MobileTechCon 2015-03-25, 14:30, Forum 15

see you there

Filed under: BB10, Blackberry, Eclipse, mobile

by ekkescorner at March 24, 2015 08:02 AM

Andmore Nightly p2 Repository

by kingargyle at March 24, 2015 12:06 AM

Andmore now has a nightly p2 repository available for Adopters and third party tool providers to start making use.

This site should contain everything you need to install Andmore into an eclipse environment and start developing android applications.  It can also be used by add on providers to build off and extend Andmore to other tools.   As with all nightly sites, this could be unstable at times, but should be useable to help provide feedback to the project.

Please help kick the tires and provide feed to the project about what is working and what isn’t working.  We need and want your involvement to help improve eclipse android tooling.

by kingargyle at March 24, 2015 12:06 AM

JBoss Integration Stack Tooling - Kepler Update

by pleacu at March 23, 2015 04:16 PM

Just for you Kepler fans - an Eclipse Kepler update of your favorite Integration Stack tooling is now available.

jbosstools jbdevstudio blog header

What’s an Integration Stack?

JBoss Tools Integration Stack 4.1.7.Final / JBoss Developer Studio Integration Stack 7.1.0.GA

The Integration Stack for JBoss Tools Developer Studio is a set of plugins for Eclipse that provides integration tooling for the following frameworks.

JBoss Business Process and Rules Development

  • 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.

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

JBoss Data Virtualization Development

  • Modeshape - A distributed, hierarchical, transactional and consistent data store with support for queries, full-text search, events, versioning, references, and flexible and dynamic schemas. It is very fast, highly available, extremely scalable, and it is 100% open source.

  • 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

  • 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.

SOA 5.x Development

  • JBoss ESB - An enterprise service bus for connecting enterprise applications and services.

  • jBPM3 - A flexible Business Process Management (BPM) Suite - JBoss Enterprise SOA Platform 5.3.x compatible version.

All of these components have been verified to work with the same dependencies as JBoss Tools 4.1 and Developer Studio 7.

What’s Been Updated?

Updates have been made to the Business Process tooling (BPMN2 Modeler, BPEL), Fuse Tooling and Data Virtualization tooling (Teiid Designer). See the JBDSIS 7.1.0 Release Notes

Released Tooling Highlights

BPEL Highlights

Bug Fixes
  • Cannot set date (deadline expression) in Wait and OnAlarm

Fuse Tooling Highlights

Bug Fixes
  • Hyperlinks in the Fuse Tooling help seem to be widely broken

For more specifics see

Fuse Tooling

See Lars Heinemann’s Blog for more insights.

The JBoss Tools website features tab

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


If you already have JBDSIS installed…​

Simply start jbdevstudio or eclipse-with-jbds, then:

Select Help > Check for Updates

Select the components you’d like to install from the available updates:

Check for Updates - JBoss Tools Integration Stack

If you’d like a fresh install…​

To install the Integration Stack tools, first install JBoss Developer Studio from the all-in-one installer, bundled and configured out of the box with everything you need to get started. Alternatively, if you already have eclipse-jee-kepler installed, you can install JBoss Developer Studio or JBoss Tools from the Eclipse Marketplace via Help > Eclipse Marketplace…​

Eclipse Marketplace - JBDS

Once Developer Studio is installed, restart Eclipse and select the Software/Update tab in the JBoss Central view and look for the JBoss Developer Studio Integration Stack installation section. Select the items you’d like to install:

JBoss Central - JBoss Developer Studio Integration Stack

The standard p2 installer is available for JBoss Developer Studio Integration Stack. Simply start jbdevstudio or eclipse-with-jbds, then:

 Help > Install New Software...
       - use this for 'Location:' for the production integration stack:

The community JBoss Tools Integration Stack installation is easy as well. If you already have eclipse-jee-kepler installed, install JBoss Tools from the Eclipse Marketplace via Help > Eclipse Marketplace…​

Eclipse Marketplace - JBoss Tools

Once JBoss Tools is installed, restart Eclipse and select the Software/Update tab in the JBoss Central view. The current 4.1.7.Final integration stack is available automatically. Select the items you’d like to install:

JBoss Central - JBoss Tools Integration Stack

The standard p2 installer is available for JBoss Tools Integration Stack. Simply start eclipse-with-jbt, then:

 Help > Install New Software...
       - use this for 'Location:' for the released-components integration stack:

Note: If you installed into your own Eclipse you should bump up the launch resource parameters:

--launcher.XXMaxPermSize 256m --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m

Let us know…​

Paul Leacu.

by pleacu at March 23, 2015 04:16 PM

RCP Testing Tool – Tutorial updated

by Jonas Helming at March 23, 2015 03:08 PM

Almost two years ago, I have created a basic tutorial for the UI testing tool “Q7”. In 2014, Q7 has been released as an open source project and been renamed to “RCP Testing Tool” (RCPTT). RCPTT is focused on creating and running UI/System test for RCP/SWT applications. It is an alternative or addition to the open source projects SWTBot or Jubula. All of them have their specific advantages and disadvantages, RCPTT uses a very different approach than that of SWTBot or Jubula. I updated my tutorial based on the latest version of RCPTT, it describes all basic steps to get started with RCPTT. It should also give you a good impression of how RCPTT works.

Please follow this link to get to the new tutorial.


Leave a Comment. Tagged with eclipse, rcp, testing, eclipse, rcp, testing

by Jonas Helming at March 23, 2015 03:08 PM

Scaling Yosemite

by Kim Moir ( at March 20, 2015 06:52 PM

We migrated most of our Mac OS X 10.8 (Mountain Lion) test machines to 10.10.2 (Yosemite) this quarter.

This project had two major constraints:
1) Use the existing hardware pool (~100 r5 mac minis)
2) Keep wait times sane1.  (The machines are constantly running tests most of the day due to the distributed nature of the Mozilla community and this had to continue during the migration.)

So basically upgrade all the machines without letting people notice what you're doing!

Yosemite Valley - Tunnel View Sunrise by ©jeffkrause, Creative Commons by-nc-sa 2.0

Why didn't we just buy more minis and add them to the existing pool of test machines?
  1. We run performance tests and thus need to have all the machines running the same hardware within a pool so performance comparisons are valid.  If we buy new hardware, we need to replace the entire pool at once.  Machines with different hardware specifications = useless performance test comparisons.
  2. We tried to purchase some used machines with the same hardware specs as our existing machines.  However, we couldn't find a source for them.  As Apple stops production of old mini hardware each time they announce a new one, they are difficult and expensive to source.
Apple Pi by ©apionid, Creative Commons by-nc-sa 2.0

Given that Yosemite was released last October, why we are only upgrading our test pool now?  We wait until the population of users running a new platform2 surpass those the old one before switching.

Mountain Lion -> Yosemite is an easy upgrade on your laptop.  It's not as simple when you're updating production machines that run tests at scale.

The first step was to pull a few machines out of production and verify the Puppet configuration was working.  In Puppet, you can specify commands to only run certain operating system versions. So we implemented several commands to accommodate changes for Yosemite. For instance, changing the default scrollbar behaviour, new services that interfere with test runs needed to be disabled, debug tests required new Apple security permissions configured etc.

Once the Puppet configuration was stable, I updated our configs so the people could run tests on Try and allocated a few machines to this pool. We opened bugs for tests that failed on Yosemite but passed on other platforms.  This was a very iterative process.  Run tests on try.  Look at failures, file bugs, fix test manifests. Once we had to the opt (functional) tests in a green state on try, we could start the migration.

Migration strategy
  • Disable selected Mountain Lion machines from the production pool
  • Reimage as Yosemite, update DNS and let them puppetize
  • Land patches to disable Mountain Lion tests and enable corresponding Yosemite tests on selected branches
  • Enable Yosemite machines to take production jobs
  • Reconfig so the buildbot master enable new Yosemite builders and schedule jobs appropriately
  • Repeat this process in batches
    • Enable Yosemite opt and performance tests on trunk (gecko >= 39) (50 machines)
    • Enable Yosemite debug (25 more machines)
    • Enable Yosemite on mozilla-aurora (15 more machines)
We currently have 14 machines left on Mountain Lion for mozilla-beta and mozilla-release branches.

As a I mentioned earlier, the two constraints with this project were to use the existing hardware pool that constantly runs tests in production and keep the existing wait times sane.  We encountered two major problems that impeded that goal:

It's a compliment when people say things like "I didn't realize that you updated a platform" because it means the upgrade did not cause large scale fires for all to see.  So it was a nice to hear that from one of my colleagues this week.

Thanks to philor, RyanVM and jmaher for opening bugs with respect to failing tests and greening them up.  Thanks to coop for many code reviews. Thanks dividehex for reimaging all the machines in batches and to arr for her valiant attempts to source new-to-us minis!

1Wait times represent the time from when a job is added to the scheduler database until it actually starts running. We usually try to keep this to under 15 minutes but this really varies on how many machines we have in the pool.
2We run tests for our products on a matrix of operating systems and operating system versions. The terminology for operating system x version in many release engineering shops is a platform.  To add to this, the list of platform we support varies across branches.  For instance, if we're going to deprecate a platform, we'll let this change ride the trains to release.

Further reading
Bug 1121175: [Tracking] Fix failing tests on Mac OSX 10.10 
Bug 1121199: Green up 10.10 tests currently failing on try 
Bug 1126493: rollout 10.10 tests in a way that doesn't impact wait times
Bug 1144206: investigate what is causing frequent talos failures on 10.10
Bug 1125998: Debug tests initially took 1.5-2x longer to complete on Yosemite

Why don't you just run these tests in the cloud?
  1. The Apple EULA severely restricts virtualization on Mac hardware. 
  2. I don't know of any major cloud vendors that offer the Mac as a platform.  Those that claim they do are actually renting racks of Macs on a dedicated per host basis.  This does not have the inherent scaling and associated cost saving of cloud computing.  In addition, the APIs to manage the machines at scale aren't there.
  3. We manage ~350 Mac minis.  We have more experience scaling Apple hardware than many vendors. Not many places run CI at Mozilla scale :-) Hopefully this will change and we'll be able to scale testing on Mac products like we do for Android and Linux in a cloud.

by Kim Moir ( at March 20, 2015 06:52 PM

JBoss Developer Studio 8.1.0.CR1 and JBoss Tools 4.2.3.CR1

by akazakov at March 20, 2015 06:03 PM

We would like to announce Red Hat JBoss Developer Studio 8.1.0 CR1 and JBoss Tools 4.2.3 CR1 is now available.

jbosstools jbdevstudio blog header


Red Hat JBoss Developer Studio comes with everything pre-bundled in its installer. Simply download it and install it like this:

java -jar jboss-devstudio-{version}-installer-{standalone|eap}.jar

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

This release requires at least Eclipse 4.4 (Luna) but we recommend using the Eclipse Luna SR2 Java EE Bundle since then you get most of the dependencies preinstalled with Java EE Bundle and SR2 release includes some critical fixes.

Once you have installed or if you have JBoss Tools 4.2.x already installed, you can use our update site directly for JBoss Tools:

And for JBoss Developer Studio Bring-Your-Own-Eclipse:

Note: JBoss Tools 4.2.3 and JBoss Developer Studio 8.1.0 will become available in Marketplace only for Final releases at early April

What is New?

We are getting close to the final release. So, we focused on bug fixing in this release.

Upgraded Forge 2 Runtime

Besides bug fixes, the Forge 2 runtime was upgraded to 2.15.1.Final. See the release notes here.

There is also an improvement in Forge wizards which now render notes below the inputs (where available):


It’s worth mentioning that the Forge 2.15.1 release has an annoying bug which prevents addons creation. The upcoming JBoss Developer Studio 8.1.0.Final will include the fixed Forge 2.15.2.Final (has been released today).

What is Next?

The next stop is JBoss Tools 4.2.3.Final and JBoss Developer Studio 8.1.0.Final which are going to be released in two weeks.


Alexey Kazakov

by akazakov at March 20, 2015 06:03 PM

It’s the table sorter stupid

by eselmeister at March 20, 2015 03:48 PM

Today, I just trapped into those pitfalls where thinking in terms of complexity fails. I got the following error message when sorting entries of a JFace TableViewer:

!MESSAGE Workaround for comparator violation:
    - set system property java.util.Arrays.useLegacyMergeSort=true
    - use a 1.6 JRE
message: Comparison method violates its general contract!

Here’s a part of the stack trace:

java.lang.IllegalArgumentException: Comparison method violates its general contract!
    at java.util.TimSort.mergeLo(
    at java.util.TimSort.mergeAt(
    at java.util.TimSort.mergeCollapse(
    at java.util.TimSort.sort(
    at java.util.TimSort.sort(
    at java.util.Arrays.sort(
    at org.eclipse.jface.viewers.ViewerComparator.sort(

I thought that something with the TableViewer is wrong, … or with the data, … or with the label provider, … or with the content provider. Finally, I had a look at the sort algorithm:

int sortOrder = 0;
int size2 = result2.size();
int size1 = result1.size();
sortOrder = (size2 > size1) ? 1 : -1;

If size2 and size1 are the same it crashes, cause 0 shall be returned but in all cases -1 was returned. The following fix made it work.

int sortOrder = 0;
int size2 = result2.size();
int size1 = result1.size();
if(size2 != size1) {
	sortOrder = (size2 > size1) ? 1 : -1;

Stupid little mistake :-)!

by eselmeister at March 20, 2015 03:48 PM

What is new on Eclipse Thym 0.2.0

by gorkem ( at March 20, 2015 03:36 PM

We have just released a new version of Eclipse Thym.

Compared to 0.1.0 release the highlights for the 0.2.0 release are.
  • Working sets are supported on New Hybrid Mobile Project wizard: You can add your Hybrid Mobile projects to JavaScript working sets during project creation.
  • Convert existing Eclipse projects to a Hybrid Mobile project: Any existing Eclipse project, that has a proper config.xml and www directory, can be converted using the Configure > Convert to Hybrid Mobile Project menu item. This feature also introduces a new API to enable adopters to programmatically convert existing projects to Hybrid Mobile projects.
  • Icon and Splash Screen support for iOS and Android builds:  If your config.xml has icon and/or splash screen references. Native project or executable exports created from Thym will honour them. Refer to Apache Cordova documentation for details of icon and splash screen support. 
As usual Thym 0.2.0 is available from these update sites and Eclipse marketplace.
  • Update existing installs:
  • Release repository good for building against:

by gorkem ( at March 20, 2015 03:36 PM

Eclipse Community Awards 2015 - Winners

March 20, 2015 02:45 PM

Congratulations to the 2015 award winners!

March 20, 2015 02:45 PM

Eclipse meets Europe

by eselmeister at March 20, 2015 10:08 AM

Foto (C) by Dany Gellert

But Hamburg got foggy again … :-(

by eselmeister at March 20, 2015 10:08 AM

Identifying the GTK version your Eclipse IDE is using

by Lars Vogel at March 20, 2015 09:52 AM

To identify which GKT version your Eclipse IDE under Linux is using go to Help -> About -> Installation Details and select the Configuration tab. Look there for
org.eclipse.swt.internal.gtk.version property. You can also use the “Copy to Clipboard” button so that you can copy the details into a text editor to search for it.

In my case it shows: org.eclipse.swt.internal.gtk.version=3.12.2 which obviously means that I’m using GKT3.

Thanks to Alexander Kurtakov for the tip.

by Lars Vogel at March 20, 2015 09:52 AM