Expand my Community achievements bar.

SOLVED

Apache Wicket and WicketTester

Avatar

Former Community Member

Hi all,

one of our development guys has suggested using the Apache Wicket framework for an upcoming AEM implementation. For those that don't know, its a server side component model for build web applications, in many ways analogous to AWT. WicketTester is the unit testing and mocking part of the framework (pretty cool).

Has anyone else considered using this ?

Regards

Fraser.

1 Accepted Solution

Avatar

Correct answer by
Level 1

You could certainly use Wicket – and indeed some open source CMS solutions that have architectural components such as Apache Jackrabbit in common with AEM are built using Wicket. However, to answer in more depth you'd need to explain what you're planning to implement in Wicket and where. Can you give more details?

View solution in original post

2 Replies

Avatar

Correct answer by
Level 1

You could certainly use Wicket – and indeed some open source CMS solutions that have architectural components such as Apache Jackrabbit in common with AEM are built using Wicket. However, to answer in more depth you'd need to explain what you're planning to implement in Wicket and where. Can you give more details?

Avatar

Former Community Member

Hi Andrew/everyone else,

I'll try. Starting from the top. We are building a business [transaction] app, that essentially enables quote and buy of financial products. We want to personalise the customer journey through the site and our marketing folk want control of various aspects of content and behaviour. We will be calling out to a variety of external applications mostly using flavours of web services (some RESTful, some SOAP based). A fairly typical scenario for many I would guess.

The suggestion to use Wicket is being made by someone who has a good deal of experience in building web apps, but not in AEM. Their opening gambit is that since we have decided to develop this particular app following the MVC pattern and that AEM doesn't naturally support that, we should use Wicket in concert with Spring. So the first bone of contention is '... AEM does not support MVC' ... I would hope that experienced AEM practitioners here would disagree with that, but since I'm not that experienced I'll defer to your (and others) view on that particular topic.

So, given that the entire app would use Wicket (another framework that I only heard about this week), the suggestion is to create the Wicket annotated HTML pages and a set of POJOs associated with them following Wicket's component model. So in the MVC sense the HTML is obviously the View and Wicket (Java) components form the Controller. The Model would be implemented by Spring DTO/DAO objects which would handle communication to external data. The java code would be deployed as OSGI bundles.

For those interested here are a couple of links :-

http://wicket.apache.org/

http://wicket.apache.org/guide/

I'm not sure how we would intersperse the AEM components to allow business authors to create content ??

My primary concern is that whilst I expect this approach will produce a working application, it seems counter to the default development approach that AEM promotes (templates/components/scripting/foundation components/et al) ?. That said, in part one might argue that its just a form of Tag Library with a helpful framework thrown in ! Also, as an organisation we pay a not insignificant license fee for use of AEM so clearly we want to leverage that investment to the maximum and, as far as possible, stick to core capability before venturing out to extend via other frameworks (which whilst they might be open source still have a learning curve and support overhead all of which boils down to cash/risk).

So really I'm looking for an opinion about (a) whether Wicket adds anything that we can't otherwise achieve [easily] using vanilla AEM and (b) whether the choice of Wicket/Spring is rational.

Kind Regards

Fraser.