diff --git a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/ArchivePathTree.java b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/ArchivePathTree.java index 4cfb78ce96ce4..064800bc0faba 100644 --- a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/ArchivePathTree.java +++ b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/ArchivePathTree.java @@ -229,6 +229,11 @@ public boolean equals(Object obj) { && manifestEnabled == other.manifestEnabled; } + @Override + public String toString() { + return archive.toString(); + } + protected class OpenArchivePathTree extends OpenContainerPathTree { private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); @@ -403,5 +408,10 @@ public void close() throws IOException { public PathTree getOriginalTree() { return ArchivePathTree.this; } + + @Override + public String toString() { + return ArchivePathTree.this.toString(); + } } } diff --git a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/EmptyPathTree.java b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/EmptyPathTree.java index 847e4978cd0f3..14275e67e88e8 100644 --- a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/EmptyPathTree.java +++ b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/EmptyPathTree.java @@ -76,4 +76,9 @@ public void close() throws IOException { public PathTree getOriginalTree() { return this; } + + @Override + public String toString() { + return ""; + } } diff --git a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/FilePathTree.java b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/FilePathTree.java index e9db0a9321148..f5e52eea47c7f 100644 --- a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/FilePathTree.java +++ b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/FilePathTree.java @@ -137,4 +137,13 @@ public boolean equals(Object obj) { FilePathTree other = (FilePathTree) obj; return Objects.equals(file, other.file) && Objects.equals(pathFilter, other.pathFilter); } + + @Override + public String toString() { + if (pathFilter == null) { + return file.toString(); + } + + return file + " (filtered)"; + } } diff --git a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/FilteredPathTree.java b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/FilteredPathTree.java index 9e501a0fcc810..088a74e692da1 100644 --- a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/FilteredPathTree.java +++ b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/FilteredPathTree.java @@ -89,6 +89,11 @@ public OpenPathTree open() { return new OpenFilteredPathTree(original.open(), filter); } + @Override + public String toString() { + return original.toString() + " (filtered)"; + } + private static class OpenFilteredPathTree extends FilteredPathTree implements OpenPathTree { private final OpenPathTree original; diff --git a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/MultiRootPathTree.java b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/MultiRootPathTree.java index 0c9b21bcbd803..2cd279d276c1c 100644 --- a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/MultiRootPathTree.java +++ b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/MultiRootPathTree.java @@ -9,6 +9,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; import java.util.function.Function; +import java.util.stream.Collectors; public class MultiRootPathTree implements OpenPathTree { @@ -192,4 +193,9 @@ public boolean equals(Object obj) { MultiRootPathTree other = (MultiRootPathTree) obj; return Arrays.equals(trees, other.trees); } + + @Override + public String toString() { + return roots.stream().map(p -> p.toString()).collect(Collectors.joining(", ", "[", "]")); + } } diff --git a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/OpenContainerPathTree.java b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/OpenContainerPathTree.java index cada0ccbddc72..791b9b6010fcf 100644 --- a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/OpenContainerPathTree.java +++ b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/OpenContainerPathTree.java @@ -186,4 +186,9 @@ public boolean equals(Object obj) { && Objects.equals(pathFilter, other.pathFilter) && manifestEnabled == other.manifestEnabled; } + + @Override + public String toString() { + return getContainerPath().toString(); + } } diff --git a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/SharedArchivePathTree.java b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/SharedArchivePathTree.java index 4546526403849..79b7f1e2fb737 100644 --- a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/SharedArchivePathTree.java +++ b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/paths/SharedArchivePathTree.java @@ -57,7 +57,7 @@ public OpenPathTree open() { return new CallerOpenPathTree(lastOpen); } try { - this.lastOpen = new SharedOpenArchivePathTree(archive, openFs()); + this.lastOpen = new SharedOpenArchivePathTree(openFs()); } catch (IOException e) { throw new UncheckedIOException(e); } @@ -68,7 +68,7 @@ private class SharedOpenArchivePathTree extends OpenArchivePathTree { private final AtomicInteger users = new AtomicInteger(1); - protected SharedOpenArchivePathTree(Path archivePath, FileSystem fs) { + protected SharedOpenArchivePathTree(FileSystem fs) { super(fs); openCount.incrementAndGet(); } @@ -106,6 +106,11 @@ public void close() throws IOException { writeLock().unlock(); } } + + @Override + public String toString() { + return SharedArchivePathTree.this.toString(); + } } /** @@ -202,5 +207,10 @@ public void close() throws IOException { delegate.writeLock().unlock(); } } + + @Override + public String toString() { + return delegate.toString(); + } } } diff --git a/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/classloading/PathTreeClassPathElement.java b/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/classloading/PathTreeClassPathElement.java index 776ad705a0751..4aaf8b1d5da34 100644 --- a/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/classloading/PathTreeClassPathElement.java +++ b/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/classloading/PathTreeClassPathElement.java @@ -14,7 +14,6 @@ import java.security.cert.Certificate; import java.util.ArrayList; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Objects; import java.util.Set; @@ -216,13 +215,7 @@ public String toString() { if (getDependencyKey() != null) { sb.append(getDependencyKey().toGacString()).append(" "); } - final Iterator i = pathTree.getRoots().iterator(); - if (i.hasNext()) { - sb.append(i.next()); - while (i.hasNext()) { - sb.append(",").append(i.next()); - } - } + sb.append(pathTree.getOriginalTree().toString()); sb.append(" runtime=").append(isRuntime()); final Set resources = this.resources; sb.append(" resources=").append(resources == null ? "null" : resources.size());