88import java .util .Map ;
99import java .util .Objects ;
1010
11- import io .avaje .http .generator .core .BaseControllerWriter ;
12- import io .avaje .http .generator .core .Constants ;
13- import io .avaje .http .generator .core .ControllerReader ;
14- import io .avaje .http .generator .core .CoreWebMethod ;
15- import io .avaje .http .generator .core .JsonBUtil ;
16- import io .avaje .http .generator .core .MethodReader ;
17- import io .avaje .http .generator .core .PrimitiveUtil ;
18- import io .avaje .http .generator .core .UType ;
11+ import io .avaje .http .generator .core .*;
1912
2013/**
2114 * Write Helidon specific web route adapter (a Helidon Service).
@@ -25,6 +18,9 @@ class ControllerWriter extends BaseControllerWriter {
2518 private static final String AT_GENERATED = "@Generated(\" avaje-helidon-generator\" )" ;
2619 private static final String IMPORT_HTTP_STATUS = "import static io.helidon.http.Status.*;" ;
2720
21+ private static final String JSON_JsonOutput = "io.avaje.json.stream.JsonOutput" ;
22+ private static final String JSONB_JsonOutput = "io.avaje.jsonb.stream.JsonOutput" ;
23+
2824 private final boolean useJsonB ;
2925 private final Map <String , UType > jsonTypes ;
3026
@@ -35,7 +31,7 @@ class ControllerWriter extends BaseControllerWriter {
3531 reader .addImportType ("io.avaje.jsonb.Jsonb" );
3632 reader .addImportType ("io.avaje.jsonb.JsonType" );
3733 reader .addImportType ("io.avaje.jsonb.Types" );
38- reader .addImportType ("io.avaje.jsonb.stream.JsonOutput" );
34+ reader .addImportType (jsonOutputType () );
3935 this .jsonTypes = JsonBUtil .jsonTypes (reader );
4036 jsonTypes .values ().stream ()
4137 .map (UType ::importTypes )
@@ -76,6 +72,12 @@ class ControllerWriter extends BaseControllerWriter {
7672 }
7773 }
7874
75+ private static String jsonOutputType () {
76+ return ProcessingContext .typeElement (JSON_JsonOutput ) != null
77+ ? JSON_JsonOutput
78+ : JSONB_JsonOutput ;
79+ }
80+
7981 void write () {
8082 writePackage ();
8183 writeImports ();
0 commit comments