IMO with 3.0 being a major version change, it's a fair game to change API .. as long as we don't abuse it. And in fact you can setup a 'PostLoad' callback to invoke existing 'fetchedFinished' on your objects, so there is a reasonable replacement. Even better - since POST_LOAD is executed between DataContext and DataDomain, you won't even have to switch to ObjectContext. Instead you can instantiate the DC with this bit of extra wiring (that will hopefully go away in the following milestones):

// postInterceptor can be shared between multiple DataContexts
DataChannelCallbackInterceptor postInterceptor = new DataChannelCallbackInterceptor();
postInterceptor.setChannel(domain);
ObjectStore objectStore = new ObjectStore (domain.getSharedSnapshotCache());

DataContext context = new DataContext(postInterceptor, objectStore);


// here is how you would register callbacks (once per app)
LifecycleCallbackRegistry registry = domain.getEntityResolver ().getCallbackRegistry(); registry.addListener(LifecycleListener.POST_LOAD, MyDataObject.class, "fetchFinished");


Andrus


On Jul 26, 2007, at 9:30 PM, Michael Gentry wrote:

OK, I finally was able to try to migrate my old 1.2.x project to 3.0.
After some missing jar (log4j, common collections, etc) issues and
renaming all of my packages from objectstyle to apache, I was able to
launch the application but it doesn't work.  A good portion of my
application depends on fetchFinished() being called.  Yes, I know
fetchFinished() is deprecated and the implementation in
CayenneDataObject still exists (and still does nothing), but it
appears the code to actually call it when the fetch is finished has
been removed, so I get lots of NULL objects (I resolve a lot of things
after a 'notification' object is read in).  If fetchFinished() is
deprecated, shouldn't it still be called?

Thanks,

/dev/mrg

PS. It did a lot of nice-looking SQL before failing, though.  :-)


Reply via email to