I'm working on a J2EE project, and I'm building a suite of custom development tools for the dev team in Jython.  I could really us an OR mapper, so I thought I'd do some research on getting SQLAlchemy working (using a Java OR mapper is not an option for me). 

Question 1: Is it worth my time doing this?  Am I duplicating effort w/ something someone else is doing?

Question 2: If it IS worth my time, I'll need some help:

I checked out the Jython and SQLAlchemy trunks, built Jython, fired up the shell with the sqlalchemy source in python.path, and typed "from sqlalchemy import *"

Since I'm new to the jython source, it's taking me some time to track down the very first problem I've encountered.  I'm seeing the following exception  upon executing the above import statement:

java.lang.NoClassDefFoundError: org/python/modules/random/PyRandom$Random_seed_exposer
        at org.python.modules.random.PyRandom$PyExposer.<init>(Unknown Source)
        at org.python.modules.random.PyRandom.<clinit>(Unknown Source)
        at org.python.modules.random.RandomModule.classDictInit(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.python.core.PyJavaClass.initialize(Unknown Source)
        at org.python.core.PyJavaClass.lookupGivingClass(Unknown Source)
        at org.python.core.PyClass.lookup(Unknown Source)
        at org.python.core.PyJavaClass.__findattr__(Unknown Source)
        at org.python.core.PyObject.__getattr__(Unknown Source)
        at random$py.f$0(c:\projects\opensource\jython\dist\lib\random.py:64)
        at random$py.call_function(c:\projects\opensource\jython\dist\lib\random.py)
        .....

When I look in the jython jar file I built, the Random_seed_exposer inner class name has an initial lowercase "r", not upper.  This looks to me like this is a problem with the random module, not something specific to sqlalchemy ("from random import *" yields a similar stack dump)

I'm going to need some help finding the problem here.  My current theories are:

1.  It looks like the convention for "exposer" class names may be all lower, did this one get an initial cap somehow erroneously?
2.  The @ExposedMethod annotation for the Ramdom_seed(PyObject) method in PyRandom has a defaults = "null" parameter set.  I don't see this on other methods in the random module.  Could this be changing the exposer generation behavior (e.g. causing #1)?

The error is happening in PyRandom.PyExposer, which must be a (runtime bytecode?) generated class, as I don't see it in the source anywhere.  Where can I start tracking this down?

Thanks, and hope I can be of some help to the Jython project here.


--
Christopher Z. Collier