[jboss-jira] [JBoss JIRA] (WFLY-2727) @DataSourceDefinition defined data source can't be used in persistence.xml
Scott Marlow (JIRA)
issues at jboss.org
Wed Jan 8 13:26:33 EST 2014
[ https://issues.jboss.org/browse/WFLY-2727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12934548#comment-12934548 ]
Scott Marlow commented on WFLY-2727:
------------------------------------
Yes, if applications use both a @DataSourceDefinition and entity class listeners that use CDI, they will not work correctly. There is a Hibernate change that we have discussed that will help in the future (so at least Hibernate will work correctly).
There was some discussion here [https://java.net/projects/jpa-spec/lists/jsr338-experts/archive/2013-06/thread/1#00000] about the two phase persistence unit bootstrap idea. I think that this will be addressed when all persistence providers implement a 2-phase bootstrap approach to starting the EntityManagerFactory and defer use of the datasource until the second phase. Currently, Hibernate uses the datasource in the phase boot strap phase. Note that we implemented an extension in Hibernate to allow the persistence unit to be created in two phases. When/if the extension is standardized as part of some future JPA spec release, hopefully we will have all persistence providers (in their new releases) implementing it.
> @DataSourceDefinition defined data source can't be used in persistence.xml
> --------------------------------------------------------------------------
>
> Key: WFLY-2727
> URL: https://issues.jboss.org/browse/WFLY-2727
> Project: WildFly
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: EE, JPA / Hibernate
> Affects Versions: 8.0.0.CR1
> Reporter: arjan tijms
> Assignee: Scott Marlow
>
> Defining a data source from within the application using either {{@DataSourceDefinition}} on a class or the {{data-source}} element in {{web.xml}}, and then using this in {{persistence.xml}} will cause a deployment failure.
> E.g.
> {code:xml|title=web.xml}
> <data-source>
> <name>java:app/MyApp/MyDS</name>
> <class-name>org.h2.jdbcx.JdbcDataSource</class-name>
> <url>jdbc:h2:mem:test</url>
> </data-source>
> {code}
> and
> {code:xml|title=persistence.xml}
> <persistence-unit name="testPU">
> <jta-data-source>java:app/MyApp/MyDS</jta-data-source>
> </persistence-unit>
> {code}
> will result in:
> {noformat}
> ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 3) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "dca783dd-b383-4a16-85a4-1331a2f89354.war")]) - failure description: {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"dca783dd-b383-4a16-85a4-1331a2f89354.war#testPU\".__FIRST_PHASE__ is missing [jboss.naming.context.java.app.dca783dd-b383-4a16-85a4-1331a2f89354.MyApp.MyDS]"]}
> ERROR [org.jboss.as.server] (management-handler-thread - 3) JBAS015870: Deploy of deployment "dca783dd-b383-4a16-85a4-1331a2f89354.war" was rolled back with the following failure message: {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"dca783dd-b383-4a16-85a4-1331a2f89354.war#testPU\".__FIRST_PHASE__ is missing [jboss.naming.context.java.app.dca783dd-b383-4a16-85a4-1331a2f89354.MyApp.MyDS]"]}
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list