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());
}