You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2009/08/20 15:31:29 UTC
svn commit: r806164 - in /cxf/branches/2.2.x-fixes: ./
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/
rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/
rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/ systest...
Author: sergeyb
Date: Thu Aug 20 13:31:26 2009
New Revision: 806164
URL: http://svn.apache.org/viewvc?rev=806164&view=rev
Log:
Merged revisions 803419 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r803419 | sergeyb | 2009-08-12 10:11:08 +0100 (Wed, 12 Aug 2009) | 1 line
JAX-RS : Adding global marshalAsJaxbElement property, ignorable Aegis collection tests, RuntimeExceptionMapper test
........
Added:
cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/RuntimeExceptionMapper.java
- copied unchanged from r803419, cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/RuntimeExceptionMapper.java
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/provider/AbstractJAXBProvider.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AegisJSONProviderTest.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataBindingJSONProviderTest.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/CollectionsResource.java
cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java
cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs_spring_providers/WEB-INF/beans.xml
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Aug 20 13:31:26 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,798816,798891,798929-798930,799245,799267,799439,799448,799637,799723-799724,799792,800453,800497-800498,801380-801381,801447,801962,802892,803056,803129,803460,803493,803689,804002,804276,805784,805907,805909
+/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,798816,798891,798929-798930,799245,799267,799439,799448,799637,799723-799724,799792,800453,800497-800498,801380-801381,801447,801962,802892,803056,803129,803419,803460,803493,803689,804002,804276,805784,805907,805909
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/provider/AbstractJAXBProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java?rev=806164&r1=806163&r2=806164&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java Thu Aug 20 13:31:26 2009
@@ -85,6 +85,7 @@
protected Map<String, String> jaxbElementClassMap;
protected boolean unmarshalAsJaxbElement;
+ protected boolean marshalAsJaxbElement;
private MessageContext mc;
private Schema schema;
@@ -96,6 +97,10 @@
unmarshalAsJaxbElement = value;
}
+ public void setMarshallAsJaxbElement(boolean value) {
+ marshalAsJaxbElement = value;
+ }
+
public void setJaxbElementClassNames(List<String> names) {
jaxbElementClassNames = names;
}
@@ -107,17 +112,21 @@
@SuppressWarnings("unchecked")
protected Object convertToJaxbElementIfNeeded(Object obj, Class<?> cls, Type genericType)
throws Exception {
+
+ QName name = null;
if (jaxbElementClassNames != null && jaxbElementClassNames.contains(cls.getName())
|| jaxbElementClassMap != null && jaxbElementClassMap.containsKey(cls.getName())) {
- QName name = null;
if (jaxbElementClassMap != null) {
name = convertStringToQName(jaxbElementClassMap.get(cls.getName()));
} else {
name = getJaxbQName(cls, genericType, obj, false);
}
- if (name != null) {
- return new JAXBElement(name, cls, null, obj);
- }
+ }
+ if (name == null && marshalAsJaxbElement) {
+ name = convertStringToQName(cls.getName());
+ }
+ if (name != null) {
+ return new JAXBElement(name, cls, null, obj);
}
return obj;
}
@@ -249,7 +258,7 @@
}
public boolean isReadable(Class<?> type, Type genericType, Annotation[] anns, MediaType mt) {
- return isSupported(type, genericType, anns);
+ return marshalAsJaxbElement || isSupported(type, genericType, anns);
}
public void setSchemaLocations(List<String> locations) {
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java?rev=806164&r1=806163&r2=806164&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java Thu Aug 20 13:31:26 2009
@@ -83,7 +83,7 @@
}
}
- return isSupported(type, genericType, anns);
+ return super.isReadable(type, genericType, anns, mt);
}
@Context
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AegisJSONProviderTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AegisJSONProviderTest.java?rev=806164&r1=806163&r2=806164&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AegisJSONProviderTest.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AegisJSONProviderTest.java Thu Aug 20 13:31:26 2009
@@ -21,7 +21,10 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.ws.rs.core.MediaType;
@@ -30,11 +33,13 @@
import org.apache.cxf.jaxrs.fortest.AegisTestBean;
import org.apache.cxf.jaxrs.impl.MetadataMap;
+import org.apache.cxf.jaxrs.resources.CollectionsResource;
import org.apache.cxf.jaxrs.resources.ManyTags;
import org.apache.cxf.jaxrs.resources.TagVO;
import org.apache.cxf.jaxrs.resources.Tags;
import org.junit.Assert;
+import org.junit.Ignore;
import org.junit.Test;
public class AegisJSONProviderTest extends Assert {
@@ -129,6 +134,27 @@
}
@Test
+ @Ignore
+ public void testWriteCollection() throws Exception {
+ AegisJSONProvider p = new AegisJSONProvider();
+ AbstractAegisProvider.clearContexts();
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ AegisTestBean bean = new AegisTestBean();
+ bean.setBoolValue(Boolean.TRUE);
+ bean.setStrValue("hovercraft");
+ List<AegisTestBean> beans = new ArrayList<AegisTestBean>();
+ beans.add(bean);
+ Method m = CollectionsResource.class.getMethod("getAegisBeans", new Class[]{});
+ p.writeTo(beans, (Class)m.getReturnType(), m.getGenericReturnType(),
+ AegisTestBean.class.getAnnotations(),
+ MediaType.APPLICATION_JSON_TYPE, new MetadataMap<String, Object>(), os);
+ byte[] bytes = os.toByteArray();
+ String json = new String(bytes, "utf-8");
+ System.out.println(json);
+ //assertEquals(data, json);
+ }
+
+ @Test
public void testManyTags() throws Exception {
AegisJSONProvider p = new AegisJSONProvider();
AbstractAegisProvider.clearContexts();
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataBindingJSONProviderTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataBindingJSONProviderTest.java?rev=806164&r1=806163&r2=806164&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataBindingJSONProviderTest.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataBindingJSONProviderTest.java Thu Aug 20 13:31:26 2009
@@ -139,6 +139,11 @@
return new Book();
}
+// @Path("/books/{bookId}/{new}")
+// public List<Book> getNewBook3() {
+// return null;
+// }
+
@POST
public void setNewBook(Book b) {
}
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java?rev=806164&r1=806163&r2=806164&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java Thu Aug 20 13:31:26 2009
@@ -176,25 +176,35 @@
@Test
public void testWriteWithoutXmlRootElement() throws Exception {
- doTestWriteWithoutXmlRootElement("SuperBook", false);
+ doTestWriteWithoutXmlRootElement("SuperBook", false, false);
}
@Test
public void testWriteWithoutXmlRootElement2() throws Exception {
- doTestWriteWithoutXmlRootElement("SuperBook", true);
+ doTestWriteWithoutXmlRootElement("SuperBook", true, false);
}
@Test
public void testWriteWithoutXmlRootElement3() throws Exception {
- doTestWriteWithoutXmlRootElement("{http://books}SuperBook", false);
+ doTestWriteWithoutXmlRootElement("{http://books}SuperBook", false, false);
}
- public void doTestWriteWithoutXmlRootElement(String name, boolean unmarshalAsJaxbElement)
+ @Test
+ public void testWriteWithoutXmlRootElement4() throws Exception {
+ doTestWriteWithoutXmlRootElement("SuperBook", true, true);
+ }
+
+ public void doTestWriteWithoutXmlRootElement(String name, boolean unmarshalAsJaxbElement,
+ boolean marshalAsJaxbElement)
throws Exception {
JAXBElementProvider provider = new JAXBElementProvider();
- provider.setJaxbElementClassMap(Collections.singletonMap(
- org.apache.cxf.jaxrs.fortest.jaxb.SuperBook.class.getName(),
- name));
+ if (!marshalAsJaxbElement) {
+ provider.setJaxbElementClassMap(Collections.singletonMap(
+ org.apache.cxf.jaxrs.fortest.jaxb.SuperBook.class.getName(),
+ name));
+ } else {
+ provider.setMarshallAsJaxbElement(marshalAsJaxbElement);
+ }
org.apache.cxf.jaxrs.fortest.jaxb.SuperBook b =
new org.apache.cxf.jaxrs.fortest.jaxb.SuperBook("CXF in Action", 123L, 124L);
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/CollectionsResource.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/CollectionsResource.java?rev=806164&r1=806163&r2=806164&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/CollectionsResource.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/CollectionsResource.java Thu Aug 20 13:31:26 2009
@@ -26,7 +26,15 @@
import javax.ws.rs.POST;
import javax.xml.bind.JAXBElement;
+import org.apache.cxf.jaxrs.fortest.AegisTestBean;
+
public class CollectionsResource {
+
+ @GET
+ public List<AegisTestBean> getAegisBeans() {
+ return null;
+ }
+
@GET
public List<Book> getBooks() {
return null;
Modified: cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java?rev=806164&r1=806163&r2=806164&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java (original)
+++ cxf/branches/2.2.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java Thu Aug 20 13:31:26 2009
@@ -142,6 +142,23 @@
}
@Test
+ public void testGetBookNotExistent() throws Exception {
+
+ String endpointAddress =
+ "http://localhost:9080/webapp/bookstore/nonexistent";
+ URL url = new URL(endpointAddress);
+ HttpURLConnection connect = (HttpURLConnection)url.openConnection();
+ connect.addRequestProperty("Accept", "application/xml");
+ assertEquals(405, connect.getResponseCode());
+ InputStream in = connect.getErrorStream();
+ assertNotNull(in);
+
+ assertEquals("Exception is not mapped correctly",
+ "Nonexistent method",
+ getStringFromInputStream(in).trim());
+ }
+
+ @Test
public void testPostPetStatus() throws Exception {
String endpointAddress =
Modified: cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs_spring_providers/WEB-INF/beans.xml
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs_spring_providers/WEB-INF/beans.xml?rev=806164&r1=806163&r2=806164&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs_spring_providers/WEB-INF/beans.xml (original)
+++ cxf/branches/2.2.x-fixes/systests/src/test/resources/jaxrs_spring_providers/WEB-INF/beans.xml Thu Aug 20 13:31:26 2009
@@ -35,6 +35,7 @@
<jaxrs:providers>
<bean class="org.apache.cxf.systest.jaxrs.BadgerFishProvider"/>
<ref bean="exceptionMapper"/>
+ <ref bean="exceptionMapper2"/>
</jaxrs:providers>
</jaxrs:server>
<bean id="bookstore" scope="prototype" class="org.apache.cxf.systest.jaxrs.BookStore"/>
@@ -42,4 +43,5 @@
<bean id="exceptionMapper" class="org.apache.cxf.systest.jaxrs.BookExceptionMapper">
<property name="toHandle" value="true"/>
</bean>
+ <bean id="exceptionMapper2" class="org.apache.cxf.systest.jaxrs.RuntimeExceptionMapper"/>
</beans>