Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ else if(rootPath != null) {
protected <T> void updateLocalRefs(String file, T result) {
if(result instanceof Response) {
Response response = (Response) result;
updateLocalRefs(file, response.getSchema());
updateLocalRefs(file, response.getResponseSchema());
}
else if(result instanceof RefProperty) {
RefProperty prop = (RefProperty) result;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.ServiceLoader;
Expand All @@ -22,31 +23,34 @@ public SwaggerDeserializationResult readWithInfo(String location, List<Authoriza
}
location = location.replaceAll("\\\\", "/");
List<SwaggerParserExtension> parserExtensions = getExtensions();
SwaggerDeserializationResult output;

if (auths == null) {
auths = new ArrayList<AuthorizationValue>();
}
SwaggerDeserializationResult output = new SwaggerDeserializationResult();
try {
if (auths == null) {
auths = new ArrayList<AuthorizationValue>();
}

output = new Swagger20Parser().readWithInfo(location, auths);
if (output != null) {
if (output.getSwagger() != null && "2.0".equals(output.getSwagger().getSwagger())) {
if (resolve) {
output.setSwagger(new SwaggerResolver(output.getSwagger(), auths, location).resolve());
output = new Swagger20Parser().readWithInfo(location, auths);
if (output != null) {
if (output.getSwagger() != null && "2.0".equals(output.getSwagger().getSwagger())) {
if (resolve) {
output.setSwagger(new SwaggerResolver(output.getSwagger(), auths, location).resolve());
}
return output;
}
return output;
}
}
for (SwaggerParserExtension extension : parserExtensions) {
output = extension.readWithInfo(location, auths);
if (output != null && output.getSwagger() != null && "2.0".equals(output.getSwagger().getSwagger())) {
return output;
for (SwaggerParserExtension extension : parserExtensions) {
output = extension.readWithInfo(location, auths);
if (output != null && output.getSwagger() != null && "2.0".equals(output.getSwagger().getSwagger())) {
return output;
}
}
if (output == null) {
output = new SwaggerDeserializationResult()
.message("The swagger definition could not be read");
}
}catch (Exception e) {
output.setMessages(Arrays.asList(e.getMessage()));
}
}
if (output == null) {
output = new SwaggerDeserializationResult()
.message("The swagger definition could not be read");
}
return output;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import io.swagger.models.properties.RefProperty;
import io.swagger.models.refs.RefFormat;
import io.swagger.parser.util.SwaggerDeserializationResult;
import io.swagger.util.Yaml;
import org.testng.annotations.Test;

import java.util.List;
Expand All @@ -19,15 +20,15 @@
import java.util.Map;


public class FileReferenceTests {
public class FileReferenceTest {
@Test
public void testIssue306() {
SwaggerDeserializationResult result = new SwaggerParser().readWithInfo("./src/test/resources/nested-file-references/issue-306.yaml", null, true);
assertNotNull(result.getSwagger());

Swagger swagger = result.getSwagger();

assertTrue(swagger.getDefinitions().size() == 3);
assertTrue(swagger.getDefinitions().size() == 5);
// resolved from `$ref: './book.yaml'`
assertNotNull(swagger.getDefinitions().get("Inventory"));
// resolved from `$ref: 'book.yaml'`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;

public class LocalReferenceTests {
public class LocalReferenceTest {
@Mocked
public RemoteUrl remoteUrl = new RemoteUrl();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;

public class NetworkReferenceTests {
public class NetworkReferenceTest {
@Mocked
public RemoteUrl remoteUrl = new RemoteUrl();

Expand Down