Skip to content

Commit 196dbec

Browse files
committed
fix #3071 - fixes empty enum in server variable
1 parent d07c34c commit 196dbec

File tree

3 files changed

+44
-3
lines changed

3 files changed

+44
-3
lines changed

modules/swagger-core/src/main/java/io/swagger/v3/core/util/AnnotationsUtils.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -635,7 +635,9 @@ public static Optional<Server> getServer(io.swagger.v3.oas.annotations.servers.S
635635
serverVariableObject.setDefault(serverVariable.defaultValue());
636636
}
637637
if (serverVariable.allowableValues() != null && serverVariable.allowableValues().length > 0) {
638-
serverVariableObject.setEnum(Arrays.asList(serverVariable.allowableValues()));
638+
if (StringUtils.isNotBlank(serverVariable.allowableValues()[0])) {
639+
serverVariableObject.setEnum(Arrays.asList(serverVariable.allowableValues()));
640+
}
639641
}
640642
if (serverVariable.extensions() != null && serverVariable.extensions().length > 0) {
641643
Map<String, Object> extensions = AnnotationsUtils.getExtensions(serverVariable.extensions());

modules/swagger-jaxrs2/src/test/java/io/swagger/v3/jaxrs2/annotations/definition/OpenApiDefinitionTest.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.io.IOException;
1616

1717
public class OpenApiDefinitionTest extends AbstractAnnotationTest {
18+
1819
@Test
1920
public void testSimpleInfoGet() throws IOException {
2021

@@ -104,4 +105,44 @@ public void foo() {
104105

105106
}
106107

108+
@Test
109+
public void testServerVariableWithoutEnum() throws IOException {
110+
111+
String expectedYAML = "openapi: 3.0.1\n" +
112+
"info:\n" +
113+
" title: My Rest API\n" +
114+
" description: My RESTful API implementation\n" +
115+
" version: 1.0.0\n" +
116+
"servers:\n" +
117+
"- url: /{context-path}/{rest-api}\n" +
118+
" description: My REST API\n" +
119+
" variables:\n" +
120+
" context-path:\n" +
121+
" default: my-war\n" +
122+
" rest-api:\n" +
123+
" enum:\n" +
124+
" - api\n" +
125+
" - rest\n" +
126+
" - batchapi\n" +
127+
" default: api\n";
128+
129+
compareAsYaml(OpenApiDefinitionTest.ServerVariableWithoutEnum.class, expectedYAML);
130+
}
131+
132+
@OpenAPIDefinition(
133+
info = @Info( title = "My Rest API", version = "1.0.0", description = "My RESTful API implementation" ),
134+
servers = {
135+
@Server( description = "My REST API",
136+
url = "/{context-path}/{rest-api}",
137+
variables = {
138+
@ServerVariable(name = "context-path", defaultValue = "my-war"),
139+
@ServerVariable(name = "rest-api", defaultValue = "api",
140+
allowableValues = {"api", "rest", "batchapi"}) } ) } )
141+
static class ServerVariableWithoutEnum {
142+
143+
public void foo() {
144+
}
145+
146+
}
147+
107148
}

modules/swagger-jaxrs2/src/test/java/io/swagger/v3/jaxrs2/resources/extensions/ExtensionsResource.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -387,8 +387,6 @@ public ExtensionUser setUser(
387387
"servers:\n" +
388388
"- variables:\n" +
389389
" aa:\n" +
390-
" enum:\n" +
391-
" - \"\"\n" +
392390
" default: aa\n" +
393391
" x-servervar:\n" +
394392
" name: Josh\n" +

0 commit comments

Comments
 (0)