Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-17719

ParamConverterProvider is not registered until Clean is invoked

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • 4.2.0.Beta3
    • 4.2.0.Beta3
    • webservices
    • None
    • Sprint to Beta3 Release
    • Hide

      STEP: Create Dynamic Web Project with JAX-RS Support
      STEP: Create the following classes

      public class Car {
      	public String brand;
      	
      	public String getBrand() {
      		return brand;
      	}
      	
      	public void setBrand(String brand) {
      		this.brand = brand;
      	}
      }
      
      @Path("/")
      public class Resource {
      
      	@POST
      	@Path("{car}")
      	public void post(@PathParam("car") Car car) {
      		
      	}
      }
      

      ASSERT: There is an JAX-RS Problem because of the invalid parameter
      STEP: Create class that implements ParamConverterProvider

      @Provider
      public class Converter implements ParamConverterProvider {
      
      	private ParamConverter<Car> carConverter = new ParamConverter<Car>() {
      
      		@Override
      		public Car fromString(String arg0) {
      			Car car = new Car();
      			car.setBrand(arg0);
      			return car;
      		}
      
      		@Override
      		public String toString(Car arg0) {
      			return arg0.getBrand();
      		}
      
      	};
      	@Override
      	public <T> ParamConverter<T> getConverter(Class<T> arg0, Type arg1,
      			Annotation[] arg2) {
      		if(arg0.equals(Car.class)) {
      			return (ParamConverter<T>) carConverter;
      		}
      		return null;
      	}
      
      }
      

      ASSERT: The JAX-RS Problem disappeared
      FAIL: The JAX-RS Problem is still present

      Show
      STEP: Create Dynamic Web Project with JAX-RS Support STEP: Create the following classes public class Car { public String brand; public String getBrand() { return brand; } public void setBrand( String brand) { this .brand = brand; } } @Path( "/" ) public class Resource { @POST @Path( "{car}" ) public void post(@PathParam( "car" ) Car car) { } } ASSERT: There is an JAX-RS Problem because of the invalid parameter STEP: Create class that implements ParamConverterProvider @Provider public class Converter implements ParamConverterProvider { private ParamConverter<Car> carConverter = new ParamConverter<Car>() { @Override public Car fromString( String arg0) { Car car = new Car(); car.setBrand(arg0); return car; } @Override public String toString(Car arg0) { return arg0.getBrand(); } }; @Override public <T> ParamConverter<T> getConverter( Class <T> arg0, Type arg1, Annotation[] arg2) { if (arg0.equals(Car.class)) { return (ParamConverter<T>) carConverter; } return null ; } } ASSERT: The JAX-RS Problem disappeared FAIL: The JAX-RS Problem is still present
    • Workaround Exists
    • Hide

      Project > Clean...

      Show
      Project > Clean...

          xcoulon@redhat.com Xavier Coulon
          rrabara Radoslav RĂ¡bara (Inactive)
          Votes:
          0 Vote for this issue
          Watchers:
          2 Start watching this issue

            Created:
            Updated:
            Resolved: