Skip to content

Commit c57c1b7

Browse files
committed
Add support for ServerRequestContext for @ServerExceptionMapper methods
Closes: quarkusio#47321
1 parent 81d3813 commit c57c1b7

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

extensions/resteasy-reactive/rest/deployment/src/test/java/io/quarkus/resteasy/reactive/server/test/customexceptions/MyOtherExceptionMapper.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import org.jboss.resteasy.reactive.server.ServerExceptionMapper;
66
import org.jboss.resteasy.reactive.server.SimpleResourceInfo;
7+
import org.jboss.resteasy.reactive.server.spi.ServerRequestContext;
78

89
import io.vertx.ext.web.RoutingContext;
910

@@ -17,7 +18,9 @@ public MyOtherExceptionMapper(SomeBean someBean) {
1718

1819
@ServerExceptionMapper
1920
public Response handleMyOtherException(RoutingContext routingContext, MyOtherException myOtherException,
20-
SimpleResourceInfo simplifiedResourceInfo) {
21+
SimpleResourceInfo simplifiedResourceInfo, ServerRequestContext serverRequestContext) {
22+
serverRequestContext.getResteasyReactiveResourceInfo();
23+
simplifiedResourceInfo.getMethodName();
2124
return Response.status(411).build();
2225
}
2326
}

independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/ResteasyReactiveDotNames.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,9 @@ public final class ResteasyReactiveDotNames {
273273
public static final DotName RESTEASY_REACTIVE_CONTAINER_REQUEST_CONTEXT = DotName
274274
.createSimple("org.jboss.resteasy.reactive.server.spi.ResteasyReactiveContainerRequestContext");
275275

276+
public static final DotName RESTEASY_REACTIVE_SERVER_REQUEST_CONTEXT = DotName
277+
.createSimple("org.jboss.resteasy.reactive.server.spi.ServerRequestContext");
278+
276279
public static final DotName WITH_FORM_READ = DotName
277280
.createSimple("org.jboss.resteasy.reactive.server.WithFormRead");
278281

independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/exceptionmappers/ServerExceptionMapperGenerator.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import static org.jboss.resteasy.reactive.common.processor.ResteasyReactiveDotNames.RESPONSE;
1010
import static org.jboss.resteasy.reactive.common.processor.ResteasyReactiveDotNames.REST_RESPONSE;
1111
import static org.jboss.resteasy.reactive.common.processor.ResteasyReactiveDotNames.SERVER_EXCEPTION_MAPPER;
12+
import static org.jboss.resteasy.reactive.common.processor.ResteasyReactiveDotNames.SERVER_REQUEST_CONTEXT;
1213
import static org.jboss.resteasy.reactive.common.processor.ResteasyReactiveDotNames.UNI;
1314
import static org.jboss.resteasy.reactive.common.processor.ResteasyReactiveDotNames.URI_INFO;
1415
import static org.jboss.resteasy.reactive.server.processor.generation.multipart.GeneratorUtils.paramHandleFromReqContextMethod;
@@ -569,6 +570,8 @@ private static TargetMethodParamsInfo getTargetMethodParamsInfo(MethodInfo targe
569570
ofMethod(ResteasyReactiveRequestContext.class.getName(), "getContainerRequestContext",
570571
ContainerRequestContextImpl.class),
571572
contextHandle);
573+
} else if (SERVER_REQUEST_CONTEXT.equals(paramDotName)) {
574+
targetMethodParamHandles[i] = contextHandle;
572575
} else if (URI_INFO.equals(paramDotName)) {
573576
paramHandleFromReqContextMethod(mc, contextHandle, targetMethodParamHandles, i,
574577
"getUriInfo",

0 commit comments

Comments
 (0)