On staying DRY with Spring config

This article shows that using java to configure spring is much more flexible than
to use xml. The article gives an example of how one could proceed to setup a lot
of configuration once and for all (i.e. for all future projects).

Force resource reloads after deploying your web application

There you go, deploying version 1.2 of your application. Tests ran smoothly, build succeeded. All is well. That is, until you get the first customer calls that the application "is broken badly" and "looks like shit". Sigh, not again. "Just ctrl-refresh your browser, sir" or worse, "Just empty your cache, ma'am". Stop blaming the users, you dork! There is an easy way out and here's how.

Gotta Catch ’Em All - 100% test coverage

In this day and age, it is a generally accepted best practice that unit testing is a good thing. The way to check the degree of unit testing in a code base is to measure the test coverage. However, 100% test coverage is often frowned upon. It can be quite expensive, sometimes even impossible to reach this exalted state. Is it worth it? Can it be done?

42 does Constraint violations, Query optimization and L2 Caching

42 has organized a series of internal workshops focusing on the chasm between Java development and managing the Database. Five workshops have already been given. The most recent workshop focused on the constraint violations, optimizing queries and level 2 caching. The workshops have a theoretical and a practical part. During the practical part, the students got to get their hands dirty with a couple of coding puzzles, immediately applying what they have learned.

Instruct your Java application to facilitate the browser cache

Suppose you are using a Java application that serves content as you normally would static content. Are you sure your content makes use of standard HTTP caching functionality? If not, your application might have to endure a lot more reloads than necessary. The demo for this article is based on JOSS, ie a client tool for accessing OpenStack Object Storage. However, the principles described herein can be applied beyond the scope of JOSS. Learn here how.

JOSS architecture approaches for integrating with OpenStack Object Storage

As discussed earlier, JOSS allows you to interact with OpenStack Object Storage. You have been shown how to get started with JOSS, so you got to know the library firsthand. Now, it is about time we start moving up the chain by discussing and showcasing various architecture models for integrating the OpenStack Object Storage component into your Java application.

JOSS Tutorial: using JOSS to access OpenStack Storage

In Accessing OpenStack Object Storage with Java through JOSS, Robert Bor introduced the JOSS library. JOSS allows developers to connect their Java applications to OpenStack Storage. This article demonstrates how.

Accessing OpenStack Object Storage with Java through JOSS

42 open sourced a Java library called JOSS (Java OpenStack Storage) for accessing the OpenStack Storage component. Cloud Storage was never so easy for Java developers. This might be a good chance for you to try JOSS out as a beta tester for CloudVPS.

Agile Feedback on GUI and UX

Agile changed the way we develop and deliver versions. It also means there every two to three weeks developers will move forward and start working on something new. Receiving feedback as soon as possible has become more important. If a developer receives feedback on something he worked on two sprints ago, it will take him longer to resolve it (switching the development environment and getting the right source, think about the problem, fix it, time to build, test, check in and document the fix).

Integrating JavaScript web applications with a web service using Crowd

In a previous blog post Bram described how to set up a Stateless Web Service and secure this using a combination of Spring Security 3 and Crowd. In this entry of the blog post I will describe how you can communicate with this web service from a pure HTML & JavaScript web application.

Fragile Agile explained

In my last blog post I wrote about the card game Fragile Agile. This post contains an explanation of the game.


For the PDF version of the manual, check out our landing page.

See you at GOTO Amsterdam!

Securing Stateless Web Service with Spring Security 3 and Crowd

With the help of Spring Security is the process of securing web application made simple. But to secure a stateless web service there are some parts that need to work differently or even some customizations. In this article I will discuss how to do this with the combination of Crowd as the user directories.

Connecting to a JVM programmatically

A JVM has a lot of information which can be enclosed by JMX. But how to get this information from a JVM and how to find the JVM’s running on a system?

This blog describes how this can be done by code running on the same system as the JVM’s from which information is needed.

Fragile Agile - a cardgame on quality in software development

Quality is a hard concept to get across. People who experienced its lack have learned to appreciate its presence. It is generally only noticed when missing, or when contrasted with its opposite.

Making web applications available offline

With the arrival of HTML 5 (which commonly means more than just HTML), web development has become even more of a joy that it used to be. Clean semantics in HTML, elegance through CSS, new scripting possibilities, it’s all there. This blog post describes two new features, offline applications and name/value storage, which allow developers to make web applications available offline.

REST and DDD: incompatible?

The past years, we’ve seen two new terms become popular: REST (REpresentational State Transfer) and DDD (Domain Driven Design). However, where DDD is often used to prevent an Anemic Domain (now considered an anti-pattern), a domain model for REST is often anemic. This blog post explains how we can reconcile these opposites.

Running Cross Product Integration Tests for Atlassian Plugins

After spending a couple of days looking into multi- product and version testing I came across two techniques which are very useful, so allow me to safe you the two days and point you into the right direction :-)

“Do Not Optimize Prematurely”, but be careful!

“Do not optimize prematurely”. A sentence that is worthy of hanging all gilded and framed on any software professional’s wall. Living up to its hallowed words has made our software more robust and easier to understand, therefore better and cheaper to maintain and operate. However, the credo has a nefarious side-effect that needs to be addressed.

Workshops on Java and the Database

On February 13th / 14th, 42 hosted a workshop aimed at teaching Java developers more about applications working with databases. The workshop was presented by Ron Smeets, our resident database guru. The topics ranged from RDBMS architecture, to DDL and touched on performance and scalability. Students hacked away at assignments in order to gain a deeper understanding of the subject material.

JavaEE 6 Web Profile and the Instant Developer Experience

When starting a new project, its common to create an "Instant Developer Experience": a new developer can get started by issuing two commands: get the code, and build&run the application. The only things needed are Java, Maven and an IDE.

Managing Complexity - Multiple Components and Release Schedules

Have you ever needed to simultaniously develop in several modules? Did those modules have their own trunk/tags/branches in subversion, their own release cycle, etc.? Did everything build with a single Maven command?

Confluence 4.x rich editor survival guide

Recently we upgraded from Confluence 3.5 to 4.x and with that change came the loss of the wiki editor. Confluence 4.x only supports (for the best of reasons) a fancy rich editor.