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

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

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.7.10
    • 3.0, 2.7.12
    • JAX-RS
    • None
    • 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)

    • Unknown

    Description

      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>
               <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>
      
         @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);
      

      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.

      Attachments

        Activity

          People

            sergey_beryozkin Sergey Beryozkin
            minfrin Graham Leggett
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: