Skip to content

Commit 553ef56

Browse files
committed
GH-180 Bump OpenApi spec to 3.1.0, include only non-null properties in scheme & use standalone ObjectMapper instance (Fix #180)
1 parent 45bf946 commit 553ef56

File tree

6 files changed

+12
-12
lines changed

6 files changed

+12
-12
lines changed

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,9 @@ subprojects {
121121

122122
testImplementation("org.assertj:assertj-core:3.24.2")
123123
testImplementation("net.javacrumbs.json-unit:json-unit-assertj:2.36.1")
124-
testImplementation("com.konghq:unirest-java:3.14.1")
124+
testImplementation("com.konghq:unirest-java:3.14.2")
125125

126-
testImplementation("ch.qos.logback:logback-classic:1.4.5")
126+
testImplementation("ch.qos.logback:logback-classic:1.4.6")
127127
}
128128

129129
tasks.withType<Test> {

examples/javalin-gradle-kotlin/src/main/java/io/javalin/openapi/plugin/test/JavalinTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ public static void main(String[] args) {
9191
openApiLicense.setIdentifier("Apache-2.0");
9292

9393
openApiInfo.setTitle("Awesome App");
94-
openApiInfo.setSummary("App summary");
9594
openApiInfo.setDescription("App description goes right here");
9695
openApiInfo.setTermsOfService("https://example.com/tos");
9796
openApiInfo.setContact(openApiContact);

javalin-plugins/javalin-openapi-plugin/src/main/kotlin/io/javalin/openapi/plugin/OpenApiPlugin.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package io.javalin.openapi.plugin
22

3+
import com.fasterxml.jackson.annotation.JsonInclude.Include
34
import com.fasterxml.jackson.databind.JsonNode
45
import com.fasterxml.jackson.databind.ObjectMapper
56
import com.fasterxml.jackson.databind.node.ObjectNode
67
import io.javalin.Javalin
7-
import io.javalin.json.JavalinJackson
8-
import io.javalin.json.jsonMapper
98
import io.javalin.openapi.OpenApiLoader
109
import io.javalin.plugin.Plugin
1110
import kotlin.DeprecationLevel.WARNING
@@ -28,17 +27,17 @@ open class OpenApiPlugin @JvmOverloads constructor(private val configuration: Op
2827

2928
private fun createDocumentation(app: Javalin): Lazy<Map<String, String>> =
3029
lazy {
31-
val jsonMapper = when (val jsonMapper = app.jsonMapper()) {
32-
is JavalinJackson -> jsonMapper.mapper
33-
else -> JavalinJackson.defaultMapper()
30+
// skip nulls from cfg
31+
val jsonMapper = lazy {
32+
ObjectMapper().setSerializationInclusion(Include.NON_NULL)
3433
}
3534

3635
OpenApiLoader()
3736
.loadOpenApiSchemes()
3837
.mapValues { (version, rawDocs) ->
3938
configuration.definitionConfiguration
4039
?.let { DefinitionConfiguration().also { definition -> it.accept(version, definition) } }
41-
?.applyConfigurationTo(jsonMapper, version, rawDocs)
40+
?.applyConfigurationTo(jsonMapper.value, version, rawDocs)
4241
?: rawDocs
4342
}
4443
}

openapi-annotation-processor/src/main/kotlin/io/javalin/openapi/processor/generators/OpenApiGenerator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ internal class OpenApiGenerator {
9898
*/
9999
private fun generateSchema(openApiAnnotations: Collection<Pair<Element, OpenApi>>): String {
100100
val openApi = JsonObject()
101-
openApi.addProperty("openapi", "3.0.3")
101+
openApi.addProperty("openapi", "3.1.0")
102102

103103
// fill info
104104
val info = JsonObject()

openapi-annotation-processor/src/test/kotlin/io/javalin/openapi/processor/OpenApiAnnotationTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ internal class OpenApiAnnotationTest : OpenApiAnnotationProcessorSpecification()
2323
fun should_generate_info() = withOpenApi("should_generate_info") {
2424
assertThatJson(it)
2525
.isObject
26-
.containsEntry("openapi", "3.0.3")
26+
.containsEntry("openapi", "3.1.0")
2727
.containsEntry("info", json("""{ "title":"", "version": "" }"""))
2828
}
2929

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
description = "Javalin OpenAPI Specification | Compile-time OpenAPI integration for Javalin 5.x"
22

33
dependencies {
4-
api("com.fasterxml.jackson.core:jackson-databind:2.14.2")
4+
val jacksonVersion = "2.14.2"
5+
api("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion")
6+
api("com.fasterxml.jackson.module:jackson-module-kotlin:$jacksonVersion")
57
api("com.google.code.gson:gson:2.10.1")
68
}

0 commit comments

Comments
 (0)