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

Provide support for a pluggable parameter conversion mechanism for JAX-RS client side proxies

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.0.1
    • Fix Version/s: 2.7.13, 3.0.2, 3.1
    • Component/s: Core, JAX-RS
    • Labels:
    • Environment:

      Windows 7

    • Estimated Complexity:
      Unknown

      Description

      Server-side JAX-RS implementation allows injection of custom parameter converters using ParamConverterProvider (http://cxf.apache.org/docs/jax-rs-basics.html#JAX-RSBasics-Parameterconverters).
      A similar mechanism (or the exact same) is required on the client side to control how parameters are serialized (marshalled). One approach is to allow specifying param converters when declaring jaxrs:client with Spring and/or programmatically specifying it.

      A specific case to consider: Client side serialization of Date object (java.util.Date).

      Given the following API:

      @Path(“/someresource”)
      @GET
      void someApi(@MatrixParam(“”) SomeRequestWithDate request);

      Following shows the structure of the request with Dates:
      //----------------------------------------------------
      import java.util.Date;

      public class SomeRequestWithDate {
      protected Date startDate;

      public Date getStartDate()

      { return startDate; }

      }
      //----------------------------------------------------
      When API is invoked through a client proxy

      Then the following URL should be generated (where dates are serialized as ISO strings):

      /someresource/;startDate=2014-09-04T19:05:38.785Z

      Instead, currently following URL is generated:

      /someresource/;startDate.date=4;startDate.hours=15;startDate.minutes=4;startDate.month=8;startDate.seconds=34;startDate.time=1409857474660;startDate.year=114;startDate.day=4;startDate.timezoneOffset=240

        Attachments

        1. RestDemo2_EmptyPathParamNotWorking.7z
          7 kB
          Srinivas Nagulapalli
        2. RestDemo2_EmptyPathParamNotWorking.7z
          7 kB
          Srinivas Nagulapalli
        3. RestDemo2.7z
          6 kB
          Srinivas Nagulapalli
        4. UserManager.java
          0.9 kB
          Srinivas Nagulapalli

          Issue Links

            Activity

              People

              • Assignee:
                sergey_beryozkin Sergey Beryozkin
                Reporter:
                snagul Srinivas Nagulapalli
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: