Update #1: From the same development team that did the mobile.walmart.com site in Wicket also clarified that they finished (last year) the mobile.wellsfargo.com website using Wicket as well. That’s some serious props to Wicket!
I am on the Apache Wicket mailing list and one of the developers (Joachim) on the list wrote in this morning to say that he and his team have wrapped up work on mobile.walmart.com which is now powered by Wicket with the additions of a few custom components his team created to help with the development.
One of the primary drivers for choosing Wicket was to maintain consistent server-side code for components that could generate specialized HTML for all iPhone/Android devices (HTML5), BlackBerry (HTML 3.2?) and last-gen (WAP?) mobile devices. They also clarified the importance for stateless components that could be bookmarked and references later.
The team has opened sourced (GPL 3.0) their custom components for Wicket and hosted them up on Google Code here: http://code.google.com/p/jolira-tools/
The project includes:
- wicket-stateless - A number of classes for apache wicket to improve stateless behaviour in that framework.
- jaxro – Yet another Java-XML-binding solution making REST support easy.
- expiring-cache – A simple caching solution that uses TTL and SoftReferences to expire entries.
- jofilter – An simple access control mechanism implemented as a ServletFilter protecting sensitive applications.
- jolirium – An adapter for Selenium that launches browsers and manage embedded Selenium servers.
- hickory – A slightly enhanced version of Hickory from http://hickory.dev.java.net. Works with Maven.
This is a pretty large testament to the power of Wicket. As a fan, I’m glad to see the framework continue to get adoption.
For those that have no idea what “Apache Wicket” is, it’s a component-based Java web framework that is quite popular in the Java web developer community. It’s not uncommon to hear it mentioned along side JSF, Struts 2 or Spring MVC/Webflow when discussing the “hot frameworks to use”.
Java has never had a shortage of web frameworks to choose from and with the increasing popularity of dynamic languages there are some increasing awesome/creative frameworks coming out (like Play! Framework) for developers to choose from.
Even as the new hotness continues to move towards scripting and dynamic language, Wicket has continued to grow in popularity and functionality. Having lurked on the list for what feels like a lifetime and done a few small projects in Wicket, I think what keeps it so relevant are a few very strong aspects of it:
- It’s a very cleanly designed framework. Components, their models, and the page/component containment hierarchy is not only intuitive, it’s incredibly flexible. The fundamental design of Wicket has never changed, the creators “got it right the first time”, so instead of seeing sweeping breaking changes with subsequent major releases, you just see more sugar and sweetness around a fundamental design that has always been set in stone.
- The community around it is really intelligent and helpful. You rarely see questions like “Give me the codez for the stuffs!” on the list. They are always fun/challenging questions and really well thought our answers.
- Stability – The core maintenance team is very methodical with what fixes they roll in, what APIs they change and how they roll out patch releases. There is nothing “frantic” about anything they do. This leads to a great experience as a developer building on this framework.
- Documentation – It’s not that well organized, but it’s *everywhere*. You can throw a stone and find 3 tutorials on Wicket and 5 on custom components. There are some really clever people out there that have likely solved your problem at least twice already in Wicket.
- Doesn’t require IDE support – It’s all straight HTML and Java, so you don’t need to wait for your favorite IDE to support it before it feels easy to use (like JSF).
Those are at least some of the most important things about Wicket that have attracted me to it year after year. I imagine other Wicket devs out there have their own favorite aspects of the framework as well.
The text of the full email is below.
Fellow Wicket Users,
The question if Wicket is suitable for large enterprises has just become easier to answer: The largest enterprise in the world is now using Wicket for its mobile site. Check out mobile.walmart.com (or just point your mobile phone to www.walmart.com and get redirected automatically).
The reason why my client decided to go with Wicket makes it easy to support multiple different types of devices. The walmart mobile application supports different HTML for three categories of devices (L1: iPhones & challengers, L2: BlackBerries, L3: Plain Old Devices). These three experiences are supported by the same Java code on the server side.
We added a few components to Wicket, mostly because in the retail arena being stateless is very important. Our components are available at http://code.google.com/p/jolira-tools/.
Wicket is an awesome product and I would like to thank the Wicket team for all there work. One day I hope to get the largest enterprise in the world to donate an appropriate amount of money for future development!