Skip to content

Commit 2a78984

Browse files
authored
[jex-generator] Update Filters and use enhanced switch (#521)
* update filters and switch * Update pom.xml * Update TestController.java * Update ControllerMethodWriter.java
1 parent 296c8fb commit 2a78984

File tree

7 files changed

+40
-47
lines changed

7 files changed

+40
-47
lines changed

http-generator-jex/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@
88
</parent>
99

1010
<artifactId>avaje-http-jex-generator</artifactId>
11-
11+
12+
<properties>
13+
<maven.compiler.release>21</maven.compiler.release>
14+
</properties>
15+
1216
<dependencies>
1317

1418
<dependency>

http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class ControllerMethodWriter {
3333
}
3434

3535
private void validateMethod() {
36-
if (method.params().stream().map(MethodParam::shortType).noneMatch("FilterChain"::equals)) {
36+
if (method.params().stream().map(MethodParam::shortType).noneMatch("HttpFilter.FilterChain"::equals)) {
3737
logError(method.element(), "Filters must contain a FilterChain parameter");
3838
}
3939
}
@@ -227,7 +227,7 @@ private void write(boolean requestScoped) {
227227
final var param = params.get(i);
228228
if (isAssignable2Interface(param.utype().mainType(), "java.lang.Exception")) {
229229
writer.append("ex");
230-
} else if ("FilterChain".equals(param.shortType())) {
230+
} else if ("HttpFilter.FilterChain".equals(param.shortType())) {
231231
writer.append("chain");
232232
} else {
233233
param.buildParamName(writer);
@@ -267,16 +267,16 @@ private void write(boolean requestScoped) {
267267
private void writeContextReturn(ResponseMode responseMode) {
268268
final var produces = method.produces();
269269
switch (responseMode) {
270-
case Void: break;
271-
case Json: writer.append("ctx.json("); break;
272-
case Text: writer.append("ctx.text("); break;
273-
case Templating: writer.append("ctx.html("); break;
274-
default: writer.append("ctx.contentType(\"%s\").write(", produces);
270+
case Void -> {}
271+
case Json -> writer.append("ctx.json(");
272+
case Text -> writer.append("ctx.text(");
273+
case Templating -> writer.append("ctx.html(");
274+
default -> writer.append("ctx.contentType(\"%s\").write(", produces);
275275
}
276276
}
277277

278278
private static boolean isExceptionOrFilterChain(MethodParam param) {
279279
return isAssignable2Interface(param.utype().mainType(), "java.lang.Exception")
280-
|| "FilterChain".equals(param.shortType());
280+
|| "HttpFilter.FilterChain".equals(param.shortType());
281281
}
282282
}

http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class ControllerWriter extends BaseControllerWriter {
2323
if (reader.methods().stream()
2424
.map(MethodReader::webMethod)
2525
.anyMatch(w -> CoreWebMethod.FILTER == w)) {
26-
reader.addImportType("io.avaje.jex.FilterChain");
26+
reader.addImportType("io.avaje.jex.HttpFilter.FilterChain");
2727
}
2828
if (reader.methods().stream()
2929
.map(MethodReader::hxRequest)

http-generator-jex/src/main/java/io/avaje/http/generator/jex/JexAdapter.java

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -69,39 +69,31 @@ public void writeReadParameter(Append writer, ParamType paramType, String paramN
6969
}
7070

7171
@Override
72-
public void writeReadParameter(Append writer, ParamType paramType, String paramName, String paramDefault) {
72+
public void writeReadParameter(
73+
Append writer, ParamType paramType, String paramName, String paramDefault) {
7374
writer.append("withDefault(ctx.%s(\"%s\"), \"%s\")", paramType, paramName, paramDefault);
7475
}
7576

7677
@Override
7778
public void writeReadMapParameter(Append writer, ParamType paramType) {
7879

7980
switch (paramType) {
80-
case QUERYPARAM:
81-
writer.append("ctx.queryParamMap()");
82-
break;
83-
case FORM:
84-
case FORMPARAM:
85-
writer.append("ctx.formParamMap()");
86-
break;
87-
default:
88-
throw new UnsupportedOperationException(
89-
"Only Query/Form Params have Map<String, List<String>> supported in Jex");
81+
case QUERYPARAM -> writer.append("ctx.queryParamMap()");
82+
case FORM, FORMPARAM -> writer.append("ctx.formParamMap()");
83+
default ->
84+
throw new UnsupportedOperationException(
85+
"Only Query/Form Params have Map<String, List<String>> supported in Jex");
9086
}
9187
}
9288

9389
@Override
9490
public void writeReadCollectionParameter(Append writer, ParamType paramType, String paramName) {
9591
switch (paramType) {
96-
case QUERYPARAM:
97-
writer.append("ctx.queryParams(\"%s\")", paramName);
98-
break;
99-
case FORMPARAM:
100-
writer.append("ctx.formParams(\"%s\")", paramName);
101-
break;
102-
default:
103-
throw new UnsupportedOperationException(
104-
"Only MultiValue Form/Query Params are supported in Jex");
92+
case QUERYPARAM -> writer.append("ctx.queryParams(\"%s\")", paramName);
93+
case FORMPARAM -> writer.append("ctx.formParams(\"%s\")", paramName);
94+
default ->
95+
throw new UnsupportedOperationException(
96+
"Only MultiValue Form/Query Params are supported in Jex");
10597
}
10698
}
10799

@@ -110,25 +102,22 @@ public void writeReadCollectionParameter(
110102
Append writer, ParamType paramType, String paramName, List<String> paramDefault) {
111103

112104
switch (paramType) {
113-
case QUERYPARAM:
114-
writer.append(
115-
"withDefault(ctx.queryParams(\"%s\"), java.util.List.of(\"%s\"))",
116-
paramName, String.join(",", paramDefault));
117-
break;
118-
case FORMPARAM:
119-
writer.append(
120-
"withDefault(ctx.formParams(\"%s\"), java.util.List.of(\"%s\"))",
121-
paramName, String.join(",", paramDefault));
122-
break;
123-
default:
124-
throw new UnsupportedOperationException(
125-
"Only MultiValue Form/Query Params are supported in Jex");
105+
case QUERYPARAM ->
106+
writer.append(
107+
"withDefault(ctx.queryParams(\"%s\"), java.util.List.of(\"%s\"))",
108+
paramName, String.join(",", paramDefault));
109+
case FORMPARAM ->
110+
writer.append(
111+
"withDefault(ctx.formParams(\"%s\"), java.util.List.of(\"%s\"))",
112+
paramName, String.join(",", paramDefault));
113+
default ->
114+
throw new UnsupportedOperationException(
115+
"Only MultiValue Form/Query Params are supported in Jex");
126116
}
127117
}
128118

129119
@Override
130120
public void writeAcceptLanguage(Append writer) {
131121
writer.append("ctx.header(\"%s\")", Constants.ACCEPT_LANGUAGE);
132122
}
133-
134123
}

tests/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<junit.version>5.11.3</junit.version>
1616
<assertj.version>3.26.3</assertj.version>
1717
<jackson.version>2.18.1</jackson.version>
18-
<jex.version>3.0-RC2</jex.version>
18+
<jex.version>3.0-RC3</jex.version>
1919
<avaje-inject.version>11.0</avaje-inject.version>
2020
<nima.version>4.1.4</nima.version>
2121
<javalin.version>6.3.0</javalin.version>

tests/test-jex/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
</parent>
99

1010
<artifactId>test-jex</artifactId>
11-
1211
<properties>
12+
<maven.compiler.release>21</maven.compiler.release>
1313
<maven.deploy.skip>true</maven.deploy.skip>
1414
<main.class>org.example.myapp.Main</main.class>
1515
<swagger.version>2.2.26</swagger.version>

tests/test-jex/src/main/java/org/example/web/TestController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import io.avaje.http.api.Produces;
1616
import io.avaje.http.api.QueryParam;
1717
import io.avaje.jex.Context;
18-
import io.avaje.jex.FilterChain;
18+
import io.avaje.jex.HttpFilter.FilterChain;
1919

2020
@Path("test/")
2121
@Controller

0 commit comments

Comments
 (0)