Skip to content

Commit 28a6401

Browse files
committed
remove jsonb generation if no jsontypes available
1 parent 7a81877 commit 28a6401

File tree

3 files changed

+36
-25
lines changed

3 files changed

+36
-25
lines changed

http-generator-helidon/src/main/java/io/avaje/http/generator/helidon/nima/ControllerWriter.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,12 @@ class ControllerWriter extends BaseControllerWriter {
2121
private static final String JSON_JsonOutput = "io.avaje.json.stream.JsonOutput";
2222
private static final String JSONB_JsonOutput = "io.avaje.jsonb.stream.JsonOutput";
2323

24-
private final boolean useJsonB;
24+
private boolean useJsonB;
2525
private final Map<String, UType> jsonTypes;
2626

2727
ControllerWriter(ControllerReader reader, boolean jsonb) throws IOException {
2828
super(reader);
2929
this.useJsonB = jsonb;
30-
if (useJsonB) {
31-
reader.addImportType("io.avaje.jsonb.Jsonb");
32-
reader.addImportType("io.avaje.jsonb.JsonType");
33-
reader.addImportType("io.avaje.jsonb.Types");
34-
reader.addImportType(jsonOutputType());
35-
this.jsonTypes = JsonBUtil.jsonTypes(reader);
36-
jsonTypes.values().stream()
37-
.map(UType::importTypes)
38-
.forEach(reader::addImportTypes);
39-
} else {
40-
this.jsonTypes = Map.of();
41-
}
4230
reader.addImportType("io.helidon.common.media.type.MediaTypes");
4331
reader.addImportType("io.helidon.common.parameters.Parameters");
4432
reader.addImportType("io.helidon.webserver.http.HttpRouting");
@@ -70,6 +58,20 @@ class ControllerWriter extends BaseControllerWriter {
7058
reader.addImportType("io.avaje.htmx.nima.TemplateContentCache");
7159
}
7260
}
61+
if (useJsonB) {
62+
this.jsonTypes = JsonBUtil.jsonTypes(reader);
63+
if (this.jsonTypes.isEmpty()) {
64+
useJsonB = false;
65+
return;
66+
}
67+
reader.addImportType("io.avaje.jsonb.Jsonb");
68+
reader.addImportType("io.avaje.jsonb.JsonType");
69+
reader.addImportType("io.avaje.jsonb.Types");
70+
reader.addImportType(jsonOutputType());
71+
jsonTypes.values().stream().map(UType::importTypes).forEach(reader::addImportTypes);
72+
} else {
73+
this.jsonTypes = Map.of();
74+
}
7375
}
7476

7577
private static String jsonOutputType() {

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

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,14 @@
2020
class ControllerWriter extends BaseControllerWriter {
2121

2222
private static final String AT_GENERATED = "@Generated(\"avaje-javalin-generator\")";
23-
private final boolean useJsonB;
23+
private boolean useJsonB;
2424
private final Map<String, UType> jsonTypes;
2525
private final boolean javalin6 = ProcessingContext.javalin6();
2626

2727
ControllerWriter(ControllerReader reader, boolean jsonb) throws IOException {
2828
super(reader);
2929
this.useJsonB = jsonb;
30-
if (useJsonB) {
31-
reader.addImportType("io.avaje.jsonb.Jsonb");
32-
reader.addImportType("io.avaje.jsonb.JsonType");
33-
reader.addImportType("io.avaje.jsonb.Types");
34-
this.jsonTypes = JsonBUtil.jsonTypes(reader);
35-
jsonTypes.values().stream().map(UType::importTypes).forEach(reader::addImportTypes);
36-
} else {
37-
this.jsonTypes = Map.of();
38-
}
30+
3931
reader.addImportType("io.javalin.plugin.Plugin");
4032
if (javalin6) {
4133
reader.addImportType("io.javalin.config.JavalinConfig");
@@ -44,6 +36,19 @@ class ControllerWriter extends BaseControllerWriter {
4436
} else {
4537
reader.addImportType("io.javalin.Javalin");
4638
}
39+
if (useJsonB) {
40+
this.jsonTypes = JsonBUtil.jsonTypes(reader);
41+
if (this.jsonTypes.isEmpty()) {
42+
useJsonB = false;
43+
return;
44+
}
45+
reader.addImportType("io.avaje.jsonb.Jsonb");
46+
reader.addImportType("io.avaje.jsonb.JsonType");
47+
reader.addImportType("io.avaje.jsonb.Types");
48+
jsonTypes.values().stream().map(UType::importTypes).forEach(reader::addImportTypes);
49+
} else {
50+
this.jsonTypes = Map.of();
51+
}
4752
}
4853

4954
void write() {

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class ControllerWriter extends BaseControllerWriter {
1515
private static final String AT_GENERATED = "@Generated(\"avaje-jex-generator\")";
1616
private static final String API_CONTEXT = "io.avaje.jex.http.Context";
1717
private static final String API_ROUTING = "io.avaje.jex.Routing";
18-
private final boolean useJsonB;
18+
private boolean useJsonB;
1919
private final Map<String, UType> jsonTypes;
2020

2121
ControllerWriter(ControllerReader reader, boolean jsonb) throws IOException {
@@ -41,10 +41,14 @@ class ControllerWriter extends BaseControllerWriter {
4141
}
4242
}
4343
if (useJsonB) {
44+
this.jsonTypes = JsonBUtil.jsonTypes(reader);
45+
if (this.jsonTypes.isEmpty()) {
46+
useJsonB = false;
47+
return;
48+
}
4449
reader.addImportType("io.avaje.jsonb.Jsonb");
4550
reader.addImportType("io.avaje.jsonb.JsonType");
4651
reader.addImportType("io.avaje.jsonb.Types");
47-
this.jsonTypes = JsonBUtil.jsonTypes(reader);
4852
jsonTypes.values().stream().map(UType::importTypes).forEach(reader::addImportTypes);
4953
} else {
5054
this.jsonTypes = Map.of();

0 commit comments

Comments
 (0)