Hi, we have a problem where we must create audit trail of changes made to business objects. Also things should run inside transaction. Our first approach was to create so called command objects from every change but these would be hard to maintain by hand. For example there would be ChangePersonName, ChangeXXXName classes and these would have to be hand created in name: -mehtods. More "clever" approach we come up with is to copy original object and use proxy that records messages send to it and sends them to the copy. Also this proxy creates new proxy when copy returns values. These proxies record message sends to transaction and when transaction is ready these recorded message from all of the proxies are done to the actual objects instead of copies.
To create usable copies I found method that (shallow) copies the actual object and its instance variables (Object>>copyTwoLevel). The method is marked to be deprecated soon. Why is that and is there some alternative way of doing this kind of copy? Also if you know some way to trivially handle the audit trail problem I would like to hear... :) -- Panu
