Skip to content

Commit 6979216

Browse files
authored
Merge pull request #1241 from swagger-api/issue1143
refs - issue #1143 - changes in converter to support properties in Composed Model
2 parents a5f216e + 251f3cf commit 6979216

File tree

3 files changed

+1430
-8
lines changed

3 files changed

+1430
-8
lines changed

modules/swagger-parser-v2-converter/src/main/java/io/swagger/v3/parser/converter/SwaggerConverter.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,6 +1172,9 @@ public Schema convert(io.swagger.models.Model v2Model) {
11721172
composed.setTitle(composedModel.getTitle());
11731173
composed.setExtensions(convert(composedModel.getVendorExtensions()));
11741174
composed.setAllOf(composedModel.getAllOf().stream().map(this::convert).collect(Collectors.toList()));
1175+
1176+
addProperties(v2Model, composed);
1177+
11751178
result = composed;
11761179
} else {
11771180
String v2discriminator = null;
@@ -1185,14 +1188,7 @@ public Schema convert(io.swagger.models.Model v2Model) {
11851188

11861189
result = Json.mapper().convertValue(v2Model, Schema.class);
11871190

1188-
if ((v2Model.getProperties() != null) && (v2Model.getProperties().size() > 0)) {
1189-
Map<String, Property> properties = v2Model.getProperties();
1190-
1191-
properties.forEach((k, v) -> {
1192-
result.addProperties(k, convert(v));
1193-
});
1194-
1195-
}
1191+
addProperties(v2Model, result);
11961192

11971193
if (v2Model instanceof ModelImpl) {
11981194
ModelImpl model = (ModelImpl) v2Model;
@@ -1225,5 +1221,16 @@ public Schema convert(io.swagger.models.Model v2Model) {
12251221

12261222
return result;
12271223
}
1224+
1225+
private void addProperties(Model v2Model, Schema schema) {
1226+
if ((v2Model.getProperties() != null) && (v2Model.getProperties().size() > 0)) {
1227+
Map<String, Property> properties = v2Model.getProperties();
1228+
1229+
properties.forEach((k, v) -> {
1230+
schema.addProperties(k, convert(v));
1231+
});
1232+
1233+
}
1234+
}
12281235
}
12291236

modules/swagger-parser/src/test/java/io/swagger/parser/OpenAPIParserTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.swagger.parser;
22

3+
import io.swagger.util.Yaml;
34
import io.swagger.v3.oas.models.Components;
45
import io.swagger.v3.oas.models.OpenAPI;
56
import io.swagger.v3.oas.models.media.ArraySchema;
@@ -27,6 +28,16 @@
2728

2829
public class OpenAPIParserTest {
2930

31+
@Test
32+
public void testIssue1143(){
33+
ParseOptions options = new ParseOptions();
34+
options.setResolve(true);
35+
SwaggerParseResult result = new OpenAPIParser().readLocation("issue-1143.json",null,options);
36+
assertNotNull(result.getOpenAPI());
37+
assertNotNull(result.getOpenAPI().getComponents().getSchemas().get("RedisResource"));
38+
assertNotNull(result.getOpenAPI().getComponents().getSchemas().get("identificacion_usuario_aplicacion"));
39+
}
40+
3041
@Test
3142
public void testIssue749() {
3243
ParseOptions options = new ParseOptions();

0 commit comments

Comments
 (0)