package org.jboss.resteasy.test.providers.custom.resource; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.ExceptionMapper; import javax.ws.rs.ext.Providers; @Path("resource") public class ProviderContextInjectionResource { @Context Providers providers; @GET @Path("isRegisteredContextResolver") public Response isRegisteredContextResolver() { ProviderContextInjectionEnumProvider ep = getEnumProvider(MediaType.WILDCARD_TYPE); return getResponseByEnumProvider(ProviderContextInjectionEnumProvider.JAXRS, ep); } private ProviderContextInjectionEnumProvider getEnumProvider(MediaType type) { ContextResolver<ProviderContextInjectionEnumProvider> scr = providers.getContextResolver( ProviderContextInjectionEnumProvider.class, type); ProviderContextInjectionEnumProvider ep = scr.getContext(ProviderContextInjectionEnumProvider.class); return ep; } @GET @Path("isRegisteredRuntimeExceptionMapper") public Response isRegisteredRuntimeExceptionMapper() { ExceptionMapper<RuntimeException> em = providers .getExceptionMapper(RuntimeException.class); Response.Status status = Response.Status.NOT_ACCEPTABLE; if (em != null && em.getClass() == ProviderContextInjectionAnyExceptionExceptionMapper.class) { status = Response.Status.OK; } return Response.status(status).build(); } Response getResponseByEnumProvider(ProviderContextInjectionEnumProvider expected, ProviderContextInjectionEnumProvider given) { Response.Status status = Response.Status.NO_CONTENT; if (given != null) { status = given != expected ? Response.Status.NOT_ACCEPTABLE : Response.Status.OK; } return Response.status(status).build(); } }