You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/08/13 20:01:39 UTC

svn commit: r803967 - in /cxf/branches/2.2.x-fixes: ./ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ systests/src/test/java/org/apache/cxf/systest/jaxrs/

Author: dkulp
Date: Thu Aug 13 18:01:38 2009
New Revision: 803967

URL: http://svn.apache.org/viewvc?rev=803967&view=rev
Log:
Merged revisions 803460 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r803460 | sergeyb | 2009-08-12 07:46:32 -0400 (Wed, 12 Aug 2009) | 1 line
  
  CXF-2389 : applying a patch (with additional tests) on behalf of Philippe Merle
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
    cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
    cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresource.java
    cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresourceImpl.java
    cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Aug 13 18:01:38 2009
@@ -1 +1 @@
-/cxf/trunk:782728-782730,783097,783294,783396,784059,784181-784184,784893,784895,785279-785282,785468,785621,785624,785651,785734,785866,786142,786271-786272,786395,786512,786514,786582-786583,786638,786647,786850,787200,787269,787277-787279,787290-787291,787305,787323,787366,787849,788030,788060,788187,788444,788451,788703,788752,788774,788819-788820,789013,789371,789387,789420,789527-789530,789704-789705,789788,789811,789896-789901,790074,790094,790134,790188,790294,790553,790637-790644,790868,791301,791354,791538,791753,791947,792007,792096,792183,792261-792265,792271,792604,792683-792685,792975,792985,793059,793570,794297,794396,794680,794728,794771,794778-794780,794892,795044,795104,795160,795583,795907,796022-796023,796352,796593,796741,796780,796994-796997,797117,797159,797192,797194,797231-797233,797442,797505,797517,797534,797581-797583,797587,797640,797651,797699,797882-797883,798344-798346,798363,798461,798479,798533,798551,798557,798561-798562,798570,798573,79858
 4,798654,798748-798749,798891,798929-798930,799245,799267,799439,799448,799637,799723-799724,799792,800453,800497-800498,801380-801381,801447,801962,802892,803129
+/cxf/trunk:782728-782730,783097,783294,783396,784059,784181-784184,784893,784895,785279-785282,785468,785621,785624,785651,785734,785866,786142,786271-786272,786395,786512,786514,786582-786583,786638,786647,786850,787200,787269,787277-787279,787290-787291,787305,787323,787366,787849,788030,788060,788187,788444,788451,788703,788752,788774,788819-788820,789013,789371,789387,789420,789527-789530,789704-789705,789788,789811,789896-789901,790074,790094,790134,790188,790294,790553,790637-790644,790868,791301,791354,791538,791753,791947,792007,792096,792183,792261-792265,792271,792604,792683-792685,792975,792985,793059,793570,794297,794396,794680,794728,794771,794778-794780,794892,795044,795104,795160,795583,795907,796022-796023,796352,796593,796741,796780,796994-796997,797117,797159,797192,797194,797231-797233,797442,797505,797517,797534,797581-797583,797587,797640,797651,797699,797882-797883,798344-798346,798363,798461,798479,798533,798551,798557,798561-798562,798570,798573,79858
 4,798654,798748-798749,798891,798929-798930,799245,799267,799439,799448,799637,799723-799724,799792,800453,800497-800498,801380-801381,801447,801962,802892,803129,803460

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java?rev=803967&r1=803966&r2=803967&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java Thu Aug 13 18:01:38 2009
@@ -27,7 +27,6 @@
 import java.net.URI;
 import java.net.URL;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -256,24 +255,6 @@
     }
 
     
-    protected List<MediaType> getAccept() {
-        List<String> headers = requestHeaders.get(HttpHeaders.ACCEPT);
-        if (headers == null || headers.size() == 0) {
-            return null;
-        }
-        List<MediaType> types = new ArrayList<MediaType>();
-        for (String s : headers) {
-            types.add(MediaType.valueOf(s));
-        }
-        return types;
-    }
-
-    
-    protected MediaType getType() {
-        String type = requestHeaders.getFirst(HttpHeaders.CONTENT_TYPE);
-        return type == null ? null : MediaType.valueOf(type);
-    }
-
     protected UriBuilder getCurrentBuilder() {
         return currentBuilder;
     }

Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java?rev=803967&r1=803966&r2=803967&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java Thu Aug 13 18:01:38 2009
@@ -25,6 +25,7 @@
 import java.lang.reflect.Method;
 import java.net.HttpURLConnection;
 import java.net.URI;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -268,12 +269,12 @@
             }
         }
         
-        List<MediaType> accepts = getAccept();
+        List<MediaType> accepts = getAccept(headers);
         if (accepts == null) {
             accepts = InjectionUtils.isPrimitive(responseClass) 
                 ? Collections.singletonList(MediaType.TEXT_PLAIN_TYPE)
                 : ori.getProduceTypes().size() == 0 
-                || ori.getConsumeTypes().get(0).equals(MediaType.WILDCARD_TYPE) 
+                || ori.getProduceTypes().get(0).equals(MediaType.WILDCARD_TYPE) 
                 ? Collections.singletonList(MediaType.APPLICATION_XML_TYPE) : ori.getProduceTypes();
             for (MediaType mt : accepts) {
                 headers.add(HttpHeaders.ACCEPT, mt.toString());
@@ -283,6 +284,18 @@
         return headers;
     }
     
+    private List<MediaType> getAccept(MultivaluedMap<String, String> allHeaders) {
+        List<String> headers = allHeaders.get(HttpHeaders.ACCEPT);
+        if (headers == null || headers.size() == 0) {
+            return null;
+        }
+        List<MediaType> types = new ArrayList<MediaType>();
+        for (String s : headers) {
+            types.add(MediaType.valueOf(s));
+        }
+        return types;
+    }
+    
     private List<Object> getPathParamValues(MultivaluedMap<ParameterType, Parameter> map,
                                             Object[] params,
                                             OperationResourceInfo ori) {
@@ -358,7 +371,7 @@
         List<Parameter> fm = getParameters(map, ParameterType.FORM);
         for (Parameter p : fm) {
             if (params[p.getIndex()] != null) {
-                FormUtils.addPropertyToForm(form, p.getName(), params[p.getIndex()]);
+                FormUtils.addPropertyToForm(form, p.getName(), params[p.getIndex()].toString());
             }
         }
         
@@ -401,10 +414,11 @@
             m.put(URITemplate.TEMPLATE_PARAMETERS, templatesMap);
         }
         
-        if (bodyIndex != -1 || types.containsKey(ParameterType.FORM)) {
+        boolean isForm = types.containsKey(ParameterType.FORM);
+        if (bodyIndex != -1 || isForm) {
             m.setContent(OperationResourceInfo.class, ori);
             m.put("BODY_INDEX", bodyIndex);
-            Object body = bodyIndex != -1 ? params[bodyIndex] : handleForm(types, params); 
+            Object body = isForm ? handleForm(types, params) : params[bodyIndex];
             MessageContentsList contents = new MessageContentsList(new Object[]{body});
             m.setContent(List.class, contents);
             m.getInterceptorChain().add(new BodyWriter());

Modified: cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresource.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresource.java?rev=803967&r1=803966&r2=803967&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresource.java (original)
+++ cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresource.java Thu Aug 13 18:01:38 2009
@@ -38,6 +38,10 @@
     @Produces("application/xml")
     Book getTheBook() throws BookNotFoundFault;
     
+    @GET
+    @Path("/subresource/noproduces")
+    Book getTheBookNoProduces() throws BookNotFoundFault;
+    
     @POST
     @Path("/subresource2/{n1:.*}")
     @Consumes("text/plain")
@@ -53,7 +57,8 @@
     @POST
     @Path("/subresource3")
     Book getTheBook3(@FormParam("id") String id,
-                     @FormParam("name") String name) throws BookNotFoundFault;
+                     @FormParam("name") String name,
+                     @FormParam("nameid") Integer nameid) throws BookNotFoundFault;
     
     @GET
     @Path("/subresource4/{id}/{name}")

Modified: cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresourceImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresourceImpl.java?rev=803967&r1=803966&r2=803967&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresourceImpl.java (original)
+++ cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresourceImpl.java Thu Aug 13 18:01:38 2009
@@ -53,11 +53,11 @@
         return b;
     }
     
-    public Book getTheBook3(String sid, String name) throws BookNotFoundFault {
+    public Book getTheBook3(String sid, String name, Integer nameid) throws BookNotFoundFault {
         Book b = new Book();
         
         b.setId(Long.valueOf(sid)); 
-        b.setName(name);
+        b.setName(name + nameid.toString());
         return b;
     }
     
@@ -80,4 +80,8 @@
         return bookPath;
     }
 
+    public Book getTheBookNoProduces() throws BookNotFoundFault {
+        return getTheBook();
+    }
+
 }

Modified: cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java?rev=803967&r1=803966&r2=803967&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java (original)
+++ cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java Thu Aug 13 18:01:38 2009
@@ -203,6 +203,18 @@
     }
     
     @Test
+    public void testGetBookSubresourceClientNoProduces() throws Exception {
+        
+        String baseAddress = "http://localhost:9092/test/services/rest";
+        BookStoreJaxrsJaxws proxy = JAXRSClientFactory.create(baseAddress,
+                                                                  BookStoreJaxrsJaxws.class);
+        BookSubresource bs = proxy.getBookSubresource("125");
+        Book b = bs.getTheBookNoProduces();
+        assertEquals(125, b.getId());
+        assertEquals("CXF in Action", b.getName());
+    }
+    
+    @Test
     public void testGetBookSubresourceParamExtensions() throws Exception {
         
         String baseAddress = "http://localhost:9092/test/services/rest";
@@ -295,7 +307,8 @@
         WebClient wc = WebClient.create(baseAddress);
         MultivaluedMap<String, Object> map = new MetadataMap<String, Object>();
         map.putSingle("id", "679");
-        map.putSingle("name", "CXF in Action - 679");
+        map.putSingle("name", "CXF in Action - ");
+        map.putSingle("nameid", "679");
         Book b = readBook((InputStream)wc.accept("application/xml")
                           .form((Map<String, List<Object>>)map).getEntity());
         assertEquals(679, b.getId());
@@ -308,7 +321,8 @@
         String baseAddress = "http://localhost:9092/test/services/rest/bookstore/books/679/subresource3";
         WebClient wc = WebClient.create(baseAddress);
         Form f = new Form();
-        f.set("id", "679").set("name", "CXF in Action - 679");
+        f.set("id", "679").set("name", "CXF in Action - ")
+            .set("nameid", "679");
         Book b = readBook((InputStream)wc.accept("application/xml")
                           .form(f).getEntity());
         assertEquals(679, b.getId());
@@ -322,7 +336,7 @@
         BookStoreJaxrsJaxws proxy = JAXRSClientFactory.create(baseAddress,
                                                                   BookStoreJaxrsJaxws.class);
         BookSubresource bs = proxy.getBookSubresource("679");
-        Book b = bs.getTheBook3("679", "CXF in Action - 679");
+        Book b = bs.getTheBook3("679", "CXF in Action - ", new Integer(679));
         assertEquals(679, b.getId());
         assertEquals("CXF in Action - 679", b.getName());
     }