Blog

Make it easy to consume e(fx)clipse libraries in maven (or gradle)

In the past we now and then published some of our artifacts on maven central but because this was a manual process we've often been too lazy leading to do it on each release. This leads frustration because while we've released e(fx)clipse 2.5.0 already, the maven bits are stuck on 2.2.0. I think not being able to consume our code outside the OSGi world has led to the false impression that e(fx)clipse runtime is just about OSGi although central parts of our framework happily run outside OSGi and so can be used like any other library:

  • We have additional layout containers like RowLayoutPane, FillLayoutPane, GridLayoutPane, SashPane
  • We have additional controls like FileSystemViewers, StyledTextArea, FontIconNode
  • We have a complete code editor framework with syntax highlighting, auto-complete, line/error markers, hover-support, navigation support, ...
  • A Service Registry supporting a subset of the OSGi-Declarative-Service Framework outside the OSGi world in plain Java - say good bye to ServiceLoader once you used our service stuff

Solving this problem was at the top of my list for the Q1/2017 and I'm happy to announce that the complete e(fx)clipse runtime target platform is available from a maven-repository starting from today. We've chose to publish the artifacts to one of our own public servers (http://maven.bestsolution.at/) instead of maven-central and there are multiple reasons for that:

  • We need to get confidence that our OSGi-To-Maven-Dependency translation is correct
  • We need to extract more meta-information to publish accurate informations like Developers, SCM-URLs
  • We need to refine how we deal with none Eclipse dependencies like apache-commons, ...

It's a nice coincidence that Stephan Herrmann did the same for the Eclipse Platform, JDT and PDE but there are some differences (today) from what I read on his blog entry (don't shoot me Stephan if I got it wrong):

  • Stephan uses some CBI-stuff to translate the OSGi-Dependencies to maven pom dependencies, we use a simple helper library to do the same thing
  • Stephan replaces OSS-Dependencies like Apache-Commons through the direct maven substitutions, we are republishing the dependencies as we publish them from the Eclipse Orbit Project or any other Eclipse project. The reason is that we want the maven artifact repository to contain 100% the same bits as our p2-update-site and r5-repository. That's the current state and it might change in future!
published on
Previous
e(fx)clipse runtime library - Dealing with listeners on JavaFX-Observables