Thanks. It helps to see the evolution. Are inner classes necessary? It looks like the inner classes were only regenerated when the *.expose file changed, but otherwise the java code could be changed without needing to run gexpose again. I don't see any references to the containing object's instance fields, but maybe the examples I've looked are too simple.

If the new byte code generator exposer didn't modify the source class it would be as easy to work on as it was with gexpose.

- Ken


On Thu, Sep 9, 2010 at 2:42 AM, Jim Baker <jbaker@zyasoft.com> wrote:
On Wed, Sep 8, 2010 at 12:04 PM, Ken Fox <nek.xof@gmail.com> wrote:

ExposedTypeProcessor and friends have given me a real beating. I'm hoping the archives will have some discussion of them. If not, where's the best place to get an overview? The wiki has some good documentation for the annotations, but not for the generated byte code.

You might want to take a look at Jython 2.2 to see the alternative strategy that was used prior to our switchover to using annotations, namely the process around gexpose.py:
https://fisheye3.atlassian.com/browse/jython/tags/Release_2_2_1/jython/src/templates/gexpose.py?r=HEAD

An example is seen here:
https://fisheye3.atlassian.com/browse/jython/tags/Release_2_2_1/jython/src/org/python/core/PyFloat.java?r=HEAD

The generated code has been improved since then, and it's far easier to use, but essentially it's the same as our annotation-based expose, so seeing these inner classes explicitly might be helpful.

- Jim