builder.addMethod("GET").produces(config.getType()).handledBy(new Inflector<ContainerRequestContext, Object>() {
@Override
public Response apply(ContainerRequestContext containerRequestContext) {
TimerContext timer = getTimer.time();
try {
Object entity;
if (config.getFile() != null) {
entity = JerseyApp.class.getClassLoader().getResourceAsStream(config.getFile().getName());
} else {
if (isText) {
entity = "text";
} else {
entity = PERSON;
}
}
return Response.ok().entity(entity).build();
} finally {
timer.stop();
}
}
});
builder.addMethod("POST").consumes(config.getType()).produces(config.getType()).handledBy(new Inflector<ContainerRequestContext, Object>() {
@Override
public Response apply(ContainerRequestContext containerRequestContext) {
TimerContext timer = postTimer.time();
try {
final Object entity = ((ContainerRequest) containerRequestContext).readEntity(isText ? String.class : Person.class);
return Response.ok().entity(entity).build();
} finally {
timer.stop();
}
}
});
builder.addMethod("PUT").consumes(config.getType()).produces(config.getType()).handledBy(new Inflector<ContainerRequestContext, Object>() {
@Override
public Response apply(ContainerRequestContext containerRequestContext) {
TimerContext timer = putTimer.time();
try {
// read entity in order to test performance of MBR
((ContainerRequest) containerRequestContext).readEntity(isText ? String.class : Person.class);
return Response.noContent().build();
} finally {
timer.stop();
}
}
});