Skip to content

Commit de40d4e

Browse files
committed
jackson 3 support (#364)
1 parent 753f307 commit de40d4e

3 files changed

Lines changed: 51 additions & 6 deletions

File tree

openapi-processor-core/src/main/kotlin/io/openapiprocessor/core/writer/java/StringEnumWriter.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ open class StringEnumWriter(
1919
private val apiOptions: ApiOptions,
2020
private val identifier: Identifier,
2121
private val generatedWriter: GeneratedWriter,
22+
private val jacksonAnnotations: JacksonAnnotations = JacksonAnnotations(apiOptions),
2223
private val javadocFactory: JavaDocFactory = JavaDocFactory(identifier)
2324
) {
2425

@@ -101,8 +102,8 @@ open class StringEnumWriter(
101102

102103
private fun collectImports(packageName: String, dataType: DataType): List<String> {
103104
val imports = mutableSetOf<String>()
104-
imports.add("com.fasterxml.jackson.annotation.JsonCreator")
105-
imports.add("com.fasterxml.jackson.annotation.JsonValue")
105+
imports.addAll(jacksonAnnotations.getJsonCreator().imports)
106+
imports.addAll(jacksonAnnotations.getJsonValue().imports)
106107
imports.addAll(generatedWriter.getImports())
107108
imports.addAll(dataType.referencedImports)
108109
if (isSupplier()) {

openapi-processor-core/src/test/groovy/io/openapiprocessor/core/writer/java/StringEnumWriterSpec.groovy renamed to openapi-processor-core/src/test/groovy/io/openapiprocessor/core/writer/java/StringEnumWriterGSpec.groovy

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,20 @@ import io.openapiprocessor.core.model.datatypes.DataTypeName
1111
import io.openapiprocessor.core.model.datatypes.StringEnumDataType
1212
import spock.lang.Specification
1313

14-
class StringEnumWriterSpec extends Specification {
14+
class StringEnumWriterGSpec extends Specification {
1515
def options = new ApiOptions()
1616
def identifier = new JavaIdentifier()
1717
def generatedWriter = new SimpleGeneratedWriter(options)
18+
def jacksonAnnotation = new JacksonAnnotations(options)
1819
def javadocWriter = new JavaDocFactory(identifier)
19-
def writer = new StringEnumWriter(options, identifier, generatedWriter, javadocWriter)
20+
def writer = new StringEnumWriter(options, identifier, generatedWriter, jacksonAnnotation, javadocWriter)
2021
def target = new StringWriter ()
2122

22-
private DataTypeName dataTypeName(String id) {
23+
private static DataTypeName dataTypeName(String id) {
2324
return new DataTypeName(id, id)
2425
}
2526

26-
private DataTypeName dataTypeName(String id, String type) {
27+
private static DataTypeName dataTypeName(String id, String type) {
2728
return new DataTypeName(id, type)
2829
}
2930

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Copyright 2016 https://github.com/openapi-processor/openapi-processor-base
3+
* PDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.openapiprocessor.core.writer.java
7+
8+
import io.kotest.core.spec.style.StringSpec
9+
import io.mockk.mockk
10+
import io.mockk.verify
11+
import io.openapiprocessor.core.converter.ApiOptions
12+
import io.openapiprocessor.core.model.Documentation
13+
import io.openapiprocessor.core.model.datatypes.DataTypeName
14+
import io.openapiprocessor.core.model.datatypes.StringEnumDataType
15+
import java.io.StringWriter
16+
17+
class StringEnumWriterSpec : StringSpec({
18+
val options = ApiOptions()
19+
20+
"looks up jackson annotations" {
21+
val jackson = mockk<JacksonAnnotations>(relaxed = true)
22+
23+
val writer = StringEnumWriter(
24+
options,
25+
JavaIdentifier(),
26+
SimpleGeneratedWriter(options),
27+
jacksonAnnotations = jackson)
28+
val target = StringWriter()
29+
30+
val dataType = StringEnumDataType(
31+
DataTypeName("Foo"),
32+
"pkg",
33+
listOf(),
34+
null,
35+
false,
36+
Documentation(null, "description"))
37+
38+
writer.write(target, dataType)
39+
40+
verify { jackson.getJsonCreator() }
41+
verify { jackson.getJsonValue() }
42+
}
43+
})

0 commit comments

Comments
 (0)