Skip to content

Commit 02a38e8

Browse files
authored
Merge branch 'master' into dependabot/maven/master/dependencies-744d747e40
2 parents 480bfb6 + 620d73d commit 02a38e8

File tree

3 files changed

+46
-27
lines changed

3 files changed

+46
-27
lines changed

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

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class ControllerMethodWriter {
1414
private final MethodReader method;
1515
private final Append writer;
1616
private final WebMethod webMethod;
17-
private boolean instrumentContext;
17+
private final boolean instrumentContext;
1818

1919
ControllerMethodWriter(MethodReader method, Append writer) {
2020
this.method = method;
@@ -23,16 +23,37 @@ class ControllerMethodWriter {
2323
this.instrumentContext = method.instrumentContext();
2424
}
2525

26-
void write(boolean requestScoped) {
26+
void writeRouting() {
2727
final PathSegments segments = method.pathSegments();
2828
final String fullPath = segments.fullPath();
29+
writer.append(" routing.%s(\"%s\", this::_%s)", webMethod.name().toLowerCase(), fullPath, method.simpleName());
30+
List<String> roles = method.roles();
31+
if (!roles.isEmpty()) {
32+
writer.append(".withRoles(");
33+
for (int i = 0; i < roles.size(); i++) {
34+
if (i > 0) {
35+
writer.append(", ");
36+
}
37+
writer.append(Util.shortName(roles.get(i), true));
38+
}
39+
writer.append(")");
40+
}
41+
writer.append(";").eol();
42+
}
2943

30-
writer.append(" routing.%s(\"%s\", ctx -> {", webMethod.name().toLowerCase(), fullPath).eol();
44+
void writeHandler(boolean requestScoped) {
45+
writer.append(" private void _%s(Context ctx) {", method.simpleName()).eol();
46+
write(requestScoped);
47+
writer.append(" }").eol().eol();
48+
}
49+
50+
private void write(boolean requestScoped) {
3151
int statusCode = method.statusCode();
3252
if (statusCode > 0) {
33-
writer.append(" ctx.status(%d);", statusCode).eol();
53+
writer.append(" ctx.status(%d);", statusCode).eol();
3454
}
3555

56+
final PathSegments segments = method.pathSegments();
3657
List<PathSegments.Segment> matrixSegments = segments.matrixSegments();
3758
for (PathSegments.Segment matrixSegment : matrixSegments) {
3859
matrixSegment.writeCreateSegment(writer, platform());
@@ -47,7 +68,7 @@ void write(boolean requestScoped) {
4768
param.writeValidate(writer);
4869
}
4970
}
50-
writer.append(" ");
71+
writer.append(" ");
5172
if (!method.isVoid()) {
5273
writeContextReturn();
5374
}
@@ -74,19 +95,6 @@ void write(boolean requestScoped) {
7495
writer.append(")");
7596
}
7697
writer.append(";").eol();
77-
writer.append(" }");
78-
79-
List<String> roles = method.roles();
80-
if (!roles.isEmpty()) {
81-
writer.append(").withRoles(");
82-
for (int i = 0; i < roles.size(); i++) {
83-
if (i > 0) {
84-
writer.append(", ");
85-
}
86-
writer.append(Util.shortName(roles.get(i), true));
87-
}
88-
}
89-
writer.append(");").eol().eol();
9098
}
9199

92100
private void writeContextReturn() {

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

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
class ControllerWriter extends BaseControllerWriter {
1212

1313
private static final String AT_GENERATED = "@Generated(\"avaje-jex-generator\")";
14+
private static final String API_CONTEXT = "io.avaje.jex.Context";
1415
private static final String API_ROUTING = "io.avaje.jex.Routing";
1516
private static final String API_ROUTING_SERVICE = "io.avaje.jex.Routing.Service";
1617

1718
ControllerWriter(ControllerReader reader) throws IOException {
1819
super(reader);
20+
reader.addImportType(API_CONTEXT);
1921
reader.addImportType(API_ROUTING);
2022
reader.addImportType(API_ROUTING_SERVICE);
2123
}
@@ -25,27 +27,36 @@ void write() {
2527
writeImports();
2628
writeClassStart();
2729
writeAddRoutes();
30+
writeHandlers();
2831
writeClassEnd();
2932
}
3033

3134
private void writeAddRoutes() {
3235
writer.append(" @Override").eol();
33-
writer.append(" public void add(Routing routing) {").eol().eol();
36+
writer.append(" public void add(Routing routing) {").eol();
3437
for (MethodReader method : reader.methods()) {
3538
if (method.isWebMethod()) {
36-
writeForMethod(method);
39+
writeRouting(method);
3740
}
3841
}
3942
writer.append(" }").eol().eol();
4043
}
4144

42-
private void writeForMethod(MethodReader method) {
43-
new ControllerMethodWriter(method, writer).write(isRequestScoped());
44-
if (!reader.isDocHidden()) {
45-
method.buildApiDocumentation();
45+
private void writeHandlers() {
46+
for (MethodReader method : reader.methods()) {
47+
if (method.isWebMethod()) {
48+
new ControllerMethodWriter(method, writer).writeHandler(isRequestScoped());
49+
if (!reader.isDocHidden()) {
50+
method.buildApiDocumentation();
51+
}
52+
}
4653
}
4754
}
4855

56+
private void writeRouting(MethodReader method) {
57+
new ControllerMethodWriter(method, writer).writeRouting();
58+
}
59+
4960
private void writeClassStart() {
5061
writer.append(AT_GENERATED).eol();
5162
writer.append(diAnnotation()).eol();
@@ -62,7 +73,7 @@ private void writeClassStart() {
6273
if (reader.isIncludeValidator()) {
6374
writer.append(" private final Validator validator;").eol();
6475
}
65-
76+
6677
if (instrumentContext) {
6778
writer.append(" private final RequestContextResolver resolver;").eol();
6879
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public String bodyAsClass(UType uType) {
3838

3939
@Override
4040
public String indent() {
41-
return " ";
41+
return " ";
4242
}
4343

4444
@Override
@@ -85,7 +85,7 @@ public void writeReadCollectionParameter(
8585
}
8686
writer.append("withDefault(ctx.queryParams(\"%s\"), java.util.List.of(\"%s\"))", paramName, String.join(",", paramDefault));
8787
}
88-
88+
8989
@Override
9090
public void writeAcceptLanguage(Append writer) {
9191
writer.append("ctx.header(\"%s\")", Constants.ACCEPT_LANGUAGE);

0 commit comments

Comments
 (0)