Query parameter triggered pretty printing of MOXy JSON / XML with JAX-RS 2



I need to pretty print my JSON or XML generated by MoxyJsonProvider on a per request base. I'm adding a custom HTTP header "pretty" in my JAX-RS Response with a value true|false read from a query parameter:



Response.ok(myEntity).header("pretty", params.getPretty()).build()


Later my own sub class of ConfigurableMoxyJsonProvider should process this header and call setFormattedOutput(true) (or via Marshaller property JAXB_FORMATTED_OUTPUT). But my sub class of ConfigurableMoxyJsonProvider always loses against original MOXy ConfigurableMoxyJsonProvider impl when it comes to MessageBodyWriter resolution. Thus my class's writeTo or preWriteTo method never get called.


How can I get my classes preWriteTo() method to work for all resources with annotation



@Produces({MediaType.APPLICATION_JSON, MediaType.WILDCARD, MediaType.APPLICATION_XML})


independently of a certain class type.


Do I have to remove ConfigurableMoxyJsonProvider from my application and inject mine instead? And if so, how do I do this?


No comments:

Post a Comment