Featured in
Architecture & Design

Mini-talks: The Machine Intelligence Landscape: A Venture Capital Perspective by David Beyer. The future of global, trustless transactions on the largest graph: blockchain by Olaf Carlson-Wee. Algorithms for Anti-Money Laundering by Richard Minerich.

Featured in
Operations & Infrastructure

Mini-talks: The Machine Intelligence Landscape: A Venture Capital Perspective by David Beyer. The future of global, trustless transactions on the largest graph: blockchain by Olaf Carlson-Wee. Algorithms for Anti-Money Laundering by Richard Minerich.

Featured in
Enterprise Architecture

Mini-talks: The Machine Intelligence Landscape: A Venture Capital Perspective by David Beyer. The future of global, trustless transactions on the largest graph: blockchain by Olaf Carlson-Wee. Algorithms for Anti-Money Laundering by Richard Minerich.

The presentation was recorded last year as the merger was well underway. Since then, Struts 2 (WebWork) was released at the end of February, and the WebWork project released it's final version 2.2.5 a couple of weeks ago. The WebWork team wanted to do a big effort to bring in as many optimizations and bug fixes into the last release of WebWork as possible before shifting focus entirely to Struts 2. See also InfoQ's Struts content.

Patrick Lightbody is one one of the leads on the WebWork project and leads product management for QA solutions at Gomez Inc. Prior to joining Gomez, Lightbody launched Autoriginate, the creator of a hosted QA solution, and managed the professional services team at collaboration software provider Jive Software. Lightbody also serves as the CEO and Chairman of OpenSymphony Group.

Mittal, At the risk of going off-topic, I'd love to hear about your experience with Tapestry 4, as I'm sure to would the developers of that framework. Also I'm curious as to whether Tapestry 5 will address your issues.

- all page classes are abstract, no DI via spring possible. I think Tap5 takes care of this one.

- null handling for individual and nested properties. We had to implement additional interface called "NullHandler" and register all our objects instead of writing not null checks cluttered around views.

- AJAX integration was pain with Tacos and Dojo but got it working.

- No roadmap for migration from Tap4 to Tap5.

These were some of compelling factors at least to get thinking about alternative framework.

On other hand, ramp-up time for Tapestry wasnt that much may be 2 days to get it up and running and kicking off project development

- all page classes are abstract, no DI via spring possible. I think Tap5 takes care of this one.

- null handling for individual and nested properties. We had to implement additional interface called "NullHandler" and register all our objects instead of writing not null checks cluttered around views.

- AJAX integration was pain with Tacos and Dojo but got it working.

- No roadmap for migration from Tap4 to Tap5.

- This is a classic one, if there are any html controls within tap form by default it puts focus on first control it finds and to prevent it one has to set a property to false. I received some QA bugs related to this issue.

These were some of compelling factors at least to get thinking about alternative framework.

On other hand, ramp-up time for Tapestry wasnt that much may be 2 days to get it up and running and kicking off project development whereas it seems there's FUD about steep ramp-up time for tapestry

I'm trying out S2. Being familiar with S1 I find the new S2 features that came through the framework wedding very thrilling. It is important for us that the framework supports XSLT which it obviously does and it was really easy to get a simple example working.

However I struggle with custom adapters that produce custom XML other than what is created by the standard adapters. The Javadoc says I can register my custom adapter with registerAdapter method of AdapterFactory. But where do I call this method? Where in my code do I have access to the AdapterFactory instance so I can register my adapter? It also tells me to look at the examples but I cannot find any concerning custom adapters...

Any help is greatly appreciated! If there really is an example can you tell me where to find it?

In order to better understanding and using of Struts2, I have created the Animated Tutorial for Struts2 that shows how does struts work.

My goal for creating this document was to show basic primitives such as request scope value stack, action classes and objects to someone who wants to select between web frameworks such as Struts, JSF, Tapestry and etc.