[jboss-jira] [JBoss JIRA] (WFLY-1463) PersistenceUnitService depends on not-yet-available BeanManager
Scott Marlow (JIRA)
jira-events at lists.jboss.org
Thu Jul 11 22:21:21 EDT 2013
[ https://issues.jboss.org/browse/WFLY-1463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12789239#comment-12789239 ]
Scott Marlow commented on WFLY-1463:
------------------------------------
We create a proxy for the bean manager during the first phase (FIRST_MODULE_USE), which is later replaced during the second phase (INSTALL) with the real CDI bean manager. Its during the second phase that the bean manager is used for the first time.
Currently, only Hibernate integration code supports the two-phase org.jipijapa.plugin.spi.EntityManagerFactoryBuilder (https://github.com/jipijapa/jipijapa/blob/master/spi/src/main/java/org/jipijapa/plugin/spi/EntityManagerFactoryBuilder.java) but other persistence providers could also support the same concept (which we could enable with JipiJapa integration code).
> PersistenceUnitService depends on not-yet-available BeanManager
> ---------------------------------------------------------------
>
> Key: WFLY-1463
> URL: https://issues.jboss.org/browse/WFLY-1463
> Project: WildFly
> Issue Type: Bug
> Components: JPA / Hibernate
> Affects Versions: 8.0.0.Alpha1
> Reporter: Jozef Hartinger
> Assignee: Scott Marlow
> Fix For: 8.0.0.Alpha3
>
>
> I am getting
> {noformat}
> 17:12:25,453 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "jpa_txTimeoutTestWithMockProvider.ear")]) - failure description: {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"jpa_txTimeoutTestWithMockProvider.ear/ejbjar.jar#mypc\" is missing [jboss.deployment.subunit.\"jpa_txTimeoutTestWithMockProvider.ear\".\"ejbjar.jar\".beanmanager]"]}
> 17:12:25,459 ERROR [org.jboss.as.server] (management-handler-thread - 2) JBAS015870: Deploy of deployment "jpa_txTimeoutTestWithMockProvider.ear" was rolled back with the following failure message: {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"jpa_txTimeoutTestWithMockProvider.ear/ejbjar.jar#mypc\" is missing [jboss.deployment.subunit.\"jpa_txTimeoutTestWithMockProvider.ear\".\"ejbjar.jar\".beanmanager]"]}
> {noformat}
> The problem is caused by PersistenceUnitServiceHandler.deployPersistenceUnit() which, if the PU is deployed in a CDI-enabled archive, adds a dependency on the BeanManager service. This happens in PersistenceBeginInstallProcessor which executes in the FIRST_MODULE_USE phase.
> However, the BeanManager service is not installed by the Weld subsystem until the INSTALL phase.
> This can be reproduced easily. Take for example the org.jboss.as.test.integration.jpa.mockprovider.txtimeout.TxTimeoutTestCase and add an empty beans.xml file to the ejb jar (ejbjar.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml"))
> This issue blocks proper Weld integration (implicit bean archives).
--
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