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 ke...@apache.org on 2007/03/05 06:29:05 UTC

svn commit: r514552 - in /webservices/axis2/trunk/java/modules/kernel: src/org/apache/axis2/transport/http/ src/org/apache/axis2/transport/http/util/ test/org/apache/axis2/transport/http/util/

Author: keithc
Date: Sun Mar  4 21:28:57 2007
New Revision: 514552

URL: http://svn.apache.org/viewvc?view=rev&rev=514552
Log:
Fixing bug in XFormURLEncodedFormatter so that parameters are not duplicated

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPSender.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/URLTemplatingUtil.java
    webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/transport/http/util/URLTemplatingUtilTest.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPSender.java?view=diff&rev=514552&r1=514551&r2=514552
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPSender.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPSender.java Sun Mar  4 21:28:57 2007
@@ -312,10 +312,7 @@
 
             if (value != null) {
 
-                if ((value.indexOf(SOAP11Constants.SOAP_11_CONTENT_TYPE) >= 0)
-                        || (value.indexOf(SOAP12Constants.SOAP_12_CONTENT_TYPE) >= 0)) {
-                    processResponse(method, msgContext);
-                }
+                processResponse(method, msgContext);
             }
         } else {
             throw new AxisFault(Messages.getMessage("transportError",

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java?view=diff&rev=514552&r1=514551&r2=514552
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java Sun Mar  4 21:28:57 2007
@@ -18,6 +18,9 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.util.JavaUtils;
+import org.apache.axis2.description.WSDL2Constants;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.transport.MessageFormatter;
 import org.apache.axis2.transport.http.util.URLTemplatingUtil;
@@ -90,7 +93,18 @@
         // Check whether there is a template in the URL, if so we have to replace then with data
         // values and create a new target URL.
         targetURL = URLTemplatingUtil.getTemplatedURL(targetURL, messageContext, true);
-        targetURL = URLTemplatingUtil.appendParametersToURL(messageContext, targetURL);
+        String ignoreUncited =
+                (String) messageContext.getProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED);
+
+        // Need to have this check here cause         
+        if (ignoreUncited == null || !JavaUtils.isTrueExplicitly(ignoreUncited)) {
+            String httpMethod = (String) messageContext.getProperty(Constants.Configuration.HTTP_METHOD);
+            if (Constants.Configuration.HTTP_METHOD_GET.equals(httpMethod) || Constants.Configuration.HTTP_METHOD_DELETE.equals(httpMethod)) {
+            targetURL = URLTemplatingUtil.appendQueryParameters(messageContext, targetURL);
+            }
+        } else {
+            messageContext.getEnvelope().getBody().getFirstElement().detach();
+        }
 
         return targetURL;
     }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/URLTemplatingUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/URLTemplatingUtil.java?view=diff&rev=514552&r1=514551&r2=514552
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/URLTemplatingUtil.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/URLTemplatingUtil.java Sun Mar  4 21:28:57 2007
@@ -88,8 +88,9 @@
      * @param url            - Original url string
      * @return String containing the appended query parameters
      */
-    private static String appendQueryParameters(MessageContext messageContext, String url) {
+    public static URL appendQueryParameters(MessageContext messageContext, URL url) throws AxisFault {
 
+        String urlString = url.toString();
         OMElement firstElement;
         String queryParameterSeparator = (String) messageContext
                 .getProperty(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR);
@@ -115,17 +116,23 @@
 
         if (!"".equals(params)) {
 
-            int index = url.indexOf("?");
+            int index = urlString.indexOf("?");
             if (index == -1) {
-                url = url + "?" + params.substring(0, params.length() - 1);
-            } else if (index == url.length() - 1) {
-                url = url + params.substring(0, params.length() - 1);
+                urlString = urlString + "?" + params.substring(0,params.length()-1);
+            }
+            else if (index == urlString.length() - 1) {
+                urlString = urlString + params.substring(0,params.length()-1);
+
             } else {
-                url = url + queryParameterSeparator + params.substring(0, params.length() - 1);
+                urlString = urlString + queryParameterSeparator + params.substring(0,params.length()-1);
             }
 
         }
-        return url;
+        try {
+            return new URL(urlString);
+        } catch (MalformedURLException e) {
+            throw new AxisFault("Unable to append query parameters to URL");
+        }
     }
 
     /**
@@ -185,35 +192,4 @@
         return targetURL;
     }
 
-    /**
-     * Methos used to append parameters to URL. First checks whether the parameters should be
-     * appended to the URL based on the WSDL 2.0 property whttp:ignoreUncited
-     *
-     * @param messageContext - The MessageContext of the request
-     * @param targetURL      - The original URL
-     * @return returns an URL with the query parameters appended to it
-     * @throws AxisFault - Thrown in case an exception occurs
-     */
-    public static URL appendParametersToURL(MessageContext messageContext, URL targetURL)
-            throws AxisFault {
-
-        String url = targetURL.toString();
-        String ignoreUncited =
-                (String) messageContext.getProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED);
-
-        if (ignoreUncited == null || !JavaUtils.isTrueExplicitly(ignoreUncited)) {
-            url = appendQueryParameters(messageContext, url);
-            try {
-                targetURL = new URL(url);
-            } catch (MalformedURLException e) {
-                throw new AxisFault("Unable to create target URL from template");
-            }
-        } else if (Constants.Configuration.HTTP_METHOD_GET
-                .equalsIgnoreCase((String) messageContext.getProperty(
-                        Constants.Configuration.HTTP_METHOD))) {
-            messageContext.getEnvelope().getBody().getFirstElement().detach();
-        }
-
-        return targetURL;
-    }
 }

Modified: webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/transport/http/util/URLTemplatingUtilTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/transport/http/util/URLTemplatingUtilTest.java?view=diff&rev=514552&r1=514551&r2=514552
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/transport/http/util/URLTemplatingUtilTest.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/transport/http/util/URLTemplatingUtilTest.java Sun Mar  4 21:28:57 2007
@@ -65,7 +65,7 @@
 
     public void testAppendParametersToURL() throws MalformedURLException, AxisFault {
         URL testURL = new URL("http://locahost:8080/paramOne");
-        URL modifiedURL = URLTemplatingUtil.appendParametersToURL(messageContext, testURL);
+        URL modifiedURL = URLTemplatingUtil.appendQueryParameters(messageContext,testURL);
 
         System.out.println("original = " + testURL);
         System.out.println("modifiedURL = " + modifiedURL);
@@ -76,8 +76,8 @@
 
     public void testQueryParameterSeperator() throws MalformedURLException, AxisFault {
         URL testURL = new URL("http://locahost:8080/paramOne");
-        messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR, ";");
-        URL modifiedURL = URLTemplatingUtil.appendParametersToURL(messageContext, testURL);
+        messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,";");
+        URL modifiedURL = URLTemplatingUtil.appendQueryParameters(messageContext,testURL);
 
         System.out.println("original = " + testURL);
         System.out.println("modifiedURL = " + modifiedURL);
@@ -89,8 +89,8 @@
     public void testIgnoreUncitedTrue() throws MalformedURLException, AxisFault {
 
         URL testURL = new URL("http://locahost:8080/paramOne/Foo?test=1");
-        messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED, "true");
-        URL modifiedURL = URLTemplatingUtil.appendParametersToURL(messageContext, testURL);
+        messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED,"true");
+        URL modifiedURL = URLTemplatingUtil.appendQueryParameters(messageContext,testURL);
 
         System.out.println("original = " + testURL);
         System.out.println("modifiedURL = " + modifiedURL);
@@ -103,8 +103,8 @@
     public void testIgnoreUncitedFalse() throws MalformedURLException, AxisFault {
 
         URL testURL = new URL("http://locahost:8080/paramOne/Foo?test=1");
-        messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED, "false");
-        URL modifiedURL = URLTemplatingUtil.appendParametersToURL(messageContext, testURL);
+        messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED,"false");
+        URL modifiedURL = URLTemplatingUtil.appendQueryParameters(messageContext,testURL);
 
         System.out.println("original = " + testURL);
         System.out.println("modifiedURL = " + modifiedURL);



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