Just to see what would happen I removed openjpa-1.2.0.jar and javaee-api-5.0-2.jar (just persistence, jms, and transaction folders) from the openejb.jar lib and added openjpa-all-2.0.0-SNAPSHOT.jar (from openjpa downloads). As expected it failed with:
org.apache.openejb.OpenEJBException: Creating application failed: C:\test\apache-tomcat-6.0.18\webapps\testapp: org.apache.openejb.persistence.PersistenceUnitInfoImpl.getValidationMode()Lj avax/persistence/spi/ValidationMode; at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.j ava:658) at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.j ava:442) at org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBui lder.java:249) at org.apache.openejb.tomcat.catalina.GlobalListenerSupport.lifecycleEvent(Glob alListenerSupport.java:58) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor t.java:117) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7 91) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553 ) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor t.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) 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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.AbstractMethodError: org.apache.openejb.persistence.PersistenceUnitInfoImpl.getValidationMode()Lj avax/persistence/spi/ValidationMode; at org.apache.openjpa.persistence.PersistenceUnitInfoImpl.toOpenJPAProperties(P ersistenceUnitInfoImpl.java:461) at org.apache.openjpa.persistence.PersistenceProductDerivation.load(Persistence ProductDerivation.java:204) at org.apache.openjpa.persistence.PersistenceProviderImpl.createContainerEntity ManagerFactory(PersistenceProviderImpl.java:148) at org.apache.openjpa.persistence.PersistenceProviderImpl.createContainerEntity ManagerFactory(PersistenceProviderImpl.java:63) at org.apache.openejb.assembler.classic.PersistenceBuilder.createEntityManagerF actory(PersistenceBuilder.java:183) at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.j ava:482) ... 27 more -----Original Message----- From: David Blevins [mailto:david.blev...@visi.com] Sent: Wednesday, August 05, 2009 2:02 PM To: users@openejb.apache.org Subject: Re: OpenEJB with OpenJPA 2.0? On Aug 5, 2009, at 4:10 AM, Will Hoover wrote: > So, I guess that does lead me to a question :) How do we configure > openejb > to use a newer version of openjpa? I assume there is some option in > openejb.xml? You should be able to use any OpenJPA 1.x version by simply deleting the library we ship and dropping in your replacement. That's really true of any JPA 1.0 implementation such as Hibernate or EclipseLink. As Jacek mentions the JPA 2.0 thing hasn't been tried yet. If there are no changes to the EntityManager interface, then it might work. That'd be the biggest "if" to worry about. OpenEJB has an delegating implementation of the EntityManager interface so it can support TRANSACTION and EXTENDED PersistenceContexts. If there are new methods in that interface, then it will break the container managed persistence context code. I'll pop on the OpenJPA dev list and see if I can't learn some more info. Would be nice to find a way to allow people to experiment with JPA 2.0 even if it means we have to be a little clever internally. -David