[cdi-dev] Inconsistency in the spec regarding remote EJBs

Antoine Sabot-Durand antoine at sabot-durand.net
Thu Jul 16 09:25:40 EDT 2015


Hi guys,


Bill Shanon, just pointed me to this test in TCK:

https://github.com/cdi-spec/cdi-tck/blob/1.2/impl/src/main/java/org/jboss/cdi/tck/tests/event/observer/resolve/enterprise/ResolveEnterpriseEventObserverTest.java <https://github.com/cdi-spec/cdi-tck/blob/1.2/impl/src/main/java/org/jboss/cdi/tck/tests/event/observer/resolve/enterprise/ResolveEnterpriseEventObserverTest.java>

It tests the following assertion:

"If the bean is a session bean, the observer method must be either a business method of the EJB or a static method of the bean class.”

The EJB containing the observers for the test is:

https://github.com/cdi-spec/cdi-tck/blob/1.2/impl/src/main/java/org/jboss/cdi/tck/tests/event/observer/resolve/enterprise/Spitz.java <https://github.com/cdi-spec/cdi-tck/blob/1.2/impl/src/main/java/org/jboss/cdi/tck/tests/event/observer/resolve/enterprise/Spitz.java>

The EJB contains one business method coming from a local interface, one from a remote and one static method. the 3 are observers methods

The test expects that the remote business observer method should be called.

Here we have an inconsistency IMO. By doing this we are violating rules the CDI spec regarding the fact that remote EJBs are not CDI beans. And we are calling this remote business method passing the event payload by reference and not by value which violates EJB specification regarding remote EJB.

I suggest that we change the assertion to: 

If the bean is a session bean, the observer method must be either a local business method of the EJB or a static method of the bean class.

and the TCK accordingly. Any thought ?

Antoine
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/cdi-dev/attachments/20150716/db3a89a0/attachment-0001.html 


More information about the cdi-dev mailing list