Am Mittwoch, den 19.09.2007, 13:39 +0000 schrieb [EMAIL PROTECTED]:
> Author: jliu
> Date: Wed Sep 19 06:39:43 2007
> New Revision: 577301
> 

> Modified: 
> incubator/cxf/branches/jliu/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java?rev=577301&r1=577300&r2=577301&view=diff
> ==============================================================================
> --- 
> incubator/cxf/branches/jliu/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
>  (original)
> +++ 
> incubator/cxf/branches/jliu/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
>  Wed Sep 19 06:39:43 2007
> @@ -22,13 +22,13 @@
>  import java.io.IOException;
>  import java.io.OutputStream;
>  
> -import javax.ws.rs.ProduceMime;
>  import javax.ws.rs.core.Response;
>  import javax.ws.rs.ext.EntityProvider;
>  import javax.ws.rs.ext.ProviderFactory;
>  
>  import org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor;
>  import org.apache.cxf.jaxrs.model.OperationResourceInfo;
> +import org.apache.cxf.jaxrs.provider.ProviderFactoryImpl;
>  import org.apache.cxf.message.Exchange;
>  import org.apache.cxf.message.Message;
>  import org.apache.cxf.message.MessageContentsList;
> @@ -78,17 +78,17 @@
>                  targetType = ((List)responseObj).get(0).getClass();
>                  
>              }*/
> + 
> +            //TODO: decide the output media type based on resource 
> method/resource class/provider
> +            String[] methodMineTypes = 
> exchange.get(OperationResourceInfo.class).getProduceMimeTypes();
>              
> -            EntityProvider provider = 
> ProviderFactory.getInstance().createEntityProvider(targetType);
> +            EntityProvider provider = 
> ((ProviderFactoryImpl)ProviderFactory.getInstance())
> +                .createEntityProvider(targetType, methodMineTypes, false);

methodMimeTypes

>  
>              try {
> -                //TODO: decide the output media type based on resource 
> method/resource class/provider
> -                ProduceMime c = 
> provider.getClass().getAnnotation(ProduceMime.class);
> -                String[] mineType = {"*/*"};

here too

> -                if (c != null) {
> -                    mineType = c.value();               
> +                if (!"*/*".equals(methodMineTypes[0])) {
> +                    message.put(Message.CONTENT_TYPE, methodMineTypes[0]);
>                  }
> -                message.put(Message.CONTENT_TYPE, mineType[0]);
>                  
>                  provider.writeTo(responseObj, null, out);
>  
> 
> Modified: 
> incubator/cxf/branches/jliu/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfo.java
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfo.java?rev=577301&r1=577300&r2=577301&view=diff
> ==============================================================================
> --- 
> incubator/cxf/branches/jliu/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfo.java
>  (original)
> +++ 
> incubator/cxf/branches/jliu/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfo.java
>  Wed Sep 19 06:39:43 2007
> @@ -22,10 +22,9 @@
>  import java.lang.reflect.Method;
>  import java.util.List;
>  
> +import javax.ws.rs.ProduceMime;
>  import javax.ws.rs.ext.EntityProvider;
>  
> -import org.apache.cxf.jaxrs.provider.JAXBElementProvider;
> -
>  public class OperationResourceInfo {
>      private URITemplate uriTemplate;
>      private ClassResourceInfo classResourceInfo;
> @@ -84,8 +83,23 @@
>          return entityProviderList;
>      }
>  
> -    protected EntityProvider findEntityProvider() {
> -        return new JAXBElementProvider();
> -
> +    public String[] getProduceMimeTypes() {
> +        //TODO: 
> +        /*
> +         * These annotations MAY be applied to a resource class method, a
> +         * resource class, or to an EntityProvider. Declarations on a 
> resource
> +         * class method override any on the resource class; declarations on 
> an
> +         * EntityProvider for a method argument or return type override 
> those on
> +         * a resource class or resource method. In the absence of either of
> +         * these annotations, support for any media type (¡°*¡±) is assumed.
> +         */   
> +        
> +        String[] mineTypes = {"*/*"};

here too

> Added: 
> incubator/cxf/branches/jliu/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cdjson.txt
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cdjson.txt?rev=577301&view=auto
> ==============================================================================
> --- 
> incubator/cxf/branches/jliu/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cdjson.txt
>  (added)
> +++ 
> incubator/cxf/branches/jliu/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cdjson.txt
>  Wed Sep 19 06:39:43 2007
> @@ -0,0 +1 @@
> +{"CD":{"id":"123","name":"BOHEMIAN RHAPSODY"}}
> \ No newline at end of file
> 
> Propchange: 
> incubator/cxf/branches/jliu/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cdjson.txt
> ------------------------------------------------------------------------------
>     svn:eol-style = native
> 
> Propchange: 
> incubator/cxf/branches/jliu/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cdjson.txt
> ------------------------------------------------------------------------------
>     svn:mime-type = text/plain
> 
> Modified: 
> incubator/cxf/branches/jliu/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cds.txt
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cds.txt?rev=577301&r1=577300&r2=577301&view=diff
> ==============================================================================
> --- 
> incubator/cxf/branches/jliu/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cds.txt
>  (original)
> +++ 
> incubator/cxf/branches/jliu/systests/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_cds.txt
>  Wed Sep 19 06:39:43 2007
> @@ -1 +1 @@
> -<CDs><CD><id>123</id><name>BOHEMIAN 
> RHAYSODY</name></CD><CD><id>124</id><name>BICYCLE RACE</name></CD></CDs>
> \ No newline at end of file
> +<CDs><CD><id>123</id><name>BOHEMIAN 
> RHAPSODY</name></CD><CD><id>124</id><name>BICYCLE RACE</name></CD></CDs>
> \ No newline at end of file
> 

Oh... you did fix this...disregard previous email.

Glen


Reply via email to