Author: azeez
Date: Tue Dec 13 12:56:15 2011
New Revision: 1213668
URL: http://svn.apache.org/viewvc?rev=1213668&view=rev
Log:
Dispatch *.foo.com sort of request hosts to clusters mapped to foo.com
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ServiceLoadBalanceMembershipHandler.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ServiceLoadBalanceMembershipHandler.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ServiceLoadBalanceMembershipHandler.java?rev=1213668&r1=1213667&r2=1213668&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ServiceLoadBalanceMembershipHandler.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ServiceLoadBalanceMembershipHandler.java
Tue Dec 13 12:56:15 2011
@@ -96,10 +96,7 @@ public class ServiceLoadBalanceMembershi
}
public Member getNextApplicationMember(String host) {
- DomainAlgorithmContext domainAlgorithmContext =
hostDomainAlgorithmContextMap.get(host);
- if(domainAlgorithmContext == null) {
- throw new SynapseException("Domain not found for host" + host);
- }
+ DomainAlgorithmContext domainAlgorithmContext =
getDomainAlgorithmContext(host);
String lbDomain = domainAlgorithmContext.getDomain();
LoadbalanceAlgorithm algorithm = domainAlgorithmContext.getAlgorithm();
GroupManagementAgent groupMgtAgent =
clusteringAgent.getGroupManagementAgent(lbDomain);
@@ -115,6 +112,19 @@ public class ServiceLoadBalanceMembershi
return algorithm.getNextApplicationMember(context);
}
+ private DomainAlgorithmContext getDomainAlgorithmContext(String host) {
+ DomainAlgorithmContext domainAlgorithmContext =
hostDomainAlgorithmContextMap.get(host);
+ if(domainAlgorithmContext == null) {
+ int indexOfDot;
+ if ((indexOfDot = host.indexOf(".")) != -1) {
+ domainAlgorithmContext =
getDomainAlgorithmContext(host.substring(indexOfDot + 1));
+ } else {
+ throw new SynapseException("Domain not found for host" + host);
+ }
+ }
+ return domainAlgorithmContext;
+ }
+
public LoadbalanceAlgorithm getLoadbalanceAlgorithm() {
return null;
}