From 19159d817665acd9457121a891c9609966a803d1 Mon Sep 17 00:00:00 2001 From: Jason Stratman Date: Fri, 15 Oct 2021 11:09:58 -0500 Subject: [PATCH 1/2] Check exclude filter when parsing spring controller classes by annotation --- .../generator/spring/SpringApplicationParser.java | 4 ++++ .../typescript/generator/spring/SpringTest.java | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java b/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java index c5d6252b2..ecbc743cb 100644 --- a/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java +++ b/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java @@ -121,6 +121,10 @@ public JaxrsApplicationParser.Result tryParse(SourceType sourceType) { // controller final Component component = AnnotationUtils.findAnnotation(cls, Component.class); if (component != null) { + if (isClassNameExcluded != null && isClassNameExcluded.test(sourceType.toString())) { + return null; + } + TypeScriptGenerator.getLogger().verbose("Parsing Spring component: " + cls.getName()); final JaxrsApplicationParser.Result result = new JaxrsApplicationParser.Result(); final RequestMapping requestMapping = AnnotatedElementUtils.findMergedAnnotation(cls, RequestMapping.class); diff --git a/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java b/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java index 3c5ad1cb2..25995e94f 100644 --- a/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java +++ b/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java @@ -167,6 +167,16 @@ public void testInheritance() { Assert.assertFalse(output.contains("uriEncoding`test/b`")); } + @Test + public void testExclusion() { + final Settings settings = TestUtils.settings(); + settings.outputFileType = TypeScriptFileType.implementationFile; + settings.generateSpringApplicationClient = true; + settings.setExcludeFilter(null, Arrays.asList("**Controller6")); + final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(Controller6.class)); + Assert.assertFalse(output.contains("Controller6")); + } + @RestController @RequestMapping("/owners/{ownerId}") public static class Controller1 { From 7b3647034a447030d8f1bada49532aa9fcf79c3b Mon Sep 17 00:00:00 2001 From: Jason Stratman Date: Mon, 1 Nov 2021 11:24:22 -0500 Subject: [PATCH 2/2] Fix test and class name usage --- .../generator/spring/SpringApplicationParser.java | 2 +- .../typescript/generator/spring/SpringTest.java | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java b/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java index ecbc743cb..03349ff89 100644 --- a/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java +++ b/typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java @@ -121,7 +121,7 @@ public JaxrsApplicationParser.Result tryParse(SourceType sourceType) { // controller final Component component = AnnotationUtils.findAnnotation(cls, Component.class); if (component != null) { - if (isClassNameExcluded != null && isClassNameExcluded.test(sourceType.toString())) { + if (isClassNameExcluded != null && isClassNameExcluded.test(cls.getName())) { return null; } diff --git a/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java b/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java index 4aab6d940..5c47dff9a 100644 --- a/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java +++ b/typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java @@ -174,7 +174,17 @@ public void testExclusion() { settings.generateSpringApplicationClient = true; settings.setExcludeFilter(null, Arrays.asList("**Controller6")); final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(Controller6.class)); - Assert.assertFalse(output.contains("Controller6")); + Assertions.assertFalse(output.contains("Controller6")); + } + + @Test + public void testExclusion2() { + final Settings settings = TestUtils.settings(); + settings.outputFileType = TypeScriptFileType.implementationFile; + settings.generateSpringApplicationClient = true; + settings.setExcludeFilter(null, Arrays.asList("cz.habarta.typescript.generator.spring.SpringTest**")); + final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(Controller6.class)); + Assertions.assertFalse(output.contains("Controller6")); } @RestController