Metadata processing needs to support jar:file URLs that address Jar directories
-------------------------------------------------------------------------------
Key: OPENJPA-2094
URL: https://issues.apache.org/jira/browse/OPENJPA-2094
Project: OpenJPA
Issue Type: Bug
Components: lib
Reporter: Jody Grassel
Assignee: Jody Grassel
The JPA specification makes the following assertion about PersistenceUnitInfo's
PersistenceUnitRootUrl value:
/**
* Returns the URL for the jar file or directory that is the
* root of the persistence unit. (If the persistence unit is
* rooted in the WEB-INF/classes directory, this will be the
* URL of that directory.)
* The URL will either be a file: URL referring to a jar file
* or referring to a directory that contains an exploded jar
* file, or some other URL from which an InputStream in jar
* format can be obtained.
*
* @return a URL referring to a jar file or directory.
*/
public URL getPersistenceUnitRootUrl();
Currently, OpenJPA supports the following URL patterns:
1) file: URL which addresses a jar file or an exploded jar file (directory)
2) jar: URL which addresses a jar file that terminates with "!/" (i.e.,
jar:file:somepath/myjar!/)
3) Any URL that ends with ".jar"
What it does not support is a jar URL of this pattern:
jar:file:somepath/myjar!/WEB-INF/classes
OpenJPA's AbstractCFMetaDataFactory.parsePersistentTypeNames() method will find
that the
URL doesn't match the three scenarios listed above, and defaults to attempting
to parse it as an
XML file, which is obviously not an appropriate behavior for processing a Jar
file.
The "jar:file:somepath/myjar!/WEB-INF/classes" pattern must be supported to
accommodate
J2EE application servers that pass such a URL into
PersistenceUnitInfo._persistenceUnitRootUrl
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira