hostHeader
diff --git a/documentation/jetty-asciidoctor-extensions/pom.xml b/documentation/jetty-asciidoctor-extensions/pom.xml
index 8c97b568f8a5..627ebdf93bab 100644
--- a/documentation/jetty-asciidoctor-extensions/pom.xml
+++ b/documentation/jetty-asciidoctor-extensions/pom.xml
@@ -33,7 +33,8 @@
org.eclipse.jetty.tests
- test-distribution
+ jetty-home-tester
+ compile
diff --git a/documentation/jetty-asciidoctor-extensions/src/main/java/org/eclipse/jetty/docs/JettyIncludeExtension.java b/documentation/jetty-asciidoctor-extensions/src/main/java/org/eclipse/jetty/docs/JettyIncludeExtension.java
index 83b1ed9a4203..412b87f2f581 100644
--- a/documentation/jetty-asciidoctor-extensions/src/main/java/org/eclipse/jetty/docs/JettyIncludeExtension.java
+++ b/documentation/jetty-asciidoctor-extensions/src/main/java/org/eclipse/jetty/docs/JettyIncludeExtension.java
@@ -29,7 +29,7 @@
import org.asciidoctor.extension.IncludeProcessor;
import org.asciidoctor.extension.PreprocessorReader;
import org.asciidoctor.jruby.extension.spi.ExtensionRegistry;
-import org.eclipse.jetty.tests.distribution.JettyHomeTester;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
/**
* Asciidoctor include extension that includes into
diff --git a/javadoc/pom.xml b/javadoc/pom.xml
index 3e1cfb5b6727..96933ba46e70 100644
--- a/javadoc/pom.xml
+++ b/javadoc/pom.xml
@@ -96,6 +96,8 @@
infinispan-embedded,
infinispan-remote,
jetty-test-helper,
+ jetty-maven-plugin,
+ jetty-jspc-maven-plugin,
alpn-api,
quic-quiche,
quic-quiche-common,
@@ -126,7 +128,7 @@
build-javadoc
prepare-package
- javadoc
+ jar
Eclipse Jetty API Doc - v${project.version}
@@ -379,29 +381,6 @@
-
-
- org.eclipse.jetty
- jetty-jspc-maven-plugin
- provided
-
-
- javax.annotation
- javax.annotation-api
-
-
-
-
- org.eclipse.jetty
- jetty-maven-plugin
- provided
-
-
-
- org.apache.maven.plugin-tools
- maven-plugin-annotations
- provided
-
org.eclipse.jetty
diff --git a/jetty-home/pom.xml b/jetty-home/pom.xml
index eb2fb0c81b1c..0f08874bf722 100644
--- a/jetty-home/pom.xml
+++ b/jetty-home/pom.xml
@@ -13,6 +13,7 @@
${basedir}/target/jetty-home
${basedir}/target/jetty-home-sources
+ ${basedir}/target/jetty-home-with-docs
1.0.4
true
@@ -49,6 +50,7 @@
+ org.apache.maven.plugins
maven-dependency-plugin
@@ -120,7 +122,6 @@
-
copy-lib-deps
generate-resources
@@ -508,6 +509,44 @@
${assembly-directory}
+
+ unpack-documentation
+ generate-resources
+
+ unpack
+
+
+
+
+ org.eclipse.jetty.documentation
+ jetty-documentation
+ ${project.version}
+ html
+ zip
+
+
+ ${docs-assembly-directory}/docs
+
+
+
+ unpack-javadoc-aggregate
+ generate-resources
+
+ unpack
+
+
+
+
+ org.eclipse.jetty
+ javadoc
+ ${project.version}
+ javadoc
+ jar
+
+
+ ${docs-assembly-directory}/javadoc
+
+
@@ -563,6 +602,19 @@
true
+
+ docs
+ package
+
+ single
+
+
+
+ src/main/assembly/jetty-with-docs-assembly.xml
+
+ true
+
+
@@ -876,6 +928,22 @@
jar
true
+
+ org.eclipse.jetty.documentation
+ jetty-documentation
+ ${project.version}
+ html
+ zip
+ true
+
+
+ org.eclipse.jetty
+ javadoc
+ ${project.version}
+ javadoc
+ jar
+ true
+
org.apache.logging.log4j
log4j-api
diff --git a/jetty-home/src/main/assembly/jetty-with-docs-assembly.xml b/jetty-home/src/main/assembly/jetty-with-docs-assembly.xml
new file mode 100644
index 000000000000..c38740b3427c
--- /dev/null
+++ b/jetty-home/src/main/assembly/jetty-with-docs-assembly.xml
@@ -0,0 +1,46 @@
+
+ with-docs
+
+ tar.gz
+ zip
+
+
+
+ ${assembly-directory}
+
+
+ **
+
+
+ **/META-INF/**
+ *-config.jar
+
+ bin/*.sh
+
+
+ 0444
+ 0755
+
+
+ ${assembly-directory}
+
+
+ bin/*.sh
+
+
+ 0555
+
+
+ ${docs-assembly-directory}
+
+
+ **
+
+
+
+
diff --git a/jetty-home/src/main/resources/modules/demo.d/root/index.html b/jetty-home/src/main/resources/modules/demo.d/root/index.html
index 7d07f5d4f003..683baf412f8e 100644
--- a/jetty-home/src/main/resources/modules/demo.d/root/index.html
+++ b/jetty-home/src/main/resources/modules/demo.d/root/index.html
@@ -46,10 +46,15 @@ demos
information
diff --git a/jetty-home/src/main/resources/modules/demo.d/root/jetty.css b/jetty-home/src/main/resources/modules/demo.d/root/jetty.css
index acf677f7cf52..ff7d87cda3cf 100644
--- a/jetty-home/src/main/resources/modules/demo.d/root/jetty.css
+++ b/jetty-home/src/main/resources/modules/demo.d/root/jetty.css
@@ -1,17 +1,21 @@
-BODY
+body
{
- font-family: Arial, Verdana, Helvetica, sans-serif;
- background-color: #FFFFFF;
+ font-family: sans-serif;
+ background-color: white;
font-size: 14pt;
color: #444444;
}
+code
+{
+ font-family: monospace;
+}
+
img
{
border: 0px;
}
-
div#header
{
clear: both;
@@ -26,7 +30,6 @@ div#header
margin-right: auto;
}
-
div#content
{
clear: both;
@@ -75,6 +78,21 @@ div#links h1,h2,p
margin: 5px;
}
+div#links ul
+{
+ padding-left: 20px;
+}
+
+div#links li
+{
+ font-size: 10pt;
+}
+
+div#links code
+{
+ font-size: 9pt;
+}
+
div#links h2
{
font-size: 12pt;
diff --git a/jetty-maven-plugin/pom.xml b/jetty-maven-plugin/pom.xml
index f8e58672f90e..576928023924 100644
--- a/jetty-maven-plugin/pom.xml
+++ b/jetty-maven-plugin/pom.xml
@@ -257,6 +257,7 @@
jetty-home
test
zip
+ true
diff --git a/pom.xml b/pom.xml
index 4177b2a5f33b..6619b032a9f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -245,6 +245,7 @@
documentation
jetty-keystore
jetty-unixdomain-server
+ javadoc
@@ -1339,6 +1340,12 @@
${project.version}
zip
+
+ org.eclipse.jetty.tests
+ jetty-home-tester
+ ${project.version}
+ test
+
org.eclipse.jetty
jetty-http
@@ -2206,9 +2213,6 @@
eclipse-release
-
- javadoc
-
diff --git a/tests/jetty-home-tester/pom.xml b/tests/jetty-home-tester/pom.xml
new file mode 100644
index 000000000000..d1193cd5d651
--- /dev/null
+++ b/tests/jetty-home-tester/pom.xml
@@ -0,0 +1,89 @@
+
+
+ org.eclipse.jetty.tests
+ tests-parent
+ 10.0.13-SNAPSHOT
+
+
+ 4.0.0
+ jetty-home-tester
+ Jetty Tests :: jetty-home Tester
+ jar
+
+
+ ${project.groupId}.tests.hometester
+
+
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.apache.maven
+ maven-artifact
+
+
+
+ org.apache.maven
+ maven-resolver-provider
+
+
+ org.apache.maven.resolver
+ maven-resolver-util
+ ${maven.resolver.version}
+
+
+ org.awaitility
+ awaitility
+
+
+ org.apache.maven.resolver
+ maven-resolver-api
+ ${maven.resolver.version}
+
+
+ org.apache.maven.resolver
+ maven-resolver-spi
+ ${maven.resolver.version}
+
+
+ org.apache.maven.resolver
+ maven-resolver-impl
+ ${maven.resolver.version}
+
+
+
+ javax.annotation
+ javax.annotation-api
+
+
+
+
+ org.apache.maven.resolver
+ maven-resolver-connector-basic
+ ${maven.resolver.version}
+
+
+ org.apache.maven.resolver
+ maven-resolver-transport-file
+ ${maven.resolver.version}
+
+
+ org.apache.maven.resolver
+ maven-resolver-transport-http
+ ${maven.resolver.version}
+
+
+ org.junit.jupiter
+ junit-jupiter
+ compile
+
+
+ org.eclipse.jetty.toolchain
+ jetty-test-helper
+ compile
+
+
+
+
diff --git a/tests/test-distribution/src/main/java/org/eclipse/jetty/tests/distribution/JettyHomeTester.java b/tests/jetty-home-tester/src/main/java/org/eclipse/jetty/tests/hometester/JettyHomeTester.java
similarity index 89%
rename from tests/test-distribution/src/main/java/org/eclipse/jetty/tests/distribution/JettyHomeTester.java
rename to tests/jetty-home-tester/src/main/java/org/eclipse/jetty/tests/hometester/JettyHomeTester.java
index d95c277b44c5..0d06b390b696 100644
--- a/tests/test-distribution/src/main/java/org/eclipse/jetty/tests/distribution/JettyHomeTester.java
+++ b/tests/jetty-home-tester/src/main/java/org/eclipse/jetty/tests/hometester/JettyHomeTester.java
@@ -11,18 +11,21 @@
// ========================================================================
//
-package org.eclipse.jetty.tests.distribution;
+package org.eclipse.jetty.tests.hometester;
import java.io.BufferedReader;
import java.io.Closeable;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.OutputStream;
import java.io.RandomAccessFile;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
+import java.net.URI;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -35,11 +38,12 @@
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.TimeUnit;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
-import org.codehaus.plexus.util.IOUtil;
+import org.awaitility.core.ConditionTimeoutException;
+import org.codehaus.plexus.util.StringUtils;
import org.eclipse.aether.AbstractRepositoryListener;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositoryEvent;
@@ -60,18 +64,18 @@
import org.eclipse.aether.transport.file.FileTransporterFactory;
import org.eclipse.aether.transport.http.HttpTransporterFactory;
import org.eclipse.jetty.toolchain.test.FS;
+import org.eclipse.jetty.toolchain.test.IO;
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
-import org.eclipse.jetty.util.IO;
-import org.eclipse.jetty.util.NanoTime;
-import org.eclipse.jetty.util.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.awaitility.Awaitility.await;
+
/**
* Helper class to test the Jetty Distribution .
* API can change without any further notice.
* Usage:
- *
+ * {@code
* // Create the distribution.
* String jettyVersion = "9.4.14.v20181114";
* DistributionTester distribution = DistributionTester.Builder.newInstance()
@@ -103,7 +107,7 @@
* assertEquals(HttpStatus.OK_200, response.getStatus());
* }
* }
- *
+ * }
*/
public class JettyHomeTester
{
@@ -149,7 +153,7 @@ public JettyHomeTester.Run start(List args) throws Exception
List commands = new ArrayList<>();
commands.add(getJavaExecutable());
commands.addAll(config.getJVMArgs());
- commands.add("-Djava.io.tmpdir=" + workDir.toAbsolutePath().toString());
+ commands.add("-Djava.io.tmpdir=" + workDir.toAbsolutePath());
int debugPort = Integer.getInteger("distribution.debug.port", 0);
if (debugPort > 0)
{
@@ -162,9 +166,9 @@ public JettyHomeTester.Run start(List args) throws Exception
args = new ArrayList<>(args);
String mavenLocalRepository = config.getMavenLocalRepository();
- if (StringUtil.isNotBlank(mavenLocalRepository))
+ if (StringUtils.isNotBlank(mavenLocalRepository))
mavenLocalRepository = System.getProperty("mavenRepoPath");
- if (StringUtil.isNotBlank(mavenLocalRepository))
+ if (StringUtils.isNotBlank(mavenLocalRepository))
args.add("maven.local.repo=" + mavenLocalRepository);
// if this JVM has `maven.repo.uri` defined, make sure to propagate it to child
@@ -230,7 +234,7 @@ public Path installWarFile(File warFile, String context) throws IOException
Path webapps = config.jettyBase.resolve("webapps").resolve(context);
if (!Files.exists(webapps))
Files.createDirectories(webapps);
- unzip(warFile, webapps.toFile());
+ unzip(warFile.toPath(), webapps);
return webapps;
}
@@ -291,52 +295,61 @@ private String getJavaExecutable()
return "java";
}
- private void unzip(File zipFile, File output) throws IOException
+ public static void unzip(Path archive, Path outputDir) throws IOException
{
- try (InputStream fileInputStream = Files.newInputStream(zipFile.toPath());
- ZipInputStream zipInputStream = new ZipInputStream(fileInputStream))
+ if (!Files.exists(outputDir))
+ throw new FileNotFoundException("Directory does not exist: " + outputDir);
+
+ if (!Files.isDirectory(outputDir))
+ throw new FileNotFoundException("Not a directory: " + outputDir);
+
+ Map env = new HashMap<>();
+ env.put("releaseVersion", null); // no MultiRelease Jar file behaviors
+
+ URI outputDirURI = outputDir.toUri();
+ URI archiveURI = URI.create("jar:" + archive.toUri().toASCIIString());
+
+ try (FileSystem fs = FileSystems.newFileSystem(archiveURI, env))
{
- ZipEntry entry = zipInputStream.getNextEntry();
- while (entry != null)
+ Path root = fs.getPath("/");
+ int archiveURISubIndex = root.toUri().toASCIIString().indexOf("!/") + 2;
+ try (Stream entriesStream = Files.walk(root))
{
- if (entry.isDirectory())
- {
- File dir = new File(output, entry.getName());
- if (!Files.exists(dir.toPath()))
- {
- Files.createDirectories(dir.toPath());
- }
- }
- else
+ // ensure proper unpack order (eg: directories before files)
+ List sorted = entriesStream
+ .sorted()
+ .collect(Collectors.toList());
+
+ for (Path path : sorted)
{
- // Read zipEntry and write to a file.
- File file = new File(output, entry.getName());
- if (!Files.exists(file.getParentFile().toPath()))
+ URI entryURI = path.toUri();
+ String subURI = entryURI.toASCIIString().substring(archiveURISubIndex);
+ URI outputPathURI = outputDirURI.resolve(subURI);
+ Path outputPath = Path.of(outputPathURI);
+ if (Files.isDirectory(path))
{
- Files.createDirectories(file.getParentFile().toPath());
+ if (!Files.exists(outputPath))
+ Files.createDirectory(outputPath);
}
- try (OutputStream outputStream = Files.newOutputStream(file.toPath()))
+ else
{
- IOUtil.copy(zipInputStream, outputStream);
+ Files.copy(path, outputPath);
}
}
- // Get next entry
- entry = zipInputStream.getNextEntry();
}
}
}
private Path resolveHomeArtifact(String version) throws Exception
{
- File artifactFile = resolveArtifact("org.eclipse.jetty:jetty-home:zip:" + version);
+ Path artifactFile = resolveArtifact("org.eclipse.jetty:jetty-home:zip:" + version).toPath();
// create tmp directory to unzip distribution
Path homes = MavenTestingUtils.getTargetTestingPath("homes");
FS.ensureDirExists(homes);
Path tmp = Files.createTempDirectory(homes, "jetty_home_");
- File tmpFile = tmp.toFile();
- unzip(artifactFile, tmpFile);
+ unzip(artifactFile, tmp);
return tmp.resolve("jetty-home-" + version);
}
@@ -559,15 +572,15 @@ public void close()
*/
public boolean awaitConsoleLogsFor(String txt, long time, TimeUnit unit) throws InterruptedException
{
- long start = NanoTime.now();
- while (NanoTime.since(start) < unit.toNanos(time))
+ try
{
- boolean result = logs.stream().anyMatch(s -> s.contains(txt));
- if (result)
- return true;
- Thread.sleep(250);
+ await().atMost(time, unit).until(() -> logs.stream().anyMatch(s -> s.contains(txt)));
+ return true;
+ }
+ catch (ConditionTimeoutException e)
+ {
+ return false;
}
- return false;
}
/**
@@ -587,14 +600,11 @@ public boolean awaitLogsFileFor(Path logFile, String txt, long time, TimeUnit un
thread.start();
try
{
- long start = NanoTime.now();
- while (NanoTime.since(start) < unit.toNanos(time))
- {
- boolean result = logs.stream().anyMatch(s -> s.contains(txt));
- if (result)
- return true;
- Thread.sleep(250);
- }
+ await().atMost(time, unit).until(() -> logs.stream().anyMatch(s -> s.contains(txt)));
+ return true;
+ }
+ catch (ConditionTimeoutException e)
+ {
return false;
}
finally
diff --git a/tests/pom.xml b/tests/pom.xml
index e04a268bcf37..3d872c15ef35 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -20,6 +20,7 @@
jetty-jmh
jetty-http-tools
+ jetty-home-tester
test-webapps
test-sessions
test-loginservice
diff --git a/tests/test-distribution/pom.xml b/tests/test-distribution/pom.xml
index 4c91bcdacce3..c080326c44e0 100644
--- a/tests/test-distribution/pom.xml
+++ b/tests/test-distribution/pom.xml
@@ -18,64 +18,10 @@
- org.eclipse.jetty
- jetty-util
-
-
- org.slf4j
- slf4j-api
-
-
- org.apache.maven
- maven-artifact
-
-
- org.apache.maven
- maven-resolver-provider
-
-
- org.apache.maven.resolver
- maven-resolver-util
- ${maven.resolver.version}
-
-
- org.apache.maven.resolver
- maven-resolver-api
- ${maven.resolver.version}
-
-
- org.apache.maven.resolver
- maven-resolver-spi
- ${maven.resolver.version}
-
-
- org.apache.maven.resolver
- maven-resolver-impl
- ${maven.resolver.version}
-
-
-
- javax.annotation
- javax.annotation-api
-
-
-
-
- org.apache.maven.resolver
- maven-resolver-connector-basic
- ${maven.resolver.version}
-
-
- org.apache.maven.resolver
- maven-resolver-transport-file
- ${maven.resolver.version}
-
-
- org.apache.maven.resolver
- maven-resolver-transport-http
- ${maven.resolver.version}
+ org.eclipse.jetty.tests
+ jetty-home-tester
+ test
-
org.eclipse.jetty
jetty-slf4j-impl
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/BadAppTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/BadAppTests.java
index 2bc68f2fc609..6c785d51d5e6 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/BadAppTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/BadAppTests.java
@@ -19,6 +19,7 @@
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.eclipse.jetty.websocket.client.WebSocketClient;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/CDITests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/CDITests.java
index 12f82e83e1f2..82ef05b5b4f2 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/CDITests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/CDITests.java
@@ -25,6 +25,7 @@
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DemoModulesTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DemoModulesTests.java
index cd0bdf0f54e4..ae26e3ac4906 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DemoModulesTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DemoModulesTests.java
@@ -21,6 +21,7 @@
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.client.util.FormRequestContent;
import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.eclipse.jetty.util.Fields;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java
index 962a3949a278..c096fb699caa 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java
@@ -43,6 +43,7 @@
import org.eclipse.jetty.io.ClientConnector;
import org.eclipse.jetty.start.FS;
import org.eclipse.jetty.tests.distribution.openid.OpenIdProvider;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.eclipse.jetty.unixsocket.client.HttpClientTransportOverUnixSockets;
import org.eclipse.jetty.unixsocket.server.UnixSocketConnector;
import org.eclipse.jetty.util.BlockingArrayQueue;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DynamicListenerTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DynamicListenerTests.java
index 49354aee235a..cc8a24ae2c0c 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DynamicListenerTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DynamicListenerTests.java
@@ -21,6 +21,7 @@
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.eclipse.jetty.util.IO;
import org.junit.jupiter.api.Test;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/GzipModuleTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/GzipModuleTests.java
index b69422582c07..921c86bbb6bf 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/GzipModuleTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/GzipModuleTests.java
@@ -20,6 +20,7 @@
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpHeader;
import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/LoggingOptionsTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/LoggingOptionsTests.java
index 9aff9b7ed4e1..4ad682962c3d 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/LoggingOptionsTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/LoggingOptionsTests.java
@@ -24,6 +24,7 @@
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/OsgiAppTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/OsgiAppTests.java
index 3b525410a746..77b7eaa5a039 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/OsgiAppTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/OsgiAppTests.java
@@ -18,6 +18,7 @@
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/StatsTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/StatsTests.java
index 1392511bfa60..7501841fdab1 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/StatsTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/StatsTests.java
@@ -25,6 +25,7 @@
import org.eclipse.jetty.http.HttpHeader;
import org.eclipse.jetty.http.HttpMethod;
import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.eclipse.jetty.toolchain.test.FS;
import org.eclipse.jetty.util.ajax.JSON;
import org.junit.jupiter.api.Test;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/ThirdPartyModulesTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/ThirdPartyModulesTests.java
index c225f46e7687..8e96c1f62e2e 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/ThirdPartyModulesTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/ThirdPartyModulesTests.java
@@ -18,6 +18,7 @@
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/session/AbstractSessionDistributionTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/session/AbstractSessionDistributionTests.java
index 94a3c3c6ab02..5a335598ed13 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/session/AbstractSessionDistributionTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/session/AbstractSessionDistributionTests.java
@@ -29,7 +29,7 @@
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.tests.distribution.AbstractJettyHomeTest;
-import org.eclipse.jetty.tests.distribution.JettyHomeTester;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.testcontainers.junit.jupiter.Testcontainers;
diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/session/HazelcastSessionDistributionTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/session/HazelcastSessionDistributionTests.java
index 0fc681044f3a..d3081a44879c 100644
--- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/session/HazelcastSessionDistributionTests.java
+++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/session/HazelcastSessionDistributionTests.java
@@ -20,7 +20,6 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.time.Duration;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
@@ -30,7 +29,7 @@
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus;
-import org.eclipse.jetty.tests.distribution.JettyHomeTester;
+import org.eclipse.jetty.tests.hometester.JettyHomeTester;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
|