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/07/15 14:45:47 UTC

svn commit: r1503207 - in /cxf/trunk: rt/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/ rt/frontend/jaxrs/src/ma...

Author: sergeyb
Date: Mon Jul 15 12:45:45 2013
New Revision: 1503207

URL: http://svn.apache.org/r1503207
Log:
[CXF-4827] Moving WADL generator code into its own module

Added:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/ElementClass.java
      - copied, changed from r1503166, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/ElementClass.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/XMLName.java
      - copied, changed from r1503166, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/XMLName.java
    cxf/trunk/rt/rs/description/
    cxf/trunk/rt/rs/description/pom.xml   (with props)
    cxf/trunk/rt/rs/description/src/
    cxf/trunk/rt/rs/description/src/main/
    cxf/trunk/rt/rs/description/src/main/java/
    cxf/trunk/rt/rs/description/src/main/java/org/
    cxf/trunk/rt/rs/description/src/main/java/org/apache/
    cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/
    cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/
    cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/
    cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/
    cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/Description.java
      - copied unchanged from r1503166, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/Description.java
    cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/Descriptions.java
      - copied unchanged from r1503166, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/Descriptions.java
    cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/DocTarget.java
      - copied unchanged from r1503166, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/DocTarget.java
    cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/ElementQNameResolver.java
      - copied unchanged from r1503166, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/ElementQNameResolver.java
    cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
      - copied, changed from r1503166, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
    cxf/trunk/rt/rs/description/src/test/
    cxf/trunk/rt/rs/description/src/test/java/
    cxf/trunk/rt/rs/description/src/test/java/org/
    cxf/trunk/rt/rs/description/src/test/java/org/apache/
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookEnum.java
      - copied unchanged from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookEnum.java
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java
      - copied, changed from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStoreWithSingleSlash.java
      - copied, changed from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStoreWithSingleSlash.java
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/FormInterface.java
      - copied unchanged from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/FormInterface.java
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/Orders.java
      - copied unchanged from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/Orders.java
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/ServerProviderFactoryTest.java   (with props)
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java
      - copied unchanged from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Book.java
      - copied, changed from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Book.java
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Chapter.java
      - copied, changed from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Chapter.java
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/ObjectFactory.java
      - copied unchanged from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/ObjectFactory.java
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/Book2.java   (with props)
    cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/package-info.java   (with props)
    cxf/trunk/rt/rs/description/src/test/resources/
    cxf/trunk/rt/rs/description/src/test/resources/book1.xsd   (with props)
    cxf/trunk/rt/rs/description/src/test/resources/book2.xsd   (with props)
    cxf/trunk/rt/rs/description/src/test/resources/books.xsd   (with props)
Removed:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/
Modified:
    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/provider/ServerProviderFactory.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java
    cxf/trunk/rt/pom.xml
    cxf/trunk/rt/rs/extensions/providers/pom.xml
    cxf/trunk/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/resources/Chapter.java
    cxf/trunk/systests/jaxrs/pom.xml
    cxf/trunk/systests/rs-security/pom.xml

Copied: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/ElementClass.java (from r1503166, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/ElementClass.java)
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/ElementClass.java?p2=cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/ElementClass.java&p1=cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/ElementClass.java&r1=1503166&r2=1503207&rev=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/ElementClass.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/ElementClass.java Mon Jul 15 12:45:45 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.cxf.jaxrs.model.wadl;
+package org.apache.cxf.jaxrs.ext.xml;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -24,10 +24,7 @@ import java.lang.annotation.RetentionPol
 import java.lang.annotation.Target;
 
 /**
- * References the concrete response or request class for 
- * WADL generator be able to generate representations and link
- * them to schema elements. For example, it can be applied to 
- * methods returning a JAX-RS {@link Response}. 
+ * Can be applied to methods returning a JAX-RS {@link Response}
  * 
  */
 @Retention(RetentionPolicy.RUNTIME)

Copied: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/XMLName.java (from r1503166, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/XMLName.java)
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/XMLName.java?p2=cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/XMLName.java&p1=cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/XMLName.java&r1=1503166&r2=1503207&rev=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/XMLName.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/xml/XMLName.java Mon Jul 15 12:45:45 2013
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.cxf.jaxrs.model.wadl;
+package org.apache.cxf.jaxrs.ext.xml;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;

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=1503207&r1=1503206&r2=1503207&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 Mon Jul 15 12:45:45 2013
@@ -29,7 +29,6 @@ import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.UriInfo;
 
 import org.apache.cxf.common.util.StringUtils;
-import org.apache.cxf.jaxrs.model.wadl.WadlGenerator;
 import org.apache.cxf.jaxrs.utils.HttpUtils;
 import org.apache.cxf.message.Message;
 
@@ -102,9 +101,9 @@ public class RequestPreprocessor {
                     // WADL type (xml or json or html - other options)
                     String query = (String)m.get(Message.QUERY_STRING);
                     if (StringUtils.isEmpty(query)) {
-                        query = WadlGenerator.WADL_QUERY;
-                    } else if (!query.contains(WadlGenerator.WADL_QUERY)) {
-                        query += "&" + WadlGenerator.WADL_QUERY;
+                        query = "_wadl";
+                    } else if (!query.contains("_wadl")) {
+                        query += "&_wadl";
                     }
                     m.put(Message.QUERY_STRING, query);
                 }

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=1503207&r1=1503206&r2=1503207&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 Mon Jul 15 12:45:45 2013
@@ -138,7 +138,7 @@ public abstract class ProviderFactory {
                                     new MultipartProvider());
     }
     
-    private static Object createProvider(String className) {
+    protected static Object createProvider(String className) {
         
         try {
             return ClassLoaderUtils.loadClass(className, ProviderFactory.class).newInstance();

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java?rev=1503207&r1=1503206&r2=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java Mon Jul 15 12:45:45 2013
@@ -54,7 +54,6 @@ import org.apache.cxf.jaxrs.model.BeanPa
 import org.apache.cxf.jaxrs.model.ClassResourceInfo;
 import org.apache.cxf.jaxrs.model.OperationResourceInfo;
 import org.apache.cxf.jaxrs.model.ProviderInfo;
-import org.apache.cxf.jaxrs.model.wadl.WadlGenerator;
 import org.apache.cxf.jaxrs.utils.AnnotationUtils;
 import org.apache.cxf.jaxrs.utils.InjectionUtils;
 import org.apache.cxf.message.Message;
@@ -66,6 +65,7 @@ public final class ServerProviderFactory
                         ContainerResponseFilter.class,
                         ReaderInterceptor.class,
                         WriterInterceptor.class};
+    private static final String WADL_PROVIDER_NAME = "org.apache.cxf.jaxrs.model.wadl.WadlGenerator";
     private List<ProviderInfo<ExceptionMapper<?>>> exceptionMappers = 
         new ArrayList<ProviderInfo<ExceptionMapper<?>>>(1);
     
@@ -85,7 +85,16 @@ public final class ServerProviderFactory
     private ServerProviderFactory(ProviderFactory baseFactory, Bus bus) {
         super(baseFactory, bus);
         if (baseFactory == null) {
-            wadlGenerator = new ProviderInfo<ContainerRequestFilter>(new WadlGenerator(), bus);
+            wadlGenerator = createWadlGenerator(bus);
+        }
+    }
+    
+    private static ProviderInfo<ContainerRequestFilter> createWadlGenerator(Bus bus) {
+        Object provider = createProvider(WADL_PROVIDER_NAME);
+        if (provider == null) {
+            return null;
+        } else {
+            return new ProviderInfo<ContainerRequestFilter>((ContainerRequestFilter)provider, bus);
         }
     }
     
@@ -251,7 +260,7 @@ public final class ServerProviderFactory
         List<ProviderInfo<ContainerRequestFilter>> postMatchFilters,
         ProviderInfo<ContainerRequestFilter> p) {
         ContainerRequestFilter filter = p.getProvider();
-        if (filter instanceof WadlGenerator) {
+        if (isWadlGenerator(filter.getClass())) {
             wadlGenerator = p; 
         } else {
             if (isPrematching(filter.getClass())) {
@@ -263,6 +272,17 @@ public final class ServerProviderFactory
         
     }
     
+    private static boolean isWadlGenerator(Class<?> filterCls) {
+        if (filterCls == null || filterCls == Object.class) {
+            return false;
+        }
+        if (WADL_PROVIDER_NAME.equals(filterCls.getName())) {
+            return true;
+        } else {
+            return isWadlGenerator(filterCls.getSuperclass());
+        }
+    }
+    
     public RequestPreprocessor getRequestPreprocessor() {
         return requestPreprocessor;
     }

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java?rev=1503207&r1=1503206&r2=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java Mon Jul 15 12:45:45 2013
@@ -74,6 +74,8 @@ import org.apache.cxf.common.logging.Log
 import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
+import org.apache.cxf.jaxrs.ext.xml.ElementClass;
+import org.apache.cxf.jaxrs.ext.xml.XMLName;
 import org.apache.cxf.jaxrs.lifecycle.PerRequestResourceProvider;
 import org.apache.cxf.jaxrs.lifecycle.ResourceProvider;
 import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
@@ -86,8 +88,6 @@ import org.apache.cxf.jaxrs.model.Resour
 import org.apache.cxf.jaxrs.model.URITemplate;
 import org.apache.cxf.jaxrs.model.UserOperation;
 import org.apache.cxf.jaxrs.model.UserResource;
-import org.apache.cxf.jaxrs.model.wadl.ElementClass;
-import org.apache.cxf.jaxrs.model.wadl.XMLName;
 import org.apache.cxf.jaxrs.provider.JAXBElementProvider;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.resource.ResourceManager;

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java?rev=1503207&r1=1503206&r2=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java Mon Jul 15 12:45:45 2013
@@ -35,9 +35,6 @@ import javax.activation.DataSource;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.Produces;
 import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.container.PreMatching;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
@@ -61,7 +58,6 @@ import org.apache.cxf.jaxrs.impl.Metadat
 import org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper;
 import org.apache.cxf.jaxrs.model.AbstractResourceInfo;
 import org.apache.cxf.jaxrs.model.ProviderInfo;
-import org.apache.cxf.jaxrs.model.wadl.WadlGenerator;
 import org.apache.cxf.jaxrs.resources.Book;
 import org.apache.cxf.jaxrs.resources.SuperBook;
 import org.apache.cxf.message.Exchange;
@@ -89,50 +85,6 @@ public class ProviderFactoryTest extends
     }
     
     @Test
-    public void testCustomWadlHandler() {
-        ServerProviderFactory pf = ServerProviderFactory.getInstance();
-        assertEquals(1, pf.getPreMatchContainerRequestFilters().size());
-        assertTrue(pf.getPreMatchContainerRequestFilters().get(0).getProvider() instanceof WadlGenerator);
-        
-        WadlGenerator wg = new WadlGenerator();
-        pf.setUserProviders(Collections.singletonList(wg));
-        assertEquals(1, pf.getPreMatchContainerRequestFilters().size());
-        assertTrue(pf.getPreMatchContainerRequestFilters().get(0).getProvider() instanceof WadlGenerator);
-        assertSame(wg, pf.getPreMatchContainerRequestFilters().get(0).getProvider());
-    }
-    
-    @Test
-    public void testCustomTestHandler() {
-        ServerProviderFactory pf = ServerProviderFactory.getInstance();
-        assertEquals(1, pf.getPreMatchContainerRequestFilters().size());
-        assertTrue(pf.getPreMatchContainerRequestFilters().get(0).getProvider() instanceof WadlGenerator);
-        
-        TestHandler th = new TestHandler();
-        pf.setUserProviders(Collections.singletonList(th));
-        assertEquals(2, pf.getPreMatchContainerRequestFilters().size());
-        assertTrue(pf.getPreMatchContainerRequestFilters().get(0).getProvider() instanceof WadlGenerator);
-        assertSame(th, pf.getPreMatchContainerRequestFilters().get(1).getProvider());
-    }
-    
-    @Test
-    public void testCustomTestAndWadlHandler() {
-        ServerProviderFactory pf = ServerProviderFactory.getInstance();
-        assertEquals(1, pf.getPreMatchContainerRequestFilters().size());
-        assertTrue(pf.getPreMatchContainerRequestFilters().get(0).getProvider() instanceof WadlGenerator);
-        
-        List<Object> providers = new ArrayList<Object>();
-        WadlGenerator wg = new WadlGenerator();
-        providers.add(wg);
-        TestHandler th = new TestHandler();
-        providers.add(th);
-        pf.setUserProviders(providers);
-        assertEquals(2, pf.getPreMatchContainerRequestFilters().size());
-        assertSame(wg, pf.getPreMatchContainerRequestFilters().get(0).getProvider());
-        assertSame(th, pf.getPreMatchContainerRequestFilters().get(1).getProvider());
-    }
-    
-    
-    @Test
     public void testCustomJaxbProvider() {
         ProviderFactory pf = ServerProviderFactory.getInstance();
         JAXBElementProvider<Book> provider = new JAXBElementProvider<Book>();
@@ -745,16 +697,7 @@ public class ProviderFactoryTest extends
         }
         
     }
-    
-    @PreMatching
-    private static class TestHandler implements ContainerRequestFilter {
-
-        public void filter(ContainerRequestContext context) {
-            // complete
-        }
-        
-    }
-        
+            
     private static class RuntimeExceptionMapper1 
         extends AbstractTestExceptionMapper<RuntimeException> {
         

Modified: cxf/trunk/rt/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/pom.xml?rev=1503207&r1=1503206&r2=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/pom.xml (original)
+++ cxf/trunk/rt/pom.xml Mon Jul 15 12:45:45 2013
@@ -61,6 +61,7 @@
         <module>ws/mex</module>
         <module>ws/eventing</module>
         <module>rs/client</module>
+        <module>rs/description</module>
         <module>rs/extensions/providers</module>
         <module>rs/extensions/search</module> 
         <module>rs/security/xml</module>

Added: cxf/trunk/rt/rs/description/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/pom.xml?rev=1503207&view=auto
==============================================================================
--- cxf/trunk/rt/rs/description/pom.xml (added)
+++ cxf/trunk/rt/rs/description/pom.xml Mon Jul 15 12:45:45 2013
@@ -0,0 +1,82 @@
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.cxf</groupId>
+    <artifactId>cxf-rt-rs-service-description</artifactId>
+    <packaging>jar</packaging>
+    <version>3.0.0-SNAPSHOT</version>
+    <name>Apache CXF JAX-RS Service Description</name>
+    <description>Apache CXF JAX-RS Service Description</description>
+    <url>http://cxf.apache.org</url>
+
+    <parent>
+        <groupId>org.apache.cxf</groupId>
+        <artifactId>cxf-parent</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+        <relativePath>../../parent/pom.xml</relativePath>
+    </parent>
+
+    <properties>
+        <cxf.osgi.import>
+            javax.servlet*;version="${cxf.osgi.javax.servlet.version}",
+        </cxf.osgi.import>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${cxf.servlet-api.group}</groupId>
+            <artifactId>${cxf.servlet-api.artifact}</artifactId>
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-databinding-aegis</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+            <optional>true</optional>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.cxf</groupId>
+                    <artifactId>cxf-rt-frontend-simple</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>         
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+        </plugins>
+    </build>
+</project>

Propchange: cxf/trunk/rt/rs/description/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/rs/description/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/rs/description/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Copied: cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java (from r1503166, cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java)
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java?p2=cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java&p1=cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java&r1=1503166&r2=1503207&rev=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java (original)
+++ cxf/trunk/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java Mon Jul 15 12:45:45 2013
@@ -87,6 +87,7 @@ import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.jaxrs.JAXRSServiceImpl;
 import org.apache.cxf.jaxrs.ext.Oneway;
 import org.apache.cxf.jaxrs.ext.multipart.Multipart;
+import org.apache.cxf.jaxrs.ext.xml.XMLName;
 import org.apache.cxf.jaxrs.ext.xml.XMLSource;
 import org.apache.cxf.jaxrs.impl.HttpHeadersImpl;
 import org.apache.cxf.jaxrs.impl.MetadataMap;

Copied: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java (from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java)
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java?p2=cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java&p1=cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java&r1=1503166&r2=1503207&rev=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java (original)
+++ cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStore.java Mon Jul 15 12:45:45 2013
@@ -40,9 +40,11 @@ import javax.xml.bind.annotation.XmlTran
 
 import org.apache.cxf.aegis.type.java5.IgnoreProperty;
 import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
-import org.apache.cxf.jaxrs.fortest.jaxb.packageinfo.Book2;
+import org.apache.cxf.jaxrs.ext.xml.ElementClass;
+import org.apache.cxf.jaxrs.ext.xml.XMLName;
 import org.apache.cxf.jaxrs.model.wadl.jaxb.Book;
 import org.apache.cxf.jaxrs.model.wadl.jaxb.Chapter;
+import org.apache.cxf.jaxrs.model.wadl.jaxb.packageinfo.Book2;
 
 @Path("/bookstore/{id}")
 @Consumes({"application/xml", "application/json" })

Copied: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStoreWithSingleSlash.java (from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStoreWithSingleSlash.java)
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStoreWithSingleSlash.java?p2=cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStoreWithSingleSlash.java&p1=cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStoreWithSingleSlash.java&r1=1503166&r2=1503207&rev=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStoreWithSingleSlash.java (original)
+++ cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/BookStoreWithSingleSlash.java Mon Jul 15 12:45:45 2013
@@ -25,6 +25,7 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Response;
 
+import org.apache.cxf.jaxrs.ext.xml.ElementClass;
 import org.apache.cxf.jaxrs.model.wadl.jaxb.Book;
 
 @Path("/")

Added: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/ServerProviderFactoryTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/ServerProviderFactoryTest.java?rev=1503207&view=auto
==============================================================================
--- cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/ServerProviderFactoryTest.java (added)
+++ cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/ServerProviderFactoryTest.java Mon Jul 15 12:45:45 2013
@@ -0,0 +1,100 @@
+/**
+ * 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.model.wadl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.PreMatching;
+
+import org.apache.cxf.jaxrs.model.AbstractResourceInfo;
+import org.apache.cxf.jaxrs.provider.ServerProviderFactory;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ServerProviderFactoryTest extends Assert {
+
+    
+    @Before
+    public void setUp() {
+        ServerProviderFactory.getInstance().clearProviders();
+        AbstractResourceInfo.clearAllMaps();
+    }
+    
+    
+    @Test
+    public void testCustomWadlHandler() {
+        ServerProviderFactory pf = ServerProviderFactory.getInstance();
+        assertEquals(1, pf.getPreMatchContainerRequestFilters().size());
+        assertTrue(pf.getPreMatchContainerRequestFilters().get(0).getProvider() instanceof WadlGenerator);
+        
+        WadlGenerator wg = new WadlGenerator();
+        pf.setUserProviders(Collections.singletonList(wg));
+        assertEquals(1, pf.getPreMatchContainerRequestFilters().size());
+        assertTrue(pf.getPreMatchContainerRequestFilters().get(0).getProvider() instanceof WadlGenerator);
+        assertSame(wg, pf.getPreMatchContainerRequestFilters().get(0).getProvider());
+    }
+    
+    @Test
+    public void testCustomTestHandler() {
+        ServerProviderFactory pf = ServerProviderFactory.getInstance();
+        assertEquals(1, pf.getPreMatchContainerRequestFilters().size());
+        assertTrue(pf.getPreMatchContainerRequestFilters().get(0).getProvider() instanceof WadlGenerator);
+        
+        TestHandler th = new TestHandler();
+        pf.setUserProviders(Collections.singletonList(th));
+        assertEquals(2, pf.getPreMatchContainerRequestFilters().size());
+        assertTrue(pf.getPreMatchContainerRequestFilters().get(0).getProvider() instanceof WadlGenerator);
+        assertSame(th, pf.getPreMatchContainerRequestFilters().get(1).getProvider());
+    }
+    
+    @Test
+    public void testCustomTestAndWadlHandler() {
+        ServerProviderFactory pf = ServerProviderFactory.getInstance();
+        assertEquals(1, pf.getPreMatchContainerRequestFilters().size());
+        assertTrue(pf.getPreMatchContainerRequestFilters().get(0).getProvider() instanceof WadlGenerator);
+        
+        List<Object> providers = new ArrayList<Object>();
+        WadlGenerator wg = new WadlGenerator();
+        providers.add(wg);
+        TestHandler th = new TestHandler();
+        providers.add(th);
+        pf.setUserProviders(providers);
+        assertEquals(2, pf.getPreMatchContainerRequestFilters().size());
+        assertSame(wg, pf.getPreMatchContainerRequestFilters().get(0).getProvider());
+        assertSame(th, pf.getPreMatchContainerRequestFilters().get(1).getProvider());
+    }
+    
+    @PreMatching
+    private static class TestHandler implements ContainerRequestFilter {
+
+        public void filter(ContainerRequestContext context) {
+            // complete
+        }
+        
+    }
+    
+    
+}

Propchange: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/ServerProviderFactoryTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/ServerProviderFactoryTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Book.java (from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Book.java)
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Book.java?p2=cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Book.java&p1=cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Book.java&r1=1503166&r2=1503207&rev=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Book.java (original)
+++ cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Book.java Mon Jul 15 12:45:45 2013
@@ -27,9 +27,9 @@ import javax.xml.bind.annotation.XmlElem
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
+import org.apache.cxf.jaxrs.ext.xml.XMLName;
 import org.apache.cxf.jaxrs.model.wadl.Description;
 import org.apache.cxf.jaxrs.model.wadl.FormInterface;
-import org.apache.cxf.jaxrs.model.wadl.XMLName;
 
 @XmlRootElement(name = "thebook", namespace = "http://superbooks")
 @XmlType(name = "book", namespace = "http://superbooks")

Copied: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Chapter.java (from r1503166, cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Chapter.java)
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Chapter.java?p2=cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Chapter.java&p1=cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Chapter.java&r1=1503166&r2=1503207&rev=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Chapter.java (original)
+++ cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/Chapter.java Mon Jul 15 12:45:45 2013
@@ -24,8 +24,8 @@ import javax.ws.rs.Produces;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
+import org.apache.cxf.jaxrs.ext.xml.XMLName;
 import org.apache.cxf.jaxrs.model.wadl.Description;
-import org.apache.cxf.jaxrs.model.wadl.XMLName;
 
 @XmlRootElement(name = "thechapter", namespace = "http://superbooks")
 @XmlType(name = "chapter", namespace = "http://superbooks")

Added: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/Book2.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/Book2.java?rev=1503207&view=auto
==============================================================================
--- cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/Book2.java (added)
+++ cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/Book2.java Mon Jul 15 12:45:45 2013
@@ -0,0 +1,51 @@
+/**
+ * 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.model.wadl.jaxb.packageinfo;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement(name = "thebook2")
+public class Book2 {
+
+    private String name;
+    private int id;
+    
+    public Book2() {
+    }
+    
+    public Book2(int id) {
+        this.id = id;
+    }
+    
+    public int getId() {
+        return id;
+    }
+    
+    public void setId(int ident) {
+        id = ident;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

Propchange: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/Book2.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/Book2.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/package-info.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/package-info.java?rev=1503207&view=auto
==============================================================================
--- cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/package-info.java (added)
+++ cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/package-info.java Mon Jul 15 12:45:45 2013
@@ -0,0 +1,24 @@
+/**
+ * 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.
+ */
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://superbooks",
+ xmlns = { @XmlNs(prefix = "os", namespaceURI = "http://superbooks") })
+package org.apache.cxf.jaxrs.model.wadl.jaxb.packageinfo;
+
+import javax.xml.bind.annotation.XmlNs;
+

Propchange: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/package-info.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/model/wadl/jaxb/packageinfo/package-info.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/rs/description/src/test/resources/book1.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/test/resources/book1.xsd?rev=1503207&view=auto
==============================================================================
--- cxf/trunk/rt/rs/description/src/test/resources/book1.xsd (added)
+++ cxf/trunk/rt/rs/description/src/test/resources/book1.xsd Mon Jul 15 12:45:45 2013
@@ -0,0 +1,49 @@
+<?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.
+-->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://superbooks" 
+   xmlns:tns="http://superbooks" elementFormDefault="unqualified">
+
+  <xs:element name="thebook" type="tns:book"/>
+  <xs:element name="thebook2" type="tns:book2"/>
+  <xs:element name="thechapter" type="tns:chapter"/>
+
+  <xs:complexType name="book">
+
+  <xs:sequence>
+  <xs:element minOccurs="0" ref="tns:thechapter"/>
+  <xs:element name="id" type="xs:int"/>
+  </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="chapter">
+    <xs:sequence>
+     <xs:element name="id" type="xs:int"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="book2">
+
+   <xs:sequence>
+     <xs:element name="id" type="xs:int"/>
+   </xs:sequence>
+  </xs:complexType>
+  
+</xs:schema>
\ No newline at end of file

Propchange: cxf/trunk/rt/rs/description/src/test/resources/book1.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/rs/description/src/test/resources/book1.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/rs/description/src/test/resources/book1.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/rt/rs/description/src/test/resources/book2.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/test/resources/book2.xsd?rev=1503207&view=auto
==============================================================================
--- cxf/trunk/rt/rs/description/src/test/resources/book2.xsd (added)
+++ cxf/trunk/rt/rs/description/src/test/resources/book2.xsd Mon Jul 15 12:45:45 2013
@@ -0,0 +1,49 @@
+<?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.
+-->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://superbooks" 
+   xmlns:tns="http://superbooks" elementFormDefault="unqualified">
+
+  <xs:element name="book" type="tns:book"/>
+  <xs:element name="book2" type="tns:book2"/>
+  <xs:element name="chapter" type="tns:chapter"/>
+
+  <xs:complexType name="book">
+
+  <xs:sequence>
+  <xs:element minOccurs="0" ref="tns:thechapter"/>
+  <xs:element name="id" type="xs:int"/>
+  </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="chapter">
+    <xs:sequence>
+     <xs:element name="id" type="xs:int"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="book2">
+
+   <xs:sequence>
+     <xs:element name="id" type="xs:int"/>
+   </xs:sequence>
+  </xs:complexType>
+  
+</xs:schema>
\ No newline at end of file

Propchange: cxf/trunk/rt/rs/description/src/test/resources/book2.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/rs/description/src/test/resources/book2.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/rs/description/src/test/resources/book2.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/rt/rs/description/src/test/resources/books.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/description/src/test/resources/books.xsd?rev=1503207&view=auto
==============================================================================
--- cxf/trunk/rt/rs/description/src/test/resources/books.xsd (added)
+++ cxf/trunk/rt/rs/description/src/test/resources/books.xsd Mon Jul 15 12:45:45 2013
@@ -0,0 +1,35 @@
+<?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.
+-->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://books" 
+   xmlns:tns="http://books" xmlns:sbooks="http://superbooks">
+
+  <xs:import schemaLocation="book1.xsd"/>
+
+  <xs:element name="books" type="tns:books"/>
+
+  <xs:complexType name="books">
+
+  <xs:sequence>
+  <xs:element minOccurs="0" ref="sbooks:thebook"/>
+  </xs:sequence>
+  </xs:complexType>
+  
+</xs:schema>
\ No newline at end of file

Propchange: cxf/trunk/rt/rs/description/src/test/resources/books.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/rs/description/src/test/resources/books.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/rs/description/src/test/resources/books.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/rt/rs/extensions/providers/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/extensions/providers/pom.xml?rev=1503207&r1=1503206&r2=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/rs/extensions/providers/pom.xml (original)
+++ cxf/trunk/rt/rs/extensions/providers/pom.xml Mon Jul 15 12:45:45 2013
@@ -131,6 +131,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-rs-service-description</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.xmlbeans</groupId>
             <artifactId>xmlbeans</artifactId>
             <scope>provided</scope>

Modified: cxf/trunk/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/resources/Chapter.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/resources/Chapter.java?rev=1503207&r1=1503206&r2=1503207&view=diff
==============================================================================
--- cxf/trunk/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/resources/Chapter.java (original)
+++ cxf/trunk/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/resources/Chapter.java Mon Jul 15 12:45:45 2013
@@ -24,8 +24,8 @@ import javax.ws.rs.Produces;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
+import org.apache.cxf.jaxrs.ext.xml.XMLName;
 import org.apache.cxf.jaxrs.model.wadl.Description;
-import org.apache.cxf.jaxrs.model.wadl.XMLName;
 
 @XmlRootElement(name = "thechapter", namespace = "http://superbooks")
 @XmlType(name = "chapter", namespace = "http://superbooks")

Modified: cxf/trunk/systests/jaxrs/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/pom.xml?rev=1503207&r1=1503206&r2=1503207&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/pom.xml (original)
+++ cxf/trunk/systests/jaxrs/pom.xml Mon Jul 15 12:45:45 2013
@@ -52,6 +52,12 @@
             <artifactId>abdera-extensions-json</artifactId>
             <version>${cxf.abdera.version}</version>
         </dependency>
+         <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-rs-service-description</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
           <groupId>org.apache.ant</groupId>
           <artifactId>ant</artifactId>

Modified: cxf/trunk/systests/rs-security/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/rs-security/pom.xml?rev=1503207&r1=1503206&r2=1503207&view=diff
==============================================================================
--- cxf/trunk/systests/rs-security/pom.xml (original)
+++ cxf/trunk/systests/rs-security/pom.xml Mon Jul 15 12:45:45 2013
@@ -88,6 +88,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-rs-service-description</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
             <artifactId>cxf-rt-transports-http</artifactId>
             <version>${project.version}</version>
         </dependency>