>>- A subclass of WOApplication which define the entry point to an >>application.
This will be your biggest hurdle, although at the end of the day it's not all that big. Tapestry is not a stand-alone app server like WebObjects. That means that you have to seat Tapestry in some type of Servlet container. I like to think of Tapestry as WebObjects minus WOAdaptor and the built-in webserver (or cgi-bin adaptor and standalone webserver). Tapestry cannot talk directly to an HTTP client-- it needs to be inside a Servlet container and the container will talk with the client. The container will originate the threads of control, create HttpServletRequest/Response (like WORequest/Response) and inject them into Tapestry. Practically speaking, this means that you have to read the Servlet spec. It's a very easy read anyhow, but you need to understand the interface between Tapestry and the container. For lightweight, standalone (read, non-enterprise) applications I highly recommend that you use the Jetty servlet container. It works really well, is very fast/stable and the author Greg Wilson does a great job of supporting it. Tapestry does not have a notion of a centralized Application object like WOApplication. Since Tapestry requires that you provide an ApplicationServlet, I just use that as the WOApplication analog. It has worked out pretty well so far. The ApplicationServlet is the main entry point for the threads of control (request-response loop processing) so it's analogous to WOApplication in that respect. I use a singleton to provide global visibility of the application object. >>- A subclass of WOSession for storing values with a life span longer than >>a request/response loop. Think of it this way: Visit + Engine = WOSession. Visit holds the session scope state, while the Engine provides hooks into the request-response loop a la WOSession. >>- Some subclasses of WOComponent to implement your custom behavior. It looks very much like WO. Same template (html) + binding file (.jwc) + procedures (java) as WO, and these elements interact with each other in the same manner as WO. Components also interact with the request-response loop just about the exact same manner as WO and component composition works the same as WO. You should feel right at home-- Components will be the least of your worries. The one major blind-spot I find in the Tapestry components is the Image component. It is not a general purpose, original neutral, vendor of images like WOImage. Instead it is tied into something called Assets. An asset is an application resource that you know about at development time. So the Tapestry Image component is good for vending icons and such, but not well suite for vending images that are discovered at run-time. Instead, everyone seems to roll-their-own special purpose Image Component/Service, like the Chart service in the demo/contrib. We are currently running a special for Zoe developers. All qualified Zoe developers have access to the source code for our custom Tapestry components, which should help you understand how they work. We are planning to donate them to Tapestry eventually anyhow. >>Is there something equivalent to a WORequestHandler in Tapestry? Sorry, I'm of the opinion that the WO request handler is an artifact of vestigial NeXT designs and "the process is the Thread" single threaded model that WO likes to impose. Tapestry does have a somewhat generic request handling mechanism called "services", but I'm not sure how well they will map to your needs. >>Also, is there something akin to a WOSwitchComponent: Last I checked, WOSwitchComponent required that all the potential switches for one instance have the same interface. Is that still the case? If so, Tapestry is much more powerful. The Block/InsertBlock allows for true transparent component "pluggability". With these constructs you could build a generic Matrix component (2-dimensional array of display cells) and populate it at run-time with *any* component. Tapestry beats WO in this area. _________________________________________________________________ Send and receive Hotmail on your mobile device: http://mobile.msn.com ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Tapestry-developer mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/tapestry-developer
