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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]