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/04/11 14:28:54 UTC

svn commit: r1466845 - in /cxf/trunk/rt/frontend/jaxrs/src: main/java/org/apache/cxf/jaxrs/interceptor/ main/java/org/apache/cxf/jaxrs/provider/ main/java/org/apache/cxf/jaxrs/utils/ test/java/org/apache/cxf/jaxrs/ test/java/org/apache/cxf/jaxrs/utils/

Author: sergeyb
Date: Thu Apr 11 12:28:53 2013
New Revision: 1466845

URL: http://svn.apache.org/r1466845
Log:
[CXF-4950] Removing few JAXRSUtils shortcut methods to avoid the unexpected results

Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.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/JAXRSUtils.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java?rev=1466845&r1=1466844&r2=1466845&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java Thu Apr 11 12:28:53 2013
@@ -138,7 +138,7 @@ public class JAXRSInInterceptor extends 
         }
         List<MediaType> acceptContentTypes = null;
         try {
-            acceptContentTypes = JAXRSUtils.sortMediaTypes(acceptTypes);
+            acceptContentTypes = JAXRSUtils.sortMediaTypes(acceptTypes, JAXRSUtils.MEDIA_TYPE_Q_PARAM);
         } catch (IllegalArgumentException ex) {
             throw new NotAcceptableException();
         }

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=1466845&r1=1466844&r2=1466845&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 Thu Apr 11 12:28:53 2013
@@ -705,11 +705,11 @@ public abstract class ProviderFactory {
             MessageBodyReader<?> e1 = p1.getProvider();
             MessageBodyReader<?> e2 = p2.getProvider();
             List<MediaType> types1 = JAXRSUtils.getProviderConsumeTypes(e1);
-            types1 = JAXRSUtils.sortMediaTypes(types1);
+            types1 = JAXRSUtils.sortMediaTypes(types1, null);
             List<MediaType> types2 = JAXRSUtils.getProviderConsumeTypes(e2);
-            types2 = JAXRSUtils.sortMediaTypes(types2);
+            types2 = JAXRSUtils.sortMediaTypes(types2, null);
     
-            return JAXRSUtils.compareSortedMediaTypes(types1, types2);
+            return JAXRSUtils.compareSortedMediaTypes(types1, types2, null);
         }
     }
     
@@ -722,11 +722,11 @@ public abstract class ProviderFactory {
             MessageBodyWriter<?> e2 = p2.getProvider();
             
             List<MediaType> types1 =
-                JAXRSUtils.sortMediaTypes(JAXRSUtils.getProviderProduceTypes(e1));
+                JAXRSUtils.sortMediaTypes(JAXRSUtils.getProviderProduceTypes(e1), JAXRSUtils.MEDIA_TYPE_QS_PARAM);
             List<MediaType> types2 =
-                JAXRSUtils.sortMediaTypes(JAXRSUtils.getProviderProduceTypes(e2));
+                JAXRSUtils.sortMediaTypes(JAXRSUtils.getProviderProduceTypes(e2), JAXRSUtils.MEDIA_TYPE_QS_PARAM);
     
-            return JAXRSUtils.compareSortedMediaTypes(types1, types2);
+            return JAXRSUtils.compareSortedMediaTypes(types1, types2, JAXRSUtils.MEDIA_TYPE_QS_PARAM);
         }
     }
     
@@ -740,12 +740,12 @@ public abstract class ProviderFactory {
             
             List<MediaType> types1 =
                 JAXRSUtils.sortMediaTypes(JAXRSUtils.getProduceTypes(
-                                               e1.getClass().getAnnotation(Produces.class)));
+                     e1.getClass().getAnnotation(Produces.class)), JAXRSUtils.MEDIA_TYPE_QS_PARAM);
             List<MediaType> types2 =
                 JAXRSUtils.sortMediaTypes(JAXRSUtils.getProduceTypes(
-                                               e2.getClass().getAnnotation(Produces.class)));
+                     e2.getClass().getAnnotation(Produces.class)), JAXRSUtils.MEDIA_TYPE_QS_PARAM);
     
-            return JAXRSUtils.compareSortedMediaTypes(types1, types2);
+            return JAXRSUtils.compareSortedMediaTypes(types1, types2, JAXRSUtils.MEDIA_TYPE_QS_PARAM);
         }
     }
     

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=1466845&r1=1466844&r2=1466845&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java Thu Apr 11 12:28:53 2013
@@ -689,10 +689,6 @@ public final class JAXRSUtils {
         return actualMts;
     }
     
-    public static int compareSortedMediaTypes(List<MediaType> mts1, List<MediaType> mts2) {
-        return compareSortedMediaTypes(mts1, mts2, MEDIA_TYPE_Q_PARAM);
-    }
-    
     public static int compareSortedMediaTypes(List<MediaType> mts1, List<MediaType> mts2, String qs) {
         int size1 = mts1.size();
         int size2 = mts2.size();
@@ -1533,16 +1529,9 @@ public final class JAXRSUtils {
                                   false);
     }
     
-    public static List<MediaType> sortMediaTypes(String mediaTypes) {
-        return sortMediaTypes(JAXRSUtils.parseMediaTypes(mediaTypes));
-    }
-    
     public static List<MediaType> sortMediaTypes(String mediaTypes, String qs) {
         return sortMediaTypes(JAXRSUtils.parseMediaTypes(mediaTypes), qs);
     }
-    public static List<MediaType> sortMediaTypes(List<MediaType> types) {
-        return sortMediaTypes(types, MEDIA_TYPE_Q_PARAM);
-    }
     public static List<MediaType> sortMediaTypes(List<MediaType> types, final String qs) {
         if (types.size() > 1) {
             Collections.sort(types, new Comparator<MediaType>() {

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java?rev=1466845&r1=1466844&r2=1466845&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java Thu Apr 11 12:28:53 2013
@@ -86,6 +86,9 @@ public class SelectMethodCandidatesTest 
         doTestGenericSuperType(GenericEntityImpl3.class, "POST");
     }
     
+    private static List<MediaType> sortMediaTypes(String mediaTypes) {
+        return JAXRSUtils.sortMediaTypes(mediaTypes, JAXRSUtils.MEDIA_TYPE_Q_PARAM);
+    }
     @Test
     public void testFindFromAbstractGenericImpl4() throws Exception {
         JAXRSServiceFactoryBean sf = new JAXRSServiceFactoryBean();
@@ -119,7 +122,7 @@ public class SelectMethodCandidatesTest 
                                                             "/books",
                                                             "POST",
                                                             values, contentTypes, 
-                                                            JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                                            sortMediaTypes(acceptContentTypes));
         assertNotNull(ori);
         assertEquals("resourceMethod needs to be selected", "postEntity",
                      ori.getMethodToInvoke().getName());
@@ -169,7 +172,7 @@ public class SelectMethodCandidatesTest 
                                                             "/books",
                                                             "PUT",
                                                             values, contentTypes, 
-                                                            JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                                            sortMediaTypes(acceptContentTypes));
         assertNotNull(ori);
         assertEquals("resourceMethod needs to be selected", "putEntity",
                      ori.getMethodToInvoke().getName());
@@ -239,7 +242,7 @@ public class SelectMethodCandidatesTest 
                                                             "POST",
                                                             values, 
                                                             contentType, 
-                                                            JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                                            sortMediaTypes(acceptContentTypes));
         assertNotNull(ori);
         assertEquals(expectedMethodName,  ori.getMethodToInvoke().getName());
     }
@@ -361,7 +364,7 @@ public class SelectMethodCandidatesTest 
      
         OperationResourceInfo ori = JAXRSUtils.findTargetMethod(mResources, m, "GET", 
                                                 values, contentType, 
-                                                JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                                sortMediaTypes(acceptContentTypes));
         assertNotNull(ori);
         assertEquals(expectedMethodName,  ori.getMethodToInvoke().getName());
         assertEquals(expectedResponseType, m.getExchange().get(Message.CONTENT_TYPE));
@@ -398,7 +401,7 @@ public class SelectMethodCandidatesTest 
                                                             path,
                                                             "PUT",
                                                             values, contentTypes, 
-                                                            JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                                            sortMediaTypes(acceptContentTypes));
         assertNotNull(ori);
         assertEquals("resourceMethod needs to be selected", methodName,
                      ori.getMethodToInvoke().getName());
@@ -460,7 +463,7 @@ public class SelectMethodCandidatesTest 
                                                             "/books",
                                                             methodName,
                                                             values, contentTypes, 
-                                                            JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                                            sortMediaTypes(acceptContentTypes));
         assertNotNull(ori);
         assertEquals("resourceMethod needs to be selected", methodName.toLowerCase() + "Entity",
                      ori.getMethodToInvoke().getName());
@@ -508,7 +511,7 @@ public class SelectMethodCandidatesTest 
                                                             path,
                                                             "GET",
                                                             values, contentTypes, 
-                                                            JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                                            sortMediaTypes(acceptContentTypes));
         assertNotNull(ori);
         assertEquals("resourceMethod needs to be selected", method,
                      ori.getMethodToInvoke().getName());
@@ -528,7 +531,7 @@ public class SelectMethodCandidatesTest 
                                                             "/1/2/3/d/resource1",
                                                             "GET",
                                                             values, contentTypes, 
-                                                            JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                                            sortMediaTypes(acceptContentTypes));
         
         assertNotNull(ori);
         assertEquals("jsonResource needs to be selected", "jsonResource",
@@ -630,7 +633,7 @@ public class SelectMethodCandidatesTest 
                                       "/1/2/3/d/custom",
                                       "GET",
                                       values, contentTypes, 
-                                      JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                      sortMediaTypes(acceptContentTypes));
         
         assertNotNull(ori);
         assertEquals("readBar", ori.getMethodToInvoke().getName());
@@ -639,7 +642,7 @@ public class SelectMethodCandidatesTest 
                                       "/1/2/3/d/custom",
                                       "GET",
                                       values, contentTypes, 
-                                      JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                      sortMediaTypes(acceptContentTypes));
         assertNotNull(ori);
         assertEquals("readFoo", ori.getMethodToInvoke().getName());
         
@@ -648,7 +651,7 @@ public class SelectMethodCandidatesTest 
                                       "/1/2/3/d/custom",
                                       "GET",
                                       values, contentTypes, 
-                                      JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                      sortMediaTypes(acceptContentTypes));
         assertNotNull(ori);
         assertEquals("readBar", ori.getMethodToInvoke().getName());
         
@@ -657,7 +660,7 @@ public class SelectMethodCandidatesTest 
                                       "/1/2/3/d/custom",
                                       "GET",
                                       values, contentTypes, 
-                                      JAXRSUtils.sortMediaTypes(acceptContentTypes));
+                                      sortMediaTypes(acceptContentTypes));
         assertNotNull(ori);
         assertEquals("readFoo", ori.getMethodToInvoke().getName());
         

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java?rev=1466845&r1=1466844&r2=1466845&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java Thu Apr 11 12:28:53 2013
@@ -630,10 +630,22 @@ public class JAXRSUtilsTest extends Asse
         
     }
     
+    private static List<MediaType> sortMediaTypes(String mediaTypes) {
+        return JAXRSUtils.sortMediaTypes(mediaTypes, JAXRSUtils.MEDIA_TYPE_Q_PARAM);
+    }
+    
+    private static List<MediaType> sortMediaTypes(List<MediaType> mediaTypes) {
+        return JAXRSUtils.sortMediaTypes(mediaTypes, JAXRSUtils.MEDIA_TYPE_Q_PARAM);
+    }
+    
+    private static int compareSortedMediaTypes(List<MediaType> mt1, List<MediaType> mt2) {
+        return JAXRSUtils.compareSortedMediaTypes(mt1, mt2, JAXRSUtils.MEDIA_TYPE_Q_PARAM);
+    }
+    
     @Test
     public void testSortMediaTypes() throws Exception {
         List<MediaType> types = 
-            JAXRSUtils.sortMediaTypes("text/*,text/plain;q=.2,text/xml,TEXT/BAR");
+            sortMediaTypes("text/*,text/plain;q=.2,text/xml,TEXT/BAR");
         assertTrue(types.size() == 4
                    && "text/xml".equals(types.get(0).toString())
                    && "text/bar".equals(types.get(1).toString())
@@ -683,14 +695,14 @@ public class JAXRSUtilsTest extends Asse
         MediaType m1 = MediaType.valueOf("text/xml");
         MediaType m2 = MediaType.valueOf("text/*");
         assertTrue("text/xml is more specific than text/*", 
-                   JAXRSUtils.compareSortedMediaTypes(Collections.singletonList(m1), 
+                   compareSortedMediaTypes(Collections.singletonList(m1), 
                                                       Collections.singletonList(m2)) < 0);
         assertTrue("text/* is less specific than text/xml", 
-                   JAXRSUtils.compareSortedMediaTypes(Collections.singletonList(m2), 
+                   compareSortedMediaTypes(Collections.singletonList(m2), 
                                                       Collections.singletonList(m1)) > 0);
         
         assertTrue("text/xml is the same as text/xml", 
-                   JAXRSUtils.compareSortedMediaTypes(Collections.singletonList(m1), 
+                   compareSortedMediaTypes(Collections.singletonList(m1), 
                                                       Collections.singletonList(m1)) == 0);
         
         List<MediaType> sortedList1 = new ArrayList<MediaType>();
@@ -702,14 +714,14 @@ public class JAXRSUtilsTest extends Asse
         sortedList2.add(m2);
         
         assertTrue("lists should be equal", 
-                   JAXRSUtils.compareSortedMediaTypes(sortedList1, sortedList2) == 0);
+                   compareSortedMediaTypes(sortedList1, sortedList2) == 0);
         
         sortedList1.add(MediaType.WILDCARD_TYPE);
         assertTrue("first list should be less specific", 
-                   JAXRSUtils.compareSortedMediaTypes(sortedList1, sortedList2) > 0);
+                   compareSortedMediaTypes(sortedList1, sortedList2) > 0);
         sortedList1.add(MediaType.WILDCARD_TYPE);
         assertTrue("second list should be more specific", 
-                   JAXRSUtils.compareSortedMediaTypes(sortedList2, sortedList1) < 0);
+                   compareSortedMediaTypes(sortedList2, sortedList1) < 0);
     }
     
     @Test
@@ -1491,12 +1503,12 @@ public class JAXRSUtilsTest extends Asse
         
         ori = JAXRSUtils.findTargetMethod(getMap(cri), createMessage2(), "GET", new MetadataMap<String, String>(), 
                                           "*/*", 
-                                          JAXRSUtils.sortMediaTypes(getTypes("*/*;q=0.1,text/plain,text/xml;q=0.8")));
+                                          sortMediaTypes(getTypes("*/*;q=0.1,text/plain,text/xml;q=0.8")));
                      
         assertSame(ori, ori2);
         ori = JAXRSUtils.findTargetMethod(getMap(cri), createMessage2(), "GET", new MetadataMap<String, String>(), 
                                           "*/*", 
-                                          JAXRSUtils.sortMediaTypes(getTypes("*;q=0.1,text/plain,text/xml;q=0.9,x/y")));
+                                          sortMediaTypes(getTypes("*;q=0.1,text/plain,text/xml;q=0.9,x/y")));
                      
         assertSame(ori, ori2);
     }