[jboss-svn-commits] JBL Code SVN: r30551 - labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Dec 8 13:46:15 EST 2009


Author: dward
Date: 2009-12-08 13:46:15 -0500 (Tue, 08 Dec 2009)
New Revision: 30551

Modified:
   labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpMessageComposer.java
Log:
https://jira.jboss.org/jira/browse/JBESB-3043


Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpMessageComposer.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpMessageComposer.java	2009-12-08 18:31:20 UTC (rev 30550)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/http/HttpMessageComposer.java	2009-12-08 18:46:15 UTC (rev 30551)
@@ -30,6 +30,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -92,6 +93,19 @@
         responseHeaderFilterset.add("content-length");
         responseHeaderFilterset.add("server");
     }
+    
+    private static final Map<String,String> localAddr_to_localName = new ConcurrentHashMap<String,String>();
+    
+    // request.getLocalName() has proven expensive, so cache it
+    private static final String getLocalName(HttpServletRequest request) {
+    	String localAddr = request.getLocalAddr();
+    	String localName = localAddr_to_localName.get(localAddr);
+    	if (localName == null) {
+    		localName = request.getLocalName();
+    		localAddr_to_localName.put(localAddr, localName);
+    	}
+    	return localName;
+    }
 
     /*
 	 * Method for configue the payload proxy
@@ -114,7 +128,6 @@
 	/*
 	 *Method for populating the ESB aware message from a HttpServletRequest
 	 */
-	@SuppressWarnings("unchecked")
 	protected void populateMessage(Message message, T requestWrapper) throws MessageDeliverException {
 		HttpServletRequest request = requestWrapper.getRequest();
 		byte[] bodyBytes = null;
@@ -177,11 +190,9 @@
     /*
     * Method for decompsing a esb message to a HttpServletResponse
     */
-	@SuppressWarnings("unchecked")
 	public Object decompose(Message message, T requestWrapper) throws MessageDeliverException {
         HttpServletRequest request = requestWrapper.getRequest();
         HttpServletResponse  response = requestWrapper.getResponse();
-        Map<String, String> headers;
         Integer status = HttpServletResponse.SC_OK;
         String encoding = null;
         HttpResponse responseInfo = org.jboss.soa.esb.http.HttpResponse.getResponse(message);
@@ -253,6 +264,7 @@
 	 * @return Request information includes the http header and other information parsed by
 	 *         servlet container from a servlet request
 	 */
+	@SuppressWarnings("unchecked")
 	public HttpRequest getRequestInfo(HttpServletRequest request) {
         HttpRequest requestInfo = new org.jboss.soa.esb.http.HttpRequest();
 
@@ -261,7 +273,7 @@
         requestInfo.setContentType(request.getContentType());
         requestInfo.setContextPath(request.getContextPath());
         requestInfo.setLocalAddr(request.getLocalAddr());
-        requestInfo.setLocalName(request.getLocalName());
+        requestInfo.setLocalName(getLocalName(request));
         requestInfo.setMethod(request.getMethod());
         requestInfo.setProtocol(request.getProtocol());
         requestInfo.setQueryString(request.getQueryString());



More information about the jboss-svn-commits mailing list