[wildfly-dev] How to deal with resource refs when deploying JPA container managed entity managers (WFLY-2841)

Scott Marlow smarlow at redhat.com
Fri Jan 31 10:11:06 EST 2014


On 01/31/2014 09:03 AM, Eduardo Martins wrote:
> IMHO this hint should not be needed, a PU referencing a java:comp or java:module datasource is already a hint that the PU will need a resource bound by another component bundled in same jar/war.

I suppose that we could notice a reference to the java:comp or 
java:module and give a warning that entity class enhancing/rewriting 
will be disabled, since the deployment will fail otherwise.

What I said before is still true though (about the other situations). 
In this case, we can automatically set the "don't start the persistence 
unit until late as possible" flag (Install phase).

>
> By the way I’m not really a fan of using java:comp in a PU, it sets an dependency on a EE component, and that doesn’t seem right. Wouldn't be preferable to use the original java:jboss/datasources/ExampleDS JNDI name, or use an ear and define a java:app bind  at application.xml, to be shared by all modules and components?
>
> —E
>
>
> On 31 Jan 2014, at 13:13, Scott Marlow <smarlow at redhat.com> wrote:
>
>> Great, thanks for reporting the issue Martin!  Great to bring more
>> awareness of the deployment problem and workaround.
>>
>> Scott
>> On 01/31/2014 08:04 AM, Martin Andersson wrote:
>>> Thanks a lot!
>>>
>>> I can confirm that the app works now.
>>>
>>> Br,
>>> Martin Andersson
>>> Java EE developer at www.purplescout.se <http://www.purplescout.se>
>>>
>>>
>>> On Fri, Jan 31, 2014 at 1:55 PM, Scott Marlow <smarlow at redhat.com
>>> <mailto:smarlow at redhat.com>> wrote:
>>>
>>>     Hi Arjan,
>>>
>>>     Great catch!  Your change and adding an persistence unit hint that the
>>>     persistence unit doesn't need to be started early:
>>>
>>>         <property name="wildfly.jpa.twophasebootstrap" value="false"/>
>>>
>>>     Helps the deployment succeed.
>>>
>>>     It looks like ResourceReferenceProcessor is running during the
>>>     Phase.POST_MODULE deployment phase, so we need to add a hint to the
>>>     persistence.xml, that helps the persistence unit deploy later.
>>>
>>>     [6]
>>>     https://github.com/wildfly/wildfly/blob/master/ee/src/main/java/org/jboss/as/ee/subsystem/EeSubsystemAdd.java#L194
>>>
>>>     Scott
>>>
>>>     On 01/31/2014 06:25 AM, arjan tijms wrote:
>>>> Hi,
>>>>
>>>> I looks like there's one bug in the example.
>>>>
>>>> jboss-web.xml defines jdbc/MyDS
>>>>
>>>> But persistence.xml references java:comp/env/MyDS
>>>>
>>>> Shouldn't the last one be at least java:comp/env/jdbc/MyDS?
>>>     Regardless,
>>>> even with matching names it indeed doesn't work.
>>>>
>>>> Kind regards,
>>>> Arjan Tijms
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Jan 30, 2014 at 9:52 PM, Scott Marlow <smarlow at redhat.com
>>>     <mailto:smarlow at redhat.com>
>>>> <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>>> wrote:
>>>>
>>>>     WFLY-2841 reports a deployment failure that occurs when a
>>>     deployments
>>>>     [1] persistence.xml, tries to use a resource reference [2]
>>>     for the
>>>>     datasource [3].  The error [4] mentions an unresolved
>>>     (DataSource)
>>>>     service dependency that is added to the persistence unit
>>>     service [5],
>>>>     instead of resolving the resource reference (and using the
>>>     underlying
>>>>     DataSource).
>>>>
>>>>     How should we handle resource references for this case?  Is
>>>     there a way
>>>>     to resolve the resource reference directly from deployers?
>>>       Or do we
>>>>     represent the resource reference as a service?
>>>>
>>>>     Scott
>>>>
>>>>     [1] test app is at https://github.com/umartin/wfds/
>>>>
>>>>     [2] jboss-web.xml
>>>>     <jboss-web>
>>>>               <context-root>/wfds</context-root>
>>>>               <resource-ref>
>>>>                       <res-ref-name>jdbc/MyDS</res-ref-name>
>>>>                       <res-type>javax.sql.DataSource</res-type>
>>>>
>>>>       <jndi-name>java:jboss/datasources/ExampleDS</jndi-name>
>>>>               </resource-ref>
>>>>     </jboss-web>
>>>>
>>>>     [3] persistence.xml pu def
>>>>     <persistence-unit name="wfdsPU" transaction-type="JTA">
>>>>               <jta-data-source>java:comp/env/MyDS</jta-data-source>
>>>>     </persistence-unit>
>>>>
>>>>     [4] {"JBAS014771: Services with missing/unavailable
>>>     dependencies" =>
>>>>
>>>     ["jboss.persistenceunit.\"wfds-1.0-SNAPSHOT.war#wfdsPU\".__FIRST_PHASE__
>>>>     is missing
>>>>
>>>     [jboss.naming.context.java.module.\"wfds-1.0-SNAPSHOT\".\"wfds-1.0-SNAPSHOT\".env.MyDS]"]}
>>>>
>>>>
>>>>     [5]
>>>>
>>>     https://github.com/wildfly/wildfly/blob/master/jpa/core/src/main/java/org/jboss/as/jpa/processor/PersistenceUnitServiceHandler.java#L358
>>>>     _______________________________________________
>>>>     wildfly-dev mailing list
>>>> wildfly-dev at lists.jboss.org <mailto:wildfly-dev at lists.jboss.org>
>>>     <mailto:wildfly-dev at lists.jboss.org
>>>     <mailto:wildfly-dev at lists.jboss.org>>
>>>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>>>
>>>>
>>>
>>>     _______________________________________________
>>>     wildfly-dev mailing list
>>>     wildfly-dev at lists.jboss.org <mailto:wildfly-dev at lists.jboss.org>
>>>     https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>>
>>>
>>>
>>>
>>> --
>>> Hälsningar,
>>> Martin Andersson
>>> Purple Scout AB
>>> +46 732 05 14 01
>>
>> _______________________________________________
>> wildfly-dev mailing list
>> wildfly-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>



More information about the wildfly-dev mailing list