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]

Reply via email to