Skip to content

Commit 9a3fd38

Browse files
committed
Only check filters once for calls to getResourceMethod
Before, for each resource method, no matter if rest-client or rest-server, each filter was checked if it called ResourceInfo#getResourceMethod. This can however be cached, since the set of filters does not change.
1 parent 046dc99 commit 9a3fd38

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

extensions/resteasy-reactive/rest/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/ResteasyReactiveProcessor.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,8 @@ public void setupEndpoints(ApplicationIndexBuildItem applicationIndexBuildItem,
563563
classLevelExceptionMappers.isPresent() ? classLevelExceptionMappers.get().getMappers()
564564
: Collections.emptyMap())
565565
.setResourceMethodCallback(new Consumer<>() {
566+
Boolean filtersAccessResourceMethod;
567+
566568
@Override
567569
public void accept(EndpointIndexer.ResourceMethodCallbackEntry entry) {
568570
MethodInfo method = entry.getMethodInfo();
@@ -589,6 +591,11 @@ public void accept(EndpointIndexer.ResourceMethodCallbackEntry entry) {
589591
.build());
590592
}
591593

594+
if (filtersAccessResourceMethod == null) {
595+
filtersAccessResourceMethod = filtersAccessResourceMethod(
596+
resourceInterceptorsBuildItem.getResourceInterceptors());
597+
}
598+
592599
boolean paramsRequireReflection = false;
593600
for (short i = 0; i < method.parametersCount(); i++) {
594601
Type parameterType = method.parameterType(i);
@@ -612,12 +619,12 @@ public void accept(EndpointIndexer.ResourceMethodCallbackEntry entry) {
612619
}
613620
}
614621

615-
if (paramsRequireReflection ||
622+
if (filtersAccessResourceMethod ||
623+
paramsRequireReflection ||
616624
MULTI.toString().equals(entry.getResourceMethod().getSimpleReturnType()) ||
617625
REST_MULTI.toString().equals(entry.getResourceMethod().getSimpleReturnType()) ||
618626
PUBLISHER.toString().equals(entry.getResourceMethod().getSimpleReturnType()) ||
619627
LEGACY_PUBLISHER.toString().equals(entry.getResourceMethod().getSimpleReturnType()) ||
620-
filtersAccessResourceMethod(resourceInterceptorsBuildItem.getResourceInterceptors()) ||
621628
entry.additionalRegisterClassForReflectionCheck()) {
622629
minimallyRegisterResourceClassForReflection(entry, reflectiveClassBuildItemBuildProducer);
623630
}

0 commit comments

Comments
 (0)