Skip to content

Commit 4b7c2db

Browse files
committed
feat: update to jackson3 in java template
1 parent 44c4783 commit 4b7c2db

5 files changed

Lines changed: 21 additions & 24 deletions

File tree

pkg/generator/openapi-java/generator.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,7 @@ func NewGenerator() *JavaGenerator {
521521
"volatile",
522522
"while",
523523
"tostring",
524+
"consumer",
524525
},
525526
reservedRunes: []rune{
526527
'$', // dollar sign

pkg/generator/openapi-kotlin/generator.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,7 @@ func NewGenerator() *KotlinGenerator {
518518
"void",
519519
"volatile",
520520
"while",
521+
"consumer",
521522
},
522523
reservedRunes: []rune{
523524
'$', // dollar sign

pkg/template/templates/openapi-java-httpclient/api_factory.gohtml

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,17 @@ import {{ $.Common.Packages.Client }}.{{ $service.Type }}Api;
1111
import {{ $.Common.Packages.Client }}.{{ $service.Type }}ConsumerApi;
1212
{{- end }}
1313

14-
import com.fasterxml.jackson.annotation.JsonInclude;
15-
import com.fasterxml.jackson.databind.DeserializationFeature;
16-
import com.fasterxml.jackson.databind.MapperFeature;
17-
import com.fasterxml.jackson.databind.ObjectMapper;
18-
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
19-
import com.fasterxml.jackson.databind.SerializationFeature;
20-
import com.fasterxml.jackson.databind.json.JsonMapper;
21-
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
14+
import tools.jackson.databind.MapperFeature;
15+
import tools.jackson.databind.PropertyNamingStrategies;
16+
import tools.jackson.databind.SerializationFeature;
17+
import tools.jackson.databind.json.JsonMapper;
18+
import tools.jackson.databind.DeserializationFeature;
2219

2320
import feign.Feign;
2421
import feign.form.FormEncoder;
2522
import feign.Logger;
26-
import feign.jackson.JacksonDecoder;
27-
import feign.jackson.JacksonEncoder;
23+
import feign.jackson3.Jackson3Decoder;
24+
import feign.jackson3.Jackson3Encoder;
2825
import feign.micrometer.MicrometerCapability;
2926
import feign.okhttp.OkHttpClient;
3027
import feign.reactive.ReactorFeign;
@@ -163,27 +160,26 @@ public class {{ .Metadata.Name }}Factory {
163160
// objectMapper
164161
JsonMapper.Builder objectMapperBuilder = JsonMapper.builder()
165162
.enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS)
166-
.enable(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE)
167-
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
163+
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) // do not fail on new fields
168164
.propertyNamingStrategy(PropertyNamingStrategies.LOWER_CAMEL_CASE)
169165
.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
170166
{{- if .Common.GeneratorProperties.jacksonIncludeNonNull }}
171167
// condition: jsonIncludeNonNull
172168
// .serializationInclusion(JsonInclude.Include.NON_NULL)
173169
{{- end }}
174-
.addModule(new JavaTimeModule());
175-
config.extensions().forEach(extension -> extension.customizeObjectMapper(objectMapperBuilder));
176-
ObjectMapper objectMapper = objectMapperBuilder.build();
170+
;
171+
//config.extensions().forEach(extension -> extension.customizeObjectMapper(objectMapperBuilder));
172+
JsonMapper objectMapper = objectMapperBuilder.build();
177173

178174
// builder
179175
return Feign.builder()
180176
.client(new OkHttpClient(clientBuilder.build()))
181177
{{- if .Common.HasParametersWithType "form" }}
182-
//.encoder(new FormEncoder(new JacksonEncoder(objectMapper)))
178+
//.encoder(new FormEncoder(new Jackson3Encoder(objectMapper)))
183179
{{- else }}
184-
.encoder(new JacksonEncoder(objectMapper))
180+
.encoder(new Jackson3Encoder(objectMapper))
185181
{{- end }}
186-
.decoder(new JacksonDecoder(objectMapper))
182+
.decoder(new Jackson3Decoder(objectMapper))
187183
.logger(new Slf4jLogger())
188184
.logLevel(Logger.Level.valueOf(config.logLevel().toUpperCase()))
189185
.addCapability(new MicrometerCapability(config.meterRegistry()))

pkg/template/templates/openapi-java-httpclient/build.gradle.kts.core.gohtml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ dependencies {
2727

2828
// feign
2929
implementation("io.github.openfeign:feign-core")
30-
implementation("io.github.openfeign:feign-jackson")
30+
implementation("io.github.openfeign:feign-jackson3")
3131
implementation("io.github.openfeign:feign-slf4j")
3232
implementation("io.github.openfeign:feign-okhttp")
3333
implementation("io.github.openfeign:feign-micrometer")
@@ -45,8 +45,7 @@ dependencies {
4545
api("io.github.primelib.primecodegenlib.java:feign-common")
4646

4747
// jackson
48-
implementation("com.fasterxml.jackson.core:jackson-databind")
49-
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
48+
implementation("tools.jackson.core:jackson-databind")
5049

5150
// metrics
5251
api("io.micrometer:micrometer-core")

pkg/template/templates/openapi-java-httpclient/libs.versions.toml.gohtml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
spring-boot-version = "4.0.3"
66

77
[libraries]
8-
openfeign-bom = { module = "io.github.openfeign:feign-bom", version = "13.9.3" }
8+
openfeign-bom = { module = "io.github.openfeign:feign-bom", version = "13.11" }
99
resilience4j-bom = { module = "io.github.resilience4j:resilience4j-bom", version = "2.3.0" }
10-
jackson-bom = { module = "com.fasterxml.jackson:jackson-bom", version = "2.21.1" }
10+
jackson-bom = { module = "tools.jackson:jackson-bom", version = "3.1.1" }
1111
micrometer-bom = { module = "io.micrometer:micrometer-bom", version = "1.16.4" }
1212
micrometer-core = { module = "io.micrometer:micrometer-core" }
1313
slf4j-bom = { module = "org.slf4j:slf4j-bom", version = "2.0.17" }
@@ -22,4 +22,4 @@ okhttp = { module = "com.squareup.okhttp3:okhttp", version = "5.3.2" }
2222
junixsocket = { module = "com.kohlschutter.junixsocket:junixsocket-core", version = "2.10.1" }
2323

2424
[plugins]
25-
configuration = { id = "me.philippheuer.configuration", version = "0.20.0" }
25+
configuration = { id = "me.philippheuer.configuration", version = "0.20.1" }

0 commit comments

Comments
 (0)