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 2014/05/01 09:22:20 UTC
git commit: Fetched incoming request port from axis2 message context
property TARGET_HOST
Repository: incubator-stratos
Updated Branches:
refs/heads/master 10bb2e15a -> 65b4f4f28
Fetched incoming request port from axis2 message context property TARGET_HOST
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/65b4f4f2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/65b4f4f2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/65b4f4f2
Branch: refs/heads/master
Commit: 65b4f4f28887008e46b21a5f4faab792e6a95672
Parents: 10bb2e1
Author: Imesh Gunaratne <im...@wso2.com>
Authored: Thu May 1 12:52:05 2014 +0530
Committer: Imesh Gunaratne <im...@wso2.com>
Committed: Thu May 1 12:52:05 2014 +0530
----------------------------------------------------------------------
.../TenantAwareLoadBalanceEndpoint.java | 34 +++++++++++++-------
1 file changed, 23 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/65b4f4f2/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 c426a1b..709ad10 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
@@ -233,7 +233,7 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
Port outgoingPort = findOutgoingPort(member, incomingPort);
if (outgoingPort == null) {
if (log.isErrorEnabled()) {
- log.error(String.format("Could not find port for proxy port %d in member %s", incomingPort,
+ log.error(String.format("Could not find the port for proxy port %d in member %s", incomingPort,
member.getMemberId()));
}
throwSynapseException(synCtx, 500, "Internal server error");
@@ -265,19 +265,29 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
* @throws MalformedURLException
*/
private int findIncomingPort(MessageContext synCtx) throws MalformedURLException {
+ org.apache.axis2.context.MessageContext msgCtx =
+ ((Axis2MessageContext) synCtx).getAxis2MessageContext();
try {
- URL url = new URL(extractUrl(synCtx));
- if(log.isDebugEnabled()) {
- log.debug("Incoming request port found: " + url.getPort());
+ Map headerMap = (Map) msgCtx.getProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
+ if (headerMap != null) {
+ String hostHeader = (String) headerMap.get(HTTP.TARGET_HOST);
+ int index = hostHeader.indexOf(':');
+ if (index != -1) {
+ int port = Integer.parseInt(hostHeader.trim().substring(index + 1));
+ if (log.isDebugEnabled()) {
+ log.debug("Incoming request port found: " + port);
+ }
+ return port;
+ }
}
- return url.getPort();
}
- catch (MalformedURLException e) {
+ catch (Exception e) {
if(log.isErrorEnabled()) {
- log.error("Could not extract port from incoming request", e);
+ log.error("Could not find incoming request port");
}
- throw e;
+ throwSynapseException(synCtx, 500, "Internal server error");
}
+ return -1;
}
/***
@@ -290,10 +300,12 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
private Port findOutgoingPort(Member member, int incomingPort) throws MalformedURLException {
if((member != null) && (member.getPorts() != null)) {
Port outgoingPort = member.getPort(incomingPort);
- if(log.isDebugEnabled()) {
- log.debug("Outgoing request port found: " + outgoingPort.getValue());
+ if(outgoingPort != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Outgoing request port found: " + outgoingPort.getValue());
+ }
+ return outgoingPort;
}
- return outgoingPort;
}
return null;
}