You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2017/01/16 17:20:49 UTC
svn commit: r1779070 - in /axis/axis2/java/core/branches/hermetic-tests: ./
modules/kernel/test/org/apache/axis2/description/java2wsdl/
modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/
modules/transport/http/sr...
Author: veithen
Date: Mon Jan 16 17:20:48 2017
New Revision: 1779070
URL: http://svn.apache.org/viewvc?rev=1779070&view=rev
Log:
Merge latest changes from trunk.
Modified:
axis/axis2/java/core/branches/hermetic-tests/ (props changed)
axis/axis2/java/core/branches/hermetic-tests/modules/kernel/test/org/apache/axis2/description/java2wsdl/XMLSchemaTest.java
axis/axis2/java/core/branches/hermetic-tests/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java
axis/axis2/java/core/branches/hermetic-tests/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/RequestImpl.java
axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/HTTPSender.java
axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/Request.java
axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java
Propchange: axis/axis2/java/core/branches/hermetic-tests/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 16 17:20:48 2017
@@ -1,3 +1,4 @@
/axis/axis2/java/core/branches/1_6:1295540
/axis/axis2/java/core/branches/AXIOM-420:1334386-1336397
/axis/axis2/java/core/branches/AXIS2-4318:1230452,1295542,1324772,1327468,1329571,1332141,1335355,1335357,1340985
+/axis/axis2/java/core/trunk:1779063-1779069
Modified: axis/axis2/java/core/branches/hermetic-tests/modules/kernel/test/org/apache/axis2/description/java2wsdl/XMLSchemaTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/hermetic-tests/modules/kernel/test/org/apache/axis2/description/java2wsdl/XMLSchemaTest.java?rev=1779070&r1=1779069&r2=1779070&view=diff
==============================================================================
--- axis/axis2/java/core/branches/hermetic-tests/modules/kernel/test/org/apache/axis2/description/java2wsdl/XMLSchemaTest.java (original)
+++ axis/axis2/java/core/branches/hermetic-tests/modules/kernel/test/org/apache/axis2/description/java2wsdl/XMLSchemaTest.java Mon Jan 16 17:20:48 2017
@@ -122,8 +122,9 @@ public abstract class XMLSchemaTest exte
public String readWSDLFromFile(String path) throws Exception {
- File file=new File(path);
- XMLPrettyPrinter.prettify(file); //this is used to correct unnecessary formatting in the file
+ // Don't do this; it will overwrite a file in the source tree (see AXIS2-5781).
+// File file=new File(path);
+// XMLPrettyPrinter.prettify(file); //this is used to correct unnecessary formatting in the file
return readFile(path);
}
Modified: axis/axis2/java/core/branches/hermetic-tests/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/hermetic-tests/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java?rev=1779070&r1=1779069&r2=1779070&view=diff
==============================================================================
--- axis/axis2/java/core/branches/hermetic-tests/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java (original)
+++ axis/axis2/java/core/branches/hermetic-tests/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java Mon Jan 16 17:20:48 2017
@@ -24,21 +24,14 @@ import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.zip.GZIPInputStream;
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.OMAttribute;
-import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.NamedValue;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.transport.http.AxisRequestEntity;
@@ -70,7 +63,6 @@ import org.apache.commons.httpclient.met
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.http.protocol.HTTP;
public class HTTPSenderImpl extends HTTPSender {
@@ -614,127 +606,4 @@ public class HTTPSenderImpl extends HTTP
}
}
- public void addCustomHeaders(HttpMethod method, MessageContext msgContext) {
-
- boolean isCustomUserAgentSet = false;
- // set the custom headers, if available
- Object httpHeadersObj = msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
- if (httpHeadersObj != null) {
- if (httpHeadersObj instanceof List) {
- List httpHeaders = (List) httpHeadersObj;
- for (int i = 0; i < httpHeaders.size(); i++) {
- NamedValue nv = (NamedValue) httpHeaders.get(i);
- if (nv != null) {
- Header header = new Header(nv.getName(), nv.getValue());
- 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);
- }
- }
- }
-
- // we have to consider the TRANSPORT_HEADERS map as well
- Map transportHeaders = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
- if (transportHeaders != null) {
- removeUnwantedHeaders(msgContext);
-
- Set headerEntries = transportHeaders.entrySet();
-
- for (Object headerEntry : headerEntries) {
- if (headerEntry instanceof Map.Entry) {
- Header[] headers = method.getRequestHeaders();
-
- boolean headerAdded = false;
- for (Header header : headers) {
- if (header.getName() != null
- && header.getName().equals(((Map.Entry) headerEntry).getKey())) {
- headerAdded = true;
- break;
- }
- }
-
- if (!headerAdded) {
- method.addRequestHeader(((Map.Entry) headerEntry).getKey().toString(),
- ((Map.Entry) headerEntry).getValue().toString());
- }
- }
- }
- }
-
- if (!isCustomUserAgentSet) {
- String userAgentString = getUserAgent(msgContext);
- method.setRequestHeader(HTTPConstants.HEADER_USER_AGENT, userAgentString);
- }
-
- }
-
- /**
- * Remove unwanted headers from the transport headers map of outgoing
- * request. These are headers which should be dictated by the transport and
- * not the user. We remove these as these may get copied from the request
- * messages
- *
- * @param msgContext
- * the Axis2 Message context from which these headers should be
- * removed
- */
- private void removeUnwantedHeaders(MessageContext msgContext) {
- Map headers = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
-
- if (headers == null || headers.isEmpty()) {
- return;
- }
-
- Iterator iter = headers.keySet().iterator();
- while (iter.hasNext()) {
- String headerName = (String) iter.next();
- if (HTTP.CONN_DIRECTIVE.equalsIgnoreCase(headerName)
- || HTTP.TRANSFER_ENCODING.equalsIgnoreCase(headerName)
- || HTTP.DATE_HEADER.equalsIgnoreCase(headerName)
- || HTTP.CONTENT_TYPE.equalsIgnoreCase(headerName)
- || HTTP.CONTENT_LEN.equalsIgnoreCase(headerName)) {
- iter.remove();
- }
- }
- }
-
- private String getUserAgent(MessageContext messageContext) {
- String userAgentString = "Axis2";
- boolean locked = false;
- if (messageContext.getParameter(HTTPConstants.USER_AGENT) != null) {
- OMElement userAgentElement = messageContext.getParameter(HTTPConstants.USER_AGENT)
- .getParameterElement();
- userAgentString = userAgentElement.getText().trim();
- OMAttribute lockedAttribute = userAgentElement.getAttribute(new QName("locked"));
- if (lockedAttribute != null) {
- if (lockedAttribute.getAttributeValue().equalsIgnoreCase("true")) {
- locked = true;
- }
- }
- }
- // Runtime overing part
- if (!locked) {
- if (messageContext.getProperty(HTTPConstants.USER_AGENT) != null) {
- userAgentString = (String) messageContext.getProperty(HTTPConstants.USER_AGENT);
- }
- }
-
- return userAgentString;
- }
-
}
Modified: axis/axis2/java/core/branches/hermetic-tests/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/RequestImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/hermetic-tests/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/RequestImpl.java?rev=1779070&r1=1779069&r2=1779070&view=diff
==============================================================================
--- axis/axis2/java/core/branches/hermetic-tests/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/RequestImpl.java (original)
+++ axis/axis2/java/core/branches/hermetic-tests/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/RequestImpl.java Mon Jan 16 17:20:48 2017
@@ -23,6 +23,7 @@ import java.net.URL;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.NamedValue;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.transport.http.AxisRequestEntity;
@@ -77,6 +78,21 @@ final class RequestImpl implements Reque
}
@Override
+ public void addHeader(String name, String value) {
+ method.addRequestHeader(name, value);
+ }
+
+ @Override
+ public NamedValue[] getRequestHeaders() {
+ Header[] headers = method.getRequestHeaders();
+ NamedValue[] result = new NamedValue[headers.length];
+ for (int i=0; i<headers.length; i++) {
+ result[i] = new NamedValue(headers[i].getName(), headers[i].getValue());
+ }
+ return result;
+ }
+
+ @Override
public void execute() throws AxisFault {
try {
executeMethod();
@@ -92,9 +108,6 @@ final class RequestImpl implements Reque
private void executeMethod() throws IOException {
HostConfiguration config = sender.getHostConfiguration(httpClient, msgContext, url);
- // set the custom headers, if available
- sender.addCustomHeaders(method, msgContext);
-
// add compression headers if needed
if (msgContext.isPropertyTrue(HTTPConstants.MC_ACCEPT_GZIP)) {
method.addRequestHeader(HTTPConstants.HEADER_ACCEPT_ENCODING,
Modified: axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/HTTPSender.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/HTTPSender.java?rev=1779070&r1=1779069&r2=1779070&view=diff
==============================================================================
--- axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/HTTPSender.java (original)
+++ axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/HTTPSender.java Mon Jan 16 17:20:48 2017
@@ -20,16 +20,26 @@
package org.apache.axis2.transport.http;
+import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.NamedValue;
import org.apache.axis2.transport.MessageFormatter;
import org.apache.axis2.util.MessageProcessorSelector;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.http.protocol.HTTP;
import java.io.IOException;
import java.net.URL;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
//TODO - It better if we can define these method in a interface move these into AbstractHTTPSender and get rid of this class.
public abstract class HTTPSender extends AbstractHTTPSender {
@@ -130,6 +140,9 @@ public abstract class HTTPSender extends
request.setHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
}
+ // set the custom headers, if available
+ addCustomHeaders(msgContext, request);
+
request.execute();
}
@@ -138,4 +151,126 @@ public abstract class HTTPSender extends
return new AxisRequestEntity(messageFormatter, msgContext, format,
soapActionString, chunked, isAllowedRetry);
}
+
+ private void addCustomHeaders(MessageContext msgContext, Request request) {
+
+ boolean isCustomUserAgentSet = false;
+ // set the custom headers, if available
+ Object httpHeadersObj = msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
+ if (httpHeadersObj != null) {
+ if (httpHeadersObj instanceof List) {
+ List httpHeaders = (List) httpHeadersObj;
+ for (int i = 0; i < httpHeaders.size(); i++) {
+ NamedValue nv = (NamedValue) httpHeaders.get(i);
+ if (nv != null) {
+ if (HTTPConstants.HEADER_USER_AGENT.equals(nv.getName())) {
+ isCustomUserAgentSet = true;
+ }
+ request.addHeader(nv.getName(), nv.getValue());
+ }
+ }
+
+ }
+ 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;
+ }
+ request.addHeader(key, value);
+ }
+ }
+ }
+
+ // we have to consider the TRANSPORT_HEADERS map as well
+ Map transportHeaders = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
+ if (transportHeaders != null) {
+ removeUnwantedHeaders(msgContext);
+
+ Set headerEntries = transportHeaders.entrySet();
+
+ for (Object headerEntry : headerEntries) {
+ if (headerEntry instanceof Map.Entry) {
+ NamedValue[] headers = request.getRequestHeaders();
+
+ boolean headerAdded = false;
+ for (NamedValue header : headers) {
+ if (header.getName() != null
+ && header.getName().equals(((Map.Entry) headerEntry).getKey())) {
+ headerAdded = true;
+ break;
+ }
+ }
+
+ if (!headerAdded) {
+ request.addHeader(((Map.Entry) headerEntry).getKey().toString(),
+ ((Map.Entry) headerEntry).getValue().toString());
+ }
+ }
+ }
+ }
+
+ if (!isCustomUserAgentSet) {
+ String userAgentString = getUserAgent(msgContext);
+ request.setHeader(HTTPConstants.HEADER_USER_AGENT, userAgentString);
+ }
+
+ }
+
+ /**
+ * Remove unwanted headers from the transport headers map of outgoing
+ * request. These are headers which should be dictated by the transport and
+ * not the user. We remove these as these may get copied from the request
+ * messages
+ *
+ * @param msgContext
+ * the Axis2 Message context from which these headers should be
+ * removed
+ */
+ private void removeUnwantedHeaders(MessageContext msgContext) {
+ Map headers = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
+
+ if (headers == null || headers.isEmpty()) {
+ return;
+ }
+
+ Iterator iter = headers.keySet().iterator();
+ while (iter.hasNext()) {
+ String headerName = (String) iter.next();
+ if (HTTP.CONN_DIRECTIVE.equalsIgnoreCase(headerName)
+ || HTTP.TRANSFER_ENCODING.equalsIgnoreCase(headerName)
+ || HTTP.DATE_HEADER.equalsIgnoreCase(headerName)
+ || HTTP.CONTENT_TYPE.equalsIgnoreCase(headerName)
+ || HTTP.CONTENT_LEN.equalsIgnoreCase(headerName)) {
+ iter.remove();
+ }
+ }
+ }
+
+ private String getUserAgent(MessageContext messageContext) {
+ String userAgentString = "Axis2";
+ boolean locked = false;
+ if (messageContext.getParameter(HTTPConstants.USER_AGENT) != null) {
+ OMElement userAgentElement = messageContext.getParameter(HTTPConstants.USER_AGENT)
+ .getParameterElement();
+ userAgentString = userAgentElement.getText().trim();
+ OMAttribute lockedAttribute = userAgentElement.getAttribute(new QName("locked"));
+ if (lockedAttribute != null) {
+ if (lockedAttribute.getAttributeValue().equalsIgnoreCase("true")) {
+ locked = true;
+ }
+ }
+ }
+ // Runtime overing part
+ if (!locked) {
+ if (messageContext.getProperty(HTTPConstants.USER_AGENT) != null) {
+ userAgentString = (String) messageContext.getProperty(HTTPConstants.USER_AGENT);
+ }
+ }
+
+ return userAgentString;
+ }
}
Modified: axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/Request.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/Request.java?rev=1779070&r1=1779069&r2=1779070&view=diff
==============================================================================
--- axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/Request.java (original)
+++ axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/Request.java Mon Jan 16 17:20:48 2017
@@ -19,6 +19,7 @@
package org.apache.axis2.transport.http;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.NamedValue;
/**
* Interface to prepare and execute an HTTP request.
@@ -26,5 +27,7 @@ import org.apache.axis2.AxisFault;
public interface Request {
void enableHTTP10();
void setHeader(String name, String value);
+ void addHeader(String name, String value);
+ NamedValue[] getRequestHeaders();
void execute() throws AxisFault;
}
Modified: axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java?rev=1779070&r1=1779069&r2=1779070&view=diff
==============================================================================
--- axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java (original)
+++ axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java Mon Jan 16 17:20:48 2017
@@ -19,13 +19,10 @@
package org.apache.axis2.transport.http.impl.httpclient4;
-import org.apache.axiom.om.OMAttribute;
-import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.NamedValue;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.transport.http.AxisRequestEntity;
@@ -69,19 +66,15 @@ import org.apache.http.params.BasicHttpP
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.params.HttpParams;
-import org.apache.http.protocol.HTTP;
-import javax.xml.namespace.QName;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.zip.GZIPInputStream;
public class HTTPSenderImpl extends HTTPSender {
@@ -592,126 +585,4 @@ public class HTTPSenderImpl extends HTTP
}
}
- public void addCustomHeaders(HttpRequestBase method, MessageContext msgContext) {
-
- boolean isCustomUserAgentSet = false;
- // set the custom headers, if available
- Object httpHeadersObj = msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
- if (httpHeadersObj != null) {
- if (httpHeadersObj instanceof List) {
- List httpHeaders = (List) httpHeadersObj;
- for (int i = 0; i < httpHeaders.size(); i++) {
- NamedValue nv = (NamedValue) httpHeaders.get(i);
- if (nv != null) {
- Header header = new BasicHeader(nv.getName(), nv.getValue());
- if (HTTPConstants.HEADER_USER_AGENT.equals(header.getName())) {
- isCustomUserAgentSet = true;
- }
- method.addHeader(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.addHeader(key, value);
- }
- }
- }
-
- // we have to consider the TRANSPORT_HEADERS map as well
- Map transportHeaders = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
- if (transportHeaders != null) {
- removeUnwantedHeaders(msgContext);
-
- Set headerEntries = transportHeaders.entrySet();
-
- for (Object headerEntry : headerEntries) {
- if (headerEntry instanceof Map.Entry) {
- Header[] headers = method.getAllHeaders();
-
- boolean headerAdded = false;
- for (Header header : headers) {
- if (header.getName() != null
- && header.getName().equals(((Map.Entry) headerEntry).getKey())) {
- headerAdded = true;
- break;
- }
- }
-
- if (!headerAdded) {
- method.addHeader(((Map.Entry) headerEntry).getKey().toString(),
- ((Map.Entry) headerEntry).getValue().toString());
- }
- }
- }
- }
-
- if (!isCustomUserAgentSet) {
- String userAgentString = getUserAgent(msgContext);
- method.setHeader(HTTPConstants.HEADER_USER_AGENT, userAgentString);
- }
-
- }
-
- /**
- * Remove unwanted headers from the transport headers map of outgoing
- * request. These are headers which should be dictated by the transport and
- * not the user. We remove these as these may get copied from the request
- * messages
- *
- * @param msgContext the Axis2 Message context from which these headers should be
- * removed
- */
- private void removeUnwantedHeaders(MessageContext msgContext) {
- Map headers = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
-
- if (headers == null || headers.isEmpty()) {
- return;
- }
-
- Iterator iter = headers.keySet().iterator();
- while (iter.hasNext()) {
- String headerName = (String) iter.next();
- if (HTTP.CONN_DIRECTIVE.equalsIgnoreCase(headerName)
- || HTTP.TRANSFER_ENCODING.equalsIgnoreCase(headerName)
- || HTTP.DATE_HEADER.equalsIgnoreCase(headerName)
- || HTTP.CONTENT_TYPE.equalsIgnoreCase(headerName)
- || HTTP.CONTENT_LEN.equalsIgnoreCase(headerName)) {
- iter.remove();
- }
- }
- }
-
- private String getUserAgent(MessageContext messageContext) {
- String userAgentString = "Axis2";
- boolean locked = false;
- if (messageContext.getParameter(HTTPConstants.USER_AGENT) != null) {
- OMElement userAgentElement = messageContext.getParameter(HTTPConstants.USER_AGENT)
- .getParameterElement();
- userAgentString = userAgentElement.getText().trim();
- OMAttribute lockedAttribute = userAgentElement.getAttribute(new QName("locked"));
- if (lockedAttribute != null) {
- if (lockedAttribute.getAttributeValue().equalsIgnoreCase("true")) {
- locked = true;
- }
- }
- }
- // Runtime overing part
- if (!locked) {
- if (messageContext.getProperty(HTTPConstants.USER_AGENT) != null) {
- userAgentString = (String) messageContext.getProperty(HTTPConstants.USER_AGENT);
- }
- }
-
- return userAgentString;
- }
-
}
Modified: axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java?rev=1779070&r1=1779069&r2=1779070&view=diff
==============================================================================
--- axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java (original)
+++ axis/axis2/java/core/branches/hermetic-tests/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java Mon Jan 16 17:20:48 2017
@@ -23,6 +23,7 @@ import java.net.URL;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.NamedValue;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.transport.http.AxisRequestEntity;
@@ -85,6 +86,21 @@ final class RequestImpl implements Reque
}
@Override
+ public void addHeader(String name, String value) {
+ method.addHeader(name, value);
+ }
+
+ @Override
+ public NamedValue[] getRequestHeaders() {
+ Header[] headers = method.getAllHeaders();
+ NamedValue[] result = new NamedValue[headers.length];
+ for (int i=0; i<headers.length; i++) {
+ result[i] = new NamedValue(headers[i].getName(), headers[i].getValue());
+ }
+ return result;
+ }
+
+ @Override
public void execute() throws AxisFault {
HttpResponse response = null;
try {
@@ -101,9 +117,6 @@ final class RequestImpl implements Reque
private HttpResponse executeMethod() throws IOException {
HttpHost httpHost = sender.getHostConfiguration(httpClient, msgContext, url);
- // set the custom headers, if available
- sender.addCustomHeaders(method, msgContext);
-
// add compression headers if needed
if (msgContext.isPropertyTrue(HTTPConstants.MC_ACCEPT_GZIP)) {
method.addHeader(HTTPConstants.HEADER_ACCEPT_ENCODING,