Skip to content

Commit 3ed73ea

Browse files
Add x-internal to the Codegen vendor extensions
1 parent 43283e9 commit 3ed73ea

5 files changed

Lines changed: 43 additions & 39 deletions

File tree

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
@Getter
66
public enum CodegenVendorExtension {
77

8-
X_PARENT("x-parent");
8+
X_PARENT("x-parent"),
9+
X_INTERNAL("x-internal");
910

1011
private final String name;
1112

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@
9090

9191
import static org.openapitools.codegen.CodegenConstants.DEFAULT_TO_EMPTY_CONTAINER;
9292
import static org.openapitools.codegen.CodegenConstants.UNSUPPORTED_V310_SPEC_MSG;
93+
import static org.openapitools.codegen.CodegenVendorExtension.X_INTERNAL;
9394
import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER;
9495
import static org.openapitools.codegen.utils.OnceLogger.once;
9596
import static org.openapitools.codegen.utils.StringUtils.*;
@@ -5197,7 +5198,7 @@ public CodegenCallback fromCallback(String name, Callback callback, List<Server>
51975198
String method = p.getKey();
51985199
Operation op = p.getValue();
51995200

5200-
if (op.getExtensions() != null && Boolean.TRUE.equals(op.getExtensions().get("x-internal"))) {
5201+
if (op.getExtensions() != null && Boolean.TRUE.equals(op.getExtensions().get(X_INTERNAL.getName()))) {
52015202
// skip operation if x-internal sets to true
52025203
LOGGER.info("Operation ({} {} - {}) not generated since x-internal is set to true",
52035204
method, expression, op.getOperationId());

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
import java.util.stream.Collectors;
6262

6363
import static org.apache.commons.lang3.StringUtils.removeStart;
64+
import static org.openapitools.codegen.CodegenVendorExtension.X_INTERNAL;
6465
import static org.openapitools.codegen.utils.OnceLogger.once;
6566

6667
@SuppressWarnings("rawtypes")
@@ -486,7 +487,7 @@ void generateModels(List<File> files, List<ModelMap> allModels, List<String> unu
486487

487488
Schema schema = ModelUtils.getSchemas(this.openAPI).get(name);
488489

489-
if (schema.getExtensions() != null && Boolean.TRUE.equals(schema.getExtensions().get("x-internal"))) {
490+
if (schema.getExtensions() != null && Boolean.TRUE.equals(schema.getExtensions().get(X_INTERNAL.getName()))) {
490491
LOGGER.info("Model {} not generated since x-internal is set to true", name);
491492
continue;
492493
} else if (ModelUtils.isFreeFormObject(schema, openAPI)) { // check to see if it's a free-form object
@@ -1564,7 +1565,7 @@ private void processOperation(String resourcePath, String httpMethod, Operation
15641565
final List<SecurityRequirement> globalSecurities = openAPI.getSecurity();
15651566
for (Tag tag : tags) {
15661567
try {
1567-
if (operation.getExtensions() != null && Boolean.TRUE.equals(operation.getExtensions().get("x-internal"))) {
1568+
if (operation.getExtensions() != null && Boolean.TRUE.equals(operation.getExtensions().get(X_INTERNAL.getName()))) {
15681569
// skip operation if x-internal sets to true
15691570
LOGGER.info("Operation ({} {} - {}) not generated since x-internal is set to true",
15701571
httpMethod, resourcePath, operation.getOperationId());

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import java.util.function.Function;
3838
import java.util.stream.Collectors;
3939

40+
import static org.openapitools.codegen.CodegenVendorExtension.X_INTERNAL;
4041
import static org.openapitools.codegen.CodegenVendorExtension.X_PARENT;
4142
import static org.openapitools.codegen.utils.ModelUtils.simplifyOneOfAnyOfWithOnlyOneNonNullSubSchema;
4243
import static org.openapitools.codegen.utils.StringUtils.getUniqueString;
@@ -128,7 +129,6 @@ public class OpenAPINormalizer {
128129

129130
// when set to true, remove x-internal: true from models, operations
130131
final String REMOVE_X_INTERNAL = "REMOVE_X_INTERNAL";
131-
final String X_INTERNAL = "x-internal";
132132
boolean removeXInternal;
133133

134134
// when set (e.g. operationId:getPetById|addPet), filter out (or remove) everything else
@@ -432,17 +432,17 @@ protected void normalizePaths() {
432432
for (Operation operation : operations) {
433433
if (operationIdFilters.size() > 0) {
434434
if (operationIdFilters.contains(operation.getOperationId())) {
435-
operation.addExtension("x-internal", false);
435+
operation.addExtension(X_INTERNAL.getName(), false);
436436
} else {
437437
LOGGER.info("operation `{}` marked as internal only (x-internal: true) by the operationId FILTER", operation.getOperationId());
438-
operation.addExtension("x-internal", true);
438+
operation.addExtension(X_INTERNAL.getName(), true);
439439
}
440440
} else if (!tagFilters.isEmpty()) {
441441
if (operation.getTags().stream().anyMatch(tagFilters::contains)) {
442-
operation.addExtension("x-internal", false);
442+
operation.addExtension(X_INTERNAL.getName(), false);
443443
} else {
444444
LOGGER.info("operation `{}` marked as internal only (x-internal: true) by the tag FILTER", operation.getOperationId());
445-
operation.addExtension("x-internal", true);
445+
operation.addExtension(X_INTERNAL.getName(), true);
446446
}
447447
}
448448

@@ -1109,8 +1109,8 @@ protected void processRemoveXInternalFromOperation(Operation operation) {
11091109
return;
11101110
}
11111111

1112-
if (Boolean.parseBoolean(String.valueOf(operation.getExtensions().get("x-internal")))) {
1113-
operation.getExtensions().remove(X_INTERNAL);
1112+
if (Boolean.parseBoolean(String.valueOf(operation.getExtensions().get(X_INTERNAL.getName())))) {
1113+
operation.getExtensions().remove(X_INTERNAL.getName());
11141114
}
11151115
}
11161116

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

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public class OpenAPINormalizerTest {
3333

3434
private static final String REF_AS_PARENT_IN_ALLOF = "REF_AS_PARENT_IN_ALLOF";
3535
private static final String X_PARENT = "x-parent";
36+
private static final String X_INTERNAL = "x-internal";
3637

3738
@Test
3839
public void testOpenAPINormalizerRefAsParentInAllOf() {
@@ -602,8 +603,8 @@ public void testRemoveXInternal() {
602603
Schema s = openAPI.getComponents().getSchemas().get("Dummy");
603604

604605
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions(), null);
605-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
606-
assertEquals(s.getExtensions().get("x-internal"), true);
606+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
607+
assertEquals(s.getExtensions().get(X_INTERNAL), true);
607608

608609
Map<String, String> options = new HashMap<>();
609610
options.put("REMOVE_X_INTERNAL", "true");
@@ -612,114 +613,114 @@ public void testRemoveXInternal() {
612613

613614
Schema s2 = openAPI.getComponents().getSchemas().get("Dummy");
614615
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions(), null);
615-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), null);
616-
assertEquals(s2.getExtensions().get("x-internal"), null);
616+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), null);
617+
assertEquals(s2.getExtensions().get(X_INTERNAL), null);
617618
}
618619

619620
@Test
620621
public void testOperationIdFilter() {
621622
OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/enableKeepOnlyFirstTagInOperation_test.yaml");
622623

623624
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions(), null);
624-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
625+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
625626
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions(), null);
626627

627628
Map<String, String> options = new HashMap<>();
628629
options.put("FILTER", "operationId:delete|list");
629630
OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options);
630631
openAPINormalizer.normalize();
631632

632-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get("x-internal"), false);
633-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), false);
634-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get("x-internal"), true);
633+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get(X_INTERNAL), false);
634+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), false);
635+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get(X_INTERNAL), true);
635636
}
636637

637638
@Test
638639
public void testOperationIdFilterWithTrim() {
639640
OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/enableKeepOnlyFirstTagInOperation_test.yaml");
640641

641642
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions(), null);
642-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
643+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
643644
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions(), null);
644645

645646
Map<String, String> options = new HashMap<>();
646647
options.put("FILTER", "operationId:\n\t\t\t\tdelete|\n\t\tlist");
647648
OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options);
648649
openAPINormalizer.normalize();
649650

650-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get("x-internal"), false);
651-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), false);
652-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get("x-internal"), true);
651+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get(X_INTERNAL), false);
652+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), false);
653+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get(X_INTERNAL), true);
653654
}
654655

655656
@Test
656657
public void testFilterWithMethod() {
657658
OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/enableKeepOnlyFirstTagInOperation_test.yaml");
658659

659660
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions(), null);
660-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
661+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
661662
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions(), null);
662663

663664
Map<String, String> options = new HashMap<>();
664665
options.put("FILTER", "method:get");
665666
OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options);
666667
openAPINormalizer.normalize();
667668

668-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get("x-internal"), false);
669-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
670-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get("x-internal"), true);
669+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get(X_INTERNAL), false);
670+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
671+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get(X_INTERNAL), true);
671672
}
672673
@Test
673674
public void testFilterWithMethodWithTrim() {
674675
OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/enableKeepOnlyFirstTagInOperation_test.yaml");
675676

676677
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions(), null);
677-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
678+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
678679
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions(), null);
679680

680681
Map<String, String> options = new HashMap<>();
681682
options.put("FILTER", "method:\n\t\t\t\tget");
682683
OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options);
683684
openAPINormalizer.normalize();
684685

685-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get("x-internal"), false);
686-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
687-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get("x-internal"), true);
686+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get(X_INTERNAL), false);
687+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
688+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get(X_INTERNAL), true);
688689
}
689690

690691
@Test
691692
public void testFilterWithTag() {
692693
OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/enableKeepOnlyFirstTagInOperation_test.yaml");
693694

694695
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions(), null);
695-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
696+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
696697
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions(), null);
697698

698699
Map<String, String> options = new HashMap<>();
699700
options.put("FILTER", "tag:basic");
700701
OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options);
701702
openAPINormalizer.normalize();
702703

703-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get("x-internal"), false);
704-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
705-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get("x-internal"), true);
704+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get(X_INTERNAL), false);
705+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
706+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get(X_INTERNAL), true);
706707
}
707708
@Test
708709
public void testFilterWithTagWithTrim() {
709710
OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/enableKeepOnlyFirstTagInOperation_test.yaml");
710711

711712
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions(), null);
712-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
713+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
713714
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions(), null);
714715

715716
Map<String, String> options = new HashMap<>();
716717
options.put("FILTER", "tag:basic");
717718
OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options);
718719
openAPINormalizer.normalize();
719720

720-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get("x-internal"), false);
721-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get("x-internal"), true);
722-
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get("x-internal"), true);
721+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getGet().getExtensions().get(X_INTERNAL), false);
722+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getDelete().getExtensions().get(X_INTERNAL), true);
723+
assertEquals(openAPI.getPaths().get("/person/display/{personId}").getPut().getExtensions().get(X_INTERNAL), true);
723724
}
724725

725726
@Test

0 commit comments

Comments
 (0)