This is an automated email from the ASF dual-hosted git repository. chesnay pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push: new f734fa717a8 [FLINK-30029][ci] Parse version/classifier separately f734fa717a8 is described below commit f734fa717a818968ad811e7ccd88f8aa09d50663 Author: Chesnay Schepler <ches...@apache.org> AuthorDate: Thu Nov 17 19:50:43 2022 +0100 [FLINK-30029][ci] Parse version/classifier separately --- .../flink/tools/ci/utils/notice/NoticeParser.java | 18 +++++++++++++++--- .../apache/flink/tools/ci/utils/shade/ShadeParser.java | 3 ++- .../flink/tools/ci/utils/notice/NoticeParserTest.java | 18 ++++++++++++------ .../flink/tools/ci/utils/shade/ShadeParserTest.java | 2 +- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/notice/NoticeParser.java b/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/notice/NoticeParser.java index eb234900a32..e58c6df78f7 100644 --- a/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/notice/NoticeParser.java +++ b/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/notice/NoticeParser.java @@ -36,11 +36,22 @@ public class NoticeParser { // "- org.apache.htrace:htrace-core:3.1.0-incubating" private static final Pattern NOTICE_DEPENDENCY_PATTERN = - Pattern.compile("- (?<groupId>[^ :]+):(?<artifactId>[^:]+):(?<version>[^ ]+)($| )"); + Pattern.compile( + "- " + + "(?<groupId>[^ ]*?):" + + "(?<artifactId>[^ ]*?):" + + "(?:(?<classifier>[^ ]*?):)?" + + "(?<version>[^ ]*?)" + + "($| )"); // "This project bundles "net.jcip:jcip-annotations:1.0". private static final Pattern NOTICE_BUNDLES_DEPENDENCY_PATTERN = Pattern.compile( - ".*bundles \"(?<groupId>[^:]+):(?<artifactId>[^:]+):(?<version>[^\"]+)\".*"); + ".*bundles \"" + + "(?<groupId>[^ ]*?):" + + "(?<artifactId>[^ ]*?):" + + "(?:(?<classifier>[^ ]*?):)?" + + "(?<version>[^ ]*?)" + + "\".*"); public static Optional<NoticeContents> parseNoticeFile(Path noticeFile) throws IOException { // 1st line contains module name @@ -75,7 +86,8 @@ public class NoticeParser { String groupId = matcher.group("groupId"); String artifactId = matcher.group("artifactId"); String version = matcher.group("version"); - return Optional.of(Dependency.create(groupId, artifactId, version, null)); + String classifier = matcher.group("classifier"); + return Optional.of(Dependency.create(groupId, artifactId, version, classifier)); } return Optional.empty(); } diff --git a/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/shade/ShadeParser.java b/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/shade/ShadeParser.java index 3ce87868679..0bd18d982f3 100644 --- a/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/shade/ShadeParser.java +++ b/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/shade/ShadeParser.java @@ -46,6 +46,7 @@ public final class ShadeParser { + "(?<groupId>.*?):" + "(?<artifactId>.*?):" + "(?<type>.*?):" + + "(?:(?<classifier>.*?):)?" + "(?<version>.*?)" + " in the shaded jar"); @@ -123,7 +124,7 @@ public final class ShadeParser { dependencyMatcher.group("groupId"), dependencyMatcher.group("artifactId"), dependencyMatcher.group("version"), - null)); + dependencyMatcher.group("classifier"))); } private ShadeParser() {} diff --git a/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/notice/NoticeParserTest.java b/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/notice/NoticeParserTest.java index 2151120090f..72debdcd331 100644 --- a/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/notice/NoticeParserTest.java +++ b/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/notice/NoticeParserTest.java @@ -34,14 +34,17 @@ class NoticeParserTest { final Dependency dependency1 = Dependency.create("groupId1", "artifactId1", "version1", null); final Dependency dependency2 = - Dependency.create("groupId2", "artifactId2", "version2", null); + Dependency.create("groupId2", "artifactId2", "version2", "classifier2"); + final Dependency dependency3 = + Dependency.create("org.codehaus.woodstox", "stax2-api", "4.2.1", null); final List<String> noticeContents = Arrays.asList( module, "", "Some text about the applicable license", - "- " + dependency1, - "- " + dependency2, + "- groupId1:artifactId1:version1", + "- groupId2:artifactId2:classifier2:version2", + "- org.codehaus.woodstox:stax2-api:4.2.1 (https://github.com/FasterXML/stax2-api/tree/stax2-api-4.2.1)", "", "some epilogue"); @@ -50,16 +53,19 @@ class NoticeParserTest { contents -> { assertThat(contents.getNoticeModuleName()).isEqualTo(module); assertThat(contents.getDeclaredDependencies()) - .containsExactlyInAnyOrder(dependency1, dependency2); + .containsExactlyInAnyOrder( + dependency1, dependency2, dependency3); }); } @Test void testParseNoticeFileBundlesPath() { final String module = "some-module"; - final Dependency dependency = Dependency.create("groupId", "artifactId", "version", null); + final Dependency dependency = + Dependency.create("groupId", "artifactId", "version", "classifier"); final List<String> noticeContents = - Arrays.asList(module, "", "Something bundles \"" + dependency + "\""); + Arrays.asList( + module, "", "Something bundles \"groupId:artifactId:classifier:version\""); assertThat(NoticeParser.parseNoticeFile(noticeContents)) .hasValueSatisfying( diff --git a/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/shade/ShadeParserTest.java b/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/shade/ShadeParserTest.java index b9451f6bd28..66845907b1a 100644 --- a/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/shade/ShadeParserTest.java +++ b/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/shade/ShadeParserTest.java @@ -52,7 +52,7 @@ class ShadeParserTest { assertThat(dependenciesByModule.get("m1")) .containsExactlyInAnyOrder( Dependency.create("external", "dependency1", "2.1", null), - Dependency.create("external", "dependency4", "classifier:2.4", null)); + Dependency.create("external", "dependency4", "2.4", "classifier")); assertThat(dependenciesByModule.get("m2")) .containsExactlyInAnyOrder(Dependency.create("internal", "m1", "1.1", null)); }