Ive been using webwork 2 previously to this, my first project with
Tapestry (4.0).
I think the weirdest thing was accepting the idea of using ASO's
(Application State Objects), whereas in webwork 2 we coded to a
stateless model. I still have to see how it scales but we're running
with it for now.
I'm also still not sure how, or even if, Tapestry meets the needs of
interceptors for pages and services alike. This was very clear in an
xwork.xml file, thanks to interceptor stacks. If anyone can point me
to an example of an interceptor which can be function within
Tapestry's framework I would be grateful (please don't reply and
suggest I use a ServletFilter - I mean Tapestry's framework).
Besides that there are differences - Tapestry is excellent at the
modular component thing, Webwork 2 is a little messier but makes for
a faster development path. I find that I'm often fussing about with
bindings and the like in .page and .jwc files. On the other hand, the
configuration effort might be worth it, given how easily I can drop a
component in somewhere.
I find Hivemind to be very verbose and complex compared to Spring.
The documentation for Hivemind is sometimes lengthy and indirect and
can be frustrating. Hivemind is running well within our project, but
whenever I seek to learn more about it's workings I find myself
preferring to read the source code.
On the other hand, I'm really enjoying using Tapestry and Hivemind.
If I work with it again I'd like to experiment with configuring
Velocity or Freemarker at the template level and see how else I could
customize it. I might, perhaps, try and involve Spring, rather than
using Hivemind as the IoC framework.
Cheers,
Nick
On 15/04/2006, at 6:24 AM, Payne, Matthew wrote:
We can use Tapestry 4.
It looks like I need to take a look at the specifics of applying
these services.
Thanks.
Matt
-----Original Message-----
From: James Carman [mailto:[EMAIL PROTECTED]
Sent: Friday, April 14, 2006 3:14 PM
To: 'Tapestry users'
Subject: RE: tapestry for a webwork developer
Matt,
Are you guys stuck with Tap3? If you're using Tap4, then you can use
HiveMind services as the "guts" of your pages/components. Then,
you can
apply interceptors to those services much like you're describing.
James
-----Original Message-----
From: Payne, Matthew [mailto:[EMAIL PROTECTED]
Sent: Friday, April 14, 2006 3:11 PM
To: tapestry-user@jakarta.apache.org
Subject: tapestry for a webwork developer
I recently started with a new company that appears to have chosen
tapestry
as their framework.
I've previously been swimming webwork over the last couple of
years. I have
to admit I have somewhat bias.
I am digging around for a few good sample apps that use reasonably
decent
practices with Tapestry 4. I took a look at "Better Petshop" (uses
tapestry
3). Is there anything "Better"?
At first glance I was a little concerned with how verbose things were.
For instance, the "actions" duplicate all the getters/setters that
were in
the main pojo they are exposing.
e.g. instead of exposing get/set Customer, it
had to copy all the properties to its action properties
i.e.
setGivenName(customer.getFirstname());
setFamilyName(customer.getLastname());
setAddress1(customer.getAddr1());
setAddress2(customer.getAddr2());
setCity(customer.getCity());
setStateOrProvince(customer.getState());
setCountry(customer.getCountry());
setPostalCode(customer.getZip());
setTelephoneNumber(customer.getPhone());
Is this typical with Tapestry apps?
Can't we just expose the main pojo without all this extra code?
The other thing I was concerned about is that much of the
application's
behavior is achieve via inheritance(e.g. the archaic struts way).
OrderBillingPage-->ProtectedPage-->PetshopBasePage
In webwork, I'd probably achieve the same behavior by adding a some
type of
securityInterceptor to that actions config(the are ways to default
this to
whole packages of actions).
<action name="orderBilling" class="com.something.OrderBillingAction">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="security"/> <!--- checks for
user login
and redirects to global result "LOGON" if needed -->
<result name="success">billing.jsp</result>
</action>
Does tapestry have equivalent interceptors that can be defaulted for
sections of the application without having to resort to inheritance?
Thanks,
Matt
This message, including any attachments, is intended only for the
recipient(s)
named above. It may contain confidential and privileged
information. If you
have
received this communication in error, please notify the sender
immediately
and
destroy or delete the original message. Also, please be aware that
if you
are not
the intended recipient, any review, disclosure, copying,
distribution or any
action or reliance based on this message is prohibited by law.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
This message, including any attachments, is intended only for the
recipient(s)
named above. It may contain confidential and privileged
information. If you have
received this communication in error, please notify the sender
immediately and
destroy or delete the original message. Also, please be aware that
if you are not
the intended recipient, any review, disclosure, copying,
distribution or any
action or reliance based on this message is prohibited by law.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Nick Faiz,
Developer
www.q9software.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]