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

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Tue Jun 05 2007 - 04:39:27 EDT

  • Next message: Lachlan Deck: "Re: [JIRA] Created: (CAY-797) Lifecycle callbacks *CallbackInterceptor concept introduces problems for testing equality of contexts"

    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.
    >
    >



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