Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion http-generator-jex/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@
</parent>

<artifactId>avaje-http-jex-generator</artifactId>


<properties>
<maven.compiler.release>21</maven.compiler.release>
</properties>

<dependencies>

<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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");
}
}
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -267,16 +267,16 @@ 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);
}
}

private static boolean isExceptionOrFilterChain(MethodParam param) {
return isAssignable2Interface(param.utype().mainType(), "java.lang.Exception")
|| "FilterChain".equals(param.shortType());
|| "HttpFilter.FilterChain".equals(param.shortType());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,39 +69,31 @@ 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);
}

@Override
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<String, List<String>> 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<String, List<String>> 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");
}
}

Expand All @@ -110,25 +102,22 @@ public void writeReadCollectionParameter(
Append writer, ParamType paramType, String paramName, List<String> 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");
}
}

@Override
public void writeAcceptLanguage(Append writer) {
writer.append("ctx.header(\"%s\")", Constants.ACCEPT_LANGUAGE);
}

}
2 changes: 1 addition & 1 deletion tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<junit.version>5.11.3</junit.version>
<assertj.version>3.26.3</assertj.version>
<jackson.version>2.18.1</jackson.version>
<jex.version>3.0-RC2</jex.version>
<jex.version>3.0-RC3</jex.version>
<avaje-inject.version>11.0</avaje-inject.version>
<nima.version>4.1.4</nima.version>
<javalin.version>6.3.0</javalin.version>
Expand Down
2 changes: 1 addition & 1 deletion tests/test-jex/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
</parent>

<artifactId>test-jex</artifactId>

<properties>
<maven.compiler.release>21</maven.compiler.release>
<maven.deploy.skip>true</maven.deploy.skip>
<main.class>org.example.myapp.Main</main.class>
<swagger.version>2.2.26</swagger.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down