[ 
https://issues.apache.org/jira/browse/GERONIMO-4468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan updated GERONIMO-4468:
---------------------------

    Attachment: Geronimo-4468-01.patch

Thanks for the verification, Janko.
It was caused by another bug  ;-(, I update the patch file. It contains three 
changes :
a. Make the jar URL is related to the persistence unit root.
b. Add the jar URLs to the temp classloader, so that OpenJPA could find all 
entity classes.
c. Per the persistence doc, when exclude-unlisted-classes is set with true, it 
means only listed classes and jars in the persistence.xml will be scanned, 
otherwise, all will be scanned. So we always need to pass the jarFileUrls to 
OpenJPA.
Please help to review the patch, thanks !

> <jar-file> elements are interpreted relatively to EAR root
> ----------------------------------------------------------
>
>                 Key: GERONIMO-4468
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-4468
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>    Affects Versions: 2.1.3
>            Reporter: Janko Heilgeist
>            Assignee: Ivan
>         Attachments: Geronimo-4468-01.patch, Geronimo-4468.patch, 
> geronimo-jarfile.tar.gz, my-ear-1.0-SNAPSHOT.ear
>
>
> The <jar-file> elements in a persistence.xml are wrongly interpreted as 
> relative to the EAR's root.
> EJB 3.0 persistence spec, section 6.2:
> {quote}
> [...] A persistence unit is defined by a persistence.xml file. The jar file 
> or directory whose META-INF directory contains the persistence.xml file is 
> termed the root of the persistence unit. [...]
> {quote}
> EJB 3.0 persistence spec, section 6.2:
> {quote}
> One or more JAR files may be specified using the jar-file elements [...] Such 
> JAR files are specified relative to the root of the persistence unit [...].
> {quote}
> The attached EAR is correctly verified by the Glassfish verifier. Deploying 
> it on Geronimo 2.1.3 or 2.2-SNAPSHOT results in a successful deployment, 
> while on the console OpenJPA throws exceptions because it tries to resolve 
> the jar-file paths relative to the EAR's root:
> {quote}
> <openjpa-1.0.3-r420667:677674 nonfatal general error> 
> org.apache.openjpa.persistence.PersistenceException: 
> $HOME/geronimo-tomcat6-javaee5-2.1.3/repository/com/heilgeist/testcase/geronimo/jarfile/my-ear/1.0-SNAPSHOT/my-ear-1.0-SNAPSHOT.ear/my-entities1-1.0-SNAPSHOT.jar
>  (No such file or directory)
> <openjpa-1.2.0-r422266:683325 nonfatal general error> 
> org.apache.openjpa.persistence.PersistenceException: 
> $HOME/geronimo-tomcat6-javaee5-2.2-SNAPSHOT/repository/com/heilgeist/testcase/geronimo/jarfile/my-ear/1.0-SNAPSHOT/my-entities2-1.0-SNAPSHOT.jar
>  (No such file or directory)
> {quote}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to