Skip to content

Commit 4d98358

Browse files
authored
Merge pull request #3381 from swagger-api/ticket-3345
refs #3345 - Include discriminator mapped schemas when filtering
2 parents 691c768 + 80e32eb commit 4d98358

File tree

3 files changed

+573
-344
lines changed

3 files changed

+573
-344
lines changed

modules/swagger-core/src/main/java/io/swagger/v3/core/filter/SpecFilter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,11 @@ private void addSchemaRef(Schema schema, Set<String> referencedDefinitions) {
291291
referencedDefinitions.add(schema.get$ref());
292292
return;
293293
}
294+
if (schema.getDiscriminator() != null && schema.getDiscriminator().getMapping() != null) {
295+
for (Map.Entry<String, String> mapping: schema.getDiscriminator().getMapping().entrySet()) {
296+
referencedDefinitions.add(mapping.getValue());
297+
}
298+
}
294299

295300
if (schema.getProperties() != null) {
296301
for (Object propName : schema.getProperties().keySet()) {

modules/swagger-core/src/test/java/io/swagger/v3/core/filter/SpecFilterTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,22 @@ public void shouldRemoveBrokenNestedRefs() throws IOException {
255255
assertNotNull(filtered.getComponents().getSchemas().get("Category"));
256256
assertNotNull(filtered.getComponents().getSchemas().get("Pet"));
257257
assertNotNull(filtered.getComponents().getSchemas().get("Foo"));
258+
assertNotNull(filtered.getComponents().getSchemas().get("allOfChild"));
259+
assertNotNull(filtered.getComponents().getSchemas().get("anyOfChild"));
260+
assertNotNull(filtered.getComponents().getSchemas().get("oneOfChild"));
261+
assertNotNull(filtered.getComponents().getSchemas().get("allOfparentA"));
262+
assertNotNull(filtered.getComponents().getSchemas().get("allOfparentB"));
263+
assertNotNull(filtered.getComponents().getSchemas().get("anyOfparentA"));
264+
assertNotNull(filtered.getComponents().getSchemas().get("anyOfparentB"));
265+
assertNotNull(filtered.getComponents().getSchemas().get("oneOfparentA"));
266+
assertNotNull(filtered.getComponents().getSchemas().get("oneOfparentB"));
267+
assertNotNull(filtered.getComponents().getSchemas().get("oneOfNestedParentA"));
268+
assertNotNull(filtered.getComponents().getSchemas().get("oneOfNestedParentB"));
269+
assertNotNull(filtered.getComponents().getSchemas().get("discriminatorParent"));
270+
assertNotNull(filtered.getComponents().getSchemas().get("discriminatorMatchedChildA"));
271+
assertNotNull(filtered.getComponents().getSchemas().get("discriminatorRefProperty"));
272+
assertNotNull(filtered.getComponents().getSchemas().get("discriminatorParentRefProperty"));
273+
assertNotNull(filtered.getComponents().getSchemas().get("discriminatorMatchedChildB"));
258274
}
259275

260276
@Test

0 commit comments

Comments
 (0)