OSGiCon Europe 2013
Last week I attended to EclipseCon Europe that was located at Ludwigsburg. Although there were many interesting talks I was more interested in the speeches of OSGiCon that was co-located with EclipseCon. OSGi is a specification that snaked into the Enterprise Java world in the last years and due to it’s perfection nobody will be able to kick it out.
In the last two years I forced my colleagues to switch the projects to OSGi. I had a painful period of time as I was the one who my colleagues could point at when something did not work. I started to create simple set of tools to help their work in a way that they could use the technologies they used before. As a result I presented these tools in a speech.
I visited several forums recently and I saw that some guys really prefer Declarative Services to Blueprint. As I worked a lot with Spring I chose blueprint after switching to OSGi. However, we ran into many problems with Blueprint and many of our projects could not reach version 1.0.0 as we missed a couple of features from Blueprint. One of my goal was to catch Peter Kriens for a little chat and ask him about the use-cases we have. Well, he convinced me to give a shot to DS. I will try it out on one of our next projects.
Peter started to create a new project called enRoute. As much as I understand his goal is to have a sample code that shows, how to use OSGi in the enterprise world. It has every “layer” an enterprise application has to have (persistence, business logic and web UI). I am really happy that a project like this exists as in the future I could tell my new colleagues to check that to get the basic knowledge. Concerning to the persistence layer, I found that he used a TransactionServletFilter. I saw solutions like this before and I had a really bad feeling about them. I tried to explain this to Peter. I am not sure what his impression was (probably that I am a bit aggressive when I want to let others know about my opinion :)) but my one was that it would be really necessary to collect all the use-cases of persistence handling. Therefore my next task will be to write down my thoughts in a very clear way so it can be the base of a discussion.
Another impression I got at the conference that many people prefer Gradle (and ANT) to Maven. I must say I was a bit surprised. My company switched to Maven from ANT as soon as it was possible. The early versions of m2eclispe plugin were really buggy and we suffered a lot. However, it was still worthy as with the dependency management of Maven we saved lots of time. We use Maven since that and we are pretty satisfied. I really liked the strict rules of Maven so I knew that my colleagues could not create shitty build file. As we work with Maven, a big part of my speech was about a maven plugin that helped a lot for us to work with OSGi.
After the speech I got the following negative feedback on EclipseCon site: “Got the impossion that they missed what’s happened in the past few years, looked really old school”. This comment made me think a lot. What did I miss? I looked for solutions on the internet and I could not find any solution that makes it possible that could at least partly support TDD with Maven and Eclipse. I know about BndTools, but it supports ANT, which we left years ago. I know about Gradle, but it is still more the future. The Eclipse Gradle plugin lacks many feature the M2E plugin has. I would be really happy to get more information what I missed in the past few years. In the answer I would like to see at least one “modern” alternative solution that supports the development workflow I introduced. Not to be mistaken, I am not huffish, I am interested. I would be the happiest if I could tell my colleagues that there is a solution better than the current.
I had colleagues in the past year who said “we should use Gradle/Scala/Netbeans/Idea/… as they are much more modern as the technologies we work with”.. After I asked, none of them could show me a complete solution with those technologies. I was flexible, I told them that they could make changes in our workflow in a way that they provide the same code quality but somehow they did not come back with a showcase with the “modern technologies” :).
I also attended to a very interesting discussion (OSGi en Route: What Is It?). It was started by Peter Kriens. He talked about his new project, called en Route. However, it became soon a discussion about OSGi itself. Why is it hard to learn? How could be the marketing of OSGi better? People already had a couple of beers and wines before the meeting so some of the speeches were a bit funny :). Although I am pretty sure I will follow the “en Route” project, the more interesting part for me here was that programmers could get in touch with the OSGi leaders in a very informal way. I told them that their website is not the best. Information is hidden and people close it before finding what they were looking for. I checked the site now again and I found that there are much more information now than a couple of years ago. I could find links to the tutorials. BUT. The “Getting started” is still not the most important message of the site. If I look at it, I see that there is conference. Cool. But if I look at the site of any other technologies, the first thing I get is the “Get started for dummies”. I think, OSGi guys should refactor the site a bit in the way that news are only the second most important thing on the site.
I had also a nice chat with David Bosschaert. He said that they are working on an OSGi certification program where not a framework but a programmer can get a paper. I am very interested where it goes and I would like to be one of the firsts who gets this certificate.
I think I got what I wanted at the conference. However, I am not sure I would have this feeling if I had not attended to the BoF. More BoF (informal talk with the technology leaders filled with alcohol) next year!