On Jul 4, 2008, at 2:25 PM, Jacek Laskowski wrote:
> On Thu, Jul 3, 2008 at 1:24 AM, David Blevins (JIRA)
> <
jira@...> wrote:
>> @Resource UserTransaction injection on bean with Container-Managed
>> Transactions
>> -------------------------------------------------------------------------------
>>
>> Key: OPENEJB-847
>> URL:
https://issues.apache.org/jira/browse/OPENEJB-847>> Project: OpenEJB
>> Issue Type: Sub-task
>> Reporter: David Blevins
>
> I'm going to work on it, but wonder why checkAttributes(new
> TransactionAttributeHandler(assemblyDescriptor, ejbName), ejbName,
> ejbModule, classFinder, "invalidTransactionAttribute"); is in
> AnnnotationDeployer not AppValidator
We generally shoot to keep validation out of the AnnotationDeployer
but that seemed like one of those cases where 80% of the logic would
have to be duplicated if we moved it out.
> Should I do the check for @Resource
> UserTransaction in AppValidator? It seems to be the best place for it.
I'd say yes. In the AppValidator we wouldn't exactly know if the
UserTransaction ref originated in xml or annotation, but I don't think
it strictly matters. You can just check the resource-env-ref elements
of the jaxb tree and ... well i guess there's a couple things we
could do. We could:
- issue a warning, then automatically remove the UserTransaction ref
and let deployment continue
- issue a failure which will of course fail the deployment
There could be good arguments for either one. Thoughts?
-David