You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sa...@apache.org on 2006/05/09 15:42:26 UTC
svn commit: r405429 - in
/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http:
HTTPConstants.java SOAPOverHTTPSender.java
Author: saminda
Date: Tue May 9 06:42:25 2006
New Revision: 405429
URL: http://svn.apache.org/viewcvs?rev=405429&view=rev
Log:
Useragent now can set via axis2.xml or at runtime.
Modified:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPConstants.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPConstants.java?rev=405429&r1=405428&r2=405429&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPConstants.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPConstants.java Tue May 9 06:42:25 2006
@@ -458,4 +458,6 @@
return data.getBytes();
}
+
+ public static final String USER_AGENT = "userAgent";
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java?rev=405429&r1=405428&r2=405429&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java Tue May 9 06:42:25 2006
@@ -2,6 +2,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axis2.AxisFault;
@@ -17,6 +18,7 @@
import javax.xml.stream.FactoryConfigurationError;
import javax.xml.stream.XMLStreamException;
+import javax.xml.namespace.QName;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -50,8 +52,11 @@
if (!httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10) && chunked) {
postMethod.setContentChunked(true);
}
+ //TODO FixMe : Fix User Agent
- postMethod.setRequestHeader(HTTPConstants.HEADER_USER_AGENT, "Axis/2.0");
+ String userAgentString = getUserAgent(msgContext);
+
+ postMethod.setRequestHeader(HTTPConstants.HEADER_USER_AGENT, userAgentString);
if (msgContext.isSOAP11()) {
if ("".equals(soapActionString)){
@@ -125,6 +130,29 @@
throw new AxisFault(Messages.getMessage("transportError",
String.valueOf(postMethod.getStatusCode()), postMethod.getResponseBodyAsString()));
+ }
+
+ private String getUserAgent(MessageContext messageContext) {
+ String userAgentString = "Axis/2.0";
+ 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;
}
public class AxisSOAPRequestEntity implements RequestEntity {