This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 05e80da (chores) camel-csimple-maven-plugin: cleanup code duplication 05e80da is described below commit 05e80da91921d90e91c2eadee849ac292cf552e7 Author: Otavio Rodolfo Piske <opi...@redhat.com> AuthorDate: Tue Jan 4 14:50:33 2022 +0100 (chores) camel-csimple-maven-plugin: cleanup code duplication --- .../java/org/apache/camel/maven/GenerateMojo.java | 73 +++++++++++++--------- 1 file changed, 45 insertions(+), 28 deletions(-) diff --git a/catalog/camel-csimple-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java b/catalog/camel-csimple-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java index 8bdc986..01e5cff 100644 --- a/catalog/camel-csimple-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java +++ b/catalog/camel-csimple-maven-plugin/src/main/java/org/apache/camel/maven/GenerateMojo.java @@ -349,10 +349,7 @@ public class GenerateMojo extends AbstractExecMojo { // exclude take precedence if (excludes != null) { for (String exclude : excludes.split(",")) { - exclude = exclude.trim(); - // try both with and without directory in the name - String fqn = stripRootPath(asRelativeFile(file.getAbsolutePath())); - boolean match = PatternHelper.matchPattern(fqn, exclude) || PatternHelper.matchPattern(file.getName(), exclude); + boolean match = isMatch(exclude, file); if (match) { return false; } @@ -362,10 +359,7 @@ public class GenerateMojo extends AbstractExecMojo { // include if (includes != null) { for (String include : includes.split(",")) { - include = include.trim(); - // try both with and without directory in the name - String fqn = stripRootPath(asRelativeFile(file.getAbsolutePath())); - boolean match = PatternHelper.matchPattern(fqn, include) || PatternHelper.matchPattern(file.getName(), include); + boolean match = isMatch(include, file); if (match) { return true; } @@ -378,6 +372,13 @@ public class GenerateMojo extends AbstractExecMojo { return true; } + private boolean isMatch(String include, File file) { + include = include.trim(); + // try both with and without directory in the name + String fqn = stripRootPath(asRelativeFile(file.getAbsolutePath())); + return PatternHelper.matchPattern(fqn, include) || PatternHelper.matchPattern(file.getName(), include); + } + private String asRelativeFile(String name) { String answer = name; @@ -395,15 +396,29 @@ public class GenerateMojo extends AbstractExecMojo { private String stripRootPath(String name) { // strip out any leading source / resource directory - List list = project.getCompileSourceRoots(); - for (Object obj : list) { - String dir = (String) obj; - dir = asRelativeFile(dir); - if (name.startsWith(dir)) { - return name.substring(dir.length() + 1); - } + String compileSourceRoot = findInCompileSourceRoots(name); + if (compileSourceRoot != null) { + return compileSourceRoot; + } + + String buildPath = findInResources(name); + if (buildPath != null) { + return buildPath; + } + + return name; + } + + private String findInCompileSourceRoots(String name) { + String compileSourceRoot = findInCompileSourceRoots(project.getCompileSourceRoots(), name); + if (compileSourceRoot != null) { + return compileSourceRoot; } - list = project.getTestCompileSourceRoots(); + + return findInCompileSourceRoots(project.getTestCompileSourceRoots(), name); + } + + private String findInCompileSourceRoots(List<String> list, String name) { for (Object obj : list) { String dir = (String) obj; dir = asRelativeFile(dir); @@ -411,24 +426,26 @@ public class GenerateMojo extends AbstractExecMojo { return name.substring(dir.length() + 1); } } - List resources = project.getResources(); - for (Object obj : resources) { - Resource resource = (Resource) obj; - String dir = asRelativeFile(resource.getDirectory()); - if (name.startsWith(dir)) { - return name.substring(dir.length() + 1); - } + return null; + } + + private String findInResources(String name) { + String buildPath = findInResources(project.getResources(), name); + if (buildPath != null) { + return buildPath; } - resources = project.getTestResources(); - for (Object obj : resources) { - Resource resource = (Resource) obj; + + return findInResources(project.getTestResources(), name); + } + + private String findInResources(List<Resource> resources, String name) { + for (Resource resource : resources) { String dir = asRelativeFile(resource.getDirectory()); if (name.startsWith(dir)) { return name.substring(dir.length() + 1); } } - - return name; + return null; } public static boolean updateResource(Path out, String data) {