[jboss-jira] [JBoss JIRA] Commented: (JBAS-9155) jboss processes only one persistence.xml file per war file
Scott Marlow (JIRA)
jira-events at lists.jboss.org
Tue Apr 5 13:03:33 EDT 2011
[ https://issues.jboss.org/browse/JBAS-9155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593796#comment-12593796 ]
Scott Marlow commented on JBAS-9155:
------------------------------------
To get started with creating a test case, get started with using git and the AS7 source repository at https://github.com/jbossas/jboss-as/
Some guidance with getting started is here: http://community.jboss.org/wiki/HackingonAS7
If you look SessionFactoryTestCase.java in the following source tree (see contents of https://github.com/jbossas/jboss-as/tree/master/testsuite/integration/src/test/java/org/jboss/as/testsuite/integration/jpa/hibernate). You will see a reasonably simple test case that could be cloned).
Also look at the other example nearby in https://github.com/jbossas/jboss-as/tree/master/testsuite/integration/src/test/java/org/jboss/as/testsuite/integration/jpa/epcpropagation
More details are in http://community.jboss.org/wiki/WritingaAS7TestCaseintestsuitemodule...
> jboss processes only one persistence.xml file per war file
> -----------------------------------------------------------
>
> Key: JBAS-9155
> URL: https://issues.jboss.org/browse/JBAS-9155
> Project: JBoss Application Server
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JPA / Hibernate
> Affects Versions: 6.0.0.Final
> Reporter: Vincent A
> Assignee: Scott Marlow
> Labels: deployment, jboss, jpa, persistence, war
>
> If a war file contains several Persistence Archive jars, JBoss starts only the persitence unit(s) defined in the first jar it scans, ignoring the remaining ones.
> For instance, given the following war file:
> {code}
> my-war
> +-- WEB-INF
> +-- lib
> +-- pu1.jar
> +-- META-INF
> + persistence.xml // <persistence-unit name="pu1" >...</persistence-unit>
> +-- pu2.jar
> +-- META-INF
> + persistence.xml // <persistence-unit name="pu2" >...</persistence-unit>}}
> {code}
> Jboss will only starts the pu1 persistence unit.
> And if the war file has the following structure:
> {code}
> my-war
> +-- WEB-INF
> +-- classes
> +-- META-INF
> + persistence.xml // <persistence-unit name="pu0" >...</persistence-unit>
> +-- lib
> +-- pu1.jar
> +-- META-INF
> + persistence.xml // <persistence-unit name="pu1" >...</persistence-unit>
> +-- pu2.jar
> +-- META-INF
> + persistence.xml // <persistence-unit name="pu2" >...</persistence-unit>
> {code}
> Jboss starts pu0, and skips the PU's defined in pu1.jar and pu2.jar.
> This behaviour is non-compliant. Section 6.2 of the spec states that:
> {quote}
> A persistence unit may be packaged within one or more jar files
> contained within a WAR or EAR, as a set of classes within an
> EJB-JAR file or in the WAR classes directory, or as a combination
> of these as defined below.
> {quote}
> [...]
> {quote}
> It is not required that an EJB-JAR or WAR containing a persistence
> unit be packaged in an EAR unless the persistence unit contains
> persistence classes in addition to those contained in the EJB-JAR
> or WAR.
> {quote}
> And from section 7:
> {quote}
> 7.1.1 Responsibilities of the Container
> At deployment time the container is responsible for scanning the
> locations specified in Section 6.2 and discovering the persistence.xml
> files and processing them.
> When the container finds a persistence.xml file, it processes the
> persistence unit definitions that it contains.
> {quote}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list