My use case is to implement Martin Fowler's Domain Model enterprise
design pattern with Unit Of Work and Data Mapper.
This UOW does not work with ThreadLocal in every app server due to
thread pooling.
So only solution to use different UOW storing mechanism in different layers;
session persistence in web container and pass UOW instance to the EJB
container and store it to TransactionSynchronizationRegistry. Of course
standalone Java client could use TrhreadLocal implementation.
In UOW static methods to manipulate current UOW instance (getCurrent(),
newCurrent() etc,) must some how decide which implementation to use.
Markku
On 12/31/2012 06:06 PM, David Jencks wrote:
On Dec 31, 2012, at 7:57 AM, Markku Saarela wrote:
Hi,
Has Java EE spec any API to determine is code running in EJB or WEB container?
no.
Or is there any better way than examine stacktrace?
I'm imagining that you have some library or perhaps CDI code that is called
from both a servlet and an ejb? Why do you care? Just to figure out why
something is working the way it is, or do you need to take different action
depending on what calls this code? You could pass appropriate context
information to the code in question from the caller.
david jencks
Rgds,
Markku