From c3365ba6c0479a9610c731738ca9007ea4b9ad03 Mon Sep 17 00:00:00 2001 From: Josiah Noel <32279667+SentryMan@users.noreply.github.com> Date: Wed, 27 Nov 2024 11:35:37 -0500 Subject: [PATCH 1/4] update filters and switch --- http-generator-jex/pom.xml | 6 +- .../generator/jex/ControllerMethodWriter.java | 10 ++-- .../http/generator/jex/ControllerWriter.java | 2 +- .../avaje/http/generator/jex/JexAdapter.java | 57 ++++++++----------- tests/test-jex/pom.xml | 2 +- 5 files changed, 35 insertions(+), 42 deletions(-) diff --git a/http-generator-jex/pom.xml b/http-generator-jex/pom.xml index 87730122a..2335699b8 100644 --- a/http-generator-jex/pom.xml +++ b/http-generator-jex/pom.xml @@ -8,7 +8,11 @@ avaje-http-jex-generator - + + + 21 + + diff --git a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java index 9085e7255..fdc309315 100644 --- a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java +++ b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java @@ -267,11 +267,11 @@ private void write(boolean requestScoped) { private void writeContextReturn(ResponseMode responseMode) { final var produces = method.produces(); switch (responseMode) { - case Void: break; - case Json: writer.append("ctx.json("); break; - case Text: writer.append("ctx.text("); break; - case Templating: writer.append("ctx.html("); break; - default: writer.append("ctx.contentType(\"%s\").write(", produces); + case Void -> {} + case Json -> writer.append("ctx.json("); + case Text -> writer.append("ctx.text("); + case Templating -> writer.append("ctx.html("); + default -> writer.append("ctx.contentType(\"%s\").write(", produces); } } diff --git a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerWriter.java b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerWriter.java index cf694a5e7..e8972635c 100644 --- a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerWriter.java +++ b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerWriter.java @@ -23,7 +23,7 @@ class ControllerWriter extends BaseControllerWriter { if (reader.methods().stream() .map(MethodReader::webMethod) .anyMatch(w -> CoreWebMethod.FILTER == w)) { - reader.addImportType("io.avaje.jex.FilterChain"); + reader.addImportType("io.avaje.jex.HttpFilter.FilterChain"); } if (reader.methods().stream() .map(MethodReader::hxRequest) diff --git a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/JexAdapter.java b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/JexAdapter.java index 03a13fb2f..3ed2e3df8 100644 --- a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/JexAdapter.java +++ b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/JexAdapter.java @@ -69,7 +69,8 @@ public void writeReadParameter(Append writer, ParamType paramType, String paramN } @Override - public void writeReadParameter(Append writer, ParamType paramType, String paramName, String paramDefault) { + public void writeReadParameter( + Append writer, ParamType paramType, String paramName, String paramDefault) { writer.append("withDefault(ctx.%s(\"%s\"), \"%s\")", paramType, paramName, paramDefault); } @@ -77,31 +78,22 @@ public void writeReadParameter(Append writer, ParamType paramType, String paramN public void writeReadMapParameter(Append writer, ParamType paramType) { switch (paramType) { - case QUERYPARAM: - writer.append("ctx.queryParamMap()"); - break; - case FORM: - case FORMPARAM: - writer.append("ctx.formParamMap()"); - break; - default: - throw new UnsupportedOperationException( - "Only Query/Form Params have Map> supported in Jex"); + case QUERYPARAM -> writer.append("ctx.queryParamMap()"); + case FORM, FORMPARAM -> writer.append("ctx.formParamMap()"); + default -> + throw new UnsupportedOperationException( + "Only Query/Form Params have Map> supported in Jex"); } } @Override public void writeReadCollectionParameter(Append writer, ParamType paramType, String paramName) { switch (paramType) { - case QUERYPARAM: - writer.append("ctx.queryParams(\"%s\")", paramName); - break; - case FORMPARAM: - writer.append("ctx.formParams(\"%s\")", paramName); - break; - default: - throw new UnsupportedOperationException( - "Only MultiValue Form/Query Params are supported in Jex"); + case QUERYPARAM -> writer.append("ctx.queryParams(\"%s\")", paramName); + case FORMPARAM -> writer.append("ctx.formParams(\"%s\")", paramName); + default -> + throw new UnsupportedOperationException( + "Only MultiValue Form/Query Params are supported in Jex"); } } @@ -110,19 +102,17 @@ public void writeReadCollectionParameter( Append writer, ParamType paramType, String paramName, List paramDefault) { switch (paramType) { - case QUERYPARAM: - writer.append( - "withDefault(ctx.queryParams(\"%s\"), java.util.List.of(\"%s\"))", - paramName, String.join(",", paramDefault)); - break; - case FORMPARAM: - writer.append( - "withDefault(ctx.formParams(\"%s\"), java.util.List.of(\"%s\"))", - paramName, String.join(",", paramDefault)); - break; - default: - throw new UnsupportedOperationException( - "Only MultiValue Form/Query Params are supported in Jex"); + case QUERYPARAM -> + writer.append( + "withDefault(ctx.queryParams(\"%s\"), java.util.List.of(\"%s\"))", + paramName, String.join(",", paramDefault)); + case FORMPARAM -> + writer.append( + "withDefault(ctx.formParams(\"%s\"), java.util.List.of(\"%s\"))", + paramName, String.join(",", paramDefault)); + default -> + throw new UnsupportedOperationException( + "Only MultiValue Form/Query Params are supported in Jex"); } } @@ -130,5 +120,4 @@ public void writeReadCollectionParameter( public void writeAcceptLanguage(Append writer) { writer.append("ctx.header(\"%s\")", Constants.ACCEPT_LANGUAGE); } - } diff --git a/tests/test-jex/pom.xml b/tests/test-jex/pom.xml index 5dc1b1c4b..f8552f2ca 100644 --- a/tests/test-jex/pom.xml +++ b/tests/test-jex/pom.xml @@ -8,8 +8,8 @@ test-jex - + 21 true org.example.myapp.Main 2.2.26 From eca2c9a6e7e86470fbab58241b4b6f5bbbb33e09 Mon Sep 17 00:00:00 2001 From: Josiah Noel <32279667+SentryMan@users.noreply.github.com> Date: Wed, 27 Nov 2024 11:38:24 -0500 Subject: [PATCH 2/4] Update pom.xml --- tests/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pom.xml b/tests/pom.xml index dcf10e4e8..68f5c038e 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -15,7 +15,7 @@ 5.11.3 3.26.3 2.18.1 - 3.0-RC2 + 3.0-RC3 11.0 4.1.4 6.3.0 From f27fc0d0e2bb80d50a7a9c2f091aac31cf41f9e3 Mon Sep 17 00:00:00 2001 From: Josiah Noel <32279667+SentryMan@users.noreply.github.com> Date: Wed, 27 Nov 2024 11:50:42 -0500 Subject: [PATCH 3/4] Update TestController.java --- .../test-jex/src/main/java/org/example/web/TestController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test-jex/src/main/java/org/example/web/TestController.java b/tests/test-jex/src/main/java/org/example/web/TestController.java index 1f3216767..3625c946d 100644 --- a/tests/test-jex/src/main/java/org/example/web/TestController.java +++ b/tests/test-jex/src/main/java/org/example/web/TestController.java @@ -15,7 +15,7 @@ import io.avaje.http.api.Produces; import io.avaje.http.api.QueryParam; import io.avaje.jex.Context; -import io.avaje.jex.FilterChain; +import io.avaje.jex.HttpFilter.FilterChain; @Path("test/") @Controller From 79adf569057b9a7dca16a3125e333e71c4e937bf Mon Sep 17 00:00:00 2001 From: Josiah Noel <32279667+SentryMan@users.noreply.github.com> Date: Wed, 27 Nov 2024 11:52:52 -0500 Subject: [PATCH 4/4] Update ControllerMethodWriter.java --- .../io/avaje/http/generator/jex/ControllerMethodWriter.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java index fdc309315..c091c9bf1 100644 --- a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java +++ b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java @@ -33,7 +33,7 @@ class ControllerMethodWriter { } private void validateMethod() { - if (method.params().stream().map(MethodParam::shortType).noneMatch("FilterChain"::equals)) { + if (method.params().stream().map(MethodParam::shortType).noneMatch("HttpFilter.FilterChain"::equals)) { logError(method.element(), "Filters must contain a FilterChain parameter"); } } @@ -227,7 +227,7 @@ private void write(boolean requestScoped) { final var param = params.get(i); if (isAssignable2Interface(param.utype().mainType(), "java.lang.Exception")) { writer.append("ex"); - } else if ("FilterChain".equals(param.shortType())) { + } else if ("HttpFilter.FilterChain".equals(param.shortType())) { writer.append("chain"); } else { param.buildParamName(writer); @@ -277,6 +277,6 @@ private void writeContextReturn(ResponseMode responseMode) { private static boolean isExceptionOrFilterChain(MethodParam param) { return isAssignable2Interface(param.utype().mainType(), "java.lang.Exception") - || "FilterChain".equals(param.shortType()); + || "HttpFilter.FilterChain".equals(param.shortType()); } }