From 6a01947fda7eb152a2b1d79dd93d6495e665cd68 Mon Sep 17 00:00:00 2001 From: Ashley Scopes <73482956+ascopes@users.noreply.github.com> Date: Sat, 21 Jan 2023 15:33:39 +0000 Subject: [PATCH] Optimise URL extraction from classloader --- .../PackageContainerGroupUrlClassLoader.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/impl/PackageContainerGroupUrlClassLoader.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/impl/PackageContainerGroupUrlClassLoader.java index c2dd562a0..9776d048b 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/impl/PackageContainerGroupUrlClassLoader.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/impl/PackageContainerGroupUrlClassLoader.java @@ -15,7 +15,9 @@ */ package io.github.ascopes.jct.containers.impl; +import io.github.ascopes.jct.containers.Container; import io.github.ascopes.jct.containers.PackageContainerGroup; +import io.github.ascopes.jct.workspaces.PathRoot; import java.net.URL; import java.net.URLClassLoader; import javax.annotation.concurrent.ThreadSafe; @@ -46,14 +48,10 @@ public PackageContainerGroupUrlClassLoader(PackageContainerGroup group) { } private static URL[] extractUrls(PackageContainerGroup group) { - // TODO(ascopes): should this API return a list to simplify this? - var pkgs = group.getPackages(); - var iter = pkgs.iterator(); - var urls = new URL[pkgs.size()]; - - for (var i = 0; i < urls.length; ++i) { - urls[i] = iter.next().getPathRoot().getUrl(); - } - return urls; + return group.getPackages() + .stream() + .map(Container::getPathRoot) + .map(PathRoot::getUrl) + .toArray(URL[]::new); } }