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