Skip to content

Commit 88be078

Browse files
Trim the input of operationId filter in OpenAPINormalizer (#20186) (#20189)
1 parent 3f6c3de commit 88be078

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,10 @@ public void processRules(Map<String, String> inputRules) {
232232
LOGGER.error("FILTER rule must be in the form of `operationId:name1|name2|name3`: {}", inputRules.get(FILTER));
233233
} else {
234234
if ("operationId".equals(filterStrs[0])) {
235-
operationIdFilters = new HashSet<>(Arrays.asList(filterStrs[1].split("[|]")));
235+
operationIdFilters = Arrays.stream(filterStrs[1].split("[|]"))
236+
.filter(Objects::nonNull)
237+
.map(String::trim)
238+
.collect(Collectors.toCollection(HashSet::new));
236239
} else {
237240
LOGGER.error("FILTER rule must be in the form of `operationId:name1|name2|name3`: {}", inputRules.get(FILTER));
238241
}

modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,24 @@ public void testFilter() {
486486
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get("x-internal"), true);
487487
}
488488

489+
@Test
490+
public void testFilterWithTrim() {
491+
OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/enableKeepOnlyFirstTagInOperation_test.yaml");
492+
493+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions(), null);
494+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
495+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions(), null);
496+
497+
Map<String, String> options = new HashMap<>();
498+
options.put("FILTER", "operationId:\n\t\t\t\tdelete|\n\t\tlist");
499+
OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options);
500+
openAPINormalizer.normalize();
501+
502+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get("x-internal"), false);
503+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), false);
504+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get("x-internal"), true);
505+
}
506+
489507
@Test
490508
public void testComposedSchemaDoesNotThrow() {
491509
OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_1/composed-schema.yaml");

0 commit comments

Comments
 (0)