Re: [JIRA] Created: (CAY-797) Lifecycle callbacks *CallbackInterceptor concept introduces problems for testing equality of contexts

From: Lachlan Deck (lachlan.dec..mail.com)
Date: Tue Jun 05 2007 - 04:44:36 EDT

  • Next message: Michael Gentry: "Re: June board report"

    Great.

    On 05/06/2007, at 6:39 PM, Andrus Adamchik wrote:

    > Yeah, I am leaning towards merging the callback code into the base
    > context... The ability to proxy an ObjectContext is very nice, but
    > it changes a few standard Cayenne assumptions about the object
    > context. I guess for such fundamental functionality like callbacks,
    > we shouldn't be doing that.
    >
    > Andrus
    >
    > On Jun 5, 2007, at 10:40 AM, Lachlan Deck (JIRA) wrote:
    >
    >> Lifecycle callbacks *CallbackInterceptor concept introduces
    >> problems for testing equality of contexts
    >> ---------------------------------------------------------------------
    >> --------------------------------
    >>
    >> Key: CAY-797
    >> URL: https://issues.apache.org/cayenne/browse/
    >> CAY-797
    >> Project: Cayenne
    >> Issue Type: Bug
    >> Components: Cayenne Core Library
    >> Affects Versions: 3.0
    >> Environment: 3.0-prerelease svn 523667
    >> Reporter: Lachlan Deck
    >> Assignee: Andrus Adamchik
    >>
    >>
    >> Say you create a callback intercepted context as described here
    >> (http://cayenne.apache.org/doc/lifecycle-callbacks.html), or as in
    >> my case created a subclass of ObjectContextCallbackInterceptor to
    >> wrap these concepts.
    >>
    >> ObjectContext myContext = new CallbackInterceptedContext();
    >> Object a = myContext.newObject(SomeClass.class);
    >> Object b = myContext.newObject(SomeClass.class);
    >>
    >> myContext.equals( a.getObjectContext() ); // false (unless I
    >> override equals to provide a better test)
    >> a.getObjectContext().equals( myContext ); // false
    >> a.getObjectContext() == myContext; // false
    >> a.getObjectContext().equals( b.getObjectContext() ); // true
    >>
    >> So this gets a little messy having to essentially test in the
    >> correct direction. Now, I understand why this occurs (because the
    >> CallbackIntercepting essentially provides a proxy context for the
    >> context it contains) but it seems to me that this leads to some
    >> difficulties like the above that could possibly be more easily
    >> overcome were both DataContext and CayenneContext to implement
    >> callback intercepting directly.
    >>
    >> Thoughts?
    >>
    >> --
    >> This message is automatically generated by JIRA.
    >> -
    >> You can reply to this email to add a comment to the issue online.

    with regards,

    --
    

    Lachlan Deck



    This archive was generated by hypermail 2.0.0 : Tue Jun 05 2007 - 04:46:05 EDT