We're looking at moving Seam deeper into our infrastructure in order to take advantage of SMPCs (proper passivation, clustering, LRC, etc.). We have multiple entry points into our code, including JSF, JMS (MDB), Mail/Message Inflow (MDB) and Quartz (MDB). I'm trying to verify that we can make Seam things properly work when entering through all of these entry points.
With regards to using Seam from an MDB, the seam docs say the following (at least in the mail inflow section 21.2):
'Most Seam annotations will work inside a MDB but you musn't access the persistence context'
Is this true or is this leftover from an older version when Seam was broken in MDBs?
I verified that if I make my MDB a Seam component, the interceptors are called, contexts are set up and I can inject a SMPC just fine (via @In).
Obviously we can't start a long running conversation in this case (which is fine), but the SMPC seems to attach to the temporary conversation and does propagate down into further Seam components from there (our MDB).
Can anyone confirm that they're safely doing this same thing?
The reason I'm asking this is if we use a SMPC in our core components, we need to make sure that we can propagate / share the same SMPC all the way down into these core components, regardless of our entry point.