That works very nicely. Thanks for the help!

On Fri, Dec 11, 2009 at 2:52 PM, Tim Peierls <t...@peierls.net> wrote:

> I guess you could try sticking @Transactional on the handle method of the
> Finder that creates the resource. You'd have to subclass Finder:
>
> public class TransactionalFinder extends Finder {
>     ...
>     @Transactional public void handle(Request req, Response rsp) {
> super(req, rsp); }
> }
>
> I haven't checked to see if this really works, though.
>
> --tim
>
>
> On Fri, Dec 11, 2009 at 5:01 PM, Jean-Philippe Steinmetz <
> caskate...@gmail.com> wrote:
>
>> Like I said we could do that though it still requires more than one line
>> of code in each function. We currently use init to determine resource
>> available and setting the allowed actions (i.e. allowPost) in the init which
>> as far as I know can only be done there.
>>
>>
>> On Fri, Dec 11, 2009 at 1:52 PM, Tim Peierls <tpeie...@gmail.com> wrote:
>>
>>> Wouldn't it be just a matter of calling a single private method at the
>>> top of each of the method handlers?
>>>
>>> --tim
>>>
>>>
>>> On Fri, Dec 11, 2009 at 4:49 PM, Jean-Philippe Steinmetz <
>>> caskate...@gmail.com> wrote:
>>>
>>>> Good question. We use the init to verify the resource actually exists as
>>>> well as handling other bits. So the question is is mainly in interest of
>>>> finding an easier way to get it done that won't cause us to redo a lot of
>>>> boiler plate code all over the method handlers.
>>>>
>>>>
>>>> On Fri, Dec 11, 2009 at 12:37 PM, Tim Peierls <t...@peierls.net> wrote:
>>>>
>>>>> Why not move the functionality that you currently have in the init
>>>>> method into each of the HTTP method handlers (and remove this 
>>>>> functionality
>>>>> and the @Transactional annotation from init)?
>>>>>
>>>>> --tim
>>>>>
>>>>>
>>>>> On Fri, Dec 11, 2009 at 2:57 PM, Jean-Philippe Steinmetz <
>>>>> caskate...@gmail.com> wrote:
>>>>>
>>>>>> Hello all,
>>>>>>
>>>>>> It's been a long time since i've last posted. Been pretty happily
>>>>>> working with restlet 1.1 for some time now. I've come across an
>>>>>> issue/optimization that i'm trying to solve that i'd like to get your
>>>>>> thoughts on.
>>>>>>
>>>>>> We are using Spring's AOP and Transaction Management to handle a lot
>>>>>> of our database access. This has greatly simplified our code and we're
>>>>>> loving it. Right now we apply the @Transactional annotation for each of 
>>>>>> the
>>>>>> functions in the resource class. Therefore the init function has it,
>>>>>> acceptRepresentation has it and so on. The init function will initially 
>>>>>> pull
>>>>>> the resource in one transaction and the subsequent method handlers
>>>>>> potentially open a second transaction to further process changes.
>>>>>>
>>>>>> The issue for us is that we are trying to keep the original select and
>>>>>> update calls in the same transaction to ensure transactional integrity. 
>>>>>> The
>>>>>> only way I know of to make this work is to put the @Transactional 
>>>>>> annotation
>>>>>> at a higher level so that the transaction is open for the entire life of 
>>>>>> the
>>>>>> resource handler execution. Unfortunately I have been unable to find a 
>>>>>> way
>>>>>> to do this with restlet. How can I make @Transactional to take affect at 
>>>>>> a
>>>>>> higher level than the resource? Is there a way to override the resource
>>>>>> router or is there some already built-in mechanism that I need to enable 
>>>>>> or
>>>>>> set up?
>>>>>>
>>>>>> Thanks in advance,
>>>>>>
>>>>>> Jean-Philippe Steinmetz
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2429891

Reply via email to