You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Glen Mazza <gl...@verizon.net> on 2007/09/20 04:08:23 UTC

Re: svn commit: r577301 - in /incubator/cxf/branches/jliu: rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ systests...

Am Mittwoch, den 19.09.2007, 13:39 +0000 schrieb jliu@apache.org:
> 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