Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-5701

wadl response with JAXB + headers should optionally generate JAX-RS Response

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.7.10
    • Fix Version/s: 3.0, 2.7.12
    • Component/s: JAX-RS
    • Labels:
    • 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)

    • Estimated Complexity:


      When I run wadl2java on the following fragment of wadl, I get the API interface defined below:

             <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 name="Cache-Control" style="header" type="xsd:string">
                 <doc>The Cache-Control header as specified through configuration in context.xml.</doc>
               <param name="Vary" style="header" type="xsd:string">
                 <doc>MUST have the value "Authorization", as we vary on the Authorization header.</doc>
               <doc>Return list of users.  Must have admin role to receive the response. 
                    Note: no users = empty list with status:200</doc>
         @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);

      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.




            • Assignee:
              sergey_beryozkin Sergey Beryozkin
              minfrin Graham Leggett


              • Created:

                Issue deployment