You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2008/03/08 00:00:00 UTC

svn commit: r634856 - in /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http: AbstractHTTPSender.java CommonsHTTPTransportSender.java server/AxisHttpResponseImpl.java

Author: dims
Date: Fri Mar  7 14:59:59 2008
New Revision: 634856

URL: http://svn.apache.org/viewvc?rev=634856&view=rev
Log:
working on AXIS2-2550, add support for simple map with key/value in addition to using Header's. Still researching changes on jaxws side for that bug

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java?rev=634856&r1=634855&r2=634856&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Fri Mar  7 14:59:59 2008
@@ -47,6 +47,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Iterator;
 import java.util.zip.GZIPInputStream;
 
 public abstract class AbstractHTTPSender {
@@ -534,17 +535,31 @@
         boolean isCustomUserAgentSet = false;
         // set the custom headers, if available
         Object httpHeadersObj = msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
-        if (httpHeadersObj != null && httpHeadersObj instanceof ArrayList) {
-            ArrayList httpHeaders = (ArrayList) httpHeadersObj;
-            Header header;
-            for (int i = 0; i < httpHeaders.size(); i++) {
-                header = (Header) httpHeaders.get(i);
-                if (HTTPConstants.HEADER_USER_AGENT.equals(header.getName())) {
-                    isCustomUserAgentSet = true;
+        if (httpHeadersObj != null) {
+            if (httpHeadersObj instanceof ArrayList) {
+                ArrayList httpHeaders = (ArrayList) httpHeadersObj;
+                Header header;
+                for (int i = 0; i < httpHeaders.size(); i++) {
+                    header = (Header) httpHeaders.get(i);
+                    if (HTTPConstants.HEADER_USER_AGENT.equals(header.getName())) {
+                        isCustomUserAgentSet = true;
+                    }
+                    method.addRequestHeader(header);
+                }
+    
+            }
+            if (httpHeadersObj instanceof Map) {
+                Map httpHeaders = (Map) httpHeadersObj;
+                for (Iterator iterator = httpHeaders.entrySet().iterator(); iterator.hasNext();) {
+                    Map.Entry entry  = (Map.Entry) iterator.next();
+                    String key = (String) entry.getKey();
+                    String value = (String) entry.getValue();
+                    if (HTTPConstants.HEADER_USER_AGENT.equals(key)) {
+                        isCustomUserAgentSet = true;
+                    }
+                    method.addRequestHeader(key, value);
                 }
-                method.addRequestHeader(header);
             }
-
         }
 
         if (!isCustomUserAgentSet) {

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?rev=634856&r1=634855&r2=634856&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java Fri Mar  7 14:59:59 2008
@@ -32,6 +32,7 @@
 import org.apache.axis2.transport.OutTransportInfo;
 import org.apache.axis2.transport.TransportSender;
 import org.apache.axis2.transport.TransportUtils;
+import org.apache.axis2.transport.http.server.AxisHttpResponseImpl;
 import org.apache.axis2.util.JavaUtils;
 import org.apache.commons.httpclient.Header;
 import org.apache.commons.httpclient.HttpException;
@@ -46,6 +47,7 @@
 import java.net.URL;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.zip.GZIPOutputStream;
 
 public class CommonsHTTPTransportSender extends AbstractHandler implements
@@ -259,6 +261,29 @@
                     if (header != null) {
                         servletBasedOutTransportInfo
                                 .addHeader(header.getName(), header.getValue());
+                    }
+                }
+            }
+        } else if (transportInfo instanceof AxisHttpResponseImpl) {
+            Object customHeaders = msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
+            if (customHeaders != null) {
+                if (customHeaders instanceof List) {
+                    Iterator iter = ((List) customHeaders).iterator();
+                    while (iter.hasNext()) {
+                        Header header = (Header) iter.next();
+                        if (header != null) {
+                            ((AxisHttpResponseImpl) transportInfo)
+                                    .addHeader(header.getName(), header.getValue());
+                        }
+                    }
+                } else if (customHeaders instanceof Map) {
+                    Iterator iter = ((Map) customHeaders).entrySet().iterator();
+                    while (iter.hasNext()) {
+                        Map.Entry header = (Map.Entry) iter.next();
+                        if (header != null) {
+                            ((AxisHttpResponseImpl) transportInfo)
+                                    .addHeader((String) header.getKey(), (String) header.getValue());
+                        }
                     }
                 }
             }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java?rev=634856&r1=634855&r2=634856&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java Fri Mar  7 14:59:59 2008
@@ -214,7 +214,7 @@
             try {
                 commit();
             } catch (HttpException ex) {
-                throw new IOException("HTTP protocol exception: " + ex.getMessage());
+                throw (IOException) new IOException().initCause(ex);  
             }
             if (this.out == null) {
                 this.out = conn.getOutputStream();



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org