"wolfc" wrote : 2. The relationship between remote business interfaces and
remote bindings is as of yet not properly specified.
True statement.
"wolfc" wrote : The goal is to give the bean developer the ability to specify a
client bind url per remote business interface
Did you make that up just now? Where is this defined? :) Kinda goes against the idea of
@RemoteBinding(s) at the class-level.
Historically, we've only made available one type of Proxy in JNDI (for each local and
remote), which supported EJB2.x Interfaces, EJB2.x Home Interfaces, and EJB3 Business
Interfaces. Now we have:
* Eliminated the binding of EJB2.x Proxies entirely (they may only be obtained via
Home.create())
* An EJB3.0 Business Default Business Proxy (the most widely-used client lookup target,
which supports each of the business interfaces bound)
* An EJB3.0 Business Interface-Specific Proxy (one per bound business interface, these are
used as injection/ENC lookup targets and are loaded with the stuff that gives
getInvokedBusinessInterface() contextual information).
* An EJB2.x Home Proxy, which may be bound to the same Proxy as the EJB3 Default Business
Interface.
So I read many @RemoteBindings as targeted to expose any N number of bindings for the
Default Business Interface Proxy.
So if we have:
@RemoteBinding(jndiBinding="Busi1")
| public interface MyBusinessInterface1{...}
|
| @RemoteBinding(jndiBinding="Busi2")
| public interface MyBusinessInterface2{...}
|
| public interface MyBusinessInterface3{...}
|
| @Stateless
| @RemoteBindings({
| @RemoteBinding(jndiBinding="MyBean")
| @RemoteBinding(jndiBinding="MySSLBean",
clientBindUrl="sslsocket://0.0.0.0:3843")
| })
| public class MyBean implements MyBusinessInterface1, MyBusinessInterface2,
MyBusinessInterface3{...}
..then we've defined @RemoteBindings at both the interface and EJB level. As a user
I'd expect to find in the JNDI Tree:
+ Busi1 (Proxy implements MyBusinessInterface1)
| + Busi2 (Proxy implements MyBusinessInterface2)
| + MyBean (Proxy implements MyBusinessInterface1, MyBusinessInterface2,
MyBusinessInterface3)
| + MySSLBean ((Proxy implements MyBusinessInterface1, MyBusinessInterface2,
MyBusinessInterface3) < Exposes SSL Transport
This way, an interface-targeted JNDI Binding is specified at the interface level, and any
@RemoteBinding(s) on the class level apply to all Remote Business Interfaces. And
it'd require no API changes.
S,
ALR
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4167201#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...