From 52939f0907128ea793ce05432b7abdd1741f475e Mon Sep 17 00:00:00 2001 From: Jason Stratman Date: Tue, 28 Sep 2021 12:28:25 -0500 Subject: [PATCH] Check exclude filter when parsing spring controller methods --- .../spring/SpringApplicationParser.java | 6 ++++- .../generator/spring/SpringTest.java | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) 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..808f26722 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 @@ -186,7 +186,11 @@ private void parseController(JaxrsApplicationParser.Result result, JaxrsApplicat final List methods = getAllRequestMethods(controllerClass); methods.sort(Utils.methodComparator()); for (Method method : methods) { - parseControllerMethod(result, context, controllerClass, method); + // Do not use default Method.toString since that will include parameter types + String fullMethodName = String.format("%s.%s", method.getDeclaringClass(), method.getName()); + if (!settings.getExcludeFilter().test(fullMethodName)) { + parseControllerMethod(result, context, controllerClass, method); + } } } 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..a88b8ed70 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,28 @@ public void testInheritance() { Assert.assertFalse(output.contains("uriEncoding`test/b`")); } + @Test + public void testExclusion1() { + final Settings settings = TestUtils.settings(); + settings.outputFileType = TypeScriptFileType.implementationFile; + settings.generateSpringApplicationClient = true; + settings.setExcludeFilter(null, Arrays.asList("**.doSomethingElseAgain")); + final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(Controller6.class)); + Assert.assertTrue(output.contains("doSomethingElse(id: number): RestResponse")); + Assert.assertFalse(output.contains("doSomethingElseAgain(): RestResponse")); + } + + @Test + public void testExclusion2() { + final Settings settings = TestUtils.settings(); + settings.outputFileType = TypeScriptFileType.implementationFile; + settings.generateSpringApplicationClient = true; + settings.setExcludeFilter(null, Arrays.asList("**Controller6.*Again")); + final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(Controller6.class)); + Assert.assertTrue(output.contains("doSomethingElse(id: number): RestResponse")); + Assert.assertFalse(output.contains("doSomethingElseAgain(): RestResponse")); + } + @RestController @RequestMapping("/owners/{ownerId}") public static class Controller1 {