Hi Henrique,

I think there is a cycle risk if we call recursively but this can be eliminated 
by imposing a restriction to call only a single time a notification on a 
particular object.

The handling seems to be done in ERXEnterpriseObject, lines 72-74, I suggest 
somethings like this to handle the cascading of these notification :

NSMutableSet notifedInsertedObjects = new NSMutableSet
NSMutableSet notifedIUpdatedObjects = new NSMutableSet
NSMutableSet notifedIDeletedObjects = new NSMutableSet
boolean notificationCompleted = false;
while (notificationCompleted == false) {
        NSSet newInsertedObjects = new 
NSSet(ec.insertedObjects())setBySubtractingSet(notifedInsertedObjects);
        ... for updated and deleted objects

        if (newInsertedObjects.isEmpty()  && newUpdatedObjects.isEmpty() && 
newDeletedObjects.isEmpty() {
                notificationCompleted = true;
        }
        ERXEnterpriseObject.WillInsertProcessor.perform(ec, newInsertedObjects);
        notifedInsertedObjects.addAll(newInsertedObjects);

        ... for updated and deleted objects
}

The didXXX does not have this problem since the save is done and the objects 
are all known.



> Le 2015-08-11 à 16:22, Henrique Prange <[email protected]> a écrit :
> 
> Hey guys,
> 
> I’ve been using Wonder’s augmented transaction methods in combination with 
> notifications to encourage a loosely coupled design. Over time, I've been 
> increasingly applying this kind of solution on my systems. Now, I'm facing a 
> problem when expecting to produce notifications for recurring EO changes. 
> Basically, I expect the invocation of the willUpdate method on a second EO 
> changed during the willUpdate phase of a former EO. However, in that 
> scenario, the second EO willUpdate method is never invoked.
> 
> I've seen that the CooperatingEditingContext described in the Practical 
> WebObjects book does exactly what I want. So, is there a reason to not 
> support notifications for recurring changes (i.e. avoid notification cycles)? 
> Is the current behavior expected? Or is it a misbehavior?
> 
> Cheers,
> 
> Henrique
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com
> 
> This email sent to [email protected]


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to