On 22 Oct 2008, at 06:12, Dan Allen wrote:

Ok, then we're going need different components.xml for JBoss 4.2 and JBoss 5.


Yes, in fact with any Java EE 5 container, we should make it a policy in the examples to assume that the container is taking care of the persistence unit rather than Seam. Seam should only step in when the container isn't willing or able (such as with JBoss AS 4.2).

What? This isn't something that is mandated by the EE5 spec so how does this work? Looking up the EMF over JNDI only works in JBoss. The problem here isn't about EMF lookup, it's about whether the container deploys the PU or not (JBoss 4.2 doesn't for a war, whilst JBoss 5 does).

Just as a side note, it would be really cool if we could have a way to configure the persistence in Seam such that Seam will look for the JNDI name and if that fails, it falls back to having Seam bootstrap the PU. This is a matter of putting both in place and letting Seam pick.

<persistence:managed-persistence-context name="entityManager"

<persistence:entity-manager-factory name="entityManagerFactoryUsedIfNecessary"

This is not vetted yet, but by adding the persistence-unit-jndi-name to the entity manager factory, it could disable Seam bootstrapping if the JNDI lookup returns a hit. Then, the managed persistence context goes through similar logic when it is being created.


Dan Allen
Software consultant | Author of Seam in Action


NOTE: While I make a strong effort to keep up with my email on a daily
basis, personal or other work matters can sometimes keep me away
from my email. If you contact me, but don't hear back for more than a week,
it is very likely that I am excessively backlogged or the message was
caught in the spam filters.  Please don't hesitate to resend a message if
you feel that it did not reach my attention.