diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 7ac299993b4..ba2eff8821e 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -74,14 +74,14 @@ jobs:
- name: Set up Maven
uses: stCarolas/setup-maven@v4.5
with:
- maven-version: 3.8.6
+ maven-version: 3.9.4
- name: Set up Maven
run:
- mvn -e -B -V org.apache.maven.plugins:maven-wrapper-plugin:3.1.0:wrapper "-Dmaven=3.8.6"
+ mvn -e -B -V org.apache.maven.plugins:maven-wrapper-plugin:3.1.0:wrapper "-Dmaven=3.9.4"
- name: Clean install dependencies and build
- run: mvn clean install -DskipTests -B -V
+ run: mvn clean install -DskipTests -B -Dmaven.build.cache.enabled=false
# âšī¸ Command-line programs to run using the OS shell.
# đ See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
diff --git a/.mvn/jvm.config b/.mvn/jvm.config
index 32599cefea5..4bbddaa6ac4 100644
--- a/.mvn/jvm.config
+++ b/.mvn/jvm.config
@@ -8,3 +8,5 @@
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
--add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
+--add-opens java.base/sun.nio.ch=ALL-UNNAMED
+
diff --git a/.mvn/maven-build-cache-config.xml b/.mvn/maven-build-cache-config.xml
new file mode 100644
index 00000000000..94b509037bb
--- /dev/null
+++ b/.mvn/maven-build-cache-config.xml
@@ -0,0 +1,105 @@
+
+
+ XXMM
+ true
+
+
+
+
+
+
+
+
+
+ ci
+
+
+
+
+
+
+ *.{java,xml,properties,mod,adoc}
+
+
+
+
+
+ scriptVariables
+ settingsFile
+ filterProperties
+
+
+
+
+
+
+ systemPropertyVariables
+
+
+
+
+
+
+ attributes
+
+
+
+
+
+
+
+
+
+
+ install
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.mvn/maven.config b/.mvn/maven.config
new file mode 100644
index 00000000000..539dc8173f8
--- /dev/null
+++ b/.mvn/maven.config
@@ -0,0 +1 @@
+-Daether.dependencyCollector.impl=bf
diff --git a/Jenkinsfile b/Jenkinsfile
index ef157dabb3b..0b45920c3f2 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -18,7 +18,7 @@ pipeline {
timeout( time: 180, unit: 'MINUTES' ) {
checkout scm
mavenBuild( "jdk21", "clean install -Dspotbugs.skip=true -Djacoco.skip=true", "maven3")
- recordIssues id: "jdk21", name: "Static Analysis jdk19", aggregatingResults: true, enabledForFailure: true, tools: [mavenConsole(), java(), checkStyle()]
+ recordIssues id: "jdk21", name: "Static Analysis jdk21", aggregatingResults: true, enabledForFailure: true, tools: [mavenConsole(), java(), checkStyle()]
}
}
}
@@ -28,7 +28,7 @@ pipeline {
steps {
timeout( time: 180, unit: 'MINUTES' ) {
checkout scm
- mavenBuild( "jdk17", "clean install javadoc:javadoc -Perrorprone", "maven3")
+ mavenBuild( "jdk17", "clean install -Perrorprone", "maven3") // javadoc:javadoc
// Collect up the jacoco execution results (only on main build)
jacoco inclusionPattern: '**/org/eclipse/jetty/**/*.class',
exclusionPattern: '' +
@@ -104,9 +104,21 @@ def mavenBuild(jdk, cmdline, mvnName) {
withEnv(["JAVA_HOME=${ tool "$jdk" }",
"PATH+MAVEN=${ tool "$jdk" }/bin:${tool "$mvnName"}/bin",
"MAVEN_OPTS=-Xms2g -Xmx4g -Djava.awt.headless=true"]) {
- configFileProvider(
- [configFile(fileId: 'oss-settings.xml', variable: 'GLOBAL_MVN_SETTINGS')]) {
- sh "mvn -Dmaven.repo.uri=http://10.0.0.15:8081/repository/maven-public/ -Dmaven.test.failure.ignore=true -ntp -s $GLOBAL_MVN_SETTINGS -Dmaven.repo.local=.repository -Pci -V -B -e $cmdline"
+ configFileProvider(
+ [configFile(fileId: 'oss-settings.xml', variable: 'GLOBAL_MVN_SETTINGS'),
+ configFile(fileId: 'maven-build-cache-config.xml', variable: 'MVN_BUILD_CACHE_CONFIG')]) {
+ //sh "cp $MVN_BUILD_CACHE_CONFIG .mvn/maven-build-cache-config.xml"
+ //-Dmaven.build.cache.configPath=$MVN_BUILD_CACHE_CONFIG
+ buildCache = useBuildCache()
+ if (buildCache) {
+ echo "Using build cache"
+ extraArgs = " -Dmaven.build.cache.restoreGeneratedSources=false -Dmaven.build.cache.remote.url=dav:http://nginx-cache-service.jenkins.svc.cluster.local:80 -Dmaven.build.cache.remote.enabled=true -Dmaven.build.cache.remote.save.enabled=true -Dmaven.build.cache.remote.server.id=remote-build-cache-server "
+ } else {
+ // when not using cache
+ echo "Not using build cache"
+ extraArgs = " -Dmaven.test.failure.ignore=true -Dmaven.build.cache.enabled=false "
+ }
+ sh "mvn $extraArgs -DsettingsPath=$GLOBAL_MVN_SETTINGS -Dmaven.repo.uri=http://nexus-service.nexus.svc.cluster.local:8081/repository/maven-public/ -ntp -s $GLOBAL_MVN_SETTINGS -Dmaven.repo.local=.repository -Pci -V -B -e -U $cmdline"
}
}
}
@@ -117,4 +129,18 @@ def mavenBuild(jdk, cmdline, mvnName) {
}
}
+/**
+ * calculate to use cache or not. per default will not run
+ */
+def useBuildCache() {
+ def labelNoBuildCache = false
+ if (env.BRANCH_NAME ==~ /PR-\d+/) {
+ labelNoBuildCache = pullRequest.labels.contains("build-no-cache")
+ }
+ def noBuildCache = (env.BRANCH_NAME == 'jetty-12.0.x') || labelNoBuildCache;
+ return !noBuildCache;
+ // want to skip build cache
+ // return false
+}
+
// vim: et:ts=2:sw=2:ft=groovy
diff --git a/README.md b/README.md
index de8b74f79ac..921e9350581 100644
--- a/README.md
+++ b/README.md
@@ -70,4 +70,4 @@ The documentation is divided into three guides, based on use case:
# Commercial Support
-Expert advice and production support of Jetty are provided by [Webtide](https://webtide.com).
+Expert advice and production support of Jetty are provided by [Webtide](https://webtide.com).
\ No newline at end of file
diff --git a/build/scripts/dependency-update-reports.sh b/build/scripts/dependency-update-reports.sh
index c8fcde4d72f..e29a76d073b 100755
--- a/build/scripts/dependency-update-reports.sh
+++ b/build/scripts/dependency-update-reports.sh
@@ -14,28 +14,28 @@ mkdir -p $REPORT_OUTPUT_DIR
echo "HTML Reports can be found in $REPORT_OUTPUT_DIR"
-mvn -N -B -Pdependency-updates-reports validate
+mvn -N -B -Pdependency-updates-reports validate -Dmaven.build.cache.enabled=false
cp -Rv target/site/* $REPORT_OUTPUT_DIR
mv $REPORT_OUTPUT_DIR/dependency-updates-aggregate-report.html $REPORT_OUTPUT_DIR/dependency-updates-report-root.html
pushd jetty-core
-mvn -B -Pdependency-updates-reports validate
+mvn -B -Pdependency-updates-reports validate -Dmaven.build.cache.enabled=false
cp target/site/dependency-updates-aggregate-report.html $REPORT_OUTPUT_DIR/dependency-updates-report-core.html
popd
pushd jetty-ee10
-mvn -B -Pdependency-updates-reports validate
+mvn -B -Pdependency-updates-reports validate -Dmaven.build.cache.enabled=false
cp target/site/dependency-updates-aggregate-report.html $REPORT_OUTPUT_DIR/dependency-updates-report-ee10.html
popd
pushd jetty-ee9
-mvn -B -Pdependency-updates-reports validate
+mvn -B -Pdependency-updates-reports validate -Dmaven.build.cache.enabled=false
cp target/site/dependency-updates-aggregate-report.html $REPORT_OUTPUT_DIR/dependency-updates-report-ee9.html
popd
pushd jetty-ee8
-mvn -B -Pdependency-updates-reports validate
+mvn -B -Pdependency-updates-reports validate -Dmaven.build.cache.enabled=false
cp target/site/dependency-updates-aggregate-report.html $REPORT_OUTPUT_DIR/dependency-updates-report-ee8.html
popd
diff --git a/build/scripts/release-jetty.sh b/build/scripts/release-jetty.sh
index 42ee3ecff20..0674a709eec 100755
--- a/build/scripts/release-jetty.sh
+++ b/build/scripts/release-jetty.sh
@@ -88,7 +88,7 @@ if [ ! -d "$ALT_DEPLOY_DIR" ] ; then
fi
# DEPLOY_OPTS="-Dmaven.test.failure.ignore=true"
-DEPLOY_OPTS="-DskipTests -Dasciidoctor.skip=false"
+DEPLOY_OPTS="-DskipTests -Dasciidoctor.skip=false -Dmaven.build.cache.enabled=false"
# DEPLOY_OPTS="$DEPLOY_OPTS -DaltDeploymentRepository=intarget::default::file://$ALT_DEPLOY_DIR/"
# Uncomment for Java 1.7
@@ -131,10 +131,10 @@ reportMavenTestFailures() {
echo ""
if proceedyn "Are you sure you want to release using above? (y/N)" n; then
- mvn clean install -pl build
+ mvn clean install -pl build -Dmaven.build.cache.enabled=false
echo ""
if proceedyn "Update VERSION.txt for $VER_RELEASE? (Y/n)" y; then
- mvn -N -Pupdate-version generate-resources
+ mvn -N -Pupdate-version generate-resources -Dmaven.build.cache.enabled=false
cp VERSION.txt VERSION.txt.backup
cat VERSION.txt.backup | sed -e "s/$VER_CURRENT/$VER_RELEASE/" > VERSION.txt
rm VERSION.txt.backup
@@ -146,6 +146,7 @@ if proceedyn "Are you sure you want to release using above? (y/N)" n; then
# This is equivalent to 'mvn release:prepare'
if proceedyn "Update project.versions for $VER_RELEASE? (Y/n)" y; then
mvn org.codehaus.mojo:versions-maven-plugin:2.7:set \
+ -Dmaven.build.cache.enabled=false \
-Peclipse-release \
-DoldVersion="$VER_CURRENT" \
-DnewVersion="$VER_RELEASE" \
@@ -175,6 +176,7 @@ if proceedyn "Are you sure you want to release using above? (y/N)" n; then
cat VERSION.txt.backup >> VERSION.txt
echo "Update project.versions for $VER_NEXT"
mvn org.codehaus.mojo:versions-maven-plugin:2.7:set \
+ -Dmaven.build.cache.enabled=false \
-Peclipse-release \
-DoldVersion="$VER_RELEASE" \
-DnewVersion="$VER_NEXT" \
diff --git a/documentation/jetty-documentation/pom.xml b/documentation/jetty-documentation/pom.xml
index da493056053..303514c1da3 100644
--- a/documentation/jetty-documentation/pom.xml
+++ b/documentation/jetty-documentation/pom.xml
@@ -14,6 +14,7 @@
${project.groupId}
${skipTests}
+ true
@@ -137,11 +138,13 @@
${project.basedir}
${project.version}
- ${settings.localRepository}
+ ${session.repositorySession.localRepository.basedir.absolutePath}
${project.version}
+
../programming-guide/index.html
../operations-guide/index.html
https://eclipse.dev/jetty/javadoc/jetty-12
+
diff --git a/documentation/jetty-documentation/src/main/asciidoc/contribution-guide/4-build.adoc b/documentation/jetty-documentation/src/main/asciidoc/contribution-guide/4-build.adoc
index 4bb9e18a6b4..a27b3ee4624 100644
--- a/documentation/jetty-documentation/src/main/asciidoc/contribution-guide/4-build.adoc
+++ b/documentation/jetty-documentation/src/main/asciidoc/contribution-guide/4-build.adoc
@@ -24,11 +24,11 @@ Here are the minimum Maven and JDK version build requirements for each actively
.Build versioning requirements by branch
|===
-| Branch | Maven Version | Minimum JDK
+| Branch | Maven Version | Minimum JDK | Recommended JDK
-| jetty-12.0.x | Maven 3.8.6+ | OpenJDK 17+
-| jetty-11.0.x | Maven 3.8.6+ | OpenJDK 11+
-| jetty-10.0.x | Maven 3.8.6+ | OpenJDK 11+
+| jetty-12.0.x | Maven 3.9.2+ | OpenJDK 17+ | OpenJDK 19
+| jetty-11.0.x | Maven 3.8.6+ | OpenJDK 11+ | OpenJDK 17
+| jetty-10.0.x | Maven 3.8.6+ | OpenJDK 11+ | OpenJDK 17
|===
To build the Jetty documentation, OpenJDK 19+ is required due to the use of the virtual thread APIs.
@@ -72,6 +72,18 @@ Not all test cases are as timing independent as they should be, which can result
You can help us track these flaky tests by opening an https://github.com/eclipse/jetty.project/issues[issue] when you come across one.
====
+[[cg-build-cache]]
+=== Maven Build Cache
+
+Per default, the build is using the https://maven.apache.org/extensions/maven-build-cache-extension[Maven Build Cache extension]
+this means you will use your local build cache, To disable it you can use the property
+
+[source, shell]
+----
+$ mvn clean install -Dmaven.build.cache.enabled=false
+----
+
+
[[cg-build-parallel]]
=== Executing tests in parallel
diff --git a/jetty-core/jetty-alpn/jetty-alpn-client/pom.xml b/jetty-core/jetty-alpn/jetty-alpn-client/pom.xml
index e5fdd79431e..8d735ae7f11 100644
--- a/jetty-core/jetty-alpn/jetty-alpn-client/pom.xml
+++ b/jetty-core/jetty-alpn/jetty-alpn-client/pom.xml
@@ -24,12 +24,6 @@
-
-
- org.apache.maven.plugins
- maven-source-plugin
-
diff --git a/jetty-core/jetty-alpn/jetty-alpn-server/pom.xml b/jetty-core/jetty-alpn/jetty-alpn-server/pom.xml
index 1e3cf753c03..d388b7877d3 100644
--- a/jetty-core/jetty-alpn/jetty-alpn-server/pom.xml
+++ b/jetty-core/jetty-alpn/jetty-alpn-server/pom.xml
@@ -13,12 +13,6 @@
-
-
- org.apache.maven.plugins
- maven-source-plugin
-
org.apache.felix
maven-bundle-plugin
diff --git a/jetty-core/jetty-start/pom.xml b/jetty-core/jetty-start/pom.xml
index 4bf6ba206a6..7983d86c988 100644
--- a/jetty-core/jetty-start/pom.xml
+++ b/jetty-core/jetty-start/pom.xml
@@ -83,6 +83,31 @@
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ unpack
+ process-test-resources
+
+ unpack
+
+
+
+
+ org.eclipse.jetty
+ jetty-util
+ jar
+ false
+
+
+ ${project.build.directory}/jetty-util
+ true
+
+
+
+
diff --git a/jetty-core/jetty-start/src/test/java/org/eclipse/jetty/start/PropertyPassingTest.java b/jetty-core/jetty-start/src/test/java/org/eclipse/jetty/start/PropertyPassingTest.java
index 7bce0e220a8..3e5bf9816d8 100644
--- a/jetty-core/jetty-start/src/test/java/org/eclipse/jetty/start/PropertyPassingTest.java
+++ b/jetty-core/jetty-start/src/test/java/org/eclipse/jetty/start/PropertyPassingTest.java
@@ -163,7 +163,7 @@ public class PropertyPassingTest
cp.append(pathSep);
cp.append(MavenTestingUtils.getProjectDir("target/test-classes"));
cp.append(pathSep);
- cp.append(MavenTestingUtils.getProjectDir("../jetty-util/target/classes")); // TODO horrible hack!
+ cp.append(MavenTestingUtils.getProjectDir("target/jetty-util"));
return cp.toString();
}
diff --git a/jetty-core/jetty-util/pom.xml b/jetty-core/jetty-util/pom.xml
index 5ab452c65ef..c8b28e1fd99 100644
--- a/jetty-core/jetty-util/pom.xml
+++ b/jetty-core/jetty-util/pom.xml
@@ -56,7 +56,7 @@
maven-surefire-plugin
- ${settings.localRepository}
+ ${session.repositorySession.localRepository.basedir.absolutePath}
@{argLine} ${jetty.surefire.argLine} --add-reads org.eclipse.jetty.util=org.eclipse.jetty.logging
diff --git a/jetty-core/jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlConfiguration.java b/jetty-core/jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlConfiguration.java
index 783c20339c3..334b775d817 100644
--- a/jetty-core/jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlConfiguration.java
+++ b/jetty-core/jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlConfiguration.java
@@ -1957,6 +1957,8 @@ public class XmlConfiguration
}
else if (arg.toLowerCase(Locale.ENGLISH).endsWith(".xml"))
{
+ if (LOG.isDebugEnabled())
+ LOG.debug("Parsing xml file {}", arg);
// Create an XmlConfiguration
XmlConfiguration configuration = new XmlConfiguration(ResourceFactory.of(mountContainer).newResource(arg));
diff --git a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/pom.xml b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/pom.xml
index 336028fc387..2c6bd15e5ef 100644
--- a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/pom.xml
+++ b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/pom.xml
@@ -117,18 +117,36 @@
jetty-websocket-jetty-client
test
+
+ org.eclipse.jetty.ee9.demos
+ jetty-ee9-demo-jndi-webapp
+ ${project.version}
+ war
+
org.eclipse.jetty.ee10.demos
jetty-ee10-demo-jsp-webapp
${project.version}
war
+
+ org.eclipse.jetty.ee10.demos
+ jetty-ee10-demo-simple-webapp
+ ${project.version}
+ war
+
org.eclipse.jetty.ee10.demos
jetty-ee10-demo-spec-webapp
${project.version}
war
+
+ org.eclipse.jetty.ee10.demos
+ jetty-ee10-demo-async-rest-webapp
+ ${project.version}
+ war
+
@@ -137,8 +155,12 @@
maven-surefire-plugin
- ${settings.localRepository}
+ ${project.version}
+
+ ${session.repositorySession.localRepository.basedir.absolutePath}
+ ${project.version}
+
false
diff --git a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/JettyDemos.java b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/JettyDemos.java
index 17d4d7e5cc5..ef9b4ce0d06 100644
--- a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/JettyDemos.java
+++ b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/JettyDemos.java
@@ -34,7 +34,7 @@ public class JettyDemos
{
private static final Logger LOG = LoggerFactory.getLogger(JettyDemos.class);
private static final Path JETTY_DEMOS_DIR;
- private static final String VERSION;
+ private static String VERSION = System.getProperty("jettyVersion", "unknown");
static
{
@@ -71,29 +71,27 @@ public class JettyDemos
LOG.warn("Unable to resolve Jetty Demos location", th);
}
}
-
JETTY_DEMOS_DIR = demosDir;
-
String version = "unknown";
- Path pomFile = demosDir.resolve("pom.xml");
- try (Stream lineStream = Files.lines(pomFile))
+ if (version.equals(VERSION))
{
- String versionLine = lineStream
- .filter((line) -> line.contains(""))
- .findFirst()
- .orElseThrow(() ->
- {
- throw new RuntimeException("Unable to find in " + pomFile);
- });
+ Path pomFile = demosDir.resolve("pom.xml");
+ try (Stream lineStream = Files.lines(pomFile))
+ {
+ String versionLine = lineStream
+ .filter((line) -> line.contains(""))
+ .findFirst()
+ .orElseThrow(() -> new RuntimeException("Unable to find in " + pomFile));
- version = versionLine.replaceAll("<[^>]*>", "").trim();
- }
- catch (IOException e)
- {
- LOG.warn("Unable to find in " + pomFile, e);
- }
+ version = versionLine.replaceAll("<[^>]*>", "").trim();
+ }
+ catch (IOException e)
+ {
+ LOG.warn("Unable to find in " + pomFile, e);
+ }
- VERSION = version;
+ VERSION = version;
+ }
}
private static Path asDirectory(String path)
@@ -141,6 +139,33 @@ public class JettyDemos
return JETTY_DEMOS_DIR;
}
+ public static Path find(String path, MavenCoordinate mavenCoordinate) throws FileNotFoundException
+ {
+ try
+ {
+ return find(path);
+ }
+ catch (FileNotFoundException e)
+ {
+ //could be not in the target directory if restored from build cache
+ // but as the build always runs install the artifact should be there in local repository
+ }
+ //.repository/org/eclipse/jetty/ee9/demos/jetty-ee9-demo-jndi-webapp/12.0.0-SNAPSHOT/jetty-ee9-demo-jndi-webapp-12.0.0-SNAPSHOT.war
+ String version = mavenCoordinate.version().isEmpty() ? VERSION : mavenCoordinate.version();
+ Path result = Paths.get(System.getProperty("mavenRepoPath", System.getProperty("user.home") + "/.m2/repository"),
+ mavenCoordinate.groupId().replaceAll("\\.", "/"),
+ mavenCoordinate.artifactId(),
+ version,
+ mavenCoordinate.artifactId() + "-" + version + "." + mavenCoordinate.packaging()
+ );
+ if (!Files.exists(result))
+ {
+ throw new FileNotFoundException(result.toString());
+ }
+ return result;
+ }
+
+ @Deprecated
public static Path find(String path) throws FileNotFoundException
{
String expandedPath = path.replaceAll("@VER@", VERSION);
@@ -152,6 +177,15 @@ public class JettyDemos
return result;
}
+ /**
+ *
+ * @param groupId Maven groupId
+ * @param artifactId Maven artifactId
+ * @param version can be null
and default current project version will be used
+ * @param packaging Maven packaging (war, jar)
+ */
+ public record MavenCoordinate(String groupId, String artifactId, String version, String packaging){}
+
public static void main(String... arg)
{
System.err.println("Jetty Demos Dir is " + JETTY_DEMOS_DIR);
diff --git a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/LikeJettyXml.java b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/LikeJettyXml.java
index 2bd495198e2..b42cb0d662b 100644
--- a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/LikeJettyXml.java
+++ b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/LikeJettyXml.java
@@ -146,7 +146,9 @@ public class LikeJettyXml
Path testWebapp = webappsDir.resolve("test.war");
if (!Files.exists(testWebapp))
{
- Path testWebappSrc = JettyDemos.find("jetty-ee10-demo-simple-webapp/target/jetty-ee10-demo-simple-webapp-@VER@.war");
+ JettyDemos.MavenCoordinate mavenCoordinate = new JettyDemos.MavenCoordinate("org.eclipse.jetty.ee10.demos",
+ "jetty-ee10-demo-simple-webapp", "", "war");
+ Path testWebappSrc = JettyDemos.find("jetty-ee10-demo-simple-webapp/target/jetty-ee10-demo-simple-webapp-@VER@.war", mavenCoordinate);
Files.copy(testWebappSrc, testWebapp);
}
diff --git a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/OneWebApp.java b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/OneWebApp.java
index b9a4083c0f1..2638206be79 100644
--- a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/OneWebApp.java
+++ b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/OneWebApp.java
@@ -39,7 +39,9 @@ public class OneWebApp
// PlusConfiguration) to choosing where the webapp will unpack itself.
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
- Path warFile = JettyDemos.find("demo-async-rest/demo-async-rest-webapp/target/demo-async-rest-webapp-@VER@.war");
+ JettyDemos.MavenCoordinate mavenCoordinate = new JettyDemos.MavenCoordinate("org.eclipse.jetty.ee10.demos",
+ "jetty-ee10-demo-async-rest-webapp", "", "war");
+ Path warFile = JettyDemos.find("demo-async-rest/demo-async-rest-webapp/target/demo-async-rest-webapp-@VER@.war", mavenCoordinate);
webapp.setWar(warFile.toString());
// A WebAppContext is a ContextHandler as well so it needs to be set to
diff --git a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/OneWebAppWithJsp.java b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/OneWebAppWithJsp.java
index 419446e4ce9..c27b9a31ee5 100644
--- a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/OneWebAppWithJsp.java
+++ b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/OneWebAppWithJsp.java
@@ -44,7 +44,9 @@ public class OneWebAppWithJsp
// the webapp will unpack itself.
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
- Path warFile = JettyDemos.find("demo-jsp-webapp/target/demo-jsp-webapp-@VER@.war");
+ JettyDemos.MavenCoordinate mavenCoordinate = new JettyDemos.MavenCoordinate("org.eclipse.jetty.ee10.demos",
+ "jetty-ee10-demo-jsp-webapp", "", "war");
+ Path warFile = JettyDemos.find("demo-jsp-webapp/target/demo-jsp-webapp-@VER@.war", mavenCoordinate);
webapp.setWarResource(webapp.getResourceFactory().newResource(warFile));
webapp.setExtractWAR(true);
diff --git a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/ServerWithAnnotations.java b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/ServerWithAnnotations.java
index 402f3b250a5..fd4718ebe00 100644
--- a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/ServerWithAnnotations.java
+++ b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/ServerWithAnnotations.java
@@ -45,7 +45,9 @@ public class ServerWithAnnotations
webapp.addConfiguration(new EnvConfiguration(), new PlusConfiguration(), new AnnotationConfiguration());
webapp.setContextPath("/");
- Path warFile = JettyDemos.find("ee10-demo-spec/ee10-demo-spec-webapp/target/demo-spec-webapp-@VER@.war");
+ JettyDemos.MavenCoordinate mavenCoordinate = new JettyDemos.MavenCoordinate("org.eclipse.jetty.ee10.demos",
+ "jetty-ee10-demo-spec-webapp", "", "war");
+ Path warFile = JettyDemos.find("ee10-demo-spec/ee10-demo-spec-webapp/target/demo-spec-webapp-@VER@.war", mavenCoordinate);
webapp.setWar(warFile.toString());
webapp.setAttribute(
"org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",
diff --git a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/ServerWithJNDI.java b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/ServerWithJNDI.java
index afa247adbc0..83aa9ff6c02 100644
--- a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/ServerWithJNDI.java
+++ b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-embedded/src/main/java/org/eclipse/jetty/ee10/demos/ServerWithJNDI.java
@@ -35,7 +35,9 @@ public class ServerWithJNDI
// Create a WebApp
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
- Path testJndiWar = JettyDemos.find("jetty-ee10-demo-jndi-webapp/target/jetty-ee10-demo-jndi-webapp-@VER@.war");
+ JettyDemos.MavenCoordinate mavenCoordinate = new JettyDemos.MavenCoordinate("org.eclipse.jetty.ee10.demos",
+ "jetty-ee10-demo-jndi-webapp", "", "war");
+ Path testJndiWar = JettyDemos.find("jetty-ee10-demo-jndi-webapp/target/jetty-ee10-demo-jndi-webapp-@VER@.war", mavenCoordinate);
webapp.setWarResource(webapp.getResourceFactory().newResource(testJndiWar));
server.setHandler(webapp);
diff --git a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-spec/jetty-ee10-demo-spec-webapp/pom.xml b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-spec/jetty-ee10-demo-spec-webapp/pom.xml
index b026d91259c..7880273eebd 100644
--- a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-spec/jetty-ee10-demo-spec-webapp/pom.xml
+++ b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-spec/jetty-ee10-demo-spec-webapp/pom.xml
@@ -123,6 +123,46 @@
+
+ unpack-jetty-ee10-demo-container-initializer
+ process-test-resources
+
+ copy
+
+
+
+
+ org.eclipse.jetty.ee10.demos
+ jetty-ee10-demo-container-initializer
+ jar
+ false
+ ${project.build.directory}/
+ jetty-ee10-demo-container-initializer.jar
+
+
+ true
+
+
+
+ unpack-jetty-ee10-demo-web-fragment
+ process-test-resources
+
+ copy
+
+
+
+
+ org.eclipse.jetty.ee10.demos
+ jetty-ee10-demo-web-fragment
+ jar
+ false
+ ${project.build.directory}/
+ jetty-ee10-demo-web-fragment.jar
+
+
+ true
+
+
diff --git a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-spec/jetty-ee10-demo-spec-webapp/src/test/java/org/eclipse/jetty/ee10/demos/SpecWebAppTest.java b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-spec/jetty-ee10-demo-spec-webapp/src/test/java/org/eclipse/jetty/ee10/demos/SpecWebAppTest.java
index 308f7e8248f..0fe0a4c394e 100644
--- a/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-spec/jetty-ee10-demo-spec-webapp/src/test/java/org/eclipse/jetty/ee10/demos/SpecWebAppTest.java
+++ b/jetty-ee10/jetty-ee10-demos/jetty-ee10-demo-spec/jetty-ee10-demo-spec-webapp/src/test/java/org/eclipse/jetty/ee10/demos/SpecWebAppTest.java
@@ -118,13 +118,22 @@ public class SpecWebAppTest
private void copyDependency(String depName, Path libDir) throws IOException
{
+ // sinply use copy:dependency from maven...
+ Path targetDir = MavenPaths.projectBase().resolve("target");
+ Path jarFile = targetDir.resolve(depName + ".jar");
+ if (Files.exists(jarFile))
+ {
+ Files.copy(jarFile, libDir.resolve(depName + ".jar"));
+ return;
+ }
+
Path depPath = MavenPaths.projectBase().resolve("../" + depName).normalize();
if (!Files.isDirectory(depPath))
fail("Dependency not found: " + depPath);
Path outputJar = libDir.resolve(depName + ".jar");
+
Map env = new HashMap<>();
env.put("create", "true");
-
URI uri = URI.create("jar:" + outputJar.toUri().toASCIIString());
try (FileSystem fs = FileSystems.newFileSystem(uri, env))
{
diff --git a/jetty-ee10/jetty-ee10-jspc-maven-plugin/pom.xml b/jetty-ee10/jetty-ee10-jspc-maven-plugin/pom.xml
index 7bb7eaeb937..368c7eb8136 100644
--- a/jetty-ee10/jetty-ee10-jspc-maven-plugin/pom.xml
+++ b/jetty-ee10/jetty-ee10-jspc-maven-plugin/pom.xml
@@ -44,8 +44,6 @@
- true
- true
${maven.surefire.plugin.version}
diff --git a/jetty-ee10/jetty-ee10-maven-plugin/pom.xml b/jetty-ee10/jetty-ee10-maven-plugin/pom.xml
index c227e1e9022..9414b48b822 100644
--- a/jetty-ee10/jetty-ee10-maven-plugin/pom.xml
+++ b/jetty-ee10/jetty-ee10-maven-plugin/pom.xml
@@ -87,6 +87,33 @@
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy
+ package
+
+ copy
+
+
+
+
+
+
+ org.eclipse.jetty
+ jetty-home
+ zip
+ false
+ ${project.build.directory}
+ ${jettyHomeZipFileName}
+
+
+ false
+ true
+
+
org.apache.maven.plugins
maven-invoker-plugin
@@ -102,10 +129,16 @@
+
+ org.eclipse.jetty:jetty-slf4j-impl:${project.version}
+ org.eclipse.jetty.ee10:jetty-ee10-apache-jsp:${project.version}
+ org.eclipse.jetty.ee10:jetty-ee10-glassfish-jstl:${project.version}
+ org.eclipse.jetty.ee10:jetty-ee10-webapp:${project.version}
+ org.eclipse.jetty:jetty-server:${project.version}
+ org.eclipse.jetty:jetty-deploy:${project.version}
+ org.eclipse.jetty:jetty-home:${project.version}:zip
+
org.eclipse.jetty.maven.its.ee10
- true
- true
- true
it-parent-pom/pom.xml
@@ -121,8 +154,9 @@
${jetty.stopKey}
${jetty.stopPort}
${maven.surefire.plugin.version}
+ ${localRepoPath}
+ ${jettyHomeZip}
- src/it/settings.xml
clean
diff --git a/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-cdi-start-forked/pom.xml b/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-cdi-start-forked/pom.xml
index ac0f456a1bb..165405d1c5f 100644
--- a/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-cdi-start-forked/pom.xml
+++ b/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-cdi-start-forked/pom.xml
@@ -72,9 +72,9 @@
jetty-ee10-maven-plugin
- org.eclipse.jetty
- jetty-slf4j-impl
- ${jetty.version}
+ org.eclipse.jetty
+ jetty-slf4j-impl
+ ${jetty.version}
diff --git a/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-start-distro-mojo-it/jetty-simple-webapp/pom.xml b/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-start-distro-mojo-it/jetty-simple-webapp/pom.xml
index 77e4ee370ca..5a162c96114 100644
--- a/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-start-distro-mojo-it/jetty-simple-webapp/pom.xml
+++ b/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-start-distro-mojo-it/jetty-simple-webapp/pom.xml
@@ -113,14 +113,15 @@
${basedir}/src/base
- ${java.home}/bin/java
true
${jetty.port.file}
0
+ @localRepoPath@
ee10-apache-jsp,ee10-glassfish-jstl,ee10-testmod,resources
--debug
+ @jettyHomeZip@
diff --git a/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-start-war-distro-mojo-it/jetty-simple-webapp/pom.xml b/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-start-war-distro-mojo-it/jetty-simple-webapp/pom.xml
index ba295d5a849..1051612dd51 100644
--- a/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-start-war-distro-mojo-it/jetty-simple-webapp/pom.xml
+++ b/jetty-ee10/jetty-ee10-maven-plugin/src/it/jetty-start-war-distro-mojo-it/jetty-simple-webapp/pom.xml
@@ -136,6 +136,7 @@
${jetty.port.file}
0
+ @jettyHomeZip@
ee10-apache-jsp,ee10-glassfish-jstl,ee10-testmod,resources
diff --git a/jetty-ee10/jetty-ee10-maven-plugin/src/it/settings.xml b/jetty-ee10/jetty-ee10-maven-plugin/src/it/settings.xml
index d64bdb89034..e62d9bab8b8 100644
--- a/jetty-ee10/jetty-ee10-maven-plugin/src/it/settings.xml
+++ b/jetty-ee10/jetty-ee10-maven-plugin/src/it/settings.xml
@@ -1,6 +1,7 @@
+ @localRepoPath@
it-repo
diff --git a/jetty-ee10/jetty-ee10-maven-plugin/src/main/java/org/eclipse/jetty/ee10/maven/plugin/AbstractWebAppMojo.java b/jetty-ee10/jetty-ee10-maven-plugin/src/main/java/org/eclipse/jetty/ee10/maven/plugin/AbstractWebAppMojo.java
index 7f44a2bafda..0ad51181b20 100644
--- a/jetty-ee10/jetty-ee10-maven-plugin/src/main/java/org/eclipse/jetty/ee10/maven/plugin/AbstractWebAppMojo.java
+++ b/jetty-ee10/jetty-ee10-maven-plugin/src/main/java/org/eclipse/jetty/ee10/maven/plugin/AbstractWebAppMojo.java
@@ -306,6 +306,12 @@ public abstract class AbstractWebAppMojo extends AbstractMojo
*/
@Parameter
protected File jettyHome;
+
+ /**
+ * Location of Jetty home zipped
+ */
+ @Parameter
+ public File jettyHomeZip;
/**
* Location of jetty base directory
@@ -555,7 +561,7 @@ public abstract class AbstractWebAppMojo extends AbstractMojo
jetty.setContextXml(contextXml);
if (jettyHome == null)
- jetty.setJettyHomeZip(mavenProjectHelper.resolveArtifact(JETTY_HOME_GROUPID, JETTY_HOME_ARTIFACTID, plugin.getVersion(), "zip"));
+ jetty.setJettyHomeZip(jettyHomeZip != null ? jettyHomeZip : mavenProjectHelper.resolveArtifact(JETTY_HOME_GROUPID, JETTY_HOME_ARTIFACTID, plugin.getVersion(), "zip"));
jetty.version = plugin.getVersion();
jetty.setJettyHome(jettyHome);
diff --git a/jetty-ee10/jetty-ee10-maven-plugin/src/main/java/org/eclipse/jetty/ee10/maven/plugin/JettyHomeForker.java b/jetty-ee10/jetty-ee10-maven-plugin/src/main/java/org/eclipse/jetty/ee10/maven/plugin/JettyHomeForker.java
index f6bb7d37077..2d988f8a21b 100644
--- a/jetty-ee10/jetty-ee10-maven-plugin/src/main/java/org/eclipse/jetty/ee10/maven/plugin/JettyHomeForker.java
+++ b/jetty-ee10/jetty-ee10-maven-plugin/src/main/java/org/eclipse/jetty/ee10/maven/plugin/JettyHomeForker.java
@@ -186,7 +186,7 @@ public class JettyHomeForker extends AbstractForker
//add any args to the jvm
if (StringUtil.isNotBlank(jvmArgs))
{
- Arrays.stream(jvmArgs.split(" ")).filter(a -> StringUtil.isNotBlank(a)).forEach((a) -> cmd.add(a.trim()));
+ Arrays.stream(jvmArgs.split(" ")).filter(StringUtil::isNotBlank).forEach((a) -> cmd.add(a.trim()));
}
cmd.add("-jar");
@@ -225,7 +225,7 @@ public class JettyHomeForker extends AbstractForker
//put any other jetty options onto the command line
if (StringUtil.isNotBlank(jettyOptions))
{
- Arrays.stream(jettyOptions.split(" ")).filter(a -> StringUtil.isNotBlank(a)).forEach((a) -> cmd.add(a.trim()));
+ Arrays.stream(jettyOptions.split(" ")).filter(StringUtil::isNotBlank).forEach((a) -> cmd.add(a.trim()));
}
//put any jetty properties onto the command line
diff --git a/jetty-ee10/jetty-ee10-osgi/test-jetty-ee10-osgi/pom.xml b/jetty-ee10/jetty-ee10-osgi/test-jetty-ee10-osgi/pom.xml
index bbe6c7128e2..d773a524db6 100644
--- a/jetty-ee10/jetty-ee10-osgi/test-jetty-ee10-osgi/pom.xml
+++ b/jetty-ee10/jetty-ee10-osgi/test-jetty-ee10-osgi/pom.xml
@@ -387,6 +387,13 @@
webbundle
test
+
+ org.eclipse.jetty.ee10.demos
+ jetty-ee10-demo-jetty-webapp
+ ${project.version}
+ war
+ test
+
org.eclipse.jetty.ee10.demos
jetty-ee10-demo-jetty-webapp
@@ -505,7 +512,7 @@
${skipTests}
- ${settings.localRepository}
+ ${session.repositorySession.localRepository.basedir.absolutePath}
${env.GLOBAL_MVN_SETTINGS}
-Dconscrypt-version=${conscrypt.version}
diff --git a/jetty-ee8/jetty-ee8-jspc-maven-plugin/pom.xml b/jetty-ee8/jetty-ee8-jspc-maven-plugin/pom.xml
index 5119e9ebb46..516fe2ee4c2 100644
--- a/jetty-ee8/jetty-ee8-jspc-maven-plugin/pom.xml
+++ b/jetty-ee8/jetty-ee8-jspc-maven-plugin/pom.xml
@@ -45,8 +45,6 @@
- true
- true
${maven.surefire.plugin.version}
diff --git a/jetty-ee8/jetty-ee8-maven-plugin/pom.xml b/jetty-ee8/jetty-ee8-maven-plugin/pom.xml
index 32e16d99fed..5dde5f34f13 100644
--- a/jetty-ee8/jetty-ee8-maven-plugin/pom.xml
+++ b/jetty-ee8/jetty-ee8-maven-plugin/pom.xml
@@ -102,8 +102,6 @@
org.eclipse.jetty.maven.its.ee8
- true
- true
it-parent-pom/pom.xml
diff --git a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/pom.xml b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/pom.xml
index 074c99d950a..db79f9da41d 100644
--- a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/pom.xml
+++ b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/pom.xml
@@ -126,18 +126,36 @@
test
-->
+
+ org.eclipse.jetty.ee9.demos
+ jetty-ee9-demo-jndi-webapp
+ ${project.version}
+ war
+
org.eclipse.jetty.ee9.demos
jetty-ee9-demo-jsp-webapp
${project.version}
war
+
+ org.eclipse.jetty.ee9.demos
+ jetty-ee9-demo-simple-webapp
+ ${project.version}
+ war
+
org.eclipse.jetty.ee9.demos
jetty-ee9-demo-spec-webapp
${project.version}
war
+
+ org.eclipse.jetty.ee9.demos
+ jetty-ee9-demo-async-rest-webapp
+ ${project.version}
+ war
+
@@ -146,8 +164,12 @@
maven-surefire-plugin
- ${settings.localRepository}
+ ${project.version}
+
+ ${session.repositorySession.localRepository.basedir.absolutePath}
+ ${project.version}
+
false
diff --git a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/JettyDemos.java b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/JettyDemos.java
index 617cf1ac2b1..4f6509923b7 100644
--- a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/JettyDemos.java
+++ b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/JettyDemos.java
@@ -34,7 +34,7 @@ public class JettyDemos
{
private static final Logger LOG = LoggerFactory.getLogger(JettyDemos.class);
private static final Path JETTY_DEMOS_DIR;
- private static final String VERSION;
+ private static String VERSION = System.getProperty("jettyVersion", "unknown");
static
{
@@ -71,29 +71,27 @@ public class JettyDemos
LOG.warn("Unable to resolve Jetty Demos location", th);
}
}
-
JETTY_DEMOS_DIR = demosDir;
-
String version = "unknown";
- Path pomFile = demosDir.resolve("pom.xml");
- try (Stream lineStream = Files.lines(pomFile))
+ if (version.equals(VERSION))
{
- String versionLine = lineStream
- .filter((line) -> line.contains(""))
- .findFirst()
- .orElseThrow(() ->
- {
- throw new RuntimeException("Unable to find in " + pomFile);
- });
+ Path pomFile = demosDir.resolve("pom.xml");
+ try (Stream lineStream = Files.lines(pomFile))
+ {
+ String versionLine = lineStream
+ .filter((line) -> line.contains(""))
+ .findFirst()
+ .orElseThrow(() -> new RuntimeException("Unable to find in " + pomFile));
- version = versionLine.replaceAll("<[^>]*>", "").trim();
- }
- catch (IOException e)
- {
- LOG.warn("Unable to find in " + pomFile, e);
- }
+ version = versionLine.replaceAll("<[^>]*>", "").trim();
+ }
+ catch (IOException e)
+ {
+ LOG.warn("Unable to find in " + pomFile, e);
+ }
- VERSION = version;
+ VERSION = version;
+ }
}
private static Path asDirectory(String path)
@@ -141,6 +139,33 @@ public class JettyDemos
return JETTY_DEMOS_DIR;
}
+ public static Path find(String path, MavenCoordinate mavenCoordinate) throws FileNotFoundException
+ {
+ try
+ {
+ return find(path);
+ }
+ catch (FileNotFoundException e)
+ {
+ //could be not in the target directory if restored from build cache
+ // but as the build always runs install the artifact should be there in local repository
+ }
+ //.repository/org/eclipse/jetty/ee9/demos/jetty-ee9-demo-jndi-webapp/12.0.0-SNAPSHOT/jetty-ee9-demo-jndi-webapp-12.0.0-SNAPSHOT.war
+ String version = mavenCoordinate.version().isEmpty() ? VERSION : mavenCoordinate.version();
+ Path result = Paths.get(System.getProperty("mavenRepoPath", System.getProperty("user.home") + "/.m2/repository"),
+ mavenCoordinate.groupId().replaceAll("\\.", "/"),
+ mavenCoordinate.artifactId(),
+ version,
+ mavenCoordinate.artifactId() + "-" + version + "." + mavenCoordinate.packaging()
+ );
+ if (!Files.exists(result))
+ {
+ throw new FileNotFoundException(result.toString());
+ }
+ return result;
+ }
+
+ @Deprecated
public static Path find(String path) throws FileNotFoundException
{
String expandedPath = path.replaceAll("@VER@", VERSION);
@@ -152,8 +177,11 @@ public class JettyDemos
return result;
}
+ public record MavenCoordinate(String groupId, String artifactId, String version, String packaging){}
+
public static void main(String... arg)
{
System.err.println("Jetty Demos Dir is " + JETTY_DEMOS_DIR);
}
}
+
diff --git a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/OneWebApp.java b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/OneWebApp.java
index c4a7d003469..bf975d2e0e3 100644
--- a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/OneWebApp.java
+++ b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/OneWebApp.java
@@ -39,7 +39,9 @@ public class OneWebApp
// PlusConfiguration) to choosing where the webapp will unpack itself.
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
- Path warFile = JettyDemos.find("jetty-ee9-demo-async-rest/jetty-ee9-demo-async-rest-webapp/target/jetty-ee9-demo-async-rest-webapp-@VER@.war");
+ JettyDemos.MavenCoordinate mavenCoordinate = new JettyDemos.MavenCoordinate("org.eclipse.jetty.ee9.demos",
+ "jetty-ee9-demo-async-rest-webapp", "", "war");
+ Path warFile = JettyDemos.find("jetty-ee9-demo-async-rest/jetty-ee9-demo-async-rest-webapp/target/jetty-ee9-demo-async-rest-webapp-@VER@.war", mavenCoordinate);
webapp.setWar(warFile.toString());
// A WebAppContext is a ContextHandler as well so it needs to be set to
diff --git a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/OneWebAppWithJsp.java b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/OneWebAppWithJsp.java
index 6d07e858459..d10b9b57552 100644
--- a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/OneWebAppWithJsp.java
+++ b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/OneWebAppWithJsp.java
@@ -44,7 +44,9 @@ public class OneWebAppWithJsp
// the webapp will unpack itself.
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
- Path warFile = JettyDemos.find("jetty-ee9-demo-jsp-webapp/target/jetty-ee9-demo-jsp-webapp-@VER@.war");
+ JettyDemos.MavenCoordinate mavenCoordinate = new JettyDemos.MavenCoordinate("org.eclipse.jetty.ee9.demos",
+ "jetty-ee9-demo-jsp-webapp", "", "war");
+ Path warFile = JettyDemos.find("jetty-ee9-demo-jsp-webapp/target/jetty-ee9-demo-jsp-webapp-@VER@.war", mavenCoordinate);
webapp.setWarResource(webapp.getResourceFactory().newResource(warFile));
webapp.setExtractWAR(true);
diff --git a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/ServerWithAnnotations.java b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/ServerWithAnnotations.java
index f8041369f3e..e7815e8204a 100644
--- a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/ServerWithAnnotations.java
+++ b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/ServerWithAnnotations.java
@@ -45,7 +45,9 @@ public class ServerWithAnnotations
webapp.addConfiguration(new EnvConfiguration(), new PlusConfiguration(), new AnnotationConfiguration());
webapp.setContextPath("/");
- Path warFile = JettyDemos.find("jetty-ee9-demo-spec/jetty-ee9-demo-spec-webapp/target/jetty-ee9-demo-spec-webapp-@VER@.war");
+ JettyDemos.MavenCoordinate mavenCoordinate = new JettyDemos.MavenCoordinate("org.eclipse.jetty.ee9.demos",
+ "jetty-ee9-demo-spec-webapp", "", "war");
+ Path warFile = JettyDemos.find("jetty-ee9-demo-spec/jetty-ee9-demo-spec-webapp/target/jetty-ee9-demo-spec-webapp-@VER@.war", mavenCoordinate);
webapp.setWar(warFile.toString());
webapp.setAttribute(
diff --git a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/ServerWithJNDI.java b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/ServerWithJNDI.java
index 986da43f571..0232eac7ab1 100644
--- a/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/ServerWithJNDI.java
+++ b/jetty-ee9/jetty-ee9-demos/jetty-ee9-demo-embedded/src/main/java/org/eclipse/jetty/ee9/demos/ServerWithJNDI.java
@@ -35,7 +35,9 @@ public class ServerWithJNDI
// Create a WebApp
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
- Path testJndiWar = JettyDemos.find("jetty-ee9-demo-jndi-webapp/target/jetty-ee9-demo-jndi-webapp-@VER@.war");
+ JettyDemos.MavenCoordinate mavenCoordinate = new JettyDemos.MavenCoordinate("org.eclipse.jetty.ee9.demos",
+ "jetty-ee9-demo-jndi-webapp", "", "war");
+ Path testJndiWar = JettyDemos.find("jetty-ee9-demo-jndi-webapp/target/jetty-ee9-demo-jndi-webapp-@VER@.war", mavenCoordinate);
webapp.setWarResource(webapp.getResourceFactory().newResource(testJndiWar));
server.setHandler(webapp);
diff --git a/jetty-ee9/jetty-ee9-jspc-maven-plugin/pom.xml b/jetty-ee9/jetty-ee9-jspc-maven-plugin/pom.xml
index 61c78aceb4d..d64fc4ec987 100644
--- a/jetty-ee9/jetty-ee9-jspc-maven-plugin/pom.xml
+++ b/jetty-ee9/jetty-ee9-jspc-maven-plugin/pom.xml
@@ -44,8 +44,6 @@
- true
- true
${maven.surefire.plugin.version}
diff --git a/jetty-ee9/jetty-ee9-maven-plugin/pom.xml b/jetty-ee9/jetty-ee9-maven-plugin/pom.xml
index 7d03afae271..02d637a41e9 100644
--- a/jetty-ee9/jetty-ee9-maven-plugin/pom.xml
+++ b/jetty-ee9/jetty-ee9-maven-plugin/pom.xml
@@ -75,6 +75,33 @@
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy
+ package
+
+ copy
+
+
+
+
+
+
+ org.eclipse.jetty
+ jetty-home
+ zip
+ false
+ ${project.build.directory}
+ ${jettyHomeZipFileName}
+
+
+ false
+ true
+
+
org.apache.maven.plugins
maven-jar-plugin
@@ -102,8 +129,6 @@
org.eclipse.jetty.maven.its.ee9
- true
- true
it-parent-pom/pom.xml
@@ -122,8 +147,9 @@
${jetty.stopPort}
${maven.surefire.plugin.version}
${jetty.servlet.api.version}
+ ${localRepoPath}
+ ${jettyHomeZip}
- src/it/settings.xml
clean
diff --git a/jetty-ee9/jetty-ee9-maven-plugin/src/main/java/org/eclipse/jetty/ee9/maven/plugin/AbstractWebAppMojo.java b/jetty-ee9/jetty-ee9-maven-plugin/src/main/java/org/eclipse/jetty/ee9/maven/plugin/AbstractWebAppMojo.java
index 50a63aa961e..7feba59cf10 100644
--- a/jetty-ee9/jetty-ee9-maven-plugin/src/main/java/org/eclipse/jetty/ee9/maven/plugin/AbstractWebAppMojo.java
+++ b/jetty-ee9/jetty-ee9-maven-plugin/src/main/java/org/eclipse/jetty/ee9/maven/plugin/AbstractWebAppMojo.java
@@ -305,6 +305,12 @@ public abstract class AbstractWebAppMojo extends AbstractMojo
*/
@Parameter
protected File jettyHome;
+
+ /**
+ * Location of Jetty home zipped
+ */
+ @Parameter
+ public File jettyHomeZip;
/**
* Location of jetty base directory
@@ -554,7 +560,7 @@ public abstract class AbstractWebAppMojo extends AbstractMojo
jetty.setContextXml(contextXml);
if (jettyHome == null)
- jetty.setJettyHomeZip(mavenProjectHelper.resolveArtifact(JETTY_HOME_GROUPID, JETTY_HOME_ARTIFACTID, plugin.getVersion(), "zip"));
+ jetty.setJettyHomeZip(jettyHomeZip != null ? jettyHomeZip : mavenProjectHelper.resolveArtifact(JETTY_HOME_GROUPID, JETTY_HOME_ARTIFACTID, plugin.getVersion(), "zip"));
jetty.version = plugin.getVersion();
jetty.setJettyHome(jettyHome);
diff --git a/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/pom.xml b/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/pom.xml
index bb2abca370a..f2ac5dc055c 100644
--- a/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/pom.xml
+++ b/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/pom.xml
@@ -383,6 +383,13 @@
webbundle
test
+
+ org.eclipse.jetty.ee9.demos
+ jetty-ee9-demo-jetty-webapp
+ ${project.version}
+ war
+ test
+
org.eclipse.jetty.ee9.demos
jetty-ee9-demo-jetty-webapp
@@ -501,7 +508,7 @@
${skipTests}
- ${settings.localRepository}
+ ${session.repositorySession.localRepository.basedir.absolutePath}
${env.GLOBAL_MVN_SETTINGS}
-Dconscrypt-version=${conscrypt.version}
diff --git a/pom.xml b/pom.xml
index 3525735c5c6..25d04f5629a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -107,6 +107,7 @@
3.1.4
10.3.6
3.9.0
+ 1.0.1
0.13.1
1.9.15
3.9.0
@@ -191,6 +192,8 @@
false
false
${project.build.directory}/local-repo
+ jetty-home.zip
+ ${project.build.directory}/${jettyHomeZipFileName}
-Dfile.encoding=UTF-8 -Duser.language=en -Duser.region=US -Djava.io.tmpdir=${project.build.directory} -showversion -Xmx6g -Xms4g -Xlog:gc:stderr:time,level,tags
true
/tmp
@@ -201,6 +204,8 @@
11.0.14.Final
+
+ 2023-06-05T23:12:49Z
@@ -235,6 +240,13 @@
+
+
+ org.apache.maven.extensions
+ maven-build-cache-extension
+ ${maven-build-cache.version}
+
+
org.apache.maven.plugins
@@ -275,8 +287,8 @@
- [3.8.4,)
- [ERROR] OLD MAVEN [${maven.version}] in use, Jetty ${project.version} requires Maven 3.8.4 or newer
+ [3.9.2,)
+ [ERROR] OLD MAVEN [${maven.version}] in use, Jetty ${project.version} requires Maven 3.9.2 or newer
[17,)
@@ -613,6 +625,7 @@
maven-invoker-plugin
${maven.invoker.plugin.version}
+ true
${invoker.mergeUserSettings}
true
org.eclipse.jetty.maven.its
@@ -626,8 +639,8 @@
${project.build.directory}/it
${localRepoPath}
${settingsPath}
- true
${skipTests}
+ true
*/pom.xml
@@ -2041,7 +2054,6 @@
ci
0
- ${env.GLOBAL_MVN_SETTINGS}
false
Medium
@@ -2049,7 +2061,8 @@
Default
false
org.eclipse.jetty.*
-
+
+ https://repo.maven.apache.org/maven2/
120
@@ -2081,6 +2094,18 @@
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+
+ package
+
+ jar
+
+
+
+
com.github.spotbugs
spotbugs-maven-plugin
diff --git a/tests/test-distribution/pom.xml b/tests/test-distribution/pom.xml
index f1278138273..6ff5b5bef90 100644
--- a/tests/test-distribution/pom.xml
+++ b/tests/test-distribution/pom.xml
@@ -103,7 +103,7 @@
maven-surefire-plugin
- ${settings.localRepository}
+ ${session.repositorySession.localRepository.basedir.absolutePath}
${project.version}
${hazelcast.version}
${mariadb.docker.version}