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/02/26 17:14:18 UTC

svn commit: r748193 - in /cxf/trunk: rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ rt/frontend/jaxrs/src/test/java/org...

Author: sergeyb
Date: Thu Feb 26 16:14:17 2009
New Revision: 748193

URL: http://svn.apache.org/viewvc?rev=748193&view=rev
Log:
JAXRS: UriBuilder and resource method selection algorithm update

Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/TestResource.java
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cds124.txt

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java?rev=748193&r1=748192&r2=748193&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java Thu Feb 26 16:14:17 2009
@@ -90,7 +90,7 @@
         resetResponse();
         
         Class<?> declaringClass = m.getDeclaringClass();
-        if (Client.class == declaringClass) {
+        if (Client.class == declaringClass || Object.class == declaringClass) {
             return m.invoke(this, params);
         }
         

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java?rev=748193&r1=748192&r2=748193&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java Thu Feb 26 16:14:17 2009
@@ -222,7 +222,7 @@
 
     @Override
     public UriBuilder path(String path) throws IllegalArgumentException {
-        List<PathSegment> segments = JAXRSUtils.getPathSegments(path, false);
+        List<PathSegment> segments = JAXRSUtils.getPathSegments(path, false, false);
         if (!paths.isEmpty() && !matrix.isEmpty()) {
             PathSegment ps = paths.remove(paths.size() - 1);
             paths.add(replacePathSegment(ps));
@@ -252,13 +252,11 @@
         // scheme-specific part is whatever after ":" of URI
         // see: http://en.wikipedia.org/wiki/URI_scheme
         try {
-            URI uri = new URI("whatever://" + ssp);
-            port = uri.getPort();
-            host = uri.getHost();
-            paths = JAXRSUtils.getPathSegments(uri.getPath(), false);
-            fragment = uri.getFragment();
-            query = JAXRSUtils.getStructuredParams(uri.getQuery(), "&", true);
-            userInfo = uri.getUserInfo();
+            if (scheme == null) {
+                scheme = "http";
+            }
+            URI uri = new URI(scheme + "://" + ssp);
+            setUriParts(uri);
         } catch (URISyntaxException e) {
             throw new IllegalArgumentException("Wrong syntax of scheme-specific part", e);
         }
@@ -291,7 +289,7 @@
     }
 
     private void setPathAndMatrix(String path) {
-        paths = JAXRSUtils.getPathSegments(path, false);
+        paths = JAXRSUtils.getPathSegments(path, false, false);
         if (!paths.isEmpty()) {
             matrix = paths.get(paths.size() - 1).getMatrixParameters();
         } else {

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java?rev=748193&r1=748192&r2=748193&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java Thu Feb 26 16:14:17 2009
@@ -106,6 +106,11 @@
     }
     
     public static List<PathSegment> getPathSegments(String thePath, boolean decode) {
+        return getPathSegments(thePath, decode, true);
+    }
+    
+    public static List<PathSegment> getPathSegments(String thePath, boolean decode, 
+                                                    boolean ignoreLastSlash) {
         String[] segments = thePath.split("/");
         List<PathSegment> theList = new ArrayList<PathSegment>();
         for (String path : segments) {
@@ -114,8 +119,9 @@
             }
         }
         int len = thePath.length();
-        if (len > 1 && thePath.charAt(len - 1) == '/') {
-            theList.add(new PathSegmentImpl("", false));
+        if (len > 0 && thePath.charAt(len - 1) == '/') {
+            String value = ignoreLastSlash ? "" : "/";
+            theList.add(new PathSegmentImpl(value, false));
         }
         return theList;
     }
@@ -248,6 +254,7 @@
         int consumeMatched = 0;
         int produceMatched = 0;
         
+        boolean subresourcesOnly = true;
         for (MediaType acceptType : acceptContentTypes) {
             for (OperationResourceInfo ori : resource.getMethodDispatcher().getOperationResourceInfos()) {
                 URITemplate uriTemplate = ori.getURITemplate();
@@ -264,6 +271,7 @@
                             boolean cMatched = matchConsumeTypes(requestType, ori);
                             boolean pMatched = matchProduceTypes(acceptType, ori);
                             if (mMatched && cMatched && pMatched) {
+                                subresourcesOnly = false;
                                 candidateList.put(ori, map);    
                             } else {
                                 methodMatched = mMatched ? methodMatched + 1 : methodMatched;
@@ -274,15 +282,18 @@
                     }
                 }
             }
-            if (!candidateList.isEmpty()) {
-                Map.Entry<OperationResourceInfo, MultivaluedMap<String, String>> firstEntry = 
-                    candidateList.entrySet().iterator().next();
-                values.clear();
-                values.putAll(firstEntry.getValue());
-                return firstEntry.getKey();
+            if (!candidateList.isEmpty() && !subresourcesOnly) {
+                break;
             }
         }
-
+        if (!candidateList.isEmpty()) {
+            Map.Entry<OperationResourceInfo, MultivaluedMap<String, String>> firstEntry = 
+                candidateList.entrySet().iterator().next();
+            values.clear();
+            values.putAll(firstEntry.getValue());
+            return firstEntry.getKey();
+        }
+        
         int status = pathMatched == 0 ? 404 : methodMatched == 0 ? 405 
                      : consumeMatched == 0 ? 415 : produceMatched == 0 ? 406 : 404;
         String name = resource.isRoot() ? "NO_OP_EXC" : "NO_SUBRESOURCE_METHOD_FOUND";
@@ -337,14 +348,14 @@
             return -1;
         }
          
-        if (mt1.getType().equals(mt2.getType())) {
-            if (mt1.isWildcardSubtype() && !mt2.isWildcardSubtype()) {
-                return 1;
-            }
-            if (!mt1.isWildcardSubtype() && mt2.isWildcardSubtype()) {
-                return -1;
-            }       
+        
+        if (mt1.isWildcardSubtype() && !mt2.isWildcardSubtype()) {
+            return 1;
         }
+        if (!mt1.isWildcardSubtype() && mt2.isWildcardSubtype()) {
+            return -1;
+        }       
+        
         
         float q1 = getMediaTypeQualityFactor(mt1.getParameters().get("q"));
         float q2 = getMediaTypeQualityFactor(mt2.getParameters().get("q"));

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java?rev=748193&r1=748192&r2=748193&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java Thu Feb 26 16:14:17 2009
@@ -36,10 +36,51 @@
 public class SelectMethodCandidatesTest extends Assert {
     
     @Test
+    public void testFindTargetSubResource() throws Exception {
+        JAXRSServiceFactoryBean sf = new JAXRSServiceFactoryBean();
+        sf.setResourceClasses(org.apache.cxf.jaxrs.resources.TestResource.class);
+        sf.create();
+        List<ClassResourceInfo> resources = ((JAXRSServiceImpl)sf.getService()).getClassResourceInfos();
+        String contentTypes = "*/*";
+        String acceptContentTypes = "text/xml,*/*";
+        
+        MetadataMap<String, String> values = new MetadataMap<String, String>();
+        ClassResourceInfo resource = JAXRSUtils.selectResourceClass(resources, "/1/2/3/d/resource", values);
+        OperationResourceInfo ori = JAXRSUtils.findTargetMethod(resource, 
+                                    values.getFirst(URITemplate.FINAL_MATCH_GROUP), 
+                                    "GET", values, contentTypes, 
+                                    JAXRSUtils.sortMediaTypes(acceptContentTypes));
+        assertNotNull(ori);
+        assertEquals("resourceMethod needs to be selected", "resourceMethod",
+                     ori.getMethodToInvoke().getName());
+    }
+    
+    @Test
+    public void testSelectUsingQualityFactors() throws Exception {
+        JAXRSServiceFactoryBean sf = new JAXRSServiceFactoryBean();
+        sf.setResourceClasses(org.apache.cxf.jaxrs.resources.TestResource.class);
+        sf.create();
+        List<ClassResourceInfo> resources = ((JAXRSServiceImpl)sf.getService()).getClassResourceInfos();
+        String contentTypes = "*/*";
+        String acceptContentTypes = "application/xml;q=0.5,application/json";
+        
+        MetadataMap<String, String> values = new MetadataMap<String, String>();
+        ClassResourceInfo resource = JAXRSUtils.selectResourceClass(resources, "/1/2/3/d/resource1", values);
+        OperationResourceInfo ori = JAXRSUtils.findTargetMethod(resource, 
+                                    values.getFirst(URITemplate.FINAL_MATCH_GROUP), 
+                                    "GET", values, contentTypes, 
+                                    JAXRSUtils.sortMediaTypes(acceptContentTypes));
+        assertNotNull(ori);
+        assertEquals("jsonResource needs to be selected", "jsonResource",
+                     ori.getMethodToInvoke().getName());
+    }
+    
+    @Test
     public void testFindTargetResourceClassWithTemplates() throws Exception {
         JAXRSServiceFactoryBean sf = new JAXRSServiceFactoryBean();
         sf.setResourceClasses(org.apache.cxf.jaxrs.resources.TestResource.class);
-        sf.create();        
+        sf.create();
+        
         List<ClassResourceInfo> resources = ((JAXRSServiceImpl)sf.getService()).getClassResourceInfos();
 
         String contentTypes = "*/*";

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java?rev=748193&r1=748192&r2=748193&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java Thu Feb 26 16:14:17 2009
@@ -47,6 +47,34 @@
     }
 
     @Test
+    public void testTrailingSlash() throws Exception {
+        URI uri = new URI("http://bar/");
+        URI newUri = new UriBuilderImpl(uri).build();
+        assertEquals("URI is not built correctly", "http://bar/", newUri.toString());
+    }
+    
+    @Test
+    public void testPathTrailingSlash() throws Exception {
+        URI uri = new URI("http://bar");
+        URI newUri = new UriBuilderImpl(uri).path("/").build();
+        assertEquals("URI is not built correctly", "http://bar/", newUri.toString());
+    }
+    
+    @Test
+    public void testPathTrailingSlash2() throws Exception {
+        URI uri = new URI("http://bar");
+        URI newUri = new UriBuilderImpl(uri).path("/").path("/").build();
+        assertEquals("URI is not built correctly", "http://bar/", newUri.toString());
+    }
+    
+    @Test
+    public void testSchemeSpecificPart() throws Exception {
+        URI uri = new URI("http://bar");
+        URI newUri = new UriBuilderImpl(uri).scheme("https").schemeSpecificPart("foo/bar").build();
+        assertEquals("URI is not built correctly", "https://foo/bar", newUri.toString());
+    }
+    
+    @Test
     public void testReplacePath() throws Exception {
         URI uri = new URI("http://foo/bar/baz;m1=m1value");
         URI newUri = new UriBuilderImpl(uri).replacePath("/newpath").build();

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/TestResource.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/TestResource.java?rev=748193&r1=748192&r2=748193&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/TestResource.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/resources/TestResource.java Thu Feb 26 16:14:17 2009
@@ -30,7 +30,31 @@
     public TestResource() {
     }
     
+    @Path("/resource")
+    public TestResource subresource() {
+        return this;
+    }
+    
+    @Path("/resource")
+    @GET
+    @Produces("application/json")
+    public String resourceMethod() {
+        return "";
+    }
+    
+    @GET
+    @Produces("application/xml")
+    @Path("/resource1")
+    public TestResource xmlResource() {
+        return this;
+    }
     
+    @Path("/resource1")
+    @GET
+    @Produces("application/json")
+    public String jsonResource() {
+        return "";
+    }
     
     @GET
     @Path("/")

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java?rev=748193&r1=748192&r2=748193&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java Thu Feb 26 16:14:17 2009
@@ -180,6 +180,7 @@
 
     @GET
     @Path("/books/{bookId}/")
+    @Produces("application/xml")
     public Book getBook(@PathParam("bookId") String id) throws BookNotFoundFault {
         return doGetBook(id);
     }
@@ -235,7 +236,7 @@
     
     @GET
     @Path("/books/{bookId}/")
-    @Produces("application/json")
+    @Produces("application/json;q=0.9")
     public Book getBookAsJSON() throws BookNotFoundFault {
         return doGetBook(currentBookId);
     }

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=748193&r1=748192&r2=748193&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Thu Feb 26 16:14:17 2009
@@ -45,7 +45,7 @@
     @BeforeClass
     public static void startServers() throws Exception {
         assertTrue("server did not launch correctly",
-                   launchServer(BookServer.class));
+                   launchServer(BookServer.class, true));
     }
     
     @Test
@@ -241,6 +241,15 @@
     }
     
     @Test
+    public void testGetBookXmlWildcard() throws Exception {
+        
+        getAndCompareAsStrings("http://localhost:9080/bookstore/books/123",
+                               "resources/expected_get_book123.txt",
+                               "*/*", 200);
+        
+    }
+    
+    @Test
     public void testGetBookBySegment() throws Exception {
         getAndCompareAsStrings("http://localhost:9080/bookstore/segment/matrix2;first=12;second=3",
                                "resources/expected_get_book123.txt",
@@ -504,41 +513,19 @@
         
     @Test
     public void testGetCDs() throws Exception {
-        String endpointAddress =
-            "http://localhost:9080/bookstore/cds"; 
-        URL url = new URL(endpointAddress);
-        URLConnection connect = url.openConnection();
-        connect.addRequestProperty("Accept", "application/xml");
-        InputStream in = connect.getInputStream();
-        assertNotNull(in);           
-
-        InputStream expected124 = getClass().getResourceAsStream("resources/expected_get_cds124.txt");
-        String result = getStringFromInputStream(in);
-        //System.out.println("---" + result);
-        assertTrue(result.indexOf(getStringFromInputStream(expected124)) >= 0);
+        
+        getAndCompareAsStrings("http://localhost:9080/bookstore/cds",
+                               "resources/expected_get_cds124.txt",
+                               "application/xml", 200);
     }
     
     @Test
     public void testGetCDJSON() throws Exception {
-        String endpointAddress =
-            "http://localhost:9080/bookstore/cd/123"; 
-
-        GetMethod get = new GetMethod(endpointAddress);
-        get.addRequestHeader("Accept" , "application/json");
-
-        HttpClient httpclient = new HttpClient();
         
-        try {
-            int result = httpclient.executeMethod(get);
-            assertEquals(200, result);
-
-            InputStream expected = getClass().getResourceAsStream("resources/expected_get_cdjson.txt");
-            
-            assertEquals(getStringFromInputStream(expected), get.getResponseBodyAsString());
-        } finally {
-            // Release current connection to the connection pool once you are done
-            get.releaseConnection();
-        }  
+        getAndCompareAsStrings("http://localhost:9080/bookstore/cd/123",
+                               "resources/expected_get_cdjson.txt",
+                               "application/json", 200);
+        
     }
     
     @SuppressWarnings("deprecation")
@@ -599,6 +586,7 @@
     
     @Test
     public void testGetCDsJSON() throws Exception {
+        
         String endpointAddress =
             "http://localhost:9080/bookstore/cds"; 
 
@@ -625,72 +613,29 @@
     
     @Test
     public void testGetCDXML() throws Exception {
-        String endpointAddress =
-            "http://localhost:9080/bookstore/cd/123"; 
-
-        GetMethod get = new GetMethod(endpointAddress);
-        get.addRequestHeader("Accept" , "application/xml");
-
-        HttpClient httpclient = new HttpClient();
         
-        try {
-            int result = httpclient.executeMethod(get);
-            assertEquals(200, result);
-
-            InputStream expected = getClass().getResourceAsStream("resources/expected_get_cd.txt");
-            
-            assertEquals(getStringFromInputStream(expected), get.getResponseBodyAsString());
-        } finally {
-            // Release current connection to the connection pool once you are done
-            get.releaseConnection();
-        }  
+        getAndCompareAsStrings("http://localhost:9080/bookstore/cd/123",
+                               "resources/expected_get_cd.txt",
+                               "application/xml", 200);
     }
     
     
     @Test
     public void testGetCDWithMultiContentTypesXML() throws Exception {
-        String endpointAddress =
-            "http://localhost:9080/bookstore/cdwithmultitypes/123"; 
-
-        GetMethod get = new GetMethod(endpointAddress);
-        get.addRequestHeader("Accept" , "application/xml");
-
-        HttpClient httpclient = new HttpClient();
         
-        try {
-            int result = httpclient.executeMethod(get);
-            assertEquals(200, result);
-
-            InputStream expected = getClass().getResourceAsStream("resources/expected_get_cd.txt");
-            
-            assertEquals(getStringFromInputStream(expected), get.getResponseBodyAsString());
-        } finally {
-            // Release current connection to the connection pool once you are done
-            get.releaseConnection();
-        }  
+        getAndCompareAsStrings("http://localhost:9080/bookstore/cdwithmultitypes/123",
+                               "resources/expected_get_cd.txt",
+                               "application/json;q=0.8,application/xml", 200);
     }
     
     @Test
     public void testGetCDWithMultiContentTypesJSON() throws Exception {
-        String endpointAddress =
-            "http://localhost:9080/bookstore/cdwithmultitypes/123"; 
-
-        GetMethod get = new GetMethod(endpointAddress);
-        get.addRequestHeader("Accept" , "application/json");
-
-        HttpClient httpclient = new HttpClient();
-        
-        try {
-            int result = httpclient.executeMethod(get);
-            assertEquals(200, result);
-
-            InputStream expected = getClass().getResourceAsStream("resources/expected_get_cdjson.txt");
-            
-            assertEquals(getStringFromInputStream(expected), get.getResponseBodyAsString());
-        } finally {
-            // Release current connection to the connection pool once you are done
-            get.releaseConnection();
-        }  
+        getAndCompareAsStrings("http://localhost:9080/bookstore/cdwithmultitypes/123",
+                               "resources/expected_get_cdjson.txt",
+                               "application/json", 200);
+        getAndCompareAsStrings("http://localhost:9080/bookstore/cdwithmultitypes/123",
+                               "resources/expected_get_cdjson.txt",
+                               "application/xml;q=0.9,application/json", 200);
     }
     
     @Test

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java?rev=748193&r1=748192&r2=748193&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java Thu Feb 26 16:14:17 2009
@@ -37,7 +37,7 @@
     @BeforeClass
     public static void startServers() throws Exception {
         assertTrue("server did not launch correctly",
-                   launchServer(BookServerResourceCreatedSpringProviders.class));
+                   launchServer(BookServerResourceCreatedSpringProviders.class, true));
     }
     
     @Test
@@ -65,10 +65,10 @@
     public void testGetBookNotFound() throws Exception {
         
         String endpointAddress =
-            "http://localhost:9080/webapp/bookstore/books/12345"; 
+            "http://localhost:9081/webapp/bookstore/books/12345"; 
         URL url = new URL(endpointAddress);
         HttpURLConnection connect = (HttpURLConnection)url.openConnection();
-        connect.addRequestProperty("Accept", "text/plain");
+        connect.addRequestProperty("Accept", "text/plain,application/xml");
         assertEquals(500, connect.getResponseCode());
         InputStream in = connect.getErrorStream();
         assertNotNull(in);           

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cds124.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cds124.txt?rev=748193&r1=748192&r2=748193&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cds124.txt (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cds124.txt Thu Feb 26 16:14:17 2009
@@ -1 +1 @@
-<CD><id>124</id><name>BICYCLE RACE</name></CD>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?><CDs><CD><id>124</id><name>BICYCLE RACE</name></CD><CD><id>123</id><name>BOHEMIAN RHAPSODY</name></CD></CDs>
\ No newline at end of file