11package io .avaje .http .generator .core ;
22
3- import static io .avaje .http .generator .core .ProcessingContext .*;
3+ import static io .avaje .http .generator .core .ProcessingContext .asElement ;
4+ import static io .avaje .http .generator .core .ProcessingContext .asMemberOf ;
5+ import static io .avaje .http .generator .core .ProcessingContext .instrumentAllWebMethods ;
6+ import static io .avaje .http .generator .core .ProcessingContext .isOpenApiAvailable ;
7+ import static io .avaje .http .generator .core .ProcessingContext .platform ;
8+ import static io .avaje .http .generator .core .ProcessingContext .useComponent ;
9+ import static io .avaje .http .generator .core .ProcessingContext .useJavax ;
410import static java .util .function .Predicate .not ;
511
612import java .util .ArrayList ;
@@ -61,6 +67,9 @@ public ControllerReader(TypeElement beanType) {
6167 instrumentAllWebMethods ()
6268 || findAnnotation (ControllerPrism ::getOptionalOn )
6369 .map (ControllerPrism ::instrumentRequestContext )
70+ .or (
71+ () ->
72+ findAnnotation (InstrumentServerContextPrism ::getOptionalOn ).map (x -> true ))
6473 .orElse (false );
6574 }
6675
@@ -107,8 +116,8 @@ void addImports(boolean withSingleton) {
107116 }
108117
109118 private List <Element > initInterfaces () {
110- List <Element > interfaces = new ArrayList <>();
111- for (TypeMirror anInterface : beanType .getInterfaces ()) {
119+ final List <Element > interfaces = new ArrayList <>();
120+ for (final TypeMirror anInterface : beanType .getInterfaces ()) {
112121 final Element ifaceElement = asElement (anInterface );
113122 final var controller = ControllerPrism .getInstanceOn (ifaceElement );
114123 if (controller != null && !controller .value ().isBlank ()
@@ -120,8 +129,8 @@ private List<Element> initInterfaces() {
120129 }
121130
122131 private List <ExecutableElement > initInterfaceMethods () {
123- List <ExecutableElement > ifaceMethods = new ArrayList <>();
124- for (Element anInterface : interfaces ) {
132+ final List <ExecutableElement > ifaceMethods = new ArrayList <>();
133+ for (final Element anInterface : interfaces ) {
125134 ifaceMethods .addAll (ElementFilter .methodsIn (anInterface .getEnclosedElements ()));
126135 }
127136 return ifaceMethods ;
@@ -204,7 +213,7 @@ public void read(boolean withSingleton) {
204213 if (!roles .isEmpty ()) {
205214 platform ().controllerRoles (roles , this );
206215 }
207- for (Element element : beanType .getEnclosedElements ()) {
216+ for (final Element element : beanType .getEnclosedElements ()) {
208217 if (element .getKind () == ElementKind .METHOD ) {
209218 readMethod ((ExecutableElement ) element );
210219 } else if (element .getKind () == ElementKind .FIELD ) {
@@ -221,7 +230,7 @@ private void deriveIncludeValidation() {
221230 }
222231
223232 private boolean methodHasValid () {
224- for (MethodReader method : methods ) {
233+ for (final MethodReader method : methods ) {
225234 if (method .hasValid ()) {
226235 return true ;
227236 }
@@ -240,12 +249,12 @@ private void readField(Element element) {
240249 * Read methods from superclasses taking into account generics.
241250 */
242251 private void readSuper (TypeElement beanType ) {
243- TypeMirror superclass = beanType .getSuperclass ();
252+ final TypeMirror superclass = beanType .getSuperclass ();
244253 if (superclass .getKind () != TypeKind .NONE ) {
245- DeclaredType declaredType = (DeclaredType ) superclass ;
254+ final DeclaredType declaredType = (DeclaredType ) superclass ;
246255 final Element superElement = asElement (superclass );
247256 if (!"java.lang.Object" .equals (superElement .toString ())) {
248- for (Element element : superElement .getEnclosedElements ()) {
257+ for (final Element element : superElement .getEnclosedElements ()) {
249258 if (element .getKind () == ElementKind .METHOD ) {
250259 readMethod ((ExecutableElement ) element , declaredType );
251260 } else if (element .getKind () == ElementKind .FIELD ) {
@@ -269,7 +278,7 @@ private void readMethod(ExecutableElement method, DeclaredType declaredType) {
269278 // actual taking into account generics
270279 actualExecutable = (ExecutableType ) asMemberOf (declaredType , method );
271280 }
272- MethodReader methodReader = new MethodReader (this , method , actualExecutable );
281+ final MethodReader methodReader = new MethodReader (this , method , actualExecutable );
273282 if (methodReader .isWebMethod ()) {
274283 methodReader .read ();
275284 methods .add (methodReader );
0 commit comments