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;
     }


Reply via email to