Author: sergeyb
Date: Wed Feb  1 22:20:29 2012
New Revision: 1239365

URL: http://svn.apache.org/viewvc?rev=1239365&view=rev
Log:
Better support for wildcard media types

Modified:
    
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java
    
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProviderTest.java

Modified: 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java?rev=1239365&r1=1239364&r2=1239365&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java
 Wed Feb  1 22:20:29 2012
@@ -41,12 +41,15 @@ public class MediaTypeHeaderProvider imp
             throw new IllegalArgumentException("Media type value can not be 
null");
         }
         
-        if (mType.equals(MediaType.MEDIA_TYPE_WILDCARD) || 
mType.startsWith("*;")) {
-            return new MediaType("*", "*");
-        }
-        
         int i = mType.indexOf('/');
         if (i == -1) {
+            mType = mType.trim();
+            if (mType.startsWith(MediaType.MEDIA_TYPE_WILDCARD)) {
+                char next = mType.length() == 1 ? ' ' : mType.charAt(1);
+                if (next == ' ' || next == ';') {
+                    return new MediaType("*", "*");
+                }
+            }
             throw new IllegalArgumentException("Media type separator is 
missing");
         }
         

Modified: 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProviderTest.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProviderTest.java?rev=1239365&r1=1239364&r2=1239365&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProviderTest.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProviderTest.java
 Wed Feb  1 22:20:29 2012
@@ -58,6 +58,13 @@ public class MediaTypeHeaderProviderTest
     }
     
     @Test
+    public void testShortWildcardWithParameters2() {
+        MediaType m = MediaType.valueOf("* ;q=0.2");
+        assertEquals("Media type was not parsed correctly", 
+                     m, new MediaType("*", "*"));
+    }
+    
+    @Test
     public void testBadType() {
         try {
             new MediaTypeHeaderProvider().fromString("texthtml");


Reply via email to