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 2013/02/08 13:20:06 UTC

svn commit: r1443983 - in /cxf/branches/2.7.x-fixes: ./ rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java

Author: sergeyb
Date: Fri Feb  8 12:20:05 2013
New Revision: 1443983

URL: http://svn.apache.org/r1443983
Log:
Merged revisions 1443515 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1443515 | sergeyb | 2013-02-07 14:51:17 +0000 (Thu, 07 Feb 2013) | 1 line
  
  [CXF-4799] Adding a test
........

Modified:
    cxf/branches/2.7.x-fixes/   (props changed)
    cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java

Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
  Merged /cxf/trunk:r1443515

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

Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java?rev=1443983&r1=1443982&r2=1443983&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java Fri Feb  8 12:20:05 2013
@@ -207,6 +207,43 @@ public class JAXBElementProviderTest ext
         testXmlList(provider);
     }
     
+    @Test
+    public void testGenericsAndSingleContext2() throws Exception {
+        ClassResourceInfo cri = 
+            ResourceUtils.createClassResourceInfo(XmlListResource.class, XmlListResource.class, true, true);
+        JAXBElementProvider<?> provider = new JAXBElementProvider<Object>();
+        provider.setSingleJaxbContext(true);
+        provider.init(Collections.singletonList(cri));
+        
+        List<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook> list = 
+            new ArrayList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook>();
+        for (int i = 0; i < 10; i++) {
+            org.apache.cxf.jaxrs.fortest.jaxb.SuperBook o = 
+                new org.apache.cxf.jaxrs.fortest.jaxb.SuperBook();
+            o.setName("name #" + i);
+            list.add(o);
+        }
+        XmlList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook> xmlList = 
+            new XmlList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook>(list);
+        
+        Method m = XmlListResource.class.getMethod("testJaxb2", new Class[]{});
+        JAXBContext context = provider.getJAXBContext(m.getReturnType(), m.getGenericReturnType());
+        
+        ByteArrayOutputStream os = new ByteArrayOutputStream(); 
+        context.createMarshaller().marshal(xmlList, os);
+        @SuppressWarnings("unchecked")
+        XmlList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook> list2 = 
+            (XmlList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook>)context.createUnmarshaller()
+                .unmarshal(new ByteArrayInputStream(os.toByteArray()));
+        
+        List<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook> actualList = list2.getList();
+        assertEquals(10, actualList.size());
+        for (int i = 0; i < 10; i++) {
+            org.apache.cxf.jaxrs.fortest.jaxb.SuperBook object = actualList.get(i);
+            assertEquals("name #" + i, object.getName());
+        }
+    }
+    
     @SuppressWarnings("unchecked")
     private void testXmlList(JAXBElementProvider<?> provider) throws Exception {
         
@@ -218,7 +255,8 @@ public class JAXBElementProviderTest ext
         }
         XmlList<XmlObject> xmlList = new XmlList<XmlObject>(list);
         
-        JAXBContext context = provider.getJAXBContext(XmlList.class, XmlList.class);
+        Method m = XmlListResource.class.getMethod("testJaxb", new Class[]{});
+        JAXBContext context = provider.getJAXBContext(m.getReturnType(), m.getGenericReturnType());
         
         ByteArrayOutputStream os = new ByteArrayOutputStream(); 
         context.createMarshaller().marshal(xmlList, os);
@@ -1587,6 +1625,12 @@ public class JAXBElementProviderTest ext
         public XmlList<XmlObject> testJaxb() {
             return null;
         }
+        
+        @GET
+        @Path("/jaxb2")
+        public XmlList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook> testJaxb2() {
+            return null;
+        }
     }
     
     private Message createMessage() {