[
https://jira.jboss.org/jira/browse/WELD-301?page=com.atlassian.jira.plugi...
]
Pete Muir commented on WELD-301:
--------------------------------
I am still surprised that EJB (or at lest the GlassFish implementation) doesn't
traverse the interface hierarchy looking for the @Local interface. Gavin, what do you
think the local business interfaces (as defined by the EJB spec) of this should be?
@Stateful
public class LightYellowPearTree extends YellowPearTree implements
LightYellowPearTreeLocal { // body ommitted}
class YellowPearTree extends PearTree { // body ommitted }
@Stateful
public class PearTree implements PearTreeLocal { // body omitted }
@Local
public interface LightYellowPearTreeLocal extends PearTreeLocal {// body omitted }
@Local
public interface PearTreeLocal { // body ommitted }
GlassFish currently only provides one EJB local business interface
(LightYellowPearTreeLocal) whilst JBoss AS gives us both. I would *expect* EJB to see both
PearTreeLocal and LightYellowPearTreeLocal as local business interfaces, given both are
annotated @Local and both appear in the class hierarchy (though PearTreeLocal isn't
directly extending/implementing)
ProducerMethod.checkProducerMethod only checked method declarations
in direct implemented interface and not super interfaces
----------------------------------------------------------------------------------------------------------------------------
Key: WELD-301
URL:
https://jira.jboss.org/jira/browse/WELD-301
Project: Weld
Issue Type: Bug
Affects Versions: 1.0.0.GA
Environment: X86/Ubuntu
Reporter: Hong Zhang
Assignee: Pete Muir
Priority: Critical
Fix For: 1.0.1.CR1
I am investigating the deployment failure when running
org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest.
The deployment failed due to some validation failure in weld RI code. It complains that
produceLightYellowPear method of LightYellowPearTree is not declared in
LightYellowPearTree business interface. But LightYellowTree implements
LightYellowPearTreeLocal which extends from PearTreeLocal which delares the
produceLightYellowPear method.
This seems a weld RI bug to me after stepping into the RI code:
In ProducerMethod.checkProducerMethod, when it's a session bean, it will check for
its implemented interface and super class for whether they declared this business method.
But the problem is it only goes to its direct implemented interface and not the interface
hierarchy. In this case it's true that the LightYellowPearTreeLocal does not declare
this method, but PearTreeLocal which the LightYellowPearTreeLocal extends from does
declare this method. The RI code should be modified to check for the whole interface
hierarchy and not just the direct implemented interface.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira