Get the Early Price for EclipseCon Europe

September 21, 2017 12:55 PM

Register now and save €100! Prices go up after October 5.

September 21, 2017 12:55 PM

Eclipse Newsletter - Eclipse MicroProfile

September 20, 2017 02:45 PM

In the September issue of the Eclipse Newsletter, discover everything you need to know about Eclipse MicroProfile.

September 20, 2017 02:45 PM

JBoss Tools 4.5.1.AM2 for Eclipse Oxygen.1

by jeffmaury at September 20, 2017 07:02 AM

Happy to announce 4.5.1.AM2 (Developer Milestone 2) build for Eclipse Oxygen.1.

Downloads available at JBoss Tools 4.5.1 AM2.

What is New?

Full info is at this page. Some highlights are below.

OpenShift 3

New command to tune resource limits

A new command has been added to tune resource limits (CPU, memory) on an OpenShift deployment. It’s available for a Service, a DeploymentConfig, a ReplicationController or a Pod.

To activate it, go the the OpenShift explorer, select the OpenShift resource, right click and select Edit resource limits. The following dialog will show up:

edit resource limits

After you changed the resource limits for this deployment, it will be updated and new pods will be spawned (not for ReplicationController)

edit resource limits1

Discover Docker registry URL for OpenShift connections

When an OpenShift connection is created, the Docker registry URL is empty. When the CDK is started through the CDK server adapter, an OpenShift connection is created or updated if a matching OpenShift connection is found. But what if you have several OpenShift connections, the remaining ones will be left with the empty URL.

You can find the matching Docker registry URL when editing the OpenShift connection through the Discover button:

edit connection discover

Click on the Discover button and the Docker registry URL will be filled if a matching started CDK server adapter is found:

edit connection discover1

CDI Tools

CDI 2.0

CDI Tools now support CDI 2.0 projects. If your CDI project (with enabled CDI support) has CDI 2.0 jars in its classpath, CDI Tools will recognize it as CDI 2.0 project automatically. There is no need to use any special settings to distinguish CDI 1.0 or CDI 1.1 from CDI 2.0 in CDI Tools.

The new javax.enterprise.event.ObservesAsync is now being validated according to the CDI specifications.

Fuse Tooling

Apache Karaf 4.x Server Adapter

We are happy to announce the addition of new Apache Karaf server adapters. You can now download and install Apache Karaf 4.0 and 4.1 from within your development environment.

Apache Karaf 4x Server Adapters

Switch Apache Camel Version

You can now change the Apache Camel version used in your project. To do that you invoke the context menu of the project in the project explorer and navigate into the Configure menu. There you will find the menu entry called Change Camel Version which will guide you through this process.

Switch Camel Version

Improved Validation

The validation in the editor has been improved to find containers which lack mandatory child elements. (for instance a Choice without a child element)

Improved validation


Jeff Maury

by jeffmaury at September 20, 2017 07:02 AM

Top 6 Public Cloud Providers in CNCF

by Chris Aniszczyk at September 19, 2017 10:07 PM

Last week, I had the pleasure of welcoming Oracle into the Cloud Native Computing Foundation (CNCF). This now marks the top 6 leading public cloud providers in the world are now part of the CNCF:

This also marks for the first time in the history of our industry that these leading cloud providers are working together in the same open source focused foundation to move the state of the art infrastructure forward.

Also last week I had the opportunity to bring in two new high quality cloud native projects into CNCFEnvoy is a high-performance open source edge and service proxy that makes the network transparent to applications. Jaeger is an open source distributed tracing system inspired by Google Dapper paper and OpenZipkin community. It can be used for tracing microservice-based architectures. Uber began deploying Jaeger internally in 2015. It is now integrated into thousands of microservices and recording thousands of traces every second.


Anyways, this is one of the reasons I enjoy working in open source today, bringing together diverse (and even competing) companies to build a better world by collaborating in the open!

by Chris Aniszczyk at September 19, 2017 10:07 PM

The Future of Developer Tools for IoT, ThingMonk 2017

by Tracy M at September 19, 2017 04:07 PM

ThingMonk is an annual London conference that brings together the people building and shaping the Internet of Things. This year I spoke at the conference on ‘The Future of Developer Tools for IoT’. This talk looks at emerging and future trends in the developer tools space. Check out the slides and feedback from the audience, as well as reference links at the end. Plus thanks to Marcel Bruch & Codetrails for input on AI tools. Be sure to share your thoughts on how you see developer tools shaping up to scale for building the Internet of Things.

Reference Links

by Tracy M at September 19, 2017 04:07 PM

Zero to CTO

September 19, 2017 12:00 PM


Disclaimer: First, you should know that I am a girl born in the 80’s and so I grew up watching (and watching and re-watching…) Disney’s movies, and I am still used to watch them when new ones are released. So I am sorry for you: no doubt, at the end of this article you will have many annoying songs running in your head. But all those girls made what I am today and it is only justice to them to ear once more time what they have to say ;)


Seven years ago I joined the Obeo company. At that time, it was a small frenchies’ company making open source modeling tools. I was a free software activist but at that point even though I was using lots of free software, I never had the bravery to contribute by my own on my free time. When I was thinking about Obeo, I just wanted to be part of that world.


At some point as my technical skills could fit their needs, I decided to let it go and send them my resume.


And know what? They recruited me! It was both amazing and scary. It was like a dazzling place, a whole new world to discover.


Year after year, I got the chance to work and learn from the talented Obeo’s experts about Eclipse & modeling stuff. They shared their high technical skills & knowledge with me and I loved this atmosphere of constant research of improvements and innovations. I learned so much! Working at Obeo opened me the doors of the open source community through the Eclipse community. I had the opportunity to participate to many conferences, giving talks and sharing my knowledge in turn. I could not say how far I would go but I was on the open source community road…


I’ve got a dream… Be part of the open source world! Day after day it became true. First, two years ago I became committer on the Eclipse Sirius & EEF projects, and this year, since one month, I am the Eclipse Planning Council chair. I am really proud of working on free software and particularly on the Sirius technology. I feel even happier when this framework is used to create other impressive open source tools such as Capella, a graphical modeler for Model Based System Engineering.


A few months ago, Obeo’s management announced me that we will open a new subsidiary in Vancouver, Canada! This was an awesome news. Our current CEO Stéphane Lacrampe would move overseas to manage the new entity. This will allow us to be physically present on the new continent, making our international expansion easier and faster. Cédric Brun our CTO will replace Stéphane as CEO. And they offered me to become the new Obeo’s CTO. I am at the same time proud and really excited by the many challenges this new position brings! I will do my best!

Marry Poppins

So being Obeo’s CTO is my new game from now. This means for me lots of fun ahead, this is my new spoonful of sugar!

“In every job that must be done
There is an element of fun
You find the fun and snap!
The job’s a game
And every task you undertake
Becomes a piece of cake“
Mary Poppins

Thanks open source community, Eclipse Foundation and Obeo for giving me this opportunity!

Go west

Have a look also at Cédric’s blog post and Obeo’s summary.

September 19, 2017 12:00 PM

North America, here we come!

by Cédric Brun ( at September 19, 2017 12:00 AM

Industries are relying either on ad hoc or rigid tools for systems engineering. Either the tool is built “in-house” and grow organically or it is bought to one of the big software vendors and then the company have to adapt its practices and teams to use it. Such software vendors might use every opportunity to lock in their users, in both cases the tool longevity is quite uncertain.

In the last 11 years, Obeo went from a 3-to-50 persons company and from an unknown organization to one of the largest contributor to the Eclipse Modeling technologies leading individual projects (Sirius, Acceleo, EMF Compare) up to worldwide awareness.

We Are Obeo!

We’ve been challenging this status quo since day one. What if there could be a solution which would be adaptable yet built on strong methodological and technical foundations, open-source, available to all, and with an open governance. A software that anybody can download and use without going through a registration, a tool built from the trenches, polished and tested under many environments, a project which future can be oriented by the organizations using it through their direct involvement?

Our first open-source software was Acceleo and aimed at empowering developers by helping them write code generators. For the 2.0 release in 2007 we managed to ship dozen of code generators built by contributors. From C# to Php or Python; the community provided off-the-shelf tools able to compete with the solutions on the market. In many ways this contributed to Obeo’s growth, which itself contributed to our capacity to contribute to Open-Source.

I felt ecstatic at this success even though that was at a very humble scale.

Fast forward 5 years later, Sirius: the outcome of our collaboration with Thales; is released as an open-source technology. Technology to swiftly build graphical design tools for any domain, tools which empower users. Now hundreds of graphical modelers are hosted on github, some of it experiments, others full fledged products.

I’m filled with curiosity regarding all these uses of Sirius, each domain can get so interesting I would love to get involved with every single one.

Once Sirius was open-source, it then became possible for the systems engineering tool Thales had built for years to be publicly released and have a life outside of the organization. This tool is Capella and got pretty popular, especially in the last few months. It is the perfect instance of a tool which is built on strong foundations, ready to use yet adaptable.

It has been built by Thales: a worldwide recognized leader in building the most challenging critical systems and rely on the “Arcadia” engineering method (ARCHITECTURE ANALYSIS & DESIGN INTEGRATED APPROACH). It is available to all and has an open governance through the Capella Industry Consortium.

This gives me optimism as strong and open systems engineering tools might be closer than one would think.

We always envisioned Obeo to be a worldwide company. Open-source made us recognizable and we worked with many countries in Europe and North America. This also made us highly aware that being physically on the continent was important to reach the market there.

Engineering is of importance across the globe, but North America is for sure a central place in regard to aeronautics, space, transportation and industrial systems.

We are taking the next step toward a future built on top of open tools by opening a subsidiary in Vancouver, Canada, to develop the business around modeling technologies including Capella. I’m incredibly excited by this prospect, we’ve been preparing this for quite a few months and I am thrilled to publicly share our plans.

Go West!

Stephane will open and manage the subsidiary in Vancouver. He will move there with his family, most likely near the end of 2017 and start the activity there.

I am stepping into the role of CEO which he had before. He did such a great job in shaping Obeo as it is now that I can only be very humble in front of the task awaiting me, the fact that I’m tackling it with an amazing team gives me a lot of comfort.

As VP and sales director Etienne will also focus on international business and structure the development starting in Europe and Asia.

That’s not all, Mélanie is stepping into my shoes as CTO, if you are in the Eclipse community I’m certain you met her and came to appreciate her work! In the last few months she has taken my responsibilities in Eclipse (and more as she even holds the position of chair of the planning council, congrats!). She is now also responsible for the R&D, products, roadmaps, the corresponding team at Obeo and the processes and practices within the organization.

We’ll pursue our commitment in enabling open and efficient tools, you can join the ranks in many ways, by evaluating and trying tools such as Capella, by promoting open solutions, by pioneering such tools in your domain of expertise or even support us to start the activity in North America. You could get the benefit of innovative products transforming the way your team is drafting, designing and simulating, just like Thales did!

Obeo goes international and brings open modeling technologies and systems engineering tools in North America! With this evolution my mission changes and I face exciting challenges, I’ll undertake with the wonderful talents forming the company. I’m enthusiastic about the future we’ll contribute to building, a future filled with tools supporting many domains based on open technology!

Learn more about this news through Mélanie’s blog post and Obeo’s summary

North America, here we come! was originally published by Cédric Brun at CTO CEO @ Obeo</a> on September 19, 2017.</p>

by Cédric Brun ( at September 19, 2017 12:00 AM

Why you and your manager should say yes! to EclipseCon Europe

by Susan Iwai at September 18, 2017 02:49 PM

Five good reasons to bring the team to Ludwigsburg

1. Learn from the experts.
2. Innovate with the community.
3. Spread the word about your technology.
4. Get answers to complex issues.
5. Extend your network.

by Susan Iwai at September 18, 2017 02:49 PM

Oracle Chooses Eclipse Foundation as New Home for Java EE

by Tim Hodkinson at September 17, 2017 07:11 PM

Oracle has announced that they have chosen the Eclipse Foundation as the new custodians of Java EE technologies. The move has been welcomed by Red Hat, IBM and others in the community. It is uncertain if after this move the platform can retain its current name of Java EE.

By Tim Hodkinson

by Tim Hodkinson at September 17, 2017 07:11 PM

Jigsaw arriving - and now what?

by Anonymous at September 16, 2017 01:11 PM

by Stephan Hermann

Learn more about Stephan's talk JDT embraces Java™ 9 - An insiders' view in this co-published blog.

by Anonymous at September 16, 2017 01:11 PM

March of the IDEs — IDE Agnostic OSGi Development

September 16, 2017 12:00 AM

For a long time Eclipse has been, in practice, the only widely used and supported IDE for developing OSGi applications. Both of the premier IDE plugins — namely Bndtools and the older PDE — supported only Eclipse. While some tooling existed in IntelliJ and NetBeans it was nowhere near as comprehensive or usable.

This wasn’t much of a problem for me personally. I have been a fan of Eclipse since I first saw it in the early 2000s, and indeed the first IDE I ever used was VisualAge for Java, which later morphed into Eclipse. I’ve tried other IDEs but I always end up reverting to the familiar.

However IDE choice is very personal, and the devotion of some developers to their preferred IDE can make religious fanatics seem positively lukewarm. So if you met an IntelliJ fan and told her that she would need to switch to Eclipse in order develop for OSGi… well, it’s unsurprising that a common response was that OSGi could get stuffed.

So while I continue to use and support Bndtools in Eclipse, for the sake of OSGi adoption I have long wished for there to be a better development experience in the other popular IDEs. I’m happy to report that substantial progress has been made towards this goal. The latest version of bnd includes a suite of plugins for both Maven and Gradle that make development of OSGi applications practical irrespective of the IDE. Combined with some minimal IDE-specific tooling, such as that included in the latest IntelliJ builds, it is now a productive and even pleasurable activity.

On 23 October I will present a talk at the OSGi Users Forum Germany Tooling Workshop titled March of the IDEs — IDE Agnostic OSGi Development. In my talk I will demonstrate the development of a single OSGi application using Eclipse, IntelliJ, Visual Studio Code and a variety of command-line tools. This will highlight the opportunities for developers of all creeds to collaborate on high-quality modular code.

The workshop takes place all day on 23 October and is located at the Forum am Schlosspark, Ludwigsburg, Germany. This is the same venue as EclipseCon Europe and OSGi Community Event 2017 but it is organised as a separate event. Participation is free and you do not need a ticket for EclipseCon but you do need to register with the OSGi User Forum Germany by emailing I hope to see you there!

September 16, 2017 12:00 AM

Sponsor Testimonial: Milen Dyankov, Liferay

by Anonymous at September 15, 2017 01:23 AM

As Strategic Members of the OSGi Alliance, Liferay is proud to sponsor the OSGi Community Event again and to be among the Eclipse community. ...Join us for three sessions given by Carlos Sierra, "OSGi Meets Lambdas", Milen Dyankov, "Fantastic Java Contracts and Where To Define Them?", and Ray Augé, "CDI and OSGi: So Happy Together!"

by Anonymous at September 15, 2017 01:23 AM

Nine Features in Eclipse Collections 9.0

by Donald Raab at September 14, 2017 08:46 PM

CountBy, DistinctBy, Cartesian Product for primitive collections… and more.

In my previous blog post, I described the upcoming release of Eclipse Collections 9.0.

In this post, I will briefly highlight nine features with examples that will be included in the Eclipse Collections 9.0 release. Each example shows what you could do in Eclipse Collections 7.x — 8.x and how it was improved in Eclipse Collections 9.0.

1. CountBy

// Eclipse Collections 7.x - 8.x
MutableBag<String> countsOld =
// Eclipse Collections 9.x
MutableBag<String> countsNew =

It should be easier for developers to both discover and read countBy versus the previous alternative.

2. DistinctBy

// Eclipse Collections 7.x - 8.x
MutableList<Customer> distinctOld =
// Eclipse Collections 9.x
MutableList<Customer> distinctNew =

DistinctBy uses distinct with a hashing strategy for its implementation.

3. Primitive Collection Factories work with Primitive Java Streams

// Eclipse Collections 7.x - 8.x
MutableIntList listOld =
IntStream.rangeClosed(1, 100)
// Eclipse Collections 9.x
MutableIntList listNew =
IntStream.rangeClosed(1, 100));

There are also immutable factories that take IntStream, LongStream and DoubleStream. Both mutable and immutable factories that accept primitive Java Streams are available across primitive Lists, Sets, Bags, and Stacks for int, long and double. Symmetric Sympathy strikes again.

4. Factory classes can now create adapters

// Eclipse Collections 7.x - 8.x
MutableList<Object> listAdapter =
ListAdapter.adapt(new ArrayList<>());
MutableSet<Object> setAdapter =
SetAdapter.adapt(new ConcurrentSkipListSet<>());
MutableMap<Object, Object> mapAdapter =
MapAdapter.adapt(new LinkedHashMap<>());
// Eclipse Collections 9.x
MutableList<Object> listAdapter =
Lists.adapt(new ArrayList<>());
MutableSet<Object> setAdapter =
Sets.adapt(new ConcurrentSkipListSet<>());
MutableMap<Object, Object> mapAdapter =
Maps.adapt(new LinkedHashMap<>());

Many developers do not realize there are adapter classes for existing JDK types in Eclipse Collections. Adding this short-cut on the factory classes should make it easier to discover.

5. Streams available directly on Immutable Collections

// Eclipse Collections 7.x - 8.x
boolean result =
Lists.immutable.with(1, 2, 3)
.anyMatch(i -> i % 2 == 0);
// Eclipse Collections 9.x
boolean result =
Lists.immutable.with(1, 2, 3)
.anyMatch(i -> i % 2 == 0);

This was a requested feature. It is not obvious that you can call castToList and then call stream on an ImmutableCollection. In this previous post I described the design decision to not have ImmutableCollection extend Collection. This is why it was necessary to add stream explicitly.

6. FlatCollect on primitive lazy iterables

// Eclipse Collections 8.x
IntList listOne = IntLists.mutable.with(1, 2, 3);
IntList listTwo = IntLists.mutable.with(4, 5, 6);
MutableList<IntIntPair> pairs = listOne
.flatCollect(i ->
listTwo.collect(j ->
PrimitiveTuples.pair(i, j)),
// Eclipse Collections 9.x
IntList listOne = IntLists.mutable.with(1, 2, 3);
IntList listTwo = IntLists.mutable.with(4, 5, 6);
LazyIterable<IntIntPair> pairs =
.flatCollect(i -> listTwo.asLazy()
.collect(j -> PrimitiveTuples.pair(i, j)));

Previously, you could only flatCollect directly into a mutable primitive container. This method was an important building block for primitive cartesian product so it could be implemented lazily.

7. Streams available for values on all Object Valued Maps

// Eclipse Collections 7.x - 8.x - Object Maps
boolean result =
Maps.mutable.with(1, 1, 2, 2, 3, 3)
.anyMatch(i -> i % 2 == 0);
// Eclipse Collections 9.x - Object Maps
boolean result =
Maps.mutable.with(1, 1, 2, 2, 3, 3)
.anyMatch(i -> i % 2 == 0);
// Eclipse Collections 7.x - 8.x - PrimitiveObject Maps
boolean primitiveResult =
.withKeyValue(1, 1)
.withKeyValue(2, 2)
.withKeyValue(3, 3)
.anyMatch(i -> i % 2 == 0);
// Eclipse Collections 9.x - PrimitiveObject Maps
boolean primitiveResult2 =
.withKeyValue(1, 1)
.withKeyValue(2, 2)
.withKeyValue(3, 3)
.anyMatch(i -> i % 2 == 0);

All object valued maps implement RichIterable<V>. This was a conscious design decision made in the early days of Eclipse Collections. Unfortunately, the stream method is defined on Collection which Maps in Eclipse Collections do not extend. So the stream method had to be added explicitly.

8. AverageIfEmpty and MedianIfEmpty on primitive iterables

// Eclipse Collections 7.x - 8.x
double average = IntLists.mutable.empty().average();
// throws java.lang.ArithmeticException
double median = IntLists.mutable.empty().median();
// throws java.lang.ArithmeticException
// Eclipse Collections 9.x
double average = IntLists.mutable.empty().averageIfEmpty(0.0);
double median = IntLists.mutable.empty().medianIfEmpty(0.0);

Eclipse Collections had minIfEmpty and maxIfEmpty on primitive iterables but did not have the equivalent for average and median, which both throw on empty.

9. Primitive Sets now have Cartesian Product

// Eclipse Collections 7.x - 8.x
Set<Integer> a = Sets.mutable.with(1, 2, 3);
Set<Integer> b = Sets.mutable.with(4, 5, 6);
LazyIterable<Pair<Integer, Integer>> pairs =
Sets.cartesianProduct(a, b);
// Eclipse Collections 9.x
IntSet a = IntSets.mutable.with(1, 2, 3);
IntSet b = IntSets.mutable.with(4, 5, 6);
LazyIterable<IntIntPair> pairs =
IntSets.cartesianProduct(a, b);

Eventually I hope we will have all of the methods available on Sets today on the equivalent primitive Sets classes. There are methods like difference, symmetricDifference, powerSet, etc. on the Sets class today. Cartesian Product was a good first step to providing better symmetry for primitive collections.

…and there is more. See the detailed draft release notes here.

by Donald Raab at September 14, 2017 08:46 PM

Papyrus IC BOF at EclipseCon Europe

by tevirselrahc at September 14, 2017 02:46 PM

My industry consortium is hosting a Birds of a Feather (BOF) session at EclipseCon Europe!

You are all invited to go, mingle, and talk about me with my minions on Tuesday, October 24, 2017, from 19:30 to 20:30!

And don’t forget to thank my EclipseSource minions for organizing this!

You can also look at the official PolarSys Papyrus Industry Consortium blog posting!

[PS: isn’t a “birds of a feather” session just perfect for me?!]

Filed under: community, Conference, Papyrus IC, Uncategorized Tagged: BOF, PIC

by tevirselrahc at September 14, 2017 02:46 PM

Java EE Moves to the Eclipse Foundation

September 13, 2017 07:54 AM

Oracle announced today that they, along with IBM and Red Hat, will be moving Java EE to the Eclipse Foundation.

September 13, 2017 07:54 AM

Bndtools and Maven: A Brave New World

September 13, 2017 12:00 AM

At this year’s OSGi Community Event – co-hosted with EclipseCon Europe 2017 – I will present a new tutorial titled Bndtools and Maven: A Brave New World. My friend and Paremus colleague Tim Ward will co-present and will provide support during the exercises.

Bndtools has long provided the premier development experience for writing OSGi bundles and applications. However there was a significant gap: until recently it has been very difficult to use Maven to build Bndtools projects. This was partially because of legacy issues (after starting with ANT as our standard build tool, we eventually migrated to Gradle). Partially it was because Maven is far more prescriptive in terms of the structure and lifecycle of a project, and it took a long time to find a way to fit our models together. These problems meant that Bndtools was simply unusable for a large number of developers, in particular those working for organisations that have standardised on Maven – and also of course those developers who simply prefer Maven!

These problems are now essentially solved and, from Bndtools version 3.4, Maven is a fully supported build environment. Gradle also remains fully supported.

In this tutorial, we will walk through all of the day-to-day development tasks in the new Bndtools/Maven toolchain. These include:

  1. Starting a new project from scratch;
  2. Adding bundle modules to the project;
  3. Managing library dependencies;
  4. Integration testing (i.e. in-container testing);
  5. Running bundles and tests from the IDE, and the rapid code/run cycle enabled by Bndtools;
  6. Indexing, resolving and assembling applications for deployment;
  7. Managing bundle and package versions;
  8. Configuring a Continuous Integration build.

The following Maven plugins will be covered:

  • bnd-maven-plugin: the core plugin that generates OSGi bundle JARs;
  • bnd-testing-maven-plugin: executes OSGi in-container tests;
  • bnd-indexer-maven-plugin: indexes OSGi bundles and dependencies for assembly and/or runtime resolving;
  • bnd-export-maven-plugin: assembles a standalone OSGi application from its minimal bundles.

We do hope that you will attend this tutorial armed with lots of questions! Prerequisites are Bndtools 3.5 (which will have been released before the conference), JDK 8 and Maven 3. Also make sure you sign up to attend the tutorial on the EclipseCon website, and of course you also need a ticket to the main conference.

September 13, 2017 12:00 AM

Java EE Moves to the Eclipse Foundation

by Mike Milinkovich at September 12, 2017 08:21 PM

Oracle announced today that they, along with IBM and Red Hat, will be moving Java EE to the Eclipse Foundation. I would like to welcome everyone involved to our community. We look forward to working with all of the participants in the Java EE ecosystem as it moves to a more open and collaborative development model.

Java EE has been at the center of enterprise computing for almost twenty years. As enterprises move to a more cloud-centric model, it is clear that Java EE requires a more rapid pace of innovation. The open source model has been shown time and again to be the most successful way to innovate in today’s world. The Eclipse Foundation is focused on enabling open collaboration among individuals, small companies, enterprises, and the largest vendors. The Eclipse MicroProfile project is, we believe, an excellent example of the developer community led style of collaboration we support. We look forward to supporting the Java EE community as it creates the platform for the next twenty years of business applications.

Filed under: Foundation

by Mike Milinkovich at September 12, 2017 08:21 PM

Launching TODO Group Guides

by Chris Aniszczyk at September 11, 2017 04:53 PM

In my participation with the TODO Group, we recently published a set of open source guides (under CC-BY-SA 4.0) dedicated to help companies build out open source programs:

In the last year or so, we have seen companies like AWS build out an open source program via @AWSOpen and even companies like VMWare hired their first Chief Open Source Officer.

We’ve had many organizations approach TODO Group members asking for advice on how to get started with an open source program and these guides are a reaction to that. It is our hope that these are living guides and evolve with community input over time.

by Chris Aniszczyk at September 11, 2017 04:53 PM

In the know: Eclipse Collections 9.0

by Donald Raab at September 11, 2017 03:00 AM

The new Eclipse Collections logo

We’re now feature complete for Eclipse Collections 9.0. We’ve entered the quiet period for Eclipse Collections development while we wait for the official release notice from the Eclipse Foundation. This will be our second major release since the Eclipse Collections project started at the Eclipse Foundation. These are exciting times. Draft release notes here.

Now that we have an official logo, expect stickers and t-shirts soon. Preference will go first to Eclipse Collections committers and contributors, but anyone can become a contributor. See the contribution guide for details on how to contribute.

Java 9 and Eclipse Collections 9.0 will both be well covered at JavaOne in San Francisco this year. I will be giving a talk this year on the API design of Eclipse Collections. I’m looking forward to the opportunity to explain how and why Eclipse Collections became all that it is today. Drop by the API Deep Dive: Designing Eclipse Collections [CON6133] if you are at JavaOne this year and want to learn about the design and evolution of an advanced Java Collections framework.

Too many Java Collections frameworks, not enough time to learn them all? Drop by our, Eclipse, Guava, Apache… [CON1754] talk. The talk will cover APIs available in Java 8 Streams and the latest versions of Apache Commons Collections, Guava, Eclipse Collections and Vavr. This talk will help you make the most out of one of your precious few hours at JavaOne.

New to Eclipse Collections?

If you want an overview of the framework, then check out the reference guide. If you want to really learn Eclipse Collections (we learn best by doing), the Eclipse Collections kata is a great way to get started. I have updated the Eclipse Collections Kata recently with more hints and pointers. The web-based slides that guide the kata are here.

Want to know more?

You can now follow Eclipse Collections news and related topics on Twitter here.

Check out the code and follow the project on GitHub if you want to keep up to date live with where things are heading and with the contributions that the community is making.

Watch Kristen O’Leary’s recent talk at QCon New York on the Java Evolution of Eclipse Collections. If you want to know what has been happening with Eclipse Collections since it moved to the Eclipse Foundation, this is a great place to start.

Check out previous presentations if you want quick overviews of what is already available.

Look for me in the Hackergarten at JavaOne on Monday or Tuesday or at one of my two talks. I should be demoing in the Eclipse Foundation booth as well. I’m always happy to answer questions and share information.

I will also be continuing to blog here. Feel free to follow if you want to stay in the know on Eclipse Collections.

by Donald Raab at September 11, 2017 03:00 AM

Jigsaw arriving – and now what?

by Stephan Herrmann at September 10, 2017 02:31 PM

The debate is over. The result of fierce discussions has been declared. Jigsaw is knocking at the door. Now the fate of Jigsaw depends on the community. Will the community embrace Jigsaw? Will we be able to leverage the new concepts to our benefit? Will we struggle with new pitfalls?

Let’s step back a second: do we really know what is Jigsaw? Do we really understand the design, its subtleties and implications?

eclipsecon2017At EclipseCon Europe 2017 I will try to shed a light on some lesser known aspects of Jigsaw. A deep dive into things I learned as a JDT committer while implementing tool support for Java 9.

In search for truth

To set the stage, we’ll first have to figure out, who or what defines Java 9 — or Jigsaw — or JPMS. This is both a question of specification vs. implementation as well as a matter of a specification spread over several documents and artifacts. Let’s try to grok Jigsaw from the legally binding sources, rather then from secondary writing and hearsay (if that is possible).

We will have to relearn some of the basic terms, like: what is a package in Java? Do packages form a hierarchy? (I will show, how both answers, yes and no, are equally right and wrong).

Jigsaw is said to do away with some “undesirable” stuff like split packages, and cyclic dependencies. Really? (Yes and no).


Of course, with Jigsaw all is about encapsulation – easy to agree on, but what is it that a Java 9 module encapsulates? Only a deep understanding of the flavor of encapsulation will tell us, what exact qualities we gain from following the new discipline (it’s not about security, e.g.), and also what pains will be incurred on the path of migrating to the new model. (Hint: I will be speaking both about compile time and runtime).

Interestingly, the magic potion Jigsaw also brings its own antidote: With tightening the rules of encapsulation, also the opposite becomes necessary: they call it breaking encapsulation, for which I once coined the term “decapsulation“. I should be flattered by how close Java 9 comes to what I call “gradual encapsulation“. So, the talk can not stop at presenting just the new language concepts, also the various extra-lingual means for tuning your architecture need to be inspected through the looking glass. This is also where tools come into focus: how can JDT empower its users to use the new options without the need to dig through the sometimes cryptic syntax of command line parameters?

Loose ends

At this point we shall agree that Jigsaw is a compromise, fulfilling many of its goals and promises, while also missing some opportunities.

I will also have to say a few words about long standing API of JDT, which makes guarantees that are no longer valid in Java 9. This raises the question: what is the migration path for tools that sit on top of JDT? (There is no free lunch).

Finally, it wouldn’t be Java, if overloading wouldn’t make things worse for the newly added concepts. But: haven’t you become fond of hating, when JDT says:

error_obj The type cannot be resolved. It is indirectly referenced from required .class files

We may be seeing light at the end of the tunnel: for Jigsaw we had to revamp the guts of our compiler in ways, that could possibly help to – finally – resolve that problem. Wish me luck …

Hope to see you in Ludwigsburg, there’s much to be discussed over coffee and beer

eclipsecon2017 Ludwigsburg, Germany · October 24 – 26, 2017

by Stephan Herrmann at September 10, 2017 02:31 PM