anchor.diff:  import org.jboss.resteasy.reactive.server.spi.ServerRequestContext;
   
   @Provider
  -public class FroMageBodyHandler implements MessageBodyReader<FroMage>, 
  -                                           ServerMessageBodyWriter<FroMage> {
  +public class CheeseBodyHandler implements MessageBodyReader<Cheese>, 
  +                                           ServerMessageBodyWriter<Cheese> {
   
       // …
   
       @Override
       public boolean isWriteable(Class<?> type, ResteasyReactiveResourceInfo target, 
                                  MediaType mediaType) {
  -        return type == FroMage.class;
  +        return type == Cheese.class;
       }
   
       @Override
  -    public void writeResponse(FroMage t, ServerRequestContext context) 
  +    public void writeResponse(Cheese t, ServerRequestContext context) 
         throws WebApplicationException, IOException {
  -        context.serverResponse().end("[FroMageV1]" + t.name);
  +        context.serverResponse().end("[CheeseV1]" + t.name);
       }
   }
   ----
  
positive.code: public class Endpoint {
  
      @GET
      public FroMage sayCheese() {
          return new FroMage("Cheeeeeese");
      }
  
      @PUT
      public void addCheese(FroMage fromage) {
          System.err.println("Received a new cheese: " + fromage.name);
      }
  }
  ----
  
negative.code: import javax.ws.rs.ext.Provider;
  
  @Provider
  public class CheeseBodyHandler implements MessageBodyReader<Cheese>, 
                                             MessageBodyWriter<Cheese> {
  
      @Override
      public boolean isWriteable(Class<?> type, Type genericType, 
                                 Annotation[] annotations, MediaType mediaType) {
          return type == Cheese.class;
      }
  
      @Override
      public void writeTo(Cheese t, Class<?> type, Type genericType, 
                          Annotation[] annotations, MediaType mediaType,
                          MultivaluedMap<String, Object> httpHeaders, 
                          OutputStream entityStream)
              throws IOException, WebApplicationException {
          entityStream.write(("[CheeseV1]" + t.name)
                             .getBytes(StandardCharsets.UTF_8));
      }
  
      @Override
      public boolean isReadable(Class<?> type, Type genericType, 
                                Annotation[] annotations, MediaType mediaType) {
          return type == Cheese.class;
      }
  
      @Override
      public Cheese readFrom(Class<Cheese> type, Type genericType, 
                              Annotation[] annotations, MediaType mediaType,
                              MultivaluedMap<String, String> httpHeaders,
                              InputStream entityStream)
              throws IOException, WebApplicationException {
          String body = new String(entityStream.readAllBytes(), StandardCharsets.UTF_8);
          if(body.startsWith("[CheeseV1]"))
              return new Cheese(body.substring(11));
          throw new IOException("Invalid cheese: " + body);
      }
  
  }
  