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/10/02 15:17:22 UTC

svn commit: r821008 [2/2] - in /cxf/trunk: common/common/src/main/java/org/apache/cxf/common/util/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ rt/frontend/jaxrs/src/main/java/org/ap...

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreWithInterface.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreWithInterface.java?rev=821008&r1=821007&r2=821008&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreWithInterface.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreWithInterface.java Fri Oct  2 13:17:21 2009
@@ -38,8 +38,15 @@
 
 package org.apache.cxf.systest.jaxrs;
 
-public class BookStoreWithInterface extends BookStoreStorage implements BookInterface {
 
+
+
+
+public class BookStoreWithInterface extends BookStoreStorage 
+    implements BookInterface, LifecycleInterface {
+
+    private boolean postConstructCalled;
+    
     public BookStoreWithInterface() {
         Book book = new Book();
         book.setId(bookId);
@@ -47,7 +54,18 @@
         books.put(book.getId(), book);
     }
     
+    public void postConstruct() {
+        postConstructCalled = true;
+    }
+    
+    public void preDestroy() {
+        System.out.println("PreDestroy called");
+    }
+    
     public Book getThatBook(Long id, String s) throws BookNotFoundFault {
+        if (!postConstructCalled) {
+            throw new RuntimeException();
+        }
         if (!id.toString().equals(s)) {
             throw new RuntimeException();
         }
@@ -55,6 +73,9 @@
     }
     
     public Book getThatBook(Long id) throws BookNotFoundFault {
+        if (!postConstructCalled) {
+            throw new RuntimeException();
+        }
         return doGetBook(id);
     }
     

Added: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreWithInterface2.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreWithInterface2.java?rev=821008&view=auto
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreWithInterface2.java (added)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreWithInterface2.java Fri Oct  2 13:17:21 2009
@@ -0,0 +1,97 @@
+/**
+ * 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.
+ */
+
+/**
+ * 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.servlet.ServletContext;
+import javax.ws.rs.core.Context;
+
+
+public class BookStoreWithInterface2 extends BookStoreStorage implements BookInterface {
+
+    private ServletContext servletContext; 
+    
+    public BookStoreWithInterface2() {
+        Book book = new Book();
+        book.setId(bookId);
+        book.setName("CXF in Action");
+        books.put(book.getId(), book);
+    }
+    
+    public BookStoreWithInterface2(@Context ServletContext scontext) {
+        this();
+        this.servletContext = scontext;
+    }
+    
+    public Book getThatBook(Long id, String s) throws BookNotFoundFault {
+        if (servletContext == null) {
+            throw new RuntimeException();
+        }
+        if (!id.toString().equals(s)) {
+            throw new RuntimeException();
+        }
+        return doGetBook(id);
+    }
+    
+    public Book getThatBook(Long id) throws BookNotFoundFault {
+        if (servletContext == null) {
+            throw new RuntimeException();
+        }
+        return doGetBook(id);
+    }
+    
+    private Book doGetBook(Long id) throws BookNotFoundFault {
+        System.out.println("----invoking getBook with id: " + id);
+        Book book = books.get(id);
+        if (book != null) {
+            return book;
+        } else {
+            BookNotFoundDetails details = new BookNotFoundDetails();
+            details.setId(id);
+            throw new BookNotFoundFault(details);
+        }
+    }
+
+    public Book getThatBook() throws BookNotFoundFault {
+        if (servletContext == null) {
+            throw new RuntimeException();
+        }
+        return books.get(123L);
+    }
+
+}

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

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

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerProxySpringBookTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerProxySpringBookTest.java?rev=821008&r1=821007&r2=821008&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerProxySpringBookTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerProxySpringBookTest.java Fri Oct  2 13:17:21 2009
@@ -64,6 +64,32 @@
     }
     
     @Test
+    public void testGetThatBookSingleton() throws Exception {
+        getBook("http://localhost:9080/test/4/bookstore/books/123");
+        getBook("http://localhost:9080/test/4/bookstore/books/123");
+    }
+    
+    @Test
+    public void testGetThatBookInterfaceSingleton() throws Exception {
+        getBook("http://localhost:9080/test/4/bookstorestorage/thosebooks/123");
+    }
+    
+    @Test
+    public void testGetThatBookPrototype() throws Exception {
+        getBook("http://localhost:9080/test/5/bookstore/books/123");
+    }
+    
+    @Test
+    public void testGetThatBookInterfacePrototype() throws Exception {
+        getBook("http://localhost:9080/test/5/bookstorestorage/thosebooks/123");
+    }
+    
+    @Test
+    public void testGetThatBookInterface2Prototype() throws Exception {
+        getBook("http://localhost:9080/test/6/bookstorestorage/thosebooks/123");
+    }
+    
+    @Test
     public void testGetThatBook123UserResource() throws Exception {
         getBook("http://localhost:9080/test/2/bookstore/books/123");
     }

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerSpringBookTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerSpringBookTest.java?rev=821008&r1=821007&r2=821008&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerSpringBookTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerSpringBookTest.java Fri Oct  2 13:17:21 2009
@@ -67,7 +67,7 @@
     
     @Test
     public void testGetBookXSLTHtml() throws Exception {
-        
+
         String endpointAddress =
             "http://localhost:9080/the/thebooks5/bookstore/books/xslt";
         WebClient wc = WebClient.create(endpointAddress);
@@ -326,7 +326,7 @@
     @Test
     public void testReaderWriterFromJaxrsFilters() throws Exception {
         String endpointAddress =
-            "http://localhost:9080/the/thebooks5/bookstore/books/convert2";
+            "http://localhost:9080/the/thebooks5/bookstore/books/convert2/123";
         WebClient wc = WebClient.create(endpointAddress);
         wc.type("application/xml").accept("application/xml");
         Book2 b = new Book2();

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java?rev=821008&r1=821007&r2=821008&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java Fri Oct  2 13:17:21 2009
@@ -221,7 +221,7 @@
         objects.put(MediaType.APPLICATION_XML, jaxb);
         objects.put(MediaType.APPLICATION_JSON, json);
         objects.put(MediaType.APPLICATION_OCTET_STREAM, is1);
-        Collection<Attachment> coll = client.postAndGetCollection(objects, Attachment.class);
+        Collection<? extends Attachment> coll = client.postAndGetCollection(objects, Attachment.class);
         List<Attachment> result = new ArrayList<Attachment>(coll);
         Book jaxb2 = readBookFromInputStream(result.get(0).getDataHandler().getInputStream());
         assertEquals("jaxb", jaxb2.getName());
@@ -250,7 +250,7 @@
         objects.add(new Attachment("theroot", MediaType.APPLICATION_XML, jaxb));
         objects.add(new Attachment("thejson", MediaType.APPLICATION_JSON, json));
         objects.add(new Attachment("theimage", MediaType.APPLICATION_OCTET_STREAM, is1));
-        Collection<Attachment> coll = client.postAndGetCollection(objects, Attachment.class);
+        Collection<? extends Attachment> coll = client.postAndGetCollection(objects, Attachment.class);
         List<Attachment> result = new ArrayList<Attachment>(coll);
         Book jaxb2 = readBookFromInputStream(result.get(0).getDataHandler().getInputStream());
         assertEquals("jaxb", jaxb2.getName());
@@ -279,7 +279,7 @@
         List<Book> books = new ArrayList<Book>();
         books.add(b);
         books.add(b2);
-        Collection<Book> coll = client.postAndGetCollection(books, Book.class);
+        Collection<? extends Book> coll = client.postAndGetCollection(books, Book.class);
         List<Book> result = new ArrayList<Book>(coll);
         Book jaxb = result.get(0);
         assertEquals("jaxb", jaxb.getName());

Added: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/LifecycleInterface.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/LifecycleInterface.java?rev=821008&view=auto
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/LifecycleInterface.java (added)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/LifecycleInterface.java Fri Oct  2 13:17:21 2009
@@ -0,0 +1,29 @@
+/**
+ * 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.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+public interface LifecycleInterface {
+    @PostConstruct
+    void postConstruct();
+    @PreDestroy
+    void preDestroy();
+}

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

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

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/XmlStreamReaderProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/XmlStreamReaderProvider.java?rev=821008&r1=821007&r2=821008&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/XmlStreamReaderProvider.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/XmlStreamReaderProvider.java Fri Oct  2 13:17:21 2009
@@ -20,9 +20,12 @@
 
 import java.io.InputStream;
 
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
 import javax.xml.stream.XMLStreamReader;
 
+import org.apache.cxf.jaxrs.ext.MessageContext;
 import org.apache.cxf.jaxrs.ext.RequestHandler;
 import org.apache.cxf.jaxrs.model.ClassResourceInfo;
 import org.apache.cxf.message.Message;
@@ -30,9 +33,17 @@
 
 public class XmlStreamReaderProvider implements RequestHandler {
 
+    @Context
+    private MessageContext context;
+    
     public Response handleRequest(Message m, ClassResourceInfo resourceClass) {
-        String method = m.get(Message.HTTP_REQUEST_METHOD).toString();
+        String method = context.get(Message.HTTP_REQUEST_METHOD).toString();
+        
         if ("PUT".equals(method)) {
+            MultivaluedMap<String, String> map = context.getUriInfo().getPathParameters();
+            if (!"123".equals(map.getFirst("id"))) {
+                throw new RuntimeException();
+            }
             XMLStreamReader reader = 
                 StaxUtils.createXMLStreamReader(m.getContent(InputStream.class));
             m.setContent(XMLStreamReader.class, new CustomXmlStreamReader(reader));

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/SecureBookStoreNoAnnotations.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/SecureBookStoreNoAnnotations.java?rev=821008&r1=821007&r2=821008&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/SecureBookStoreNoAnnotations.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/SecureBookStoreNoAnnotations.java Fri Oct  2 13:17:21 2009
@@ -31,7 +31,7 @@
 @Path("/bookstorestorage/")
 public class SecureBookStoreNoAnnotations implements BookInterface {
     private Map<Long, Book> books = new HashMap<Long, Book>();
-  
+    
     public SecureBookStoreNoAnnotations() {
         Book book = new Book();
         book.setId(123L);

Modified: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_proxy/WEB-INF/beans.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_proxy/WEB-INF/beans.xml?rev=821008&r1=821007&r2=821008&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_proxy/WEB-INF/beans.xml (original)
+++ cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_proxy/WEB-INF/beans.xml Fri Oct  2 13:17:21 2009
@@ -39,7 +39,14 @@
   <import resource="classpath:META-INF/cxf/cxf.xml" />
   <import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" />
   <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
+
+  <bean id="bookstore" class="org.apache.cxf.systest.jaxrs.BookStore"/>
   
+  <bean id="bookstoreInterface" class="org.apache.cxf.systest.jaxrs.BookStoreWithInterface"/>
+  <bean id="exceptionMapper" class="org.apache.cxf.systest.jaxrs.BookExceptionMapper">
+      <property name="toHandle" value="true"/>
+  </bean>   
+
   <jaxrs:server id="bookservice"
 		        address="/">
     <jaxrs:serviceBeans>
@@ -50,11 +57,7 @@
       <ref bean="exceptionMapper"/>
     </jaxrs:providers>		   
   </jaxrs:server>
-  <bean id="bookstore" class="org.apache.cxf.systest.jaxrs.BookStore"/>
-  <bean id="bookstoreInterface" class="org.apache.cxf.systest.jaxrs.BookStoreWithInterface"/>
-  <bean id="exceptionMapper" class="org.apache.cxf.systest.jaxrs.BookExceptionMapper">
-      <property name="toHandle" value="true"/>
-  </bean>   
+
   <jaxrs:server id="bookservice2" address="/2"
     modelRef="classpath:/org/apache/cxf/systest/jaxrs/resources/resources.xml">
     <jaxrs:serviceBeans>
@@ -70,8 +73,44 @@
       <ref bean="bookstore3"/>
     </jaxrs:serviceBeans>		   
   </jaxrs:server>
-  <bean id="bookstore3" class="org.apache.cxf.systest.jaxrs.BookStoreNoAnnotationsImpl"/>
+
+  <jaxrs:server id="bookservice4" address="/4">
+    <jaxrs:serviceFactories>
+      <ref bean="sfactory1"/>
+      <ref bean="sfactory2"/>
+    </jaxrs:serviceFactories>		   
+  </jaxrs:server>
+    
+  <jaxrs:server id="bookservice5" address="/5"
+     beanNames="bookstorePrototype bookstoreInterfacePrototype"/>
   
+  <jaxrs:server id="bookservice6" address="/6">
+    <jaxrs:serviceFactories>
+      <ref bean="sfactory5"/>
+    </jaxrs:serviceFactories>		
+    <jaxrs:properties>
+         <entry key="org.apache.cxf.service.scope" value="request"/>
+     </jaxrs:properties>
+       
+  </jaxrs:server>
+
+
+  <bean id="sfactory1" class="org.apache.cxf.jaxrs.spring.SpringResourceFactory">  
+      <property name="beanId" value="bookstore"/>
+  </bean>
+  
+  <bean id="sfactory2" class="org.apache.cxf.jaxrs.spring.SpringResourceFactory">  
+      <property name="beanId" value="bookstoreInterface"/>
+  </bean>
+  
+  <bean id="sfactory5" class="org.apache.cxf.jaxrs.spring.SpringResourceFactory">  
+      <property name="beanId" value="bookstoreInterface2Prototype"/>
+  </bean>
+  <bean id="bookstorePrototype" class="org.apache.cxf.systest.jaxrs.BookStore" scope="prototype"/>
+  <bean id="bookstoreInterface2Prototype" class="org.apache.cxf.systest.jaxrs.BookStoreWithInterface2" scope="prototype"/>
+  <bean id="bookstore3" class="org.apache.cxf.systest.jaxrs.BookStoreNoAnnotationsImpl"/>
+
+  <bean id="bookstoreInterfacePrototype" class="org.apache.cxf.systest.jaxrs.BookStoreWithInterface" scope="prototype"/>
   <aop:config>
 		<aop:aspect id="loggingAspect" ref="simpleLogger">
 			<aop:before