[jboss-cvs] JBossAS SVN: r111866 - in projects/ejb3/branches/jboss-ejb3-proxy-clustered-1.0.3_JBPAPP-6914: src/main/java/org/jboss/ejb3/proxy/clustered/registry and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jul 27 15:49:36 EDT 2011
Author: bmaxwell
Date: 2011-07-27 15:49:36 -0400 (Wed, 27 Jul 2011)
New Revision: 111866
Modified:
projects/ejb3/branches/jboss-ejb3-proxy-clustered-1.0.3_JBPAPP-6914/
projects/ejb3/branches/jboss-ejb3-proxy-clustered-1.0.3_JBPAPP-6914/src/main/java/org/jboss/ejb3/proxy/clustered/registry/ProxyClusteringRegistry.java
Log:
[JBPAPP-6914] allow default load balance policy to be configured
Property changes on: projects/ejb3/branches/jboss-ejb3-proxy-clustered-1.0.3_JBPAPP-6914
___________________________________________________________________
Added: svn:mergeinfo
+ /projects/ejb3/trunk/proxy-clustered:111863
Modified: projects/ejb3/branches/jboss-ejb3-proxy-clustered-1.0.3_JBPAPP-6914/src/main/java/org/jboss/ejb3/proxy/clustered/registry/ProxyClusteringRegistry.java
===================================================================
--- projects/ejb3/branches/jboss-ejb3-proxy-clustered-1.0.3_JBPAPP-6914/src/main/java/org/jboss/ejb3/proxy/clustered/registry/ProxyClusteringRegistry.java 2011-07-27 19:43:02 UTC (rev 111865)
+++ projects/ejb3/branches/jboss-ejb3-proxy-clustered-1.0.3_JBPAPP-6914/src/main/java/org/jboss/ejb3/proxy/clustered/registry/ProxyClusteringRegistry.java 2011-07-27 19:49:36 UTC (rev 111866)
@@ -81,7 +81,11 @@
private Map<String, ProxyClusteringInfo> beanInfosByProxyFactory = new ConcurrentHashMap<String, ProxyClusteringInfo>();
/** HATargets for each container, stored in a map keyed by family name */
private ConcurrentMap<String, Map<String, HATarget>> haTargetsByContainerName = new ConcurrentHashMap<String, Map<String, HATarget>>();
-
+
+ /* JBPAPP-6869 - configure default load balance policy */
+ private Class defaultLoadBalancePolicyClass = RoundRobin.class;
+ private Class defaultStickyLoadBalancePolicyClass = FirstAvailable.class;
+
// --------------------------------------------------------------------------------||
// Required Implementations -------------------------------------------------------||
// --------------------------------------------------------------------------------||
@@ -271,6 +275,27 @@
this.loadBalancePolicies = loadBalancePolicies;
}
+ public String getDefaultLoadBalancePolicy()
+ {
+ return defaultLoadBalancePolicyClass.getName();
+ }
+ public void setDefaultLoadBalancePolicy(String defaultLoadBalancePolicy)
+ {
+ log.debug("Changing default Load Balance Policy to " + defaultLoadBalancePolicy);
+ this.defaultLoadBalancePolicyClass = classForPolicy(defaultLoadBalancePolicy);
+ }
+
+ public String getDefaultStickyLoadBalancePolicy()
+ {
+ return defaultStickyLoadBalancePolicyClass.getName();
+ }
+
+ public void setDefaultStickyLoadBalancePolicy(String defaultStickyLoadBalancePolicy)
+ {
+ log.debug("Changing default Sticky Load Balance Policy to " + defaultStickyLoadBalancePolicy);
+ this.defaultStickyLoadBalancePolicyClass = classForPolicy(defaultStickyLoadBalancePolicy);
+ }
+
// --------------------------------------------------------------------------------||
// Private ------------------------------------------------------------------------||
// --------------------------------------------------------------------------------||
@@ -291,46 +316,16 @@
{
if (lbpClassKey == null || lbpClassKey.length() == 0 || lbpClassKey.equals(ClusteredDefaults.LOAD_BALANCE_POLICY_DEFAULT))
{
- return defaultSticky ? FirstAvailable.class : RoundRobin.class;
+ //return defaultSticky ? FirstAvailable.class : RoundRobin.class;
+ return defaultSticky ? defaultStickyLoadBalancePolicyClass : defaultLoadBalancePolicyClass;
}
else
{
Class<LoadBalancePolicy> lbPolicyClass = loadBalancePolicies == null ? null : loadBalancePolicies.get(lbpClassKey);
+
if (lbPolicyClass == null)
- {
- // Try to use the string as a classname
- String className = lbpClassKey;
-
- // If it's a simple string, prepend a standard package
- if (lbpClassKey.indexOf('.') < 0)
- {
- className = RoundRobin.class.getPackage().getName() + "." + lbpClassKey;
- }
-
- try
- {
- lbPolicyClass = (Class<LoadBalancePolicy>) Thread.currentThread().getContextClassLoader().loadClass(className);
- }
- catch (ClassNotFoundException e)
- {
- // If it's a simple string, prepend a different standard package
- if (lbpClassKey.indexOf('.') < 0)
- {
- className = FirstAvailable.class.getPackage().getName() + "." + lbpClassKey;
- try
- {
- lbPolicyClass = (Class<LoadBalancePolicy>) Thread.currentThread().getContextClassLoader().loadClass(className);
- }
- catch (ClassNotFoundException ignored) {}
- }
-
- if (lbPolicyClass == null)
- {
- throw new IllegalStateException("Cannot determine LoadBalancePolicy class for key " + lbpClassKey);
- }
- }
- }
-
+ lbPolicyClass = classForPolicy(lbpClassKey);
+
return lbPolicyClass;
}
}
@@ -347,6 +342,40 @@
Map<String, HATarget> containerMap = getHATargets(containerName);
containerMap.put(familyName, info.getHaTarget());
}
+
+ private Class classForPolicy(String lbpClassKey)
+ {
+ String className = lbpClassKey;
+ Class lbPolicyClass = null;
+
+ // If it's a simple string, prepend a standard package
+ if (lbpClassKey.indexOf('.') < 0)
+ {
+ className = RoundRobin.class.getPackage().getName() + "." + lbpClassKey;
+ }
+ try
+ {
+ lbPolicyClass = (Class<LoadBalancePolicy>) Thread.currentThread().getContextClassLoader().loadClass(className);
+ }
+ catch (ClassNotFoundException e)
+ {
+ // If it's a simple string, prepend a different standard package
+ if (lbpClassKey.indexOf('.') < 0)
+ {
+ className = FirstAvailable.class.getPackage().getName() + "." + lbpClassKey;
+ try
+ {
+ lbPolicyClass = (Class<LoadBalancePolicy>) Thread.currentThread().getContextClassLoader().loadClass(className);
+ }
+ catch (ClassNotFoundException ignored) {}
+ }
+ if (lbPolicyClass == null)
+ {
+ throw new IllegalStateException("Cannot determine LoadBalancePolicy class for key " + lbpClassKey);
+ }
+ }
+ return lbPolicyClass;
+ }
public static String getPartitionName(ClusterConfigMetaData metadata)
{
More information about the jboss-cvs-commits
mailing list