Maven and Eclipse have a history. In the early days, the Maven integration in Eclipse was considered sub-par. I've read statements that IntelliJ offers way better support for Maven projects. But then, I've also read statements that Eclipse offers way better support for Maven projects (than IntelliJ). It seems to depend on the versions being … Continue reading Building Maven projects in Eclipse→

Incentive With funnel.travel, parsing travel confirmation e-mails is one of those things the customer expects as a capability, yet it's not a a core feature. The perfect candidate to use an external service. In order to connect funnel.travel with an external e-mail parsing service, the service needs to provide a decent APIyield results of a … Continue reading Parsing travel e-mails→

The OAuth / REST approach to web clients is a common and clean approach, and works beautifully with the traditional request/response cycles of retrieving and posting JSON objects. As the application grows, however, inadvertently requirements pop up to download files, or to display some content in a separate window context (eg. iframe). As the OAuth … Continue reading iframes and downloads with OAuth/REST→

As part of the development process, there are some pain points in the area of tool integration, mainly procedural rules which must be followed manually Whenever you commit a change, label the according JIRA ticket with "code-change" (or set FixVersion, or transition to "Under development") When you start reviewing / explorative testing a ticket, head … Continue reading Connecting REST APIs→

There are still applications out there which require a restart after changing user settings, but more commonly the user settings are being observed by a "reloadable property configuration". If the user edits the settings file, the application will notice and reload the settings. Tasked with implementing such a feature for a fairly straight-forward YAML file, … Continue reading Reloadable property file→

Fairly often I hear a referral to the test pyramid (Mike Cohn), and sometimes in quite a reverential way. In this blog post I'd like to advocate a less dogmatic approach to test structure. (Readers who don't know what a test pyramid is might be dropping off here, that's alright). Let's say you're developing a … Continue reading Test pyramids are history→

As soon as a web application makes it to production (and actually draws some attention), the developers are confronted with support cases which are coupled with specific data constellations. The entire test pipeline might be successful, but when a user dares to attempt a checkout without any items in the shopping cart, they get an ArrayIndexOutOfBoundsException. … Continue reading We can’t reproduce that on our test system→

For a change, this post doesn't deal with specific code, but describes our approach to dealing with the numerous but simple edit forms that go with most enterprise web-applications. Most business applications require a set of data, often referred to as "master data" or "static data", which is merely a supporting cast. The true value … Continue reading Handling boilerplate forms→

I quite like the material design in Angular (using @angular/material 2.0.0-beta.12). One component I'm missing is an error component which is global for an entire form (or any other kind of user interaction). Some errors cannot be tied to a specific input field, such errors should be displayed on the form but independent of any individual … Continue reading Create a global error component for Angular 4→

Most tutorials on automating test for an Angular SPA are based on Jenkins running on the development machine, and executing Karma through a Jenkins "Execute shell". We have our SPA set up as part of a multi-module Maven project (as the server-side is a Spring Boot application). Thus here the step-by-step guide for a CI … Continue reading Running Karma with Maven on Jenkins CI→