cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lachlan Deck <lachlan.d...@gmail.com>
Subject Re: Making sense of callbacks
Date Fri, 30 Oct 2009 21:21:40 GMT
Hi Andrey,

On 30/10/2009, at 9:18 PM, Andrey Razumovsky wrote:

> Below is the test showing that everything's OK (or you can change  
> event type
> to PRE_PERSIST with same effect). Lachlan, please double-check that  
> all
> callbacks are mapped correctly and give us more details about errors.

We have no specific mapping in our model -- so are just relying on  
default behaviour. What I found (after updating to 3.0B1) that when  
committing from the client to the server that, for example, a Contact  
who has a Boolean flag "isTutor" that was validated as not-null on the  
client would fail validation on the server .. where that validation  
found the value to be null.

We previously had on the server prePersist methods that had things like:
if (getIsTutor() == null) {
	setIsTutor(false);
}

I refactored these (after the jar update) to postAdd (when noticing  
that it wasn't working anymore .. and checked the mail archives for  
what Andrus had committed) ... and found that things weren't working  
either way until I rolled back the jar update.

Perhaps you've some specific debugging code I can try to mix in with  
our classes that could provide more info?

> public class ROPCallbacksTest extends RemoteCayenneCase {
>    public void testPostAddCallbacks() {
>        LifecycleCallbackRegistry registry = getDomain()
>                .getEntityResolver()
>                .getCallbackRegistry();
>
>        registry.addListener(LifecycleEvent.POST_ADD, MtTable1.class,  
> this,
> "postAddCallback");
>
>        ObjectContext ropContext = createROPContext();
>        ClientMtTable1 a1 = ropContext.newObject(ClientMtTable1.class);
>        ropContext.commitChanges();
>    }
>
>    public void postAddCallback(Object o) {
>        ((MtTable1) o).setGlobalAttribute1("POST_ADD");
>    }
> }
>
> 2009/10/30 Andrey Razumovsky <razumovsky.andrey@gmail.com>
>
>> Actually, I won't be connected to the internet, so I will not  
>> commit until
>> Monday anyways. So please go ahead
>>
>> 2009/10/30 Andrus Adamchik <andrus@objectstyle.org>
>>
>>>
>>> On Oct 30, 2009, at 10:57 AM, Andrey Razumovsky wrote:
>>>
>>> This is not about callbacks on client-side - as far as I know, we  
>>> don't
>>>> have
>>>> callbacks on ROP.
>>>>
>>>
>>> Ah great. I wasn't sure about the status of that.
>>>
>>>
>>> If I understand correctly, "prePersist" isn't invoked for
>>>> server-side temporary objects when committing from client.
>>>> I'll try to do that on the weekend, but I'm not sure
>>>>
>>>
>>> Let me know. I can take a look as well if needed.
>>>
>>> Andrus
>>>
>>>
>>
>>
>> --
>> Andrey
>>
>
>
>
> -- 
> Andrey

with regards,
--

Lachlan Deck




Mime
View raw message