You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ch...@apache.org on 2022/11/14 08:31:00 UTC
[flink] branch master updated: [FLINK-28246][ci] Store classifier in Dependency
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 befb3b9dbe7 [FLINK-28246][ci] Store classifier in Dependency
befb3b9dbe7 is described below
commit befb3b9dbe7f5e6d122673af15208cadaa71ce2c
Author: Chesnay Schepler <ch...@apache.org>
AuthorDate: Fri Jun 24 12:14:47 2022 +0200
[FLINK-28246][ci] Store classifier in Dependency
---
.../tools/ci/licensecheck/NoticeFileChecker.java | 2 +-
.../ci/utils/dependency/DependencyParser.java | 4 ++-
.../flink/tools/ci/utils/notice/NoticeParser.java | 2 +-
.../flink/tools/ci/utils/shared/Dependency.java | 26 ++++++++++++++++---
.../ci/licensecheck/NoticeFileCheckerTest.java | 23 +++++++++--------
.../utils/dependency/DependencyParserCopyTest.java | 20 +++++++++++----
.../utils/dependency/DependencyParserTreeTest.java | 29 +++++++++++++++-------
.../tools/ci/utils/notice/NoticeParserTest.java | 10 +++++---
8 files changed, 80 insertions(+), 36 deletions(-)
diff --git a/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/licensecheck/NoticeFileChecker.java b/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/licensecheck/NoticeFileChecker.java
index 8a9461a5d5d..9038830097d 100644
--- a/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/licensecheck/NoticeFileChecker.java
+++ b/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/licensecheck/NoticeFileChecker.java
@@ -381,7 +381,7 @@ public class NoticeFileChecker {
String version = includeMatcher.group(3);
result.put(
currentShadeModule,
- Dependency.create(groupId, artifactId, version));
+ Dependency.create(groupId, artifactId, version, null));
}
}
if (line.contains("Replacing original artifact with shaded artifact")) {
diff --git a/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/dependency/DependencyParser.java b/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/dependency/DependencyParser.java
index 9e41d4307a5..53da0007382 100644
--- a/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/dependency/DependencyParser.java
+++ b/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/dependency/DependencyParser.java
@@ -181,7 +181,8 @@ public class DependencyParser {
Dependency.create(
dependencyMatcher.group("groupId"),
dependencyMatcher.group("artifactId"),
- dependencyMatcher.group("version")));
+ dependencyMatcher.group("version"),
+ dependencyMatcher.group("classifier")));
}
@VisibleForTesting
@@ -196,6 +197,7 @@ public class DependencyParser {
dependencyMatcher.group("groupId"),
dependencyMatcher.group("artifactId"),
dependencyMatcher.group("version"),
+ dependencyMatcher.group("classifier"),
dependencyMatcher.group("scope"),
dependencyMatcher.group("optional") != null));
}
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 fcb18acb507..eb234900a32 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
@@ -75,7 +75,7 @@ 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));
+ return Optional.of(Dependency.create(groupId, artifactId, version, null));
}
return Optional.empty();
}
diff --git a/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/shared/Dependency.java b/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/shared/Dependency.java
index 18644ad589f..78417efff7c 100644
--- a/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/shared/Dependency.java
+++ b/tools/ci/flink-ci-tools/src/main/java/org/apache/flink/tools/ci/utils/shared/Dependency.java
@@ -34,6 +34,7 @@ public final class Dependency {
private final String groupId;
private final String artifactId;
private final String version;
+ @Nullable private final String classifier;
@Nullable private final String scope;
@Nullable private final Boolean isOptional;
@@ -41,23 +42,36 @@ public final class Dependency {
String groupId,
String artifactId,
String version,
+ @Nullable String classifier,
@Nullable String scope,
@Nullable Boolean isOptional) {
this.groupId = Objects.requireNonNull(groupId);
this.artifactId = Objects.requireNonNull(artifactId);
this.version = Objects.requireNonNull(version);
+ this.classifier = classifier;
this.scope = scope;
this.isOptional = isOptional;
}
public static Dependency create(
- String groupId, String artifactId, String version, String scope, boolean isOptional) {
+ String groupId,
+ String artifactId,
+ String version,
+ String classifier,
+ String scope,
+ boolean isOptional) {
return new Dependency(
- groupId, artifactId, version, Objects.requireNonNull(scope), isOptional);
+ groupId,
+ artifactId,
+ version,
+ classifier,
+ Objects.requireNonNull(scope),
+ isOptional);
}
- public static Dependency create(String groupId, String artifactId, String version) {
- return new Dependency(groupId, artifactId, version, null, null);
+ public static Dependency create(
+ String groupId, String artifactId, String version, String classifier) {
+ return new Dependency(groupId, artifactId, version, classifier, null, null);
}
public String getGroupId() {
@@ -72,6 +86,10 @@ public final class Dependency {
return version;
}
+ public Optional<String> getClassifier() {
+ return Optional.ofNullable(classifier);
+ }
+
public Optional<String> getScope() {
return Optional.ofNullable(scope);
}
diff --git a/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/licensecheck/NoticeFileCheckerTest.java b/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/licensecheck/NoticeFileCheckerTest.java
index 381db7e1275..e69218ed388 100644
--- a/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/licensecheck/NoticeFileCheckerTest.java
+++ b/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/licensecheck/NoticeFileCheckerTest.java
@@ -39,7 +39,7 @@ class NoticeFileCheckerTest {
@Test
void testRunHappyPath() throws IOException {
final String moduleName = "test";
- final Dependency bundledDependency = Dependency.create("a", "b", "c");
+ final Dependency bundledDependency = Dependency.create("a", "b", "c", null);
final ArrayListMultimap<String, Dependency> bundleDependencies = ArrayListMultimap.create();
bundleDependencies.put(moduleName, bundledDependency);
final Set<String> deployedModules = Collections.singleton(moduleName);
@@ -59,7 +59,7 @@ class NoticeFileCheckerTest {
@Test
void testRunRejectsMissingNotice() throws IOException {
final String moduleName = "test";
- final Dependency bundledDependency = Dependency.create("a", "b", "c");
+ final Dependency bundledDependency = Dependency.create("a", "b", "c", null);
final ArrayListMultimap<String, Dependency> bundleDependencies = ArrayListMultimap.create();
bundleDependencies.put(moduleName, bundledDependency);
final Set<String> deployedModules = Collections.singleton(moduleName);
@@ -76,7 +76,7 @@ class NoticeFileCheckerTest {
@Test
void testRunRejectsIncorrectNotice() throws IOException {
final String moduleName = "test";
- final Dependency bundledDependency = Dependency.create("a", "b", "c");
+ final Dependency bundledDependency = Dependency.create("a", "b", "c", null);
final ArrayListMultimap<String, Dependency> bundleDependencies = ArrayListMultimap.create();
bundleDependencies.put(moduleName, bundledDependency);
final Set<String> deployedModules = Collections.singleton(moduleName);
@@ -94,7 +94,7 @@ class NoticeFileCheckerTest {
@Test
void testRunSkipsNonDeployedModules() throws IOException {
final String moduleName = "test";
- final Dependency bundledDependency = Dependency.create("a", "b", "c");
+ final Dependency bundledDependency = Dependency.create("a", "b", "c", null);
final ArrayListMultimap<String, Dependency> bundleDependencies = ArrayListMultimap.create();
bundleDependencies.put(moduleName, bundledDependency);
final Set<String> deployedModules = Collections.emptySet();
@@ -117,8 +117,9 @@ class NoticeFileCheckerTest {
// a module that is not deployed but bundles another dependency with an empty NOTICE
final String nonDeployedModuleName = "nonDeployed";
- final Dependency nonDeployedDependency = Dependency.create("a", nonDeployedModuleName, "c");
- final Dependency bundledDependency = Dependency.create("a", "b", "c");
+ final Dependency nonDeployedDependency =
+ Dependency.create("a", nonDeployedModuleName, "c", null);
+ final Dependency bundledDependency = Dependency.create("a", "b", "c", null);
bundledDependencies.put(nonDeployedModuleName, bundledDependency);
// this would usually not be a problem, but since the module is not bundled it's not OK!
final Optional<NoticeContents> emptyNotice =
@@ -143,7 +144,7 @@ class NoticeFileCheckerTest {
@Test
void testCheckNoticeFileHappyPath() {
final String moduleName = "test";
- final Dependency bundledDependency = Dependency.create("a", "b", "c");
+ final Dependency bundledDependency = Dependency.create("a", "b", "c", null);
final ArrayListMultimap<String, Dependency> bundleDependencies = ArrayListMultimap.create();
bundleDependencies.put(moduleName, bundledDependency);
@@ -178,7 +179,7 @@ class NoticeFileCheckerTest {
void testCheckNoticeFileRejectsDuplicateLine() {
final String moduleName = "test";
final ArrayListMultimap<String, Dependency> bundleDependencies = ArrayListMultimap.create();
- bundleDependencies.put(moduleName, Dependency.create("a", "b", "c"));
+ bundleDependencies.put(moduleName, Dependency.create("a", "b", "c", null));
assertThat(
NoticeFileChecker.checkNoticeFile(
@@ -187,8 +188,8 @@ class NoticeFileCheckerTest {
new NoticeContents(
moduleName,
Arrays.asList(
- Dependency.create("a", "b", "c"),
- Dependency.create("a", "b", "c")))))
+ Dependency.create("a", "b", "c", null),
+ Dependency.create("a", "b", "c", null)))))
.containsOnlyKeys(NoticeFileChecker.Severity.CRITICAL);
}
@@ -196,7 +197,7 @@ class NoticeFileCheckerTest {
void testCheckNoticeFileRejectsMissingDependency() {
final String moduleName = "test";
final ArrayListMultimap<String, Dependency> bundleDependencies = ArrayListMultimap.create();
- bundleDependencies.put(moduleName, Dependency.create("a", "b", "c"));
+ bundleDependencies.put(moduleName, Dependency.create("a", "b", "c", null));
assertThat(
NoticeFileChecker.checkNoticeFile(
diff --git a/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/dependency/DependencyParserCopyTest.java b/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/dependency/DependencyParserCopyTest.java
index c78ec9092f9..1281c623344 100644
--- a/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/dependency/DependencyParserCopyTest.java
+++ b/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/dependency/DependencyParserCopyTest.java
@@ -34,7 +34,7 @@ class DependencyParserCopyTest {
return Stream.of(
"[INFO] --- maven-dependency-plugin:3.2.0:copy (copy) @ m1 ---",
"[INFO] Configured Artifact: external:dependency1:2.1:jar",
- "[INFO] Configured Artifact: external:dependency4:2.4:jar",
+ "[INFO] Configured Artifact: external:dependency4:classifier:2.4:jar",
"[INFO] Copying dependency1-2.1.jar to /some/path/dependency1-2.1.jar",
"[INFO] Copying dependency4-2.4.jar to /some/path/dependency4-2.4.jar",
"[INFO]",
@@ -51,10 +51,10 @@ class DependencyParserCopyTest {
assertThat(dependenciesByModule).containsOnlyKeys("m1", "m2");
assertThat(dependenciesByModule.get("m1"))
.containsExactlyInAnyOrder(
- Dependency.create("external", "dependency1", "2.1"),
- Dependency.create("external", "dependency4", "2.4"));
+ Dependency.create("external", "dependency1", "2.1", null),
+ Dependency.create("external", "dependency4", "2.4", "classifier"));
assertThat(dependenciesByModule.get("m2"))
- .containsExactlyInAnyOrder(Dependency.create("internal", "m1", "1.1"));
+ .containsExactlyInAnyOrder(Dependency.create("internal", "m1", "1.1", null));
}
@Test
@@ -106,6 +106,16 @@ class DependencyParserCopyTest {
assertThat(
DependencyParser.parseCopyDependency(
"[INFO] Configured Artifact: external:dependency1:1.0:pom"))
- .hasValue(Dependency.create("external", "dependency1", "1.0"));
+ .hasValue(Dependency.create("external", "dependency1", "1.0", null));
+ }
+
+ @Test
+ void testCopyLineParsingClassifier() {
+ assertThat(
+ DependencyParser.parseCopyDependency(
+ "[INFO] Configured Artifact: external:dependency1:some_classifier:1.0:jar"))
+ .hasValueSatisfying(
+ dependency ->
+ assertThat(dependency.getClassifier()).hasValue("some_classifier"));
}
}
diff --git a/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/dependency/DependencyParserTreeTest.java b/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/dependency/DependencyParserTreeTest.java
index c9e90f8758d..9e1bbd42d85 100644
--- a/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/dependency/DependencyParserTreeTest.java
+++ b/tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/utils/dependency/DependencyParserTreeTest.java
@@ -37,7 +37,7 @@ class DependencyParserTreeTest {
"[INFO] +- external:dependency1:jar:2.1:compile",
"[INFO] | +- external:dependency2:jar:2.2:compile (optional)",
"[INFO] | | \\- external:dependency3:jar:2.3:provided (optional)",
- "[INFO] | +- external:dependency4:jar:2.4:compile",
+ "[INFO] | +- external:dependency4:classifier:jar:2.4:compile",
"[INFO]",
"[INFO] --- maven-dependency-plugin:3.2.0:tree (default-cli) @ m2 ---",
"[INFO] internal:m2:jar:1.2",
@@ -53,14 +53,16 @@ class DependencyParserTreeTest {
assertThat(dependenciesByModule).containsOnlyKeys("m1", "m2");
assertThat(dependenciesByModule.get("m1"))
.containsExactlyInAnyOrder(
- Dependency.create("external", "dependency1", "2.1", "compile", false),
- Dependency.create("external", "dependency2", "2.2", "compile", true),
- Dependency.create("external", "dependency3", "2.3", "provided", true),
- Dependency.create("external", "dependency4", "2.4", "compile", false));
+ Dependency.create("external", "dependency1", "2.1", null, "compile", false),
+ Dependency.create("external", "dependency2", "2.2", null, "compile", true),
+ Dependency.create("external", "dependency3", "2.3", null, "provided", true),
+ Dependency.create(
+ "external", "dependency4", "2.4", "classifier", "compile", false));
assertThat(dependenciesByModule.get("m2"))
.containsExactlyInAnyOrder(
- Dependency.create("internal", "m1", "1.1", "compile", false),
- Dependency.create("external", "dependency4", "2.4", "compile", false));
+ Dependency.create("internal", "m1", "1.1", null, "compile", false),
+ Dependency.create(
+ "external", "dependency4", "2.4", null, "compile", false));
}
@Test
@@ -105,7 +107,9 @@ class DependencyParserTreeTest {
assertThat(
DependencyParser.parseTreeDependency(
"[INFO] +- external:dependency1:pom:1.0:compile"))
- .hasValue(Dependency.create("external", "dependency1", "1.0", "compile", false));
+ .hasValue(
+ Dependency.create(
+ "external", "dependency1", "1.0", null, "compile", false));
}
@Test
@@ -113,7 +117,14 @@ class DependencyParserTreeTest {
assertThat(
DependencyParser.parseTreeDependency(
"[INFO] +- external:dependency1:jar:some_classifier:1.0:compile"))
- .hasValue(Dependency.create("external", "dependency1", "1.0", "compile", false));
+ .hasValue(
+ Dependency.create(
+ "external",
+ "dependency1",
+ "1.0",
+ "some_classifier",
+ "compile",
+ false));
}
@Test
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 87d39851e40..2151120090f 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
@@ -31,8 +31,10 @@ class NoticeParserTest {
@Test
void testParseNoticeFileCommonPath() {
final String module = "some-module";
- final Dependency dependency1 = Dependency.create("groupId1", "artifactId1", "version1");
- final Dependency dependency2 = Dependency.create("groupId2", "artifactId2", "version2");
+ final Dependency dependency1 =
+ Dependency.create("groupId1", "artifactId1", "version1", null);
+ final Dependency dependency2 =
+ Dependency.create("groupId2", "artifactId2", "version2", null);
final List<String> noticeContents =
Arrays.asList(
module,
@@ -55,7 +57,7 @@ class NoticeParserTest {
@Test
void testParseNoticeFileBundlesPath() {
final String module = "some-module";
- final Dependency dependency = Dependency.create("groupId", "artifactId", "version");
+ final Dependency dependency = Dependency.create("groupId", "artifactId", "version", null);
final List<String> noticeContents =
Arrays.asList(module, "", "Something bundles \"" + dependency + "\"");
@@ -71,7 +73,7 @@ class NoticeParserTest {
@Test
void testParseNoticeFileMalformedDependencyIgnored() {
final String module = "some-module";
- final Dependency dependency = Dependency.create("groupId", "artifactId", "version");
+ final Dependency dependency = Dependency.create("groupId", "artifactId", "version", null);
final List<String> noticeContents = Arrays.asList(module, "- " + dependency, "- a:b");
assertThat(NoticeParser.parseNoticeFile(noticeContents))