Skip to content

Commit

Permalink
Merge pull request #15614 from michalszynkiewicz/rest-client-performa…
Browse files Browse the repository at this point in the history
…nce-improvements

Resteasy Reactive MicroProfile Rest Client performance improvements
  • Loading branch information
michalszynkiewicz authored Mar 11, 2021
2 parents 19e87cc + ed0ac88 commit ba778a7
Show file tree
Hide file tree
Showing 5 changed files with 321 additions and 223 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.builditem.GeneratedClassBuildItem;
import io.quarkus.gizmo.AssignableResultHandle;
import io.quarkus.gizmo.ClassCreator;
import io.quarkus.gizmo.MethodCreator;

/**
Expand All @@ -21,21 +22,26 @@ public interface JaxrsClientEnricher {
* @param interfaceClass JAXRS-annotated interface for which the client is being generated
* @param index jandex index
*/
void forClass(MethodCreator ctor, AssignableResultHandle globalTarget, ClassInfo interfaceClass,
IndexView index);
void forClass(MethodCreator ctor, AssignableResultHandle globalTarget,
ClassInfo interfaceClass, IndexView index);

/**
* Method-level alterations
*
* @param classCreator creator of the jaxrs stub class
* @param constructor constructor of the jaxrs stub class
* @param methodCreator the method that is being generated, e.g. a method corresponding to `@GET Response get()`
* @param interfaceClass JAXRS-annotated interface for which the client is being generated
* @param method jandex method object corresponding to the method
* @param methodWebTarget method-level WebTarget
* @param index jandex index
* @param generatedClasses build producer used to generate classes. Used e.g. to generate classes for header filling
* @param methodIndex 0-based index of the method in the class. Used to assure there is no clash in generating classes
* @return customizer for Invocation.Builder
*/
void forMethod(MethodCreator methodCreator, ClassInfo interfaceClass, MethodInfo method,
AssignableResultHandle methodWebTarget, IndexView index, BuildProducer<GeneratedClassBuildItem> generatedClasses,
void forMethod(ClassCreator classCreator, MethodCreator constructor, MethodCreator methodCreator,
ClassInfo interfaceClass, MethodInfo method,
AssignableResultHandle invocationBuilder, IndexView index,
BuildProducer<GeneratedClassBuildItem> generatedClasses,
int methodIndex);
}
Loading

0 comments on commit ba778a7

Please sign in to comment.