package org.jboss.resteasy.test.client.resource;

import java.io.IOException;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/")
public class AbortMessageResourceFilter implements ClientRequestFilter {

    @Override
    public void filter(ClientRequestContext requestContext) throws IOException {
        requestContext.abortWith(Response.ok("aborted").header("Aborted", "true").type(MediaType.TEXT_PLAIN_TYPE).build());
    }

    @Path("/showproblem")
    @GET
    @Produces({ MediaType.TEXT_PLAIN })
    public Response showProblem() {
        Client c = ClientBuilder.newClient().register(this);
        try {
            return c.target("http://doesnotmattersinceitisaborted").request().get();
        } finally {
            c.close();
        }
    }
}
