Skip to content

Commit 831ce59

Browse files
authored
Merge pull request swagger-api#374 from kevinoid/lenient-file-url
Support file URL scheme produced by java.io.File et al.
2 parents fa104d7 + 73d4dfd commit 831ce59

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

modules/swagger-parser/src/main/java/io/swagger/parser/Swagger20Parser.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public SwaggerDeserializationResult readWithInfo(String location, List<Authoriza
4242
if (location.toLowerCase().startsWith("http")) {
4343
data = RemoteUrl.urlToString(location, auths);
4444
} else {
45-
final String fileScheme = "file://";
45+
final String fileScheme = "file:";
4646
Path path;
4747
if (location.toLowerCase().startsWith(fileScheme)) {
4848
path = Paths.get(URI.create(location));
@@ -80,7 +80,7 @@ public Swagger read(String location, List<AuthorizationValue> auths) throws IOEx
8080
if (location.toLowerCase().startsWith("http")) {
8181
data = RemoteUrl.urlToString(location, auths);
8282
} else {
83-
final String fileScheme = "file://";
83+
final String fileScheme = "file:";
8484
Path path;
8585
if (location.toLowerCase().startsWith(fileScheme)) {
8686
path = Paths.get(URI.create(location));

modules/swagger-parser/src/main/java/io/swagger/parser/util/PathUtils.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public class PathUtils {
88

99

1010
public static Path getParentDirectoryOfFile(String fileStr) {
11-
final String fileScheme = "file://";
11+
final String fileScheme = "file:";
1212
Path file;
1313
fileStr = fileStr.replaceAll("\\\\","/");
1414
if (fileStr.toLowerCase().startsWith(fileScheme)) {

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

+16
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,22 @@ public void readUberApiFromFileWithSpaces() {
3939
assertNotNull(swagger);
4040
}
4141

42+
@Test(description = "it should read the uber api from Path URI")
43+
public void readUberApiFromPathUri() {
44+
final SwaggerParser parser = new SwaggerParser();
45+
java.nio.file.Path uberPath = Paths.get("src/test/resources/uber.json");
46+
final Swagger swagger = parser.read(uberPath.toUri().toString());
47+
assertNotNull(swagger);
48+
}
49+
50+
@Test(description = "it should read the uber api from File URI")
51+
public void readUberApiFromFileUri() {
52+
final SwaggerParser parser = new SwaggerParser();
53+
java.io.File uberFile = new java.io.File("src/test/resources/uber.json");
54+
final Swagger swagger = parser.read(uberFile.toURI().toString());
55+
assertNotNull(swagger);
56+
}
57+
4258
@Test(description = "it should read the uber api with url string without file scheme")
4359
public void readUberApiFromFileNoScheme() {
4460
final SwaggerParser parser = new SwaggerParser();

0 commit comments

Comments
 (0)