Getting Started with OSGi Declarative Services (2024 Edition)
In 2016 I wrote the first Getting Started with OSGi Declarative Services blog post and several additional blog posts about OSGi DS. It was written for develo...
In 2016 I wrote the first Getting Started with OSGi Declarative Services blog post and several additional blog posts about OSGi DS. It was written for develo...
When creating a new application, you nowadays need to think about all the different ways the application or its functionality will be consumed. The usage as ...
Several years ago I wrote a blog post about creating a REST service out of an OSGi service. At that time I used the OSGi R7 JAX-RS Whiteboard Specification a...
At the EclipseCon Europe 2016 I held a tutorial together with Peter Kirschner named Building Nano Services with OSGi Declarative Services. The final exercise...
At the EclipseCon Europe 2016 I held a tutorial together with Peter Kirschner named Building Nano Services with OSGi Declarative Services. The final exercise...
At the EclipseCon Europe 2016 I held a tutorial together with Peter Kirschner named Building Nano Services with OSGi Declarative Services. The final exercise...
Working in the Panorama project, we developed several architectures and designs to improve the collaboration of heterogeneous systems. Although focused on au...
With Java 11 several packages have been removed from the JRE itself, like JAXB. This means if you use JAXB in your Java application, you need to add the nece...
I often get asked how to find and solve issues in an OSGi runtime. Especially with regards to OSGi services. I then always answer that you have two options:
Some years ago I had a requirement to access the OSGi services inside my Eclipse application via web interface. Back then I used the OSGi HTTP Whiteboard Spe...
Some time ago I got reports from NatTable users about high memory consumption when using NatTable with huge data sets. Especially when using trees, the row h...
The last weeks I worked on harmonizing the scaling capabilities of NatTable. The first goal was to provide scaled versions of all internal NatTable images. T...
Recently I got the request to create a “headless RCP” application from an existing Eclipse project. I was reading several posts on that and saw that a lot of...
With Tycho 0.24 POM-less Tycho builds were introduced. This Maven extension was a big step forward with regards to build configuration, as plugin, feature an...
I wrote about this topic already a while ago on another blog. But since then quite a few things have changed and I wanted to publish an updated version of th...
In this blog post I want to write about the publish & subscribe mechanism in OSGi, provided via the OSGi Event Admin Service. Of course I will show this ...
In this blog post I want to share a simple approach to make OSGi services available via web interface. I will show a simple approach that includes the follow...
With this blog post I want to share my excitement about the OSGi DS related news that are coming with Eclipse Oxygen. I want to use this blog post to inform ...
While trying to clean up the OSGi services in the Eclipse Platform Runtime I came across the fact that singleton service instances are not always feasible. F...
I recently came across some use cases where a more fine grained control is needed for component instance creation. I spent some time in investigating how thi...
You can now use dependency injection (di) in your Eclipse 3.x. views.You can enable this for a view via the new inject flag in the org.eclipse.ui.views exten...
In my blog post about Getting Started with OSGi Declarative Services I provided an introduction to OSGi declarative services. How to create them, how they be...
In my last blog post I talked about Getting Started with OSGi Declarative Services. In this blog post I want to show how to test OSGi service components.
In the last weeks I worked intensively on getting a deeper knowledge in OSGi declarative services. I use them for a while with Eclipse 4, but never had a de...
I’m honored to join the Eclipse Project Management Committee (PMC) for the Eclipse Top-Level Project. See Eclipse project charter for their responsibilities.
Typically the development environment should not be dependent on the target environment the application should run on. For creating an Eclipse RCP applicatio...
In the last weeks I needed to look at several issues regarding OSGi dependencies in different products. A lot of these issues were IMHO related to wrong usag...
With Tycho 0.24 POM-less Tycho builds where introduced. That approach uses convention-over-configuration to reduce the number of redundant information for se...
In this blog entry I will show you three independent features provided by Eclipse and OSGi which can work together to create views, editors or handlers via t...
I’m happy to announce that I was elected as PDE committer. This made the integration of the new png icons in PDE much easier. I plan to work on the PDE tem...
It is a great honor to help in the role of the Platform UI co-Lead together with Paul Webster. Paul was in the past a great mentor for me and I’m very happy ...
In this blog post I will explain how to add context menus to a NatTable instance and how it is possible to combine menus configured via Eclipse Application M...
When talking about styling a SWT control via CSS, one issue is raised quite early. The scrollbars can not be styled! Looking at a dark theme, the importance ...
Motivation
I recently had again the need to define new Java code templates via a plug-in so that they can be easily shared among a group of developer. I finally took t...
When you’re facing the issue to migrate your JUnit 3 tests to JUnit 4, it can be very annoying, because of course you all have a lot of tests. ;)
Sometimes it is nice to access the caller of a method. Doing this is relatively simple, you can use the getStackTrace() method on the current thread. This re...
Approx. 3 years ago, I opened a bug report to increase the Java code formatter to 120. This is now implemented, and will be the new Eclipse JDT default for M...
Just for reference, the PyDev developer Fabio Zadrozny just posted a nice snippet with allows you to style your SWT table headers via CSS (with your register...
Today I got the question how to avoid the usage of Plugin.getDefault().getPreferenceStore() to access preferences as for example in:
I’m very happy to report that the Eclipse platform team worked together with the Canonical Ubuntu team to solve the broken menu issue of Eclipse under Ubuntu...
I frequently hear that a single developer cannot make a difference for the Eclipse project. I think that is not true. The Eclipse project page show that in a...
As preparation for upcoming Eclipse Hackathons on EclipseCon US and the Eclipse Hackathon in Hamburg I updated my How to contribute to the Eclipse Open Sourc...
We (the Eclipse platform team) added a dark theme contributed by Andrea Guarinoni to Eclipse Luna M6. Lots of people were asking for a default dark theme. Of...
The number of developers which use the free information provided by vogella.com continues to amaze me. Yesterdays we had 60 000 visitors on vogella.com. This...
The e4 tools master move on, so that they can only be used for Eclipse 4.4 (Luna). You find the latest Kepler version of the e4 tools under the following p2 ...
Lots of Eclipse 3.X RCP application which switched to Eclipse 4 as runtime complained that they get the QuickAccess search bar of the Eclipse IDE for “free”.
I’m really happy to report that we managed to solve Reduce whitespace usage in the default Eclipse themes . Such bugs are difficult to get agreement upon, as...
This blog should show you a small, often overlooked, problem within Eclipse e4 and it should also provide you with a possible solution.
I’m very happy and of course proud to see that the new message extension created by Tom Schindl and me is part of the Eclipse platform with Eclipse Luna M3.
After contributing to the Eclipse platform for a while now, I’m proud to say that I received Eclipse platform committer rights last week. It is a great hono...
Finally I found the time to write the last part of my blog post series about Eclipse internationalization with the new message extension created by Tom Schin...
The Leap Motion device is out! Great news for all who waited for it.
Inject your JPA EntityManager
In my previous blog post I explained the new message extension added to the E4 tools by Tom Schindl and me. It is similar to the Eclipse localization mechani...
e4 uses an event bus to let different pieces (e.g. parts) of an e4 application communicate. Architecturally, this leads to low coupling (doubleplusgood) due ...
In my last blog post I explained the current available solutions for translating an Eclipse 4 application and what is wrong with them.
If you are developing Eclipse applications and plugins for users around the world, you should prepare them to be translated into several languages. While in ...
I just returned from the JAX conference where I had the pleasure to join a panel discussion about Eclipse. I argued in that panel that the community (includi...
Serving p2 build artifacts from Jenkins is complicated if builds from multiple Jenkins jobs should be aggregated into a master p2 composite repository. A rat...
First of all: No NatTable 1.0.0 is not yet released!
While with the Juno Release, Eclipse 4 has become the new standard, there is still some functionality from Eclipse 3.x which is missing, at least when it com...
Context functions in Eclipse RCP are powerful tools. They allow you to register for certain keys in the context and create objects for these keys lazily. I...
Sometimes it is necessary to implement logic that validates one value against another in the same object. Having a fromDate and a toDate in your model object...
Synchronizing yourself with the user interface thread in Eclipse 4 can be done with the getting an instance of UISynchronize injected and use this class to e...
SWTBot is a testing tool for testing Eclipse and SWT based applications. If you search for SWTBot you will find some tutorials and a documentation showing ho...
Reading the current literature regarding Eclipse 4 and Maven Tycho, I realized that some aspects on dependency management are not described. IMHO these aspec...
To migrate your Views and Editors to Eclipse 4 you can choice to use org.eclipse.e4.tools.compat plug-in from the e4 tooling projects. This bridge was develo...
I updated my JDT Filtered Package Explorer. It should now also work with ‘Top Level Elements > Working Sets’ as top level and should also the native “Canc...
Last week Ralf Sternberg, Markus Knauer and I spend a second day in porting RAP to Eclipse4. Our start was a bit slow as we redid the changes we did the last...
I’m very honored to be now part of the Java Champions Group.
Dani Megert gave me in the Eclipse forum the tip how setup default values preferences, in this example for for JDT type filters.
I recently learned from Ian Bull about Feature Patch Projects which allow you to patch existing features.
Today it is official, my company vogella Gmbh has been founded. Founding members are Jennifer Nerlich and myself.
I finally found the time to try out Paul Websters tip for installing Eclipse features from the command line and updating eclipse.ini. While I don’t have the ...
Thanks everybody for voting me to the Eclipse Top Newcomer Evangelist Award 2012.
I updated Using the Compatibility Layer for Eclipse 3.x RCP applications tutorial with the latest information.
Every company has a motto which should describe its primary purpose. Google has the “Don’t be evil” motto, Nike has “Just do it”, IBM has to my knowledge “Th...
A few weeks ago I heard from Mike Milinkovich at the Eclipse Day At Googleplex 2011 that Eclipse 4.2 will be the basis for the Juno release and Eclipse 3.8 w...
I’m happy to see that WindowBuilder will support Eclipse 4 in the Eclipse Juno release. See Bug Report for details.
Currently we have in my option the unfortunate situation that Eclipse did fork itself into a 3.x and 4.x stream.
After 10+1 years, I decided to leave SAP.
A quick tip for the Eclipse IDE (and also useful for Eclipse RCP). You can use the “config.ini” (in your Eclipse installation folder) to define a perspective.
I was trying to find a good logo for vogella.de for some time now. I started with some abstract figures but I think this is currently a bit overused as I see...
Eclipse allows to encrypt preference values via the plugin “org.eclipse.equinox.security”. The key/ value pairs will be stored in the file “secure.storage” i...
Eclipse allows you to start your program via the launcher framework which is very powerful and makes life simple.
Ever wondered how SWT Style bits work? It is actually very simple. The style bits are a multitud of 2
Some of you may have noticed that you cannot drag and drop your parts (views and editors) within an Eclipse e4 application by default.
In Eclipse 3.x you can remember the current application state (the user’s layout and window size) between application sessions, via the setting configurer.se...
A common question for Eclipse Plugin or Eclipse RCP developer is in which plugin a certain class is included.
Frequenty you want to store static files in your bundle and load them from your bundle. For this you can use the following code, of course replace the bundle...
If you are like me you still use the Search dialog for plugins to find the definition plugin of an extension point.
I recently finished the book “Confessions of a public speaker” which was recommended to me by Kim Moir. I also can recommend this book; as it contains very g...
EclipseCon is almost a month ago and I would like to thank everyone for the honor of receiving the Eclipse Top Contributor Award 2010.
I frequently install new Integration builds from the Eclipse.org website. Afterwards I used to maintain all my desired update sites, for example EGit and Myl...
Based on my tutorial website I frequently receive questions from users. Some are very nice, precise, encouraging and some are of perceived bad quality. I a...
A while ago I read the book “Presentation Zen” from Garr Reynolds. Garrs website can be found at Presentation Zen .
Dan Ariely is the author of the book “Predictably Irrational: The Hidden Forces That Shape Our Decisions” and discusses in this podcast his theories under th...
Eclipse Bugzilla ask you for your Eclipse Build ID. As I learned from Paul Webster in Bug 300260 you can use the following to put this build ID into the cli...
The SWT Browser widget makes it very easy to run HTML and JavaScript within Eclipse. This widget encapsulates a browser (system dependent) into a SWT widget.
The following demonstrates how to re-use the Eclipse proxy preferences in an Eclipse RCP application.
I got the question how someone could remove the maximize and minimize buttons from a view in an Eclipse RCP application.
At the Eclipse Summit Europe I listened to a talk of Boris Bokowski about Eclipse and the Web.
The Eclipse platform provides an API to allows that you can access in information of the MANIFEST.MF. For example you could read the dependencies of your plu...
I recently got the question how you can put a file into the system clipboard.
I recently read the book Predictably Irrational by Dan Ariely. I really enjoyed his insights into motivation and personal judgement of values. If you don’t h...
Update This description has been updated in the following tutorial: Eclipse e4 tutorial.
Eclipse Activities can be used to hide / display certain UI elements, for example based on the role of the user. The related extension point is “org.eclipse....
If you want to access an icon from your /icons directory in your code you can access it via the following method:
Eclipse allows to setup conditional breakpoints. Very nice feature. You can use Java coding (with content assistent) to program the condition
Today I learned from Bug 237893 that I have to add the dependency of plugin.xml to build.properties manually to the plugin.xml. Otherwise you can not export...
It is easy to pass parameters via the command line to an Eclipse RCP application. For example the following checks the command line arguments for the dbconn...
Assume the situation there you have a plug-in Master which will use classes which can come from plug-in A or plug-in B then. At runtime you have either A or ...
I have my first code in an official Eclipse project. The project is the XSLT project which is part of Eclipes WTP