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

Reply via email to