• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Tim Cooke
  • Junilu Lacar
  • Rob Spoor
  • Devaka Cooray
  • Jeanne Boyarsky
Saloon Keepers:
  • Jesse Silverman
  • Stephan van Hulst
  • Tim Moores
  • Carey Brown
  • Tim Holloway
  • Jj Roberts
  • Al Hobbs
  • Piet Souris

WebWork, OpenSymphony

Posts: 18
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Mr. Porter

I understand WebWork runs on OpenSymphony. Are these both "free" frameworks or is there licensing? Can you give a quick comparison between WebWork and Tapestry, and in particular what would you say the learning curve might be like compared to Tapestry? Or perhaps you could let us know if WebWork might be more extensible than Tapestry?

Excuses in advance if my questions are too many and too broad.

Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
WebWork/XWork, along with Sitemesh, Quartz, OSCache, and a few other projects, are part of the larger OpenSymphony project/consortium, similar to Apache or Codehaus. All of the projects are available as open source and license under the OpenSymphony License, which is a modified Apache license. (For clarification, most of the projects will be moving to an Apache License v.2 in the near future).

Inside of OpenSymphony, there is a project called OSCore which includes a number of general utilities. WebWork and XWork both utilize this small library.

With regard to a comparison of WebWork and Tapestry, I will attempt to answer this question as best as possible; however, please realize that I am far from a Tapestry expert. My experience is limited to playing to see some of the slick things it can do. Please feel free to correct any mis-statements I make.

WebWork is designed around the principle of the command pattern. In fact, it is really a wrapper XWork - a generic command-pattern framework. Wait... wait... Wrappers, command pattern, etc. Does one need to know this all in order to write effective WW code? Some may disagree, but I think not. As a WW developer your focus is primarily on the execute() methods of your Actions. This method contains the logic that is responsible for executing your logic and then sending the request to some "view" for output. For example, a basic CRUD Action would look something like this:

Inside of the view code, parameters are being passed in for user.firstName, user.lastName, etc. These are set directly on the User object provided by the getUser() method above.

With WebWork, an underlying goal is get away from the intricacies and problems associated with the HTTP/HTML world as fast as possible. The application logic is separated away from the view technology as much as possible. Most WW developers advocate staying away from the request and response objects as much as humanly possible. For example, one of our internal has a few dozen Actions with only 2 tied to the servlet API. This makes it significantly easier to test and develop with the use of mock objects.

From my brief introduction to Tapestry, it provides a component driven model. With this, you get the framework involved in it - a powerful framework once you overcome the learning curve and the inability to potentially leverage current skill base - JSP, Velocity, Freemarker, etc. Personally, I think tapestry is tied into itself too much and is too heavy.

Personally, I found the WW framework significantly easier to learn and to teach others. I hope that answers the question or starts you on the right path (WW ). Feel free to ping me with any additional questions.

You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
    Bookmark Topic Watch Topic
  • New Topic