You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2014/05/17 03:37:27 UTC
git commit: fixing lb port mapping handling issue
Repository: incubator-stratos
Updated Branches:
refs/heads/master aa27fba8d -> 83905b2d3
fixing lb port mapping handling issue
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/83905b2d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/83905b2d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/83905b2d
Branch: refs/heads/master
Commit: 83905b2d34025df6ba1bada8ee230249a3cd62a5
Parents: aa27fba
Author: Nirmal Fernando <ni...@apache.org>
Authored: Sat May 17 07:06:55 2014 +0530
Committer: Nirmal Fernando <ni...@apache.org>
Committed: Sat May 17 07:06:55 2014 +0530
----------------------------------------------------------------------
.../TenantAwareLoadBalanceEndpoint.java | 30 ++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/83905b2d/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 9e570fc..0dd0bd9 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
@@ -78,6 +78,8 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
/* Sessions time out interval */
private long sessionTimeout = -1;
+
+ private final static Pattern LAST_INT_PATTERN = Pattern.compile("[^0-9]+([0-9]+)$");
@Override
public void init(SynapseEnvironment synapseEnvironment) {
@@ -154,8 +156,17 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
private void setupLoadBalancerContextProperties(MessageContext synCtx, org.apache.axis2.clustering.Member currentMember) {
String lbHostName = extractTargetHost(synCtx);
org.apache.axis2.context.MessageContext axis2MsgCtx = ((Axis2MessageContext) synCtx).getAxis2MessageContext();
- TransportInDescription httpTransportIn = axis2MsgCtx.getConfigurationContext().getAxisConfiguration().getTransportIn("http");
- TransportInDescription httpsTransportIn = axis2MsgCtx.getConfigurationContext().getAxisConfiguration().getTransportIn("https");
+
+ String httpTransportName = "http", httpsTransportName = "https";
+ String transportId = getTransportId(extractIncomingTransport(synCtx));
+
+ if (transportId != null) {
+ httpsTransportName = httpsTransportName.concat(transportId);
+ httpTransportName = httpTransportName.concat(transportId);
+ }
+
+ TransportInDescription httpTransportIn = axis2MsgCtx.getConfigurationContext().getAxisConfiguration().getTransportIn(httpTransportName);
+ TransportInDescription httpsTransportIn = axis2MsgCtx.getConfigurationContext().getAxisConfiguration().getTransportIn(httpsTransportName);
String lbHttpPort = (String) httpTransportIn.getParameter("port").getValue();
String lbHttpsPort = (String) httpsTransportIn.getParameter("port").getValue();
String clusterId = currentMember.getProperties().getProperty(Constants.CLUSTER_ID);
@@ -165,6 +176,16 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
synCtx.setProperty(Constants.LB_HTTPS_PORT, lbHttpsPort);
synCtx.setProperty(Constants.CLUSTER_ID, clusterId);
}
+
+ protected String getTransportId(String incomingTransportName) {
+ // pattern match and find the transport id.
+ Matcher matcher = LAST_INT_PATTERN.matcher(incomingTransportName);
+ if (matcher.find()) {
+ return matcher.group(1);
+ }
+
+ return null;
+ }
/**
@@ -506,6 +527,11 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
org.apache.axis2.context.MessageContext axis2MessageContext = ((Axis2MessageContext) synCtx).getAxis2MessageContext();
return axis2MessageContext.getTransportIn().getName();
}
+
+ private String extractIncomingTransport(MessageContext synCtx) {
+ org.apache.axis2.context.MessageContext axis2MessageContext = ((Axis2MessageContext) synCtx).getAxis2MessageContext();
+ return axis2MessageContext.getIncomingTransportName();
+ }
/**
* @param to get an endpoint to send the information