Recent Posts

New themes for the Eclipse IDE

We have published a set of additional themes for the Eclipse IDE: AI Neon, Dracula, VS Code Dark, GitHub Dark, Nord and One Light. Each one is a pure resourc...

Dead code removal in Eclipse platform and PDE

Every large Java code base carries code nobody calls any more. For future maintenance it is important to remove such dead code: every unused class still has ...

An MCP server for the Eclipse IDE

We have released an MCP server for the Eclipse IDE. It lets external LLM clients such as Claude Code or Cursor ask a running IDE for things they cannot cheap...

AI Agent Orchestration

When talking about AI agents, we now often refer to Agentic AI workflows, where multiple agents collaborate to achieve complex goals. When creating Custom Ag...

Eclipse RCP Book - Fourth Edition

I’m happy to announce the release of the fourth edition of the Eclipse RCP book, updated for Eclipse 2025-12.

Getting Started with Theia AI

Eclipse Theia comes with quite extensive AI capabilities. This includes the usage of AI from a users perspective as well as from a developers perspective to ...

Extending Copilot in Visual Studio Code

In this tutorial I will explain how to extend Visual Studio Code with a customized AI experience. By creating a Visual Studio Code Copilot Extension, we will...

Getting Started with Eclipse Theia

In my blog post Getting Started with Visual Studio Code Extension Development I explained how to implement a Visual Studio Code Extension that contributes a ...

OSGi Component Testing (2024 Edition)

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

Control OSGi DS Component Instances (2024 Edition)

There are use cases where a more fine grained control is needed for component instance creation. I spent some time in investigating how this is done with OS...

Eclipse Extended Contribution Pattern

Working in the Panorama project, we developed several architectures and designs to improve the collaboration of heterogeneous systems. Although focused on au...

Eclipse RCP, Java 11, JAXB

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

Build REST services with OSGi JAX-RS whiteboard

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

NatTable - dynamic scaling enhancements

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

Building a headless RCP application with Tycho

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

POM-less Tycho enhanced

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

OSGi Event Admin - Publish & Subscribe

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

Access OSGi Services via web interface

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

OSGi Declarative Services news in Eclipse Oxygen

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

Control OSGi DS Component Instances

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

Configuring OSGi Declarative Services

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

OSGi Component Testing

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.

Getting Started with OSGi Declarative Services

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

Joining the Eclipse Project Management Committee

I’m honored to join the Eclipse Project Management Committee (PMC) for the Eclipse Top-Level Project. See Eclipse project charter for their responsibilities.

OSGi - bundles / fragments / dependencies

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

POM-less Tycho builds for structured environments

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

Honored to become Eclipse PDE committer

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

Honored to become Platform UI co-lead

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

NatTable context menus with Eclipse menus

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

NatTable with custom scrollbars

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

Migration to JUnit 4

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. ;)

How to contribute to the Eclipse Open Source project

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

Dark Eclipse ships with Eclipse Luna

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

vogella with 60 000 daily visitors

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

Eclipse e4 tools - Update site for Kepler and Luna

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

Less screen space waste in Eclipse 4.4

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

The small details in life: the focus restore

This blog should show you a small, often overlooked, problem within Eclipse e4 and it should also provide you with a possible solution.

New message extension update

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.

Received Eclipse platform committer status

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

Leap Motion in Eclipse 4

The Leap Motion device is out! Great news for all who waited for it.

Context functions in Eclipse RCP

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

Cross/weak validation in NatTable by Dirk Fauth

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

Testing plain SWT with SWTBot by Dirk Fauth

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

Tycho Advanced by Dirk Fauth

Reading the current literature regarding Eclipse 4 and Maven Tycho, I realized that some aspects on dependency management are not described. IMHO these aspec...

Eclipse 4 and RAP - Continue the port

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

vogella GmbH founded

Today it is official, my company vogella Gmbh has been founded. Founding members are Jennifer Nerlich and myself.

Eclipse 4 RCP training available

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

The end of Eclipse 3.x

Currently we have in my option the unfortunate situation that Eclipse did fork itself into a 3.x and 4.x stream.

vogella.de has a new logo

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 Secure storage of preferences

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

The persistence of e4

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

Reading resources from a Eclipse plugin

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

Confessions of a public speaker - My key takeaways

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

Thanks for the Eclipse Top Contributor Award

EclipseCon is almost a month ago and I would like to thank everyone for the honor of receiving the Eclipse Top Contributor Award 2010.

Presentation Zen

A while ago I read the book “Presentation Zen” from Garr Reynolds. Garrs website can be found at Presentation Zen .

Getting the Eclipse Build ID

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

JavaScript in the SWT Browser widget

At the Eclipse Summit Europe I listened to a talk of Boris Bokowski about Eclipse and the Web.

API for reading Eclipse plugin dependencies

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

Reflections on Predictably Irrational

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

Conditional Breakpoints in Eclipse

Eclipse allows to setup conditional breakpoints. Very nice feature. You can use Java coding (with content assistent) to program the condition

Eclipse Buddys - Flexible

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

My first code contribution to Eclipse

I have my first code in an official Eclipse project. The project is the XSLT project which is part of Eclipes WTP