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 <[email protected]> Authored: Mon Mar 9 01:03:16 2015 +0530 Committer: Imesh Gunaratne <[email protected]> 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(),
