[TransWarp] State of Transwarp

Laurent Martelli laurent at bearteam.org
Tue Jun 11 12:20:26 EDT 2002


>>>>> "Phillip" == Phillip J Eby <pje at telecommunity.com> writes:

[...]

  Phillip> Not really.  Pure AOP has been much less of an emphasis of
  Phillip> late, but AOP is still a part of our implementation
  Phillip> techniques.

  Phillip> I glanced at JAC; it looks like your work is based on
  Phillip> wrapping objects with proxies in order to apply pointcuts,
  Phillip> is that correct?  

This is it. But things may change a little when we'll start thinking
about optimization. We are thinking about "inlining" the proxies. But
the concept would remain the same : catching method calls.

In factn, "proxy" is not the proper word. We use the term wrapper. The
difference, to me, is that wrappers are allowed to wrap only some
methods, whereas a proxy has to implement of the methods of the object
it proxies.

  Phillip> It sounds interesting, but it's very different than
  Phillip> TransWarp's implementation of AOP, which actually creates a
  Phillip> fresh set of classes with the behaviors, and must use
  Phillip> metaclasses or descriptor objects to do complex pointcuts.

  Phillip> Nonetheless, it does sound as though your work might be
  Phillip> useful to us; certainly you've intrigued me enough to want
  Phillip> to read more of your documentation.  Recent work on Zope 3
  Phillip> has evolved the state-of-the-art in Python "proxy" objects,
  Phillip> and Zope 3 implements security proxies already.  What I'm
  Phillip> curious about is how well non-security-related proxies
  Phillip> would play in the Zope 3 model, since a lot of Zope code
  Phillip> requests the removal of proxies in order to inspect objects
  Phillip> or to bypass security.  Obviously, that's not a JAC
  Phillip> problem; 

We only wrap methods, so we can still access the attributes with the
reflection API of Java to bypass aspects. That's what the persistence
aspect does when it loads an object from storage. 

  Phillip> it's just something I'm curious about in the Z3
  Phillip> architecture.


I don't know how you configure aspects for an application with
TransWarp, but with JAC, you do this just by calling configuration
methods on the aspect component (which is just a regular object). I
think this is an area where we can shared some stuff : What's the API
to configure persistence, authentication, deployment, transaction, ...

-- 
Laurent Martelli                        http://jac.aopsys.com/
laurent at bearteam.org                    http://www.bearteam.org/~laurent/




More information about the PEAK mailing list