Skip to content

Commit ea4db2c

Browse files
committed
refs #3904 - annotations support for @jsonvalue types
1 parent 3a8524c commit ea4db2c

5 files changed

Lines changed: 56 additions & 2 deletions

File tree

modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/ModelResolver.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,7 @@ public Schema resolve(AnnotatedType annotatedType, ModelConverterContext context
376376
.resolveAsRef(annotatedType.isResolveAsRef())
377377
.jsonViewAnnotation(annotatedType.getJsonViewAnnotation())
378378
.propertyName(annotatedType.getPropertyName())
379+
.ctxAnnotations(annotatedType.getCtxAnnotations())
379380
.skipOverride(true);
380381
return context.resolve(aType);
381382
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package io.swagger.v3.core.resolving;
2+
3+
import com.fasterxml.jackson.annotation.JsonValue;
4+
import io.swagger.v3.core.converter.AnnotatedType;
5+
import io.swagger.v3.core.converter.ModelConverterContextImpl;
6+
import io.swagger.v3.core.jackson.ModelResolver;
7+
import io.swagger.v3.core.matchers.SerializationMatchers;
8+
import io.swagger.v3.oas.models.media.Schema;
9+
import org.testng.annotations.Test;
10+
11+
public class Ticket3904Test extends SwaggerTestBase {
12+
13+
@Test
14+
public void testJsonValueSchemaAnnotation() throws Exception {
15+
16+
final ModelResolver modelResolver = new ModelResolver(mapper());
17+
18+
ModelConverterContextImpl context = new ModelConverterContextImpl(modelResolver);
19+
20+
Schema model = context
21+
.resolve(new AnnotatedType(Request.class));
22+
23+
SerializationMatchers.assertEqualsToYaml(context.getDefinedModels(), "Request:\n" +
24+
" type: object\n" +
25+
" properties:\n" +
26+
" id:\n" +
27+
" type: string\n" +
28+
" description: Description of ID.");
29+
30+
}
31+
32+
static class Request {
33+
@io.swagger.v3.oas.annotations.media.Schema(description = "Description of ID.")
34+
private Id id;
35+
36+
public Id getId() {
37+
return id;
38+
}
39+
40+
public void setId(Id id) {
41+
this.id = id;
42+
}
43+
}
44+
static class Id {
45+
private String value;
46+
47+
@JsonValue
48+
public String getValue() {
49+
return value;
50+
}
51+
}
52+
}

modules/swagger-gradle-plugin/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ dependencies {
4646
testImplementation "org.eclipse.jetty:jetty-proxy:${project.jettyVersion}"
4747
testImplementation "org.apache.httpcomponents:httpclient:4.5.13"
4848
testImplementation "commons-codec:commons-codec:1.15"
49+
testImplementation "commons-io:commons-io:2.7"
4950
testImplementation "org.apache.commons:commons-compress:1.20"
5051
}
5152

modules/swagger-project-jakarta/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@
569569
<guava-version>30.1-jre</guava-version>
570570
<ant-version>1.10.9</ant-version>
571571
<commons-lang-version>3.7</commons-lang-version>
572-
<commons-io-version>2.6</commons-io-version>
572+
<commons-io-version>2.7</commons-io-version>
573573
<slf4j-version>1.7.25</slf4j-version>
574574
<jetty-version>9.4.39.v20210325</jetty-version>
575575
<testng-version>7.3.0</testng-version>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@
630630
<guava-version>30.1-jre</guava-version>
631631
<ant-version>1.10.9</ant-version>
632632
<commons-lang-version>3.7</commons-lang-version>
633-
<commons-io-version>2.6</commons-io-version>
633+
<commons-io-version>2.7</commons-io-version>
634634
<slf4j-version>1.7.25</slf4j-version>
635635
<jetty-version>9.4.39.v20210325</jetty-version>
636636
<testng-version>7.3.0</testng-version>

0 commit comments

Comments
 (0)