You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/03/08 20:33:31 UTC

stratos git commit: Adding tenant event receiver thread in load balancer

Repository: stratos
Updated Branches:
  refs/heads/master 1d3924f3e -> 7372d0376


Adding tenant event receiver thread in load balancer


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/7372d037
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/7372d037
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/7372d037

Branch: refs/heads/master
Commit: 7372d0376b2a99a5a11860a8b2b95626b7884572
Parents: 1d3924f
Author: Imesh Gunaratne <im...@apache.org>
Authored: Mon Mar 9 01:03:16 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Mon Mar 9 01:03:16 2015 +0530

----------------------------------------------------------------------
 .../TenantAwareLoadBalanceEndpoint.java         | 55 ++++++--------------
 .../internal/LoadBalancerServiceComponent.java  | 15 +++++-
 2 files changed, 30 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/7372d037/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
index f203f5c..a71c7a8 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
@@ -417,42 +417,6 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
     }
 
     /**
-     * Get members private or public ip according to load balancer configuration.
-     *
-     * @param synCtx
-     * @param member
-     * @return
-     */
-//    private String getMemberIp(MessageContext synCtx, Member member) {
-//        if (LoadBalancerConfiguration.getInstance().isTopologyEventListenerEnabled()) {
-//            if (LoadBalancerConfiguration.getInstance().getTopologyMemberIpType() == MemberIpType.Public) {
-//                // Return member's public IP address
-//                if (StringUtils.isBlank(member.getDefaultPublicIP())) {
-//                    if (log.isErrorEnabled()) {
-//                        log.error(String.format("Member public IP address not found: [member] %s", member.getMemberId()));
-//                    }
-//                    throwSynapseException(synCtx, 500, "Internal server error");
-//                }
-//                if (log.isDebugEnabled()) {
-//                    log.debug(String.format("Using member public IP address: [member] %s [ip] %s", member.getMemberId(), member.getDefaultPublicIP()));
-//                }
-//                return member.getDefaultPublicIP();
-//            }
-//        }
-//        // Return member's private IP address
-//        if (StringUtils.isBlank(member.getDefaultPrivateIP())) {
-//            if (log.isErrorEnabled()) {
-//                log.error(String.format("Member IP address not found: [member] %s", member.getMemberId()));
-//            }
-//            throwSynapseException(synCtx, 500, "Internal server error");
-//        }
-//        if (log.isDebugEnabled()) {
-//            log.debug(String.format("Using member IP address: [member] %s [ip] %s", member.getMemberId(), member.getDefaultPrivateIP()));
-//        }
-//        return member.getDefaultPrivateIP();
-//    }
-
-    /**
      * Extract incoming request URL from message context.
      *
      * @param synCtx
@@ -509,6 +473,11 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
         return tenantId;
     }
 
+    /**
+     * Check tenant exists.
+     * @param tenantId
+     * @return
+     */
     private boolean tenantExists(int tenantId) {
         try {
             TenantManager.acquireReadLock();
@@ -518,6 +487,11 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
         }
     }
 
+    /**
+     * Find tenant id from tenant domain.
+     * @param tenantDomain
+     * @return
+     */
     private int findTenantIdFromTenantDomain(String tenantDomain) {
         try {
             TenantManager.acquireReadLock();
@@ -531,10 +505,13 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
         }
     }
 
+    /**
+     * Extract target host from incoming request.
+     * @param synCtx
+     * @return
+     */
     private String extractTargetHost(MessageContext synCtx) {
-        org.apache.axis2.context.MessageContext msgCtx =
-                ((Axis2MessageContext) synCtx).getAxis2MessageContext();
-
+        org.apache.axis2.context.MessageContext msgCtx = ((Axis2MessageContext) synCtx).getAxis2MessageContext();
         Map headerMap = (Map) msgCtx.getProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
         String hostName = null;
         if (headerMap != null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/7372d037/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
index 33735dc..2532d96 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
@@ -42,6 +42,7 @@ import org.apache.stratos.load.balancer.util.LoadBalancerConstants;
 import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilter;
 import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
 import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
+import org.apache.stratos.messaging.message.receiver.tenant.TenantEventReceiver;
 import org.apache.synapse.config.SynapseConfiguration;
 import org.apache.synapse.config.xml.MultiXMLConfigurationBuilder;
 import org.apache.synapse.core.SynapseEnvironment;
@@ -91,6 +92,7 @@ public class LoadBalancerServiceComponent {
     private boolean activated = false;
     private ExecutorService executorService;
     private LoadBalancerTopologyEventReceiver topologyEventReceiver;
+    private TenantEventReceiver tenantEventReceiver;
     private LoadBalancerDomainMappingEventReceiver domainMappingEventReceiver;
     private LoadBalancerCommonApplicationSignUpEventReceiver applicationSignUpEventReceiver;
     private LoadBalancerStatisticsNotifier statisticsNotifier;
@@ -131,7 +133,8 @@ public class LoadBalancerServiceComponent {
             }
 
             if (configuration.isMultiTenancyEnabled() || configuration.isDomainMappingEnabled()) {
-                // Start application signup event receiver
+                // Start tenant & application signup event receivers
+                startTenantEventReceiver(executorService);
                 startApplicationSignUpEventReceiver(executorService, topologyProvider);
             }
 
@@ -217,6 +220,16 @@ public class LoadBalancerServiceComponent {
         }
     }
 
+    private void startTenantEventReceiver(ExecutorService executorService) {
+
+        tenantEventReceiver = new TenantEventReceiver();
+        tenantEventReceiver.setExecutorService(executorService);
+        tenantEventReceiver.execute();
+        if (log.isInfoEnabled()) {
+            log.info("Tenant event receiver thread started");
+        }
+    }
+
     private void startStatisticsNotifier(TopologyProvider topologyProvider) {
         // Start stats notifier thread
         statisticsNotifier = new LoadBalancerStatisticsNotifier(LoadBalancerStatisticsCollector.getInstance(),