package org.jboss.resteasy.test.asynch.resource;
import java.util.concurrent.TimeUnit;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.container.AsyncResponse;
import javax.ws.rs.container.Suspended;
import javax.ws.rs.core.Response;
import org.jboss.logging.Logger;
@Path("/")
public class AsyncPostProcessingResource {
private static Logger logger = Logger.getLogger(AsyncPostProcessingResource.class);
@GET
@Path("sync")
public Response sync() {
return Response.ok().entity("sync").build();
}
@GET
@Path("async/delay")
public void asyncDelay(@Suspended final AsyncResponse response) throws Exception {
response.setTimeout(10000, TimeUnit.MILLISECONDS);
Thread t = new Thread() {
@Override
public void run() {
try {
Thread.sleep(5000);
Response jaxrs = Response.ok("async/delay").build();
response.resume(jaxrs);
} catch (Exception e) {
logger.info("Error: " + e.getStackTrace());
}
}
};
t.start();
}
@GET
@Path("async/nodelay")
public void asyncNoDelay(@Suspended final AsyncResponse response) throws Exception {
response.setTimeout(10000, TimeUnit.MILLISECONDS);
Response jaxrs = Response.ok("async/nodelay").build();
response.resume(jaxrs);
}
}