Actually, never mind. Due to the interconnectedness of persistent classes (i.e., relationships), I need to generate all the classes at once and add them all to the class loader at the same time. This means my "elegant" solution is just broken :)

-dain

On Dec 31, 2006, at 3:12 PM, Dain Sundstrom wrote:

I working on an implementation of the EJB cmp specification which uses JPA under the covers to implement the persistence. I have the basics working with hand written subclasses of the abstract cmp2 beans. I just wrote a code generator to replace my hand coded subclasses using ASM (which rocks), and I am having problems getting OpenJPA to enhance my generated class. It appears that at the moment I construct the EMF all entity classes must be available via the temp class loader. If they are not, OpenJPA will not add an entry into the MetaData repository. Later when I generate my class and load it, the OpenJPA transformer looks for the MetaData in the repository, doesn't find it, and completely skips enhancement (PCEnhancer line 322). It is possible to have the enhancer fault load the metadata and continue with enhancement?

In the mean time, I'm going to hack OpenEJB to kick off generation very early in deployment, but it would be much more elegant to wait until the EJB is deployed to generate the classes and this happens after JPA is initialized.

Thanks,

-dain

Reply via email to