An FYI.
I'm about to implement a refactor of load balance policies as discussed on
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=120423. Basic goal is to
create an LBP interface that doesn't leak the legacy Invocation class into the API.
Basically, I'll:
1) Create a clean interface org.jboss.ha.client.loadbalance.LoadBalancePolicy
2) Existing o.j.ha.framework.interfaces.LoadBalancePolicy will extend this base interface
to include the legacy methods that leak classes.
3) Will write parallel versions of the standard LBP impls (RoundRobin, etc) that only
implement the clean interface. None of them needed the legacy methods to function.
4) Change the type of all references to the legacy interface with the clean interface
(e.g. @Clustered, StatefulClusteredBeanProxy, StatelessClusteredBeanProxy, etc.) I've
tested that clients with legacy versions of these classes on their classpath will have no
trouble deserializing proxies if I do this, as long as the class of the actual serialized
LBP impl is available to them.
All this is straightforward enough.
Bit awkward is the handling of the default value for @Clustered.loadBalancePolicy.
Currently it's the legacy LoadBalancePolicy interface class. We need to change that
to the new interface or we leak the old Invocation class.
Question is what do we do if people leave the default attribute value. A user leaving the
default value basically is saying "let the container pick an impl". Currently
the container picks the *legacy* impls of RoundRobin or FirstAvailable. Now we have a
choice:
1) Pick one of the new impls. This will break existing clients who don't have the new
clients on their classpath. (They can easily fix this by putting the new clients on their
classpath or by changing their @Clustered annotation to specify the legacy impl).
2) Pick the same legacy impls as before. This forces new clients to include the legacy
Invocation classes on their classpath.
My vote is for #1. Any other opinions?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4105146#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...