Skip to content
This repository was archived by the owner on Nov 24, 2022. It is now read-only.

Commit a013394

Browse files
committed
Merge remote-tracking branch 'origin/master' into 2.0-OpenAPITools
Conflicts: modules/swagger-parser-core/pom.xml modules/swagger-parser-v2-converter/pom.xml modules/swagger-parser-v3/pom.xml modules/swagger-parser/pom.xml pom.xml
2 parents dafa443 + 0e2db47 commit a013394

File tree

8 files changed

+25
-23
lines changed

8 files changed

+25
-23
lines changed

modules/swagger-parser-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.openapitools.swagger.parser</groupId>
55
<artifactId>swagger-parser-project</artifactId>
6-
<version>2.0.12-SNAPSHOT</version>
6+
<version>2.0.13-SNAPSHOT</version>
77
<relativePath>../..</relativePath>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>

modules/swagger-parser-v2-converter/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.openapitools.swagger.parser</groupId>
55
<artifactId>swagger-parser-project</artifactId>
6-
<version>2.0.12-SNAPSHOT</version>
6+
<version>2.0.13-SNAPSHOT</version>
77
<relativePath>../..</relativePath>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>

modules/swagger-parser-v3/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.openapitools.swagger.parser</groupId>
55
<artifactId>swagger-parser-project</artifactId>
6-
<version>2.0.12-SNAPSHOT</version>
6+
<version>2.0.13-SNAPSHOT</version>
77
<relativePath>../..</relativePath>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>

modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/OpenAPIV3Parser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ public SwaggerParseResult readContents(String swaggerAsString, List<Authorizatio
204204
*
205205
* @return a list of extensions
206206
*/
207-
protected List<SwaggerParserExtension> getExtensions() {
207+
public static List<SwaggerParserExtension> getExtensions() {
208208
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
209209
List<SwaggerParserExtension> extensions = getExtensions(tccl);
210210
ClassLoader cl = SwaggerParserExtension.class.getClassLoader();
@@ -215,7 +215,7 @@ protected List<SwaggerParserExtension> getExtensions() {
215215
return extensions;
216216
}
217217

218-
protected List<SwaggerParserExtension> getExtensions(ClassLoader cl) {
218+
protected static List<SwaggerParserExtension> getExtensions(ClassLoader cl) {
219219
List<SwaggerParserExtension> extensions = new ArrayList<>();
220220

221221
ServiceLoader<SwaggerParserExtension> loader = ServiceLoader.load(SwaggerParserExtension.class, cl);

modules/swagger-parser/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.openapitools.swagger.parser</groupId>
55
<artifactId>swagger-parser-project</artifactId>
6-
<version>2.0.12-SNAPSHOT</version>
6+
<version>2.0.13-SNAPSHOT</version>
77
<relativePath>../..</relativePath>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>

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

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,13 @@
66
import io.swagger.v3.parser.core.models.SwaggerParseResult;
77
import io.swagger.v3.parser.OpenAPIV3Parser;
88

9-
import java.util.ArrayList;
10-
import java.util.Iterator;
119
import java.util.List;
12-
import java.util.ServiceLoader;
1310

1411
public class OpenAPIParser {
1512
public SwaggerParseResult readLocation(String url, List<AuthorizationValue> auth, ParseOptions options) {
1613
SwaggerParseResult output = null;
1714

18-
for(SwaggerParserExtension extension : getExtensions()) {
15+
for(SwaggerParserExtension extension : OpenAPIV3Parser.getExtensions()) {
1916
output = extension.readLocation(url, auth, options);
2017
if(output != null && output.getOpenAPI() != null) {
2118
return output;
@@ -28,7 +25,7 @@ public SwaggerParseResult readLocation(String url, List<AuthorizationValue> auth
2825
public SwaggerParseResult readContents(String swaggerAsString, List<AuthorizationValue> auth, ParseOptions options) {
2926
SwaggerParseResult output = null;
3027

31-
for(SwaggerParserExtension extension : getExtensions()) {
28+
for(SwaggerParserExtension extension : OpenAPIV3Parser.getExtensions()) {
3229
output = extension.readContents(swaggerAsString, auth, options);
3330
if(output != null && output.getOpenAPI() != null) {
3431
return output;
@@ -38,15 +35,4 @@ public SwaggerParseResult readContents(String swaggerAsString, List<Authorizatio
3835
return output;
3936
}
4037

41-
protected List<SwaggerParserExtension> getExtensions() {
42-
List<SwaggerParserExtension> extensions = new ArrayList<>();
43-
44-
ServiceLoader<SwaggerParserExtension> loader = ServiceLoader.load(SwaggerParserExtension.class);
45-
Iterator<SwaggerParserExtension> itr = loader.iterator();
46-
while (itr.hasNext()) {
47-
extensions.add(itr.next());
48-
}
49-
extensions.add(0, new OpenAPIV3Parser());
50-
return extensions;
51-
}
5238
}

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,5 +481,21 @@ public void testIssue959() {
481481

482482
}
483483

484+
@Test
485+
public void testIssue1003_ExtensionsClassloader() {
486+
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
487+
SwaggerParseResult api = null;
488+
try {
489+
// Temporarily switch tccl to an unproductive cl
490+
final ClassLoader tcclTemp = new java.net.URLClassLoader(new java.net.URL[] {},
491+
ClassLoader.getSystemClassLoader());
492+
Thread.currentThread().setContextClassLoader(tcclTemp);
493+
api = new OpenAPIParser().readLocation("src/test/resources/petstore.yaml",null,null);
494+
} finally {
495+
Thread.currentThread().setContextClassLoader(tccl);
496+
}
497+
assertNotNull(api);
498+
}
499+
484500
}
485501

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<modelVersion>4.0.0</modelVersion>
99
<groupId>org.openapitools.swagger.parser</groupId>
1010
<artifactId>swagger-parser-project</artifactId>
11-
<version>2.0.12-SNAPSHOT</version>
11+
<version>2.0.13-SNAPSHOT</version>
1212
<packaging>pom</packaging>
1313
<name>swagger-parser-project</name>
1414
<developers>

0 commit comments

Comments
 (0)