[Design of EJB 3.0] - Re: JBAS-2408 - EJB3 / JCA integration
by jesper.pedersen
Just a small update on the SPI work.
The EndpointActivationBusLocator isn't needed as the EndpointActivationBusManager should be injection using @Inject or through a -beans.xml file. The manager itself is installed in the microcontainer using a -beans.xml together with its dependencies. The manager is a singleton.
One dependency is currently the JCAMetaDataRepository as the manager needs information about the resource archives that have been installed. Furthermore the client can activate the endpoint using a set of properties -- and of course the client callback object (Endpoint).
I'm currently investigating the interaction with the EndpointActivation from a clients point of view using the EJB3 messaging container as the example.
The EJB3 messaging container currently relies on two classes: JBossMessageEndpointFactory and MessageInflowLocalProxy both in the org.jboss.ejb3.mdb.inflow package.
Most of the functionality in JBossMessageEndpointFactory will be replaced by the EndpointActivation and the callback object.
The task is to replace the MessageInflowLocalProxy with something on both sides - or some sort of callback that the client provides. The AOPEndpoint interface doesn't currently fit in here, since MessageInflowLocalProxy is an java.lang.reflect.InvocationHandler. The question is also how much of the JCA API we expose to the client.
I havn't investigated yet how the resolveRarContext method should be implemented, but properly a scan through the metadata and lookups in the microcontainer.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150845#4150845
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4150845
17 years, 11 months
[Design of EJB 3.0] - Re: Scope of the Proxy Component
by ALRubinger
So this debate is actually, "What *is* the scope of the Proxy Component?" :)
I maintain that Carlo's stated requirement is a "business requirement" of EJB3, and therefore should be tested by EJB3 Integration Tests. Additionally, I believe this is achieved through two "functional requirements" of disparate components:
* jboss-metadata must return Strings of the JNDI Names in correct form
* EJB3 Proxy must return appropriate proxies from whatever addresses are specified by jboss-metadata.
The fundamental difference is that I disagree with:
"wolfc" wrote : Clearly it is the responsibility of the proxy component to satisfy this requirement, so the test is a post condition for the component.
>From a more generic perspective, I'm not familiar with this notion of "Component Testing":
A is a Component
B consumes A
This forms another Component (A,B)
B is responsible for testing A to certify (A,B) is OK.
The above is from Carlo's reference http://www.faqs.org/faqs/software-eng/testing-faq/section-14.html
By the above definition, each component we have would be responsible for running acceptance tests on the libraries it consumes (dependent upon the risk factor at stake).
I'm more aligned with the Agile Community's stance on acceptance testing, which says that it's done at the user story (ie. final integration) level (http://en.wikipedia.org/wiki/Acceptance_testing#Acceptance_Testing_in_Ext...).
S,
ALR
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150836#4150836
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4150836
17 years, 11 months