package org.ow2.frascati.intent.cxf.jaxrs.provider.easysoa; import org.apache.cxf.endpoint.Endpoint; import org.apache.cxf.jaxrs.provider.ProviderFactory; import org.codehaus.jackson.jaxrs.JacksonJsonProvider; import org.ow2.frascati.intent.cxf.AbstractEndpointIntent; /** * Inspired by FraSCAti Jackson Intent. * * TODO contribute it to Jackson Intent : make JacksonIntent inherit * AbstractEndpointIntent so it will also work on server side * TODO reuse Jackson Intent : for now org/ow2/.../Jackson.composite file * can't be found... And similarly EasySOARegistry.composite can't be deeper * than root. * * @author Marc Dutoo */ public class EasySOARegistryIntent extends AbstractEndpointIntent { @Override protected void configure(Endpoint endpoint) { // Get the provider factory attached to this endpoint. ProviderFactory providerFactory = (ProviderFactory) endpoint.get(ProviderFactory.class.getName()); // now let's register providers... // custom JAXRS provider : //providerFactory.registerUserProvider(new JsonMessageReader()); //providerFactory.registerUserProvider(new JsonMessageWriter()); // Jersey's Jackson provider ; //providerFactory.registerUserProvider(new JacksonProviderProxy()); // however its configuration would be Jersey's // see http://www.mkyong.com/webservices/jax-rs/json-example-with-jersey-jackson/ // http://grepcode.com/file/repo1.maven.org/maven2/com.sun.jersey/jersey-bundle/1.11/com/sun/jersey/json/impl/provider/entity/JacksonProviderProxy.java?av=f // Jackson's provider : //ObjectMapper mapper = new ObjectMapper(); // allows to configure Jackson JacksonJsonProvider jacksonJsonProvider = new JacksonJsonProvider(/*mapper*/); // from jackson-jaxrs providerFactory.registerUserProvider(jacksonJsonProvider); } }