You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/06/03 07:52:01 UTC
[camel] 01/02: CAMEL-18151: camel-jbang - Export filter out duplicates.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 19dac467ee073f0a35906d67144a18a2edb9ef0b
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Jun 3 09:07:08 2022 +0200
CAMEL-18151: camel-jbang - Export filter out duplicates.
---
.../dsl/jbang/core/commands/ExportQuarkus.java | 28 +++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index e5abbe44bb5..087d61d0513 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -24,6 +24,8 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -179,7 +181,17 @@ class ExportQuarkus extends CamelCommand {
}
private Set<String> resolveDependencies(File settings) throws Exception {
- Set<String> answer = new TreeSet<>();
+ Set<String> answer = new TreeSet<>((o1, o2) -> {
+ // favour org.apache.camel.quarkus first
+ boolean c1 = o1.contains("org.apache.camel:");
+ boolean c2 = o2.contains("org.apache.camel:");
+ if (c1 && !c2) {
+ return -1;
+ } else if (!c1 && c2) {
+ return 1;
+ }
+ return o1.compareTo(o2);
+ });
List<String> lines = Files.readAllLines(settings.toPath());
for (String line : lines) {
if (line.startsWith("dependency=")) {
@@ -203,6 +215,20 @@ class ExportQuarkus extends CamelCommand {
answer.removeIf(s -> s.contains("camel-platform-http"));
answer.removeIf(s -> s.contains("camel-microprofile-health"));
+ // remove duplicate versions (keep first)
+ Map<String, String> versions = new HashMap<>();
+ Set<String> toBeRemoved = new HashSet<>();
+ for (String line : answer) {
+ MavenGav gav = MavenGav.parseGav(null, line);
+ String ga = gav.getGroupId() + ":" + gav.getArtifactId();
+ if (!versions.containsKey(ga)) {
+ versions.put(ga, gav.getVersion());
+ } else {
+ toBeRemoved.add(line);
+ }
+ }
+ answer.removeAll(toBeRemoved);
+
return answer;
}