Archive for the ‘wicket’ Category

Never booking with vliegtickets.nl again

Thursday, November 19th, 2009

When I booked my flight for the London Wicket event I thought to book with vliegtickets.nl as it seemed like a secure website—much more secure than cheapticket.nl, since they have certificate issues in my browsers (safari, firefox). So I received a message (which they forwarded from easyjet) asking me for my passport data, and … send it through e-mail.

My god! Didn’t they learn anything about privacy and security? E-mail goes through several insecure servers in plain text. I wonder what a mobster can do with my date of birth, date issued and document number. Identity theft anyone?

Couldn’t they just bother to build a secure page where I can enter the data on their website? When my credit card information is intercepted I’m secured by my bank, but who secures me from identity theft? Ironically, payment is done through a secure webpage… This shows how much this company actually cares about their customers.

We’re living in fricking 2009 and it’s almost 2010! Is it that hard to build a secure web page that vliegtickets.nl entrust their customers identity to plain e-mail?

Maven-eclipse-plugin woes fixed

Friday, May 29th, 2009

There is quite some anti-mavenism going around, about plugins suddenly not working, etc. And often this is true, case in point: maven-eclipse-plugin version 2.6 botched all projects working with Wicket by being very anal about what should live in the src/main/java directory tree (only Java files! God forbid you’d like to put web resources such as .properties (i18n for your web components), .js, .css, .html, etc next to your Java files. This version not only broke Wicket projects, but AspectJ as well.

Fortunately, the Maven community (more specifically Barrie Treloar and Arnaud Heritier) were helpful in finding the root cause of our pain: a conflict in merging the resources paths during the classpath generation.

With the latest snapshot of maven-eclipse-plugin 2.7 we now have our old build stability back, and can enjoy the new features of the maven-eclipse-plugin, such as searching your workspace for projects that are snapshot dependencies, and adding a project link instead of a jar dependency.

Yes, maven can sometimes be a pain, but ultimately with a great supporting and responsive community it will deliver. Many thanks to Barrie and Arnaud for being patient with us.

Upgrade and new theme

Monday, May 4th, 2009

Just upgraded WordPress to the latest and greatest (stable version), and took the liberty of downloading and installing a new theme. I’m hoping that the new WordPress makes the site faster and easier to maintain.

I’m trying to find a good plugin to manage a conference: CfP, publishing the schedule, registering attendants, etc. Our company website runs on WordPress, so a WordPress plugin would be great. If not, I’ll have to convince the powers that be to move to RadiantCMS and use the ApacheCon conference plugin, created by J. Aaron Farr.

Wicket trainings at ApacheCon

Thursday, February 12th, 2009

ApacheCon EU hosts 2 days worth of Wicket training March 23rd and 24th in Amsterdam: Introduction to Wicket and Behavior Driven Development with Wicket and JDave. These trainings will be given by core team members of the Apache Wicket project, giving you access to the experts.

You can pick and choose, but if you want the best experience you should book both courses. On monday I’ll be giving an introduction course to Apache Wicket. On tuesday, Timo Rantalaiho will give a course on driving your web application development using Wicket, WebDriver and JDave.

Pricing is available at the ApacheCon website. Book now and get your team up to speed with the best Java web development experience in just two days!

Introduction to Wicket

March 23rd, Martijn Dashorst, full description

Learn how to use Apache Wicket to create web applications on your own from the masters. This hands-on lab will provide a quick introduction to the Wicket framework and we’ll start with coding right away. At the basis for this course lies the Wicket in Action book, written by the course leader. We’ll start with setting up our project, move on from a simple hello world application to implementing an online cheese store. We’ll learn to connect it to services delivered by Spring and a back end served with a JPA provider (Hibernate or OpenJPA). During this course we’ll cover the end-to-end basics of web application development: unit testing, writing maintainable code, internationalization, security and deployment.

Behavior-Driving Your Apache Wicket Application: Making the Most of Webdriver and JDave-Wicket

March 24th, Timo Rantalaiho, full description

How to get good unit and black-box test coverage by expressive, executable specifications on your Apache Wicket application code, with JDave BDD framework and WebDriver functional testing tool.The training is mostly hands-on programming assignments of applying WebDriver and jdave-wicket for testing and adding features to a Wicket application.

Daily WTF: ehcache startup code

Friday, January 9th, 2009

I found this gem in the ehcache library while debugging my own code and using the thrown and uncaught exception breakpoint filter from Eclipse (in ConfigurationHelper:

public final BootstrapCacheLoader createBootstrapCacheLoader(
        CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration factoryConfiguration) throws CacheException {
    String className = null;
    BootstrapCacheLoader bootstrapCacheLoader = null;
    try {
        className = factoryConfiguration.fullyQualifiedClassPath;
    } catch (Throwable t) {
        //No class created because the config was missing
    }
    if (className == null || className.length() == 0) {
        LOG.debug("No BootstrapCacheLoaderFactory class specified. Skipping...");
    } else {
        BootstrapCacheLoaderFactory factory = (BootstrapCacheLoaderFactory)
                ClassLoaderUtil.createNewInstance(className);
        Properties properties = PropertyUtil.parseProperties(factoryConfiguration.getProperties());
        return factory.createBootstrapCacheLoader(properties);
    }
    return bootstrapCacheLoader;
}

Notice that the parameter given to this method can be null. I always suspected that using an if-statement to check for null-ness was an over-engineered approach.