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/09/23 22:23:23 UTC

svn commit: r1525684 - in /cxf/branches/2.7.x-fixes: ./ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/

Author: sergeyb
Date: Mon Sep 23 20:23:23 2013
New Revision: 1525684

URL: http://svn.apache.org/r1525684
Log:
Merged revisions 1525391,1525403 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1525391 | sergeyb | 2013-09-22 18:13:27 +0100 (Sun, 22 Sep 2013) | 1 line
  
  If JAX-RS Destination Factory is auto-discovered then set the related property
........
  r1525403 | sergeyb | 2013-09-22 18:52:43 +0100 (Sun, 22 Sep 2013) | 1 line
  
  HttpHeadersImpl can not ignore multiple list values, not a problem on the server, problem with Response.abortWith and filters
........

Modified:
    cxf/branches/2.7.x-fixes/   (props changed)
    cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java
    cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java
    cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java

Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
  Merged /cxf/trunk:r1525391,1525403

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

Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java?rev=1525684&r1=1525683&r2=1525684&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java Mon Sep 23 20:23:23 2013
@@ -130,6 +130,7 @@ public class AbstractJAXRSFactoryBean ex
             if (df == null) {
                 DestinationFactoryManager dfm = getBus().getExtension(DestinationFactoryManager.class);
                 df = dfm.getDestinationFactoryForUri(getAddress());
+                super.setDestinationFactory(df);
             }
 
             if (df != null) {

Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java?rev=1525684&r1=1525683&r2=1525684&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java Mon Sep 23 20:23:23 2013
@@ -90,7 +90,10 @@ public class HttpHeadersImpl implements 
         if (lValues == null || lValues.isEmpty() || lValues.get(0) == null) {
             return Collections.singletonList(MediaType.WILDCARD_TYPE);
         }
-        List<MediaType> mediaTypes = JAXRSUtils.parseMediaTypes(lValues.get(0));
+        List<MediaType> mediaTypes = new LinkedList<MediaType>();
+        for (String value : lValues) {
+            mediaTypes.addAll(JAXRSUtils.parseMediaTypes(value));
+        }
         sortMediaTypesUsingQualityFactor(mediaTypes); 
         return mediaTypes;
     }
@@ -216,7 +219,11 @@ public class HttpHeadersImpl implements 
         if (HttpUtils.isDateRelatedHeader(headerName)) {
             return values;
         }
-        return getHeaderValues(headerName, values.get(0));
+        List<String> actualValues = new LinkedList<String>();
+        for (String v : values) {
+            actualValues.addAll(getHeaderValues(headerName, v));
+        }
+        return actualValues;
     }
     
     private List<String> getHeaderValues(String headerName, String originalValue) {

Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java?rev=1525684&r1=1525683&r2=1525684&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java Mon Sep 23 20:23:23 2013
@@ -243,6 +243,19 @@ public class HttpHeadersImplTest extends
     }
     
     @Test
+    public void testGetHeader2() throws Exception {
+        
+        Message m = new MessageImpl();
+        m.put(Message.PROTOCOL_HEADERS, createHeaders());
+        HttpHeaders h = new HttpHeadersImpl(m);
+        
+        List<String> values = h.getRequestHeader("a");
+        assertEquals(2, values.size());
+        assertEquals("1", values.get(0));
+        assertEquals("2", values.get(1));
+    }
+    
+    @Test
     public void testGetMediaTypes() throws Exception {
         
         Message m = control.createMock(Message.class);
@@ -416,7 +429,8 @@ public class HttpHeadersImplTest extends
         
     private MetadataMap<String, String> createHeaders() {
         MetadataMap<String, String> hs = new MetadataMap<String, String>();
-        hs.putSingle("Accept", "text/bar;q=0.6,text/*;q=1,application/xml");
+        hs.add("Accept", "text/bar;q=0.6");
+        hs.add("Accept", "text/*;q=1,application/xml");
         hs.putSingle("Content-Type", "*/*");
         hs.putSingle("Date", "Tue, 21 Oct 2008 17:00:00 GMT");
         hs.putSingle("Content-Length", "10");