Holger Staudacher
An Apache Cordova hook to auto bump iOS CFBundleVersion and Android versionCode
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
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
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
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!
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
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
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
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
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
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
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!
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
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
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
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!
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" );
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!
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
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
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
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)
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
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
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.
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
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
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
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!
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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...
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
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
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
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
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
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
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
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...
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
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
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
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
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?
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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...
… 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
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
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 …