Hi Mark,

That's right, hivetranse was targeted to HiveMind in general (and not to
Tapestry; for one good reason at least: I never used Tapestry!).
Originally, the idea was to support Hibernate, but the idea has grown a bit
to support transactions in general (like in spring or EJB), and potentially
support other persistence layers (like iBATIS).

That means that, unfortunately, I am not the person to recommend best
practices on using HiveTranse within Tapestry applications (but I hope that
people who have done this already can help you on this point).

However, what I can do, of course, is to improve hivetranse (without linking
it to tapestry, although) according to remarks or problems that Tapestry
users have in particular, according to what I understand of a specific
problem, I can come up with a solution that would work around the problem.

This is what I suggested for the initial problem mentioned at the beginning
of this thread, I think that now I understant better the problem, and I can
try to work out a solution for it.

Cheers

Jean-Francois

-----Original Message-----
From: news [mailto:[EMAIL PROTECTED] On Behalf Of Mark Reynolds
Sent: Friday, April 14, 2006 7:38 AM
To: tapestry-user@jakarta.apache.org
Subject: Re: Open Session in View - Tapestry


Jean-Francois,

I certainly did not mean to imply this is a bug or any deficiency of 
hivetranse. I find hivetranse quite solid. :)

I believe that it wasn't primarily designed for a Tapestry application 
or tailored exclusively for Hiberate. So for me, it is a question of how 
should it (or can it) be properly applied to a Tapestry application?

I did try the approach you suggest, but it really is not very natural to 
make it work with Tapestry's form/object updating and validation, unless 
  you create separate domain objects for the web layer and persistence 
and copy from one to another, which I would like to avoid. At least that 
was the best I could come up with...

Thanks!

-- Mark R

Jean-Francois Poilpret wrote:
> Hello Mark,
> 
> This "problem" is by design (for me it is not a bug, this is the way
> transaction demarcation is supposed to work in hivetranse, changing it
would
> bring compatibility problems with existing applications, however, this
could
> probably be done through some extra setting, I will think about it, but I
> need to check if there is no ambiguous cases with that).
> 
> For the time being, what is possible (and that I consider clean, although
> some people in this list have shown some disagreement to this approach) is
> to put the transaction demarcation "Required" at a method in a façade,
this
> method can then call different methods of other services or DAO, all in
the
> same transaction.
> 
> Hope this provides a little help;-)
> 
> Cheers
> 
> Jean-Francois
> 
> -----Original Message-----
> From: news [mailto:[EMAIL PROTECTED] On Behalf Of Mark Reynolds
> Sent: Thursday, April 13, 2006 4:42 AM
> To: tapestry-user@jakarta.apache.org
> Subject: Re: Open Session in View - Tapestry
> 
> I tried the hivetranse approach, but had 2 problems. 1) hivetranse seems 
> to limit a hibernate session to a single transaction, and 2) its 
> declarative approach ultimately limits the transaction demarcation to a 
> single method call, and I couldn't figure out a good way to structure my 
> application such that all the work (load object, update object, commit 
> transaction) occurred within the scope of a single service method call 
> and still left me with a place to catch any exception and update the 
> view accordingly.
> 
> If someone has worked out a good pattern for using hivetranse in the 
> context of simple hibernate-based CRUD functionality in Tapestry 4 with 
> validation, I would love to hear about it.
> 
> I also looked at what Howard is doing with Epluribus 
>
(http://www.javaforge.com/proj/sources/sccBrowse.do?proj_id=220&dir=epluribu
> s%2Ftrunk), 
> but that is unfinished (it does have an example of a 
> WebRequestServicerFilter, which is what you need to make sure the 
> transaction is committed/rolled-back at the end of the request, as 
> stated in your question).
> 
> I ended up adapting Kent Tong's SessionOwner approach from Chapter 14 of 
> his indispensable book. It involves injecting the thread-specific 
> SessionOwner (I called it TransactionManager) into your page and using 
> it to commit or rollback the transction as desired.
> 
> -- Mark R
> 
> Sukma Agung Verdianto wrote:
>> Hi,
>>
>> I'm trying to implement Open Session in View in tapestry application.
>> There is a way to create servlet filter to open and close the db session.
>> (I'm using ServletRequestServicer)
>> My question is, how can I catch the page exception to rollback the
>> transaction, because
>> tapestry ExceptionHandling catch that exceptin and never throw it as
> servlet
>> exception.
>> Sorry for my bad english :(
>>
>> Rdgs,
>> Verdianto
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to