[
https://issues.apache.org/jira/browse/CXF-5701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13976723#comment-13976723
]
Sergey Beryozkin commented on CXF-5701:
---------------------------------------
Something like this:
{code:java}
public static class ETagContainerResponseFilter implements
ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext,
ContainerResponseContext responseContext) throws IOException {
MultivaluedMap<String, Object> headers =
responseContext.getHeaders();
// add headers
}
}
{code}
> wadl response with JAXB + headers should optionally generate JAX-RS Response
> ----------------------------------------------------------------------------
>
> Key: CXF-5701
> URL: https://issues.apache.org/jira/browse/CXF-5701
> Project: CXF
> Issue Type: Improvement
> Components: JAX-RS
> Affects Versions: 2.7.10
> Environment: Little-Net:users-api minfrin$ java -version
> java version "1.6.0_65"
> Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
> Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
> Reporter: Graham Leggett
>
> When I run wadl2java on the following fragment of wadl, I get the API
> interface defined below:
> {code}
> <response status="200">
> <representation mediaType="application/json" element="user:users"/>
> <representation mediaType="application/xml" element="user:users"/>
> <param name="ETag" style="header" type="xsd:string">
> <doc>The SHA1 hash of the sum of DN and modifiedTimestamp of the
> matching users.</doc>
> </param>
> <param name="Cache-Control" style="header" type="xsd:string">
> <doc>The Cache-Control header as specified through configuration
> in context.xml.</doc>
> </param>
> <param name="Vary" style="header" type="xsd:string">
> <doc>MUST have the value "Authorization", as we vary on the
> Authorization header.</doc>
> </param>
> <doc>Return list of users. Must have admin role to receive the
> response.
> Note: no users = empty list with status:200</doc>
> </response>
> {code}
> {code}
> @GET
> @Produces({"application/json", "application/xml" })
> Users getUsers(@QueryParam("page") Long page, @QueryParam("pageSize") Long
> pageSize, @QueryParam("sort") String sort, @QueryParam("fl") String fl,
> @HeaderParam("If-None-Match") String If_None_Match,
> @HeaderParam("Authorization") String Authorization);
> {code}
> The problem with the interface that is being produced above is that we return
> a JAXB Users object, with no mechanism to return any of the ETag,
> Cache-Control or Vary headers as required by the wadl.
> To maintain backwards compatibility we need an option to send the correct
> response based on whether headers are present or not.
--
This message was sent by Atlassian JIRA
(v6.2#6252)