Holger Staudacher

An Apache Cordova hook to auto bump iOS CFBundleVersion and Android versionCode

April 7, 2015

Bumping versions is a topic that should be fully automated from my point of view. Doing it manually guarantees errors for sure. I experienced it so many times as well :) . Recently we have published …

Brand your Tabris.js app

April 2, 2015

Branding an app is essential! That’s why we wanted to make the branding of a Tabris.js app as easy as possible. As you might have read, since a few days we provide a free build service on tabrisjs.com …

Your own JavaScript mobile app with Tabris.js in 10 minutes

April 1, 2015

One of the things we live at EclipseSource is efficiency. This is true for IDE usage, code and development lifecycles. This is why we made the Tabris.js development lifecycle as fast as possible with …

Apache Cordova vs. Tabris.js

March 2, 2015

Warning! This article is outdated and might not represent the current state of Tabris.js. At EclipseSource we’ve been doing frameworks for many years now. We did server and UI frameworks… Web and …

Tabris 1.4 is here!

June 26, 2014

On March 10th we released Tabris 1.3 and it was a huge success. After 3 months of hard work we are ready to ship Tabris 1.4 today. The 1.4 release marks our biggest release so far. We have plenty of …

Tabris 1.4 Preview: Text Replacement

June 16, 2014

Only 10 days left till we release Tabris 1.4. This week we want to give you a preview of a feature highly requested by some of our customers: Text Replacement. Typing on mobile devices is not as …

Tabris 1.4 Preview: Google Analytics

April 22, 2014

On June 26th we will release Tabris 1.4. Currently we are working on the new features for this release. One of the Killer-Features, a tracking API for the Tabris UI framework, was finished last week. …

How to use SWT with Java 8

March 24, 2014

As you might have noticed, Java 8 was released last week ;). Most programers consider Java 8 the biggest change to the Java programming language ever made. This is mostly because of lambda …

A simple Tabris/RAP Test Runner

February 24, 2014

Writing JUnit Tests for an application is always a good thing. Writing tests for a Tabris or RAP application for the first time seems more challenging: You might encounter an …

Step by Step: How to bring JAX-RS and OSGi together

February 4, 2014

Most of the server-side Java systems I built over the last years had the following requirements: They should be modular to be highly extendable and of course they should have a REST API to lower the …

OSGi JAX-RS Connector 3.2 released

January 7, 2014

Today we are proud to release the OSGi JAX-RS Connector 3.2. A lot has happened since the 3.1 release back in October 2013. This post will give you an overview of the new and noteworthy things …

Tabris 1.2 is here!

December 6, 2013

We love doing mobile apps and we love excellent UIs. That’s the reason why, 1.5 years ago we created Tabris. Today we are proud to unleash Tabris 1.2. It’s the best and biggest release so far and in …

iOS7 support with Tabris 1.2

November 29, 2013

Tabris 1.2 will be released on December 6. Santa is going to bring you the long awaited Tabris support for iOS 7. It does not only support the native navigation commands (swiping from the left for …

OSGi JAX-RS Connector 3.1 released

October 1, 2013

Earlier this year in June we released the 3.0 version of the OSGi JAX-RS Connector together with JAX-RS 2.0. Since then a lot has happened in the project and we decided to do a 3.1 release. Below are …

Eclipse Preferences You Need to Know

August 13, 2013

Lately there have been many discussions regarding Eclipse preferences because of sites like ihateeclipse.com. The Number 1 complaint on this site is that Eclipse’s resources get out of sync with the …

Tabris 1.1 is here!

July 31, 2013

Today we are proud to release Tabris 1.1. Since the 1.0 release we have focused on making Tabris even more robust and made improvements such as a whole new TabFolder implementation for the Android …

when( true ).throwIllegalArgument( "something went wrong" );

July 1, 2013

As a framework developer I have to make sure that my framework works properly - and among other things, that means it has to be used in the way that I meant it to be used. One option to achieve this …

Tabris 1.0 is here!

April 16, 2013

Today we are proud to release Tabris 1.0. If you have not followed us so far you probably don’t know what Tabris is. Let me put it in one sentence: Tabris is the first Java-Toolkit for the …

Meet us at EclipseCon 2013 in Boston

March 11, 2013

Only two weeks left until EclipseCon! I’m sure everyone’s excited to see the new location, make new and meet old friends. This year we have plenty of talks ranging from runtime over mobile to …

Inside the Tabris UI

February 19, 2013

As you may have read in the Tabris 0.11.0 new and noteworthy post, we have created a small UI framework called the “Tabris UI”. In this post I will dive into the details of this framework. Grab a …

Tabris 0.11.0 – New & Noteworthy

February 18, 2013

Today I’d like to present Tabris 0.11.0. This build marks the last public milestone before the 1.0 release. From my point of view this milestone is a breakthrough for cross-platform mobile development …

OSGi JAX-RS Connector 2.2.0 released (JAX-RS 2.0 update)

January 14, 2013

There’s good news for our OSGi JAX-RS Connector. We’ve added a consumer implementation that gives you the opportunity to reuse your @Path/@Provider interfaces to consume REST services in a generic …

Consuming REST services in OSGi the cool way

November 28, 2012

I recently introduced you to the JAX-RS Consumer. If you’ve read that post you might remember that I promised to write about the OSGi integration of the consumer. This is the topic of this short post. …

Consuming REST services in Java the cool way

November 27, 2012

When creating a REST API with Java you probably go with JAX-RS . It’s a nice and well thought-out standard. Having the services encapsulated as plain Java objects with some annotations feels good to …

A Software Craftsman's Toolbox: Lightweight Java libraries that make life easier.

November 7, 2012

As a software developer you will use plenty of frameworks during your career. There are the big beasts like Spring, ActiveMQ or OSGi that you have to master in order to build the foundations of your …

OSGi-JAX-RS Connector 2.1.0 released

October 26, 2012

Two months ago the OSGi JAX-RS was released in Version 2.0. Today I’m proud to announce Version 2.1. In addition to minor improvements, a new feature was added based on the work of Dirk Lecluse. It’s …

Software Craftsmanship at EclipseCon Europe 2012

October 19, 2012

In some of my previous posts I’ve talked about well-crafted code. I’m really convinced that software development is a craft - but what does that mean? The “Manifesto for Software Craftsmanship” …

restfuse 1.1.1 released

September 10, 2012

Editor’s note: This project is no longer maintained and has been archived. However, you can still access the sources on GitHub. It has been almost a year since the last restfuse news. In the meantime …

From Eclipse Tycho to Apache Karaf: the easy way!

August 22, 2012

We are currently working on a very interesting project together with basis06 which has Apache Karaf as a target runtime. Coming from the Eclipse space this is really a challenge for the following …

Accessing multiple private GitHub repositories without a dedicated build user

July 30, 2012

We have been using GitHub at EclipseSource for roughly 2 years now. Using it as a company means that we are hosting all our internal projects, products and many customer projects on GitHub. GitHub was …

Google Guava Quickie: Clean toString methods

July 24, 2012

I’m not very good at debugging code. This is the result of a test infection :). When you do test driven development you don’t need to debug very often. But there are rare cases when I need to start …

Clean compareTo methods with Google Guava

July 17, 2012

A common task in object oriented programming is comparing two objects for the purpose of sorting. In Java the useful Comparable<T> Interface exists. I’ve found myself implementing the compareTo method …

Building lightweight in memory caches with Google Guava - no more putIfAbsent

July 9, 2012

I can’t count the number of times I found myself implementing some sort of cache. In many situations caching is really useful e.g. when the computation of a value is expensive or when loading of …

Cleaner Code with Guava Optionals and Preconditions

June 6, 2012

Working towards clean code is a priority for me when I develop software. For some time I’ve been using Google Guava for nearly all my projects. The reason is simple. Guava provides great facilities to …

Server-Side Apps with access to device functionality aka. accessing the iOS Geolocation API with Java.

May 3, 2012

Whenever we talk about server-side apps and RAP mobile, one topic always comes up: how to access native functionality like Geolocation or the Camera. With this post I want to show you how we access …

Server-Side Apps with Tabris - the programming model

April 20, 2012

In my last post I gave you an overview of server-side apps and how they relate to Tabris (previously RAP Mobile). In this post I want to dive into some technical details. I’ll assume that you are a …

Serving mobile devices with server-side apps

April 16, 2012

You may have read the title of this post and are asking yourself, “what the heck is a server-side app?”. Let me try to explain. When an app works with sensitive data there is always a security risk in …

Simple JUnit4 templates for Eclipse

March 20, 2012

JUnit and Eclipse are a great combination, but one thing that I missed every time I worked with JUnit4 was the code templates. Currently, Eclipse ships with pre-defined templates for JUnit3 but not …

OSGi JAX-RS connector: Publishing REST services

January 23, 2012

In a recent blog post Peter Kriens commented that the OSGi service model is as important as object-orientation. I feel the same - I don’t want to write software without this concept anymore. But for …

Continuous Integration Tests for REST APIs with Maven, Jetty and restfuse

January 17, 2012

Editor’s note: The Restfuse project is no longer maintained and has been archived. However, you can still access the sources on GitHub. As you might know from previous posts, most of my work time has …

Effective Mockito Part 5

November 16, 2011

With this effective Mockito Post I want to share a really simple pattern with you. We call this pattern “check answers” and we use it whenever we work with Mockito Answers. The code resulting from …

Effective Mockito Part 4

October 17, 2011

This Effective Mockito Post will be IDE specific again but related to the last post on Mockito’s spies. If you’ve read Part 3 you should now be familiar how to use them to “pseudo mock” statics. When …

Effective Mockito Part 3

October 13, 2011

In the previous Effective Mockito post we saw how to use the @Mock Annotation to get a clean test. In this post I want to show you how to use Mockito’s spy mechanism to eliminate testing troubles with …

Effective Mockito Part 2

September 29, 2011

As promised in the first part of the “Effective Mockito” blog series, I will concentrate on Mockito specifics in the followup posts. So, the main topic for Part 2 is Mockito’s @Mock Annotation. When I …

Effective Mockito Part 1

September 19, 2011

Last week I talked to a fellow developer, Frank Appel, about Mockito. We’ve been using this mocking library for over a year. We both agreed that of all the innovations we’ve tried in the last year or …

Single-Sourcing with declarative services

July 8, 2011

In my last blog post I introduced the idea of using OSGi services for single sourcing a RAP/RCP application. I think this approach is quite elegant, but it has one major drawback. When you use normal …

Using OSGi services to single-source an RCP and RAP Application

June 20, 2011

Probably one of RAP’s best known features is its single-sourcing capabilities. Some time ago we created a guide on Single-Sourcing RCP and RAP applications. The guide recommended a technique where a …

You don't have to use git to access code on github

June 10, 2011

I guess a lot of people would agree that github is the current kick-ass platform for developing software. Many platforms showed up fast and with the same speed they disappeared. Github is different. …

jQuery timeago in Java with RAP

June 7, 2011

A few weeks ago I showed you how easy it is to integrate jQuery into RAP using the browser widget. I’d like to show you another example of what can be integrated. Last time I created a carousel …

Launch an OSGi app and automatically kill its running instance

May 4, 2011

If you use Eclipse to develop OSGi based applications you may use the OSGi Launcher provided by the PDE Tooling. It’s cool tooling because it gives you full control over the OSGi instance to be …

How to blog using GitHub and Eclipse

April 5, 2011

If this is not the first post by me that you’re reading, you may know that I try to blog regularly. Previously, I had 2 or 3 private blogs which, you also might know, were not that successful ;). …

Eclipse Runtime out-of-the-box EclipseCon 2011 slides

March 25, 2011

Today I did a talk at the EclipseCon 2011 which was entitled “Eclipse Runtime out-of-the-box”. With this talk I introduced the EclipseRTP project. So, if you missed it here are the slides ;) Eclipse …

See you at EclipseCon 2011

March 16, 2011

Over the last few days I’ve read many blogs from folks who are speaking at EclipseCon next week in Santa Clara. Everytime I find it really interesting to hear about the ideas behind the talks. So, …

An open source visual editor for Rich Internet Applications - the Eclipse way

February 21, 2011

A few weeks ago Google announced their WindowBuilder contribution to the Eclipse Foundation. The WindowBuilder was originally created by Instantiations and moved to Google after they swallowed …

How to build a Server-Side Equinox/RAP Application

February 7, 2011

When you face the task of building a Server-Side Equinox or a RAP application (which is just a Server-Side Equinox application) you need to choose a build system from a fairly diverse palette. This …

Equinox/RAP WAR Products has moved. Hello Eclipse Libra...

February 2, 2011

A while ago I introduced you to my Google Summer of Code 2010 project, the WAR Products. I really appreciate your participation with feedback and bugs. It showed me that there is a real need for this …

Amazon AWS Beanstalk and Eclipse Equinox

January 20, 2011

Yesterday Amazon launched a new service called AWS Elastic Beanstalk. It’s basically a Tomcat hosting service. You can upload your WAR files via a web interface, to an instance of a Linux cloud image …

How to build a RAP application with Tycho

January 17, 2011

Recently I played around a little with Tycho because we evaluated it for the use in the RTP project. As a test case, I decided to try to build a RAP application with Tycho. With building I mean …

SAP likes Eclipse Runtime Technologies

January 14, 2011

A few weeks ago I told you about the Eclipse RTP project. Since then some things happened that I want to share with you. First of all, we made it to the creation review. The review is scheduled for …

Indigo Sneak Preview: Merry Christmas from the RAP Team

December 21, 2010

Christmas is only a few days away and we at the RAP team wanted to show our appreciation to you, our community, for your active participation in setting directions for RAP and for RAP development. As …

Eclipse November DemoCamps 2010 retrospective

December 14, 2010

November is over now and last week I attended the last DemoCamp for the year. In this year’s November DemoCamp series I spoke at three events and with this post I’d like to present you with some …

Introducing the Eclipse RTP Project

December 8, 2010

Today’s a great day. The Eclipse Foundation accepted the proposal for the RTP Project. RTP stands for Runtime Packaging. And here’s what it’s all about. Marcus Baker wrote an article called “Install …

JQuery, Eclipse RAP and a carousel

December 8, 2010

A few weeks ago, my colleague Ralf Sternberg, announced that RAP supports a JQuery integration. What we still needed to do was to create an example that shows how to integrate some JQuery stuff into …

Eclipse November DemoCamps are nearly over, but...

November 26, 2010

One thing I like about November is the DemoCamps, and this year I spoke at two of them, Bonn and Munich. Both were great events where I had the chance to talk about RAP. The DemoCamps are all about …

A women's way to clean code

November 22, 2010

A few weeks ago the news in Germany was that the average lifespan of German citizens has reached its highest level ever (Statistisches Bundesamt Deutschland). This was good news but I was also …

ESE 2010 is over. It's time for the November DemoCamps

November 5, 2010

I had a great Eclipse Summit this year - and I heard similar things from other people. I had a chance to meet and talk with friends, colleagues and new acquaintances, and to see a lot of really good …

Eclipse and RCP Apps on Apple's Mac App Store

October 21, 2010

Yesterday Apple announced the App Store for the Mac OS X Lion operating system, which will be released mid-2011. You probably know the App Store from the iPhone, iPod or the iPad. It’s a really cool …

A Facelift for RAP 1.4

October 4, 2010

Since Friday, 1st October 2010 RAP 1.4 M2 is out. In this milestone we introduced some really great improvements. The first is that we gave RAP a facelift - that is, you’ll find a much cooler …

What do Scout, EGit, Xtext, p2 and RAP have in common?

September 8, 2010

First, they are all Eclipse projects. But I think you already knew this. The second thing they have in common is that they are all part of the Eclipse Stammtisch on September 15th in Karlsruhe …

An Oscilloscope in the browser?

August 25, 2010

Last week Wim Jongman bloged about the Nebula Oscilloscope widget. It’s just an awesome widget for monitoring activity. See Wim’s post to form an opinion yourself. So, for me as a RAP developer, the …

RAP 1.4 M1 is out

August 20, 2010

After the Helios Release, we are one step closer to Indigo. RAP 1.4 M1 is now available. From the new features, here are my personal top three: We have a new implementation of the SWT Tree widget …

Equinox/RAP WAR deployment: an end to the pain

August 17, 2010

Please note: This post is outdated. Please read this post and do not follow the install instructions in this one. A few weeks ago I presented you my GSoC 2010 project. The idea was to make …

How features found their way into Eclipse Helios

July 13, 2010

Did you ever wanted to know how features find their way into Eclipse and became a part of a huge release like Eclipse Helios? What role do committers play? What is the part of the community? How do …

RAP and Eclipse Helios in a minute

June 28, 2010

As part of the new Eclipse Helios, the Rich Ajax Platform project released version 1.3. If you’d like to know what is new in RAP 1.3, here’s a short screencast. You can find a more detailed version on …

RAP in a minute

June 22, 2010

Did you ever want to know what the Rich Ajax Platform is without spending too much time on it? For all of those we did a screencast that shows what RAP is in about a minute. You’ll also find the video …

Equinox/RAP war products sketches

May 21, 2010

As I described in a previous blog I’m going to create the tooling for creating equinox based war files within this year’s gsoc. For this purpose I created some UI sketches with the WireframeSketcher. …

RAP protocol: JSON Schema

May 12, 2010

In my last blog I talked about the messaging format which will be used for the RAP protocol messages. I told you that we plan to use JSON as the message format. So, the thing is that the blog ended in …

RAP protocol: JSON messages

May 10, 2010

In a previous blog I talked about the functionality that a RAP protocol message should provide. I also introduced you to the requirements of a message. A message should take care about the following …

RAP protocol: all about messages

May 3, 2010

Last week I introduced you to the idea of a RAP protocol (bug 311355). This week I want to provide you with further information about how such a protocol can work. First of all we need to take a …

RAP protocol: On the way to RAP 2.0

April 28, 2010

If you are using RAP [Remote Application Platform], we maybe share the same opinion about it. I think RAP is a damn cool technology. You can write your plain RCP code and just run it in a browser by …

RAP/Equinox WAR products

April 11, 2010

This year’s Summer of Code application deadline has passed. I want to take the chance and introduce you to my planned project. I think the results will be a great benefit for the community. So, what …

Advanced RAP Theming

November 20, 2009

As you may read in previous blogs we have addressed the RAP styling. Therefore we presented you the “big blocks” in form of the new RAP designs. But there is still a difference between RAP and other …

New Fancy RAP Theme

September 2, 2009

We are currently working on a new theme for the Rich Ajax Platform (RAP) 1.3 which will be released within the Helios release train. As you probably know we have released a RAP theme with the Galileo …

REST, the OSGi and ECF way

July 29, 2009

A few months ago I introduced you to REST. Since then my Google Summer of Code project, REST abstraction for ECF, has been accepted and a lot of work has been done. Scott Lewis and I wanted to make …

Yes, it's a RAP application...

June 2, 2009

… and yes, this is a workbench. As part of the Galileo release train, we will publish RAP version 1.2 and it has some cool new features. One of the bigger changes is the new look and feel. RAP 1.2 …

ECF kisses REST

April 8, 2009

Once upon a time a guy named Roy Fielding made his disertation about a design aproach called REST. From this point REST is getting very popular. Many service provider using REST to offer developers …

Extended Presentation API

December 18, 2008

If you want to make a custom look&feel for an RCP or RAP application you have no choice other than to write a new Presentation. But if you’ve already worked with the Presentation API, I would bet that …