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 {