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/03/03 13:27:17 UTC

svn commit: r749596 - in /cxf/trunk: rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ rt/frontend/jaxrs/src/main/java/org...

Author: sergeyb
Date: Tue Mar  3 12:27:15 2009
New Revision: 749596

URL: http://svn.apache.org/viewvc?rev=749596&view=rev
Log:
JAXRS : CXF-2031,CXF-2080 plus some more fixes/clean-up 

Added:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/SystemQueryHandler.java
      - copied, changed from r746309, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MappingsHandler.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/SystemQueryHandlerTest.java   (with props)
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java   (with props)
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData2
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData3
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentForm
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/book.xsd   (with props)
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/bookid.xsd   (with props)
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json2.txt   (with props)
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json3.txt   (with props)
Removed:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MappingsHandler.java
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/attachmentData
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/attachmentData2
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/attachmentData3
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/attachmentForm
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/book.xsd
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/bookid.xsd
Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/CacheControlHeaderProvider.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.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/impl/CacheControlHeaderProviderTest.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
    cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore.java
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore2.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/JAXRSAtomBookTest.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/JAXRSMultipartTest.java
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json.txt
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_books_json.txt
    cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_books_jsonfeed.txt
    cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/beans.xml
    cxf/trunk/systests/src/test/resources/jaxrs_atom/WEB-INF/beans.xml
    cxf/trunk/systests/src/test/resources/jaxrs_atom/WEB-INF/web.xml

Copied: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/SystemQueryHandler.java (from r746309, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MappingsHandler.java)
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/SystemQueryHandler.java?p2=cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/SystemQueryHandler.java&p1=cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MappingsHandler.java&r1=746309&r2=749596&rev=749596&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MappingsHandler.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/SystemQueryHandler.java Tue Mar  3 12:27:15 2009
@@ -24,15 +24,17 @@
 
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
 
 import org.apache.cxf.jaxrs.impl.UriInfoImpl;
 import org.apache.cxf.jaxrs.model.ClassResourceInfo;
 import org.apache.cxf.message.Message;
 
-public class MappingsHandler implements RequestHandler {
+public class SystemQueryHandler implements RequestHandler {
 
     private static final String CONTENT_QUERY = "_type";
+    private static final String METHOD_QUERY = "_method";
+    
+    
     private static final Map<String, String> SHORTCUTS;
     static {
         SHORTCUTS = new HashMap<String, String>();
@@ -44,24 +46,28 @@
     
     public Response handleRequest(Message m, ClassResourceInfo resourceClass) {
         
-        UriInfo uriInfo = new UriInfoImpl(m, null);
-        handleTypeQuery(m, uriInfo.getQueryParameters());
-        
+        MultivaluedMap<String, String> queries = new UriInfoImpl(m, null).getQueryParameters();
+        handleTypeQuery(m, queries);
+        handleMethodQuery(m, queries);
         
         return null;
     }
 
-    private boolean handleTypeQuery(Message m, 
-                                    MultivaluedMap<String, String> queries) {
+    private void handleMethodQuery(Message m, MultivaluedMap<String, String> queries) {
+        String method = queries.getFirst(METHOD_QUERY);
+        if (method != null) {
+            m.put(Message.HTTP_REQUEST_METHOD, method);
+        }
+    }
+    
+    private void handleTypeQuery(Message m, MultivaluedMap<String, String> queries) {
         String type = queries.getFirst(CONTENT_QUERY);
         if (type != null) {
             if (SHORTCUTS.containsKey(type)) {
                 type = SHORTCUTS.get(type);
             }
             updateAcceptTypeHeader(m, type);
-            return true;
         }
-        return false;
     }
     
     private void updateAcceptTypeHeader(Message m, String anotherValue) {

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/CacheControlHeaderProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/CacheControlHeaderProvider.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/CacheControlHeaderProvider.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/CacheControlHeaderProvider.java Tue Mar  3 12:27:15 2009
@@ -22,6 +22,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import javax.ws.rs.core.CacheControl;
 import javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate;
@@ -93,27 +94,13 @@
 
     public String toString(CacheControl c) {
         StringBuilder sb = new StringBuilder();
-        if (!c.isPrivate()) {
-            sb.append(PUBLIC).append(';');
-        } else {
-            sb.append(PRIVATE).append('=');
-            for (Iterator<String> it = c.getPrivateFields().iterator(); it.hasNext();) {
-                sb.append('\"').append(it.next()).append('\"');
-                if (it.hasNext()) {
-                    sb.append(',');
-                }
-            }
-            sb.append(';');
+        if (c.isPrivate()) {
+            sb.append(PRIVATE);
+            handleFields(c.getPrivateFields(), sb);
         }
         if (c.isNoCache()) {
-            sb.append(NO_CACHE).append('=');
-            for (Iterator<String> it = c.getNoCacheFields().iterator(); it.hasNext();) {
-                sb.append('\"').append(it.next()).append('\"');
-                if (it.hasNext()) {
-                    sb.append(',');
-                }
-            }
-            sb.append(';');
+            sb.append(NO_CACHE);
+            handleFields(c.getNoCacheFields(), sb);
         }
         if (c.isNoStore()) {
             sb.append(NO_STORE).append(';');
@@ -133,6 +120,20 @@
         if (c.getSMaxAge() != -1) {
             sb.append(SMAX_AGE).append('=').append(c.getSMaxAge()).append(';');
         }
+        Map<String, String> exts = c.getCacheExtension();
+        for (Map.Entry<String, String> entry : exts.entrySet()) {
+            sb.append(entry.getKey());
+            String v = entry.getValue();
+            if (v != null) {
+                sb.append("=");
+                if (v.indexOf(' ') != -1) {
+                    sb.append('\"').append(v).append('\"');
+                } else {
+                    sb.append(v);
+                }
+            }
+            sb.append(';');
+        }
         String s = sb.toString();
         return s.endsWith(";") ? s.substring(0, s.length() - 1) : s; 
     }
@@ -153,4 +154,16 @@
         }
     }
 
+    private static void handleFields(List<String> fields, StringBuilder sb) {
+        if (!fields.isEmpty()) {
+            sb.append('=');
+        }
+        for (Iterator<String> it = fields.iterator(); it.hasNext();) {
+            sb.append('\"').append(it.next()).append('\"');
+            if (it.hasNext()) {
+                sb.append(',');
+            }
+        }
+        sb.append(';');
+    }
 }

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java Tue Mar  3 12:27:15 2009
@@ -25,6 +25,7 @@
 
 import javax.ws.rs.core.UriInfo;
 
+import org.apache.cxf.jaxrs.utils.HttpUtils;
 import org.apache.cxf.message.Message;
 
 public class RequestPreprocessor {
@@ -88,7 +89,8 @@
     
     private void updatePath(Message m, String path, String suffix) {
         String newPath = path.substring(0, path.length() - (suffix.length() + 1));
-        m.put(Message.REQUEST_URI, newPath);
+        HttpUtils.updatePath(m, newPath);
+        //m.put(Message.REQUEST_URI, newPath);
     }
     
 }

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java Tue Mar  3 12:27:15 2009
@@ -38,10 +38,10 @@
 import javax.ws.rs.ext.MessageBodyWriter;
 
 import org.apache.cxf.jaxrs.client.ResponseExceptionMapper;
-import org.apache.cxf.jaxrs.ext.MappingsHandler;
 import org.apache.cxf.jaxrs.ext.ParameterHandler;
 import org.apache.cxf.jaxrs.ext.RequestHandler;
 import org.apache.cxf.jaxrs.ext.ResponseHandler;
+import org.apache.cxf.jaxrs.ext.SystemQueryHandler;
 import org.apache.cxf.jaxrs.impl.RequestPreprocessor;
 import org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper;
 import org.apache.cxf.jaxrs.model.ProviderInfo;
@@ -66,7 +66,7 @@
                                     new PrimitiveTextProvider(),
                                     new ActivationProvider(),
                                     new WebApplicationExceptionMapper(),
-                                    new MappingsHandler());
+                                    new SystemQueryHandler());
     }
     
     private List<ProviderInfo<MessageBodyReader>> messageReaders = 

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java Tue Mar  3 12:27:15 2009
@@ -103,6 +103,19 @@
         return address;
     }
     
+    public static void updatePath(Message m, String path) {
+        String baseAddress = getBaseAddress(m);
+        boolean pathSlash = path.startsWith("/");
+        boolean baseSlash = baseAddress.endsWith("/");
+        if (pathSlash && baseSlash) {
+            path = path.substring(1);
+        } else if (!pathSlash && !baseSlash) {
+            path = "/" + path;
+        }
+        m.put(Message.REQUEST_URI, baseAddress + path);
+    }
+
+    
     public static String getPathToMatch(String path, String address, boolean addSlash) {
         
         int ind = path.indexOf(address);

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=749596&r1=749595&r2=749596&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 Tue Mar  3 12:27:15 2009
@@ -594,6 +594,9 @@
                                              String defaultValue) {
         
         List<String> values = new HttpHeadersImpl(m).getRequestHeader(header);
+        if (values != null && values.isEmpty()) {
+            values = null;
+        }
         String basePath = HttpUtils.getOriginalAddress(m);
         return InjectionUtils.createParameterObject(values, 
                                                     pClass, 

Added: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/SystemQueryHandlerTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/SystemQueryHandlerTest.java?rev=749596&view=auto
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/SystemQueryHandlerTest.java (added)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/SystemQueryHandlerTest.java Tue Mar  3 12:27:15 2009
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.jaxrs.ext;
+
+import org.apache.cxf.message.Message;
+import org.apache.cxf.message.MessageImpl;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class SystemQueryHandlerTest extends Assert {
+
+    @Test
+    public void testMethodQuery() {
+        Message m = new MessageImpl();
+        m.put(Message.HTTP_REQUEST_METHOD, "POST");
+        m.put(Message.QUERY_STRING, "_method=GET");
+        
+        SystemQueryHandler sqh = new SystemQueryHandler();
+        sqh.handleRequest(m, null);
+        assertEquals("GET", m.get(Message.HTTP_REQUEST_METHOD));
+    }
+    
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/SystemQueryHandlerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/SystemQueryHandlerTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/CacheControlHeaderProviderTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/CacheControlHeaderProviderTest.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/CacheControlHeaderProviderTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/CacheControlHeaderProviderTest.java Tue Mar  3 12:27:15 2009
@@ -61,4 +61,31 @@
         String parsed = CacheControl.valueOf(s).toString();
         assertEquals(s, parsed);       
     }
+    
+    @Test
+    public void testNoCacheEnabled() {
+        CacheControl cc = new CacheControl();
+        cc.setNoCache(true);
+        assertEquals("no-cache;no-transform", cc.toString());
+    }
+    
+    @Test
+    public void testNoCacheDisabled() {
+        CacheControl cc = new CacheControl();
+        cc.setNoCache(false);
+        assertEquals("no-transform", cc.toString());
+    }
+    
+    @Test
+    public void testCacheExtensionToString() {
+        CacheControl cc = new CacheControl();
+        cc.getCacheExtension().put("ext1", null);
+        cc.getCacheExtension().put("ext2", "value2");
+        cc.getCacheExtension().put("ext3", "value 3");
+        String value = cc.toString();
+        assertTrue(value.indexOf("ext1") != -1 && value.indexOf("ext1=") == -1);
+        assertTrue(value.indexOf("ext2=value2") != -1);
+        assertTrue(value.indexOf("ext3=\"value 3\"") != -1);
+    }
+    
 }

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java Tue Mar  3 12:27:15 2009
@@ -21,13 +21,17 @@
 
 import javax.ws.rs.core.Response;
 
+import org.apache.cxf.message.ExchangeImpl;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.message.MessageImpl;
+
 import org.junit.Assert;
 import org.junit.Test;
 
 public class HttpUtilsTest extends Assert {
 
     @Test
-    public void testUpdatePath() {
+    public void testPathToMatch() {
         assertEquals("/", HttpUtils.getPathToMatch("/", "/", true));
         assertEquals("/", HttpUtils.getPathToMatch("/", "/bar", true));
         assertEquals("/bar", HttpUtils.getPathToMatch("/bar", "/", true));
@@ -39,6 +43,24 @@
     }
     
     @Test
+    public void testUpdatePath() {
+        
+        Message m = new MessageImpl();
+        m.setExchange(new ExchangeImpl());
+        m.put(Message.ENDPOINT_ADDRESS, "http://localhost/");
+        HttpUtils.updatePath(m, "/bar");
+        assertEquals("/bar", m.get(Message.REQUEST_URI));
+        HttpUtils.updatePath(m, "bar");
+        assertEquals("/bar", m.get(Message.REQUEST_URI));
+        HttpUtils.updatePath(m, "bar/");
+        assertEquals("/bar/", m.get(Message.REQUEST_URI));
+        m.put(Message.ENDPOINT_ADDRESS, "http://localhost");
+        HttpUtils.updatePath(m, "bar/");
+        assertEquals("/bar/", m.get(Message.REQUEST_URI));
+    }
+    
+    
+    @Test
     public void testParameterErrorStatus() {
         assertEquals(Response.Status.NOT_FOUND,
                      HttpUtils.getParameterFailureStatus(ParameterType.PATH));

Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java Tue Mar  3 12:27:15 2009
@@ -239,7 +239,8 @@
                 response.getWriter().write("<table " + (serviceListStyleSheet == null
                         ? "cellpadding=\"1\" cellspacing=\"1\" border=\"1\" width=\"100%\"" : "") + ">");
                 for (ServletDestination sd : destinations) {
-                    if (null != sd.getEndpointInfo().getName()) {
+                    if (null != sd.getEndpointInfo().getName() 
+                        && null != sd.getEndpointInfo().getInterface()) {
                         response.getWriter().write("<tr><td>");
                         response.getWriter().write("<span class=\"porttypename\">"
                                 + sd.getEndpointInfo().getInterface().getName().getLocalPart()

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore.java (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore.java Tue Mar  3 12:27:15 2009
@@ -47,10 +47,10 @@
 import org.apache.cxf.customer.book.BookNotFoundDetails;
 import org.apache.cxf.customer.book.BookNotFoundFault;
 
-@Path("/bookstore/")
+@Path("/")
 public class AtomBookStore {
 
-    @Context private UriInfo uField;
+    @Context protected UriInfo uField;
     private HttpHeaders headers;
     private Map<Long, Book> books = new HashMap<Long, Book>();
     private Map<Long, CD> cds = new HashMap<Long, CD>();
@@ -124,7 +124,7 @@
             // this code is broken as Response does not
             
             URI uri = 
-                uField.getBaseUriBuilder().path("bookstore").path("books").path("entries") 
+                uField.getBaseUriBuilder().path("books").path("entries") 
                                                 .path(Long.toString(b.getId())).build();
             return Response.created(uri).entity(e).build();
         } catch (Exception ex) {

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore2.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore2.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore2.java (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore2.java Tue Mar  3 12:27:15 2009
@@ -40,6 +40,11 @@
         return super.getBooksAsFeed(uParam);
         
     }
+    
+    @Context
+    public void setUriInfo(UriInfo ui) {
+        super.uField = ui;
+    }
 }
 
 

Added: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java?rev=749596&view=auto
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java (added)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java Tue Mar  3 12:27:15 2009
@@ -0,0 +1,37 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.cxf.systest.jaxrs;
+
+
+import javax.ws.rs.Path;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.UriInfo;
+
+@Path("/atom")
+public class AtomBookStore3 extends AtomBookStore {
+    
+    @Context
+    public void setUriInfo(UriInfo ui) {
+        super.uField = ui;
+    }
+}
+
+

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

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=749596&r1=749595&r2=749596&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 Tue Mar  3 12:27:15 2009
@@ -174,6 +174,14 @@
     }
     
     @GET
+    @Path("/bookheaders2/")
+    public Book getBookByHeader(@DefaultValue("123") @HeaderParam("BOOK2") String id) 
+        throws Exception {
+        return doGetBook(id);
+    }
+    
+    
+    @GET
     @Path("/bookquery")
     public Book getBookByURLQuery(@QueryParam("urlid") String urlValue) throws Exception {
         String url2 = new URL(urlValue).toString();

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAtomBookTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAtomBookTest.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAtomBookTest.java (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAtomBookTest.java Tue Mar  3 12:27:15 2009
@@ -38,6 +38,7 @@
 import org.apache.cxf.io.CachedOutputStream;
 import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
 import org.codehaus.jettison.json.JSONObject;
+
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -54,17 +55,17 @@
     @Test
     public void testGetBooks() throws Exception {
         String endpointAddress =
-            "http://localhost:9080/bookstore/books/feed"; 
+            "http://localhost:9080/bookstore/bookstore/books/feed"; 
         Feed feed = getFeed(endpointAddress, null);
-        assertEquals("http://localhost:9080/bookstore/books/feed", 
+        assertEquals("http://localhost:9080/bookstore/bookstore/books/feed", 
                      feed.getBaseUri().toString());
         assertEquals("Collection of Books", feed.getTitle());
         
-        getAndCompareJson("http://localhost:9080/bookstore/books/feed",
+        getAndCompareJson("http://localhost:9080/bookstore/bookstore/books/feed",
                                "resources/expected_atom_books_json.txt",
                                "application/json");
         
-        getAndCompareJson("http://localhost:9080/bookstore/books/jsonfeed",
+        getAndCompareJson("http://localhost:9080/bookstore/bookstore/books/jsonfeed",
                           "resources/expected_atom_books_jsonfeed.txt",
                           "application/json, text/html, application/xml;q=0.9,"
                           + " application/xhtml+xml, image/png, image/jpeg, image/gif,"
@@ -97,25 +98,25 @@
         
         
         endpointAddress =
-            "http://localhost:9080/bookstore/books/subresources/123"; 
+            "http://localhost:9080/bookstore/bookstore/books/subresources/123"; 
         entry = getEntry(endpointAddress, null);
         assertEquals("CXF in Action", entry.getTitle());
         
-        getAndCompareJson("http://localhost:9080/bookstore/books/entries/123",
+        getAndCompareJson("http://localhost:9080/bookstore/bookstore/books/entries/123",
                                "resources/expected_atom_book_json.txt",
                                "application/json");
         
-        getAndCompareJson("http://localhost:9080/bookstore/books/entries/123?_type="
+        getAndCompareJson("http://localhost:9080/bookstore/bookstore/books/entries/123?_type="
                                + "application/json",
                                "resources/expected_atom_book_json.txt",
                                "*/*");
-        getAndCompareJson("http://localhost:9080/bookstore/books/entries/123?_type="
+        getAndCompareJson("http://localhost:9080/bookstore/bookstore/books/entries/123?_type="
                                + "json",
                                "resources/expected_atom_book_json.txt",
                                "*/*");
         
         // do the same using extension mappings
-        getAndCompareJson("http://localhost:9080/bookstore/books/entries/123.json",
+        getAndCompareJson("http://localhost:9080/bookstore/bookstore/books/entries/123.json",
                                "resources/expected_atom_book_json.txt",
                                "*/*");
         
@@ -125,11 +126,22 @@
     @Test
     public void testGetBooks2() throws Exception {
         String endpointAddress =
-            "http://localhost:9080"; 
+            "http://localhost:9080/bookstore/sub/"; 
         Feed feed = getFeed(endpointAddress, null);
-        assertEquals("http://localhost:9080/", 
+        assertEquals("http://localhost:9080/bookstore/sub/", 
                      feed.getBaseUri().toString());
         assertEquals("Collection of Books", feed.getTitle());
+        
+        getAndCompareJson("http://localhost:9080/bookstore/sub/books/entries/123.json",
+                        "resources/expected_atom_book_json2.txt",
+                        "*/*");
+    }
+    
+    @Test
+    public void testGetBooks3() throws Exception {
+        getAndCompareJson("http://localhost:9080/atom/atom/books/entries/123.json",
+                        "resources/expected_atom_book_json3.txt",
+                        "*/*");
     }
     
     private void getAndCompareJson(String address, 

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=749596&r1=749595&r2=749596&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 Tue Mar  3 12:27:15 2009
@@ -286,6 +286,13 @@
     }
     
     @Test
+    public void testGetBookByHeaderDefault() throws Exception {
+        getAndCompareAsStrings("http://localhost:9080/bookstore/bookheaders2",
+                               "resources/expected_get_book123.txt",
+                               "application/xml;q=0.5,text/xml", 200);
+    }
+    
+    @Test
     public void testGetBookElement() throws Exception {
         getAndCompareAsStrings("http://localhost:9080/bookstore/books/element",
                                "resources/expected_get_book123.txt",

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java Tue Mar  3 12:27:15 2009
@@ -189,7 +189,7 @@
             + "boundary=\"----=_Part_4_701508.1145579811786\"";
         post.setRequestHeader("Content-Type", ct);
         InputStream is = 
-            getClass().getResourceAsStream("/org/apache/cxf/systest/jaxrs/" + resourceName);
+            getClass().getResourceAsStream("/org/apache/cxf/systest/jaxrs/resources/" + resourceName);
         RequestEntity entity = new InputStreamRequestEntity(is);
         post.setRequestEntity(entity);
         HttpClient httpclient = new HttpClient();

Added: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData?rev=749596&view=auto
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData (added)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData Tue Mar  3 12:27:15 2009
@@ -0,0 +1,18 @@
+
+------=_Part_4_701508.1145579811786
+Content-Type: text/xml
+Content-ID: <rootPart>
+
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Book><name>CXF in Action - 2</name></Book>
+------=_Part_4_701508.1145579811786
+Content-Type: image/jpeg
+Content-Transfer-Encoding: binary
+Content-ID: <foo>
+
+foobar
+------=_Part_4_701508.1145579811786--
+Content-Type: application/xml
+Content-ID: <book2>
+
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Book><name>CXF in Action - 2</name></Book>
+------=_Part_4_701508.1145579811786--
\ No newline at end of file

Added: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData2
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData2?rev=749596&view=auto
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData2 (added)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData2 Tue Mar  3 12:27:15 2009
@@ -0,0 +1,18 @@
+
+------=_Part_4_701508.1145579811786
+Content-Type: text/xml
+Content-ID: <rootPart>
+
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?><b:Book xmlns:b="http://www.example.org/books"><b:name>CXF in Action</b:name><b:id>123</b:id></b:Book>
+------=_Part_4_701508.1145579811786
+Content-Type: image/jpeg
+Content-Transfer-Encoding: binary
+Content-ID: <foo>
+
+foobar
+------=_Part_4_701508.1145579811786--
+Content-Type: application/json
+Content-ID: <book2>
+
+{"Book":{"name":"CXF in Action - 2","id":123}}
+------=_Part_4_701508.1145579811786--
\ No newline at end of file

Added: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData3
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData3?rev=749596&view=auto
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData3 (added)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentData3 Tue Mar  3 12:27:15 2009
@@ -0,0 +1,15 @@
+
+------=_Part_4_701508.1145579811786
+Content-Type: text/xml
+
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Book><name>CXF in Action - 2</name></Book>
+------=_Part_4_701508.1145579811786
+Content-Type: image/jpeg
+Content-Transfer-Encoding: binary
+
+foobar
+------=_Part_4_701508.1145579811786--
+Content-Type: application/xml
+
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Book><name>CXF in Action - 2</name></Book>
+------=_Part_4_701508.1145579811786--
\ No newline at end of file

Added: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentForm
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentForm?rev=749596&view=auto
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentForm (added)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentForm Tue Mar  3 12:27:15 2009
@@ -0,0 +1,10 @@
+
+------=_Part_4_701508.1145579811786
+Content-Disposition: form-data; name="name"
+
+CXF+in+Action+-+2
+------=_Part_4_701508.1145579811786
+Content-Disposition: form-data ; name = "id"
+
+124
+------=_Part_4_701508.1145579811786--
\ No newline at end of file

Added: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/book.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/book.xsd?rev=749596&view=auto
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/book.xsd (added)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/book.xsd Tue Mar  3 12:27:15 2009
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/books" xmlns:tns="http://www.example.org/books" xmlns:bookids="http://www.example.org/books/id" elementFormDefault="qualified">
+  <xs:import namespace="http://www.example.org/books/id"/>
+  <element name="Book">
+     <complexType>
+       <sequence>
+        <element name="name" type="xs:string"/>
+        <element name="id" type="bookids:bid"/>
+       </sequence> 
+     </complexType>
+  </element>
+</schema>
\ No newline at end of file

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/book.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/book.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/book.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/bookid.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/bookid.xsd?rev=749596&view=auto
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/bookid.xsd (added)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/bookid.xsd Tue Mar  3 12:27:15 2009
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.example.org/books/id" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.example.org/books/id">
+  
+
+     <simpleType name="bid">
+       <restriction base="xs:long"/>
+     </simpleType>
+  </schema>

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/bookid.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/bookid.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/bookid.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json.txt?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json.txt (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json.txt Tue Mar  3 12:27:15 2009
@@ -9,6 +9,6 @@
   ]
  },
  "attributes":{
-  "xml:base":"http://localhost:9080/bookstore/books/entries/123"
+  "xml:base":"http://localhost:9080/bookstore/bookstore/books/entries/123"
  }
 }
\ No newline at end of file

Added: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json2.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json2.txt?rev=749596&view=auto
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json2.txt (added)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json2.txt Tue Mar  3 12:27:15 2009
@@ -0,0 +1,14 @@
+{
+ "id":"123",
+ "title":"CXF in Action",
+ "content":{
+  "attributes":{
+   "type":"application/xml"
+  },
+  "children":["<Book><id>123<\/id><name>CXF in Action<\/name><\/Book>"
+  ]
+ },
+ "attributes":{
+  "xml:base":"http://localhost:9080/bookstore/sub/books/entries/123"
+ }
+}
\ No newline at end of file

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json2.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json2.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json3.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json3.txt?rev=749596&view=auto
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json3.txt (added)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json3.txt Tue Mar  3 12:27:15 2009
@@ -0,0 +1,14 @@
+{
+ "id":"123",
+ "title":"CXF in Action",
+ "content":{
+  "attributes":{
+   "type":"application/xml"
+  },
+  "children":["<Book><id>123<\/id><name>CXF in Action<\/name><\/Book>"
+  ]
+ },
+ "attributes":{
+  "xml:base":"http://localhost:9080/atom/atom/books/entries/123"
+ }
+}
\ No newline at end of file

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json3.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_book_json3.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_books_json.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_books_json.txt?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_books_json.txt (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_books_json.txt Tue Mar  3 12:27:15 2009
@@ -18,7 +18,7 @@
   }
  ],
  "attributes":{
-  "xml:base":"http://localhost:9080/bookstore/books/feed"
+  "xml:base":"http://localhost:9080/bookstore/bookstore/books/feed"
  }
 }
 

Modified: cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_books_jsonfeed.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_books_jsonfeed.txt?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_books_jsonfeed.txt (original)
+++ cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_atom_books_jsonfeed.txt Tue Mar  3 12:27:15 2009
@@ -18,7 +18,7 @@
   }
  ],
  "attributes":{
-  "xml:base":"http://localhost:9080/bookstore/books/jsonfeed"
+  "xml:base":"http://localhost:9080/bookstore/bookstore/books/jsonfeed"
  }
 }
 

Modified: cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/beans.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/beans.xml?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/beans.xml (original)
+++ cxf/trunk/systests/src/test/resources/jaxrs/WEB-INF/beans.xml Tue Mar  3 12:27:15 2009
@@ -87,8 +87,8 @@
   </bean>
   
   <util:list id="theSchemas">
-    <value>classpath:/org/apache/cxf/systest/jaxrs/bookid.xsd</value>
-    <value>classpath:/org/apache/cxf/systest/jaxrs/book.xsd</value>
+    <value>classpath:/org/apache/cxf/systest/jaxrs/resources/bookid.xsd</value>
+    <value>classpath:/org/apache/cxf/systest/jaxrs/resources/book.xsd</value>
   </util:list>
   
   <util:list id="jsonTypes">

Modified: cxf/trunk/systests/src/test/resources/jaxrs_atom/WEB-INF/beans.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/resources/jaxrs_atom/WEB-INF/beans.xml?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/resources/jaxrs_atom/WEB-INF/beans.xml (original)
+++ cxf/trunk/systests/src/test/resources/jaxrs_atom/WEB-INF/beans.xml Tue Mar  3 12:27:15 2009
@@ -39,22 +39,56 @@
   <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
   
   <jaxrs:server id="atomservice"
-		        address="/" 
+		        address="/bookstore" 
 		        staticSubresourceResolution="true">
     <jaxrs:serviceBeans>
       <ref bean="atomstore"/>
-      <ref bean="atomstore2"/>
     </jaxrs:serviceBeans>
     <jaxrs:providers>
-        <bean class="org.apache.cxf.jaxrs.provider.AtomFeedProvider"/>
-        <bean class="org.apache.cxf.jaxrs.provider.AtomEntryProvider"/>
+        <ref bean="feed"/>
+        <ref bean="entry"/>
     </jaxrs:providers>	
     <jaxrs:extensionMappings>
       <entry key="json" value="application/json"/>
     </jaxrs:extensionMappings>		   
   </jaxrs:server>
+  
+  <jaxrs:server id="atomservice2"
+		        address="/sub" 
+		        staticSubresourceResolution="true">
+    <jaxrs:serviceBeans>
+      <ref bean="atomstore2"/>
+    </jaxrs:serviceBeans>
+    <jaxrs:providers>
+        <ref bean="feed"/>
+        <ref bean="entry"/>
+    </jaxrs:providers>	
+    <jaxrs:extensionMappings>
+      <entry key="json" value="application/json"/>
+    </jaxrs:extensionMappings>	
+  </jaxrs:server>
+  
+  <jaxrs:server id="atomservice3"
+		        address="/">
+    <jaxrs:serviceBeans>
+      <ref bean="atomstore3"/>
+    </jaxrs:serviceBeans>
+    <jaxrs:providers>
+        <ref bean="feed"/>
+        <ref bean="entry"/>
+    </jaxrs:providers>	
+    <jaxrs:extensionMappings>
+      <entry key="json" value="application/json"/>
+    </jaxrs:extensionMappings>	
+  </jaxrs:server>
+  
   <bean id="atomstore" class="org.apache.cxf.systest.jaxrs.AtomBookStore"/>
   <bean id="atomstore2" class="org.apache.cxf.systest.jaxrs.AtomBookStore2"/>
+  <bean id="atomstore3" class="org.apache.cxf.systest.jaxrs.AtomBookStore3"/>
+  
+  <bean id="feed" class="org.apache.cxf.jaxrs.provider.AtomFeedProvider"/>
+  <bean id="entry" class="org.apache.cxf.jaxrs.provider.AtomEntryProvider"/>
+  
 </beans>
 <!-- END SNIPPET: beans -->
 

Modified: cxf/trunk/systests/src/test/resources/jaxrs_atom/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/resources/jaxrs_atom/WEB-INF/web.xml?rev=749596&r1=749595&r2=749596&view=diff
==============================================================================
--- cxf/trunk/systests/src/test/resources/jaxrs_atom/WEB-INF/web.xml (original)
+++ cxf/trunk/systests/src/test/resources/jaxrs_atom/WEB-INF/web.xml Tue Mar  3 12:27:15 2009
@@ -44,7 +44,13 @@
 
 	<servlet-mapping>
 		<servlet-name>CXFServlet</servlet-name>
-		<url-pattern>/*</url-pattern>
+		<url-pattern>/bookstore/*</url-pattern>
 	</servlet-mapping>
+	
+	<servlet-mapping>
+		<servlet-name>CXFServlet</servlet-name>
+		<url-pattern>/atom/*</url-pattern>
+	</servlet-mapping>
+	
 </web-app>
 <!-- END SNIPPET: webxml -->