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
