Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement servlet upgrade for ee10 #10128

Open
wants to merge 15 commits into
base: jetty-12.0.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 3 additions & 6 deletions .github/ISSUE_TEMPLATE/release-template.md
lachlan-roberts marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,11 @@ This release process will produce releases:
+ [ ] Create and use branches `release/<ver>` to perform version specific release work from.
+ [ ] Ensure `VERSION.txt` additions for each release will be meaningful, descriptive, correct text.
+ [ ] Stage 9.4 release with Java 11.
+ [ ] Stage 10 release with Java 19.
+ [ ] Stage 11 release with Java 19.
+ [ ] Stage 10 release with Java 21.
+ [ ] Stage 11 release with Java 21.
+ [ ] Push release branches `release/<ver>` to to https://github.com/eclipse/jetty.project
+ [ ] Push release tags `jetty-<ver>` to https://github.com/eclipse/jetty.project
+ [ ] Edit a draft release (for each Jetty release) in GitHub (https://github.com/eclipse/jetty.project/releases). Content is generated with the "changelog tool".
Be mindful of the order you create multiple release drafts. The first one created will be the "oldest" when published. (eg: Draft is 9, then 10, then 11)
The last created "draft" will show up as "latest" in the github UI.
If you have to reroll, you'll have to delete the drafts and recreate them (especially so if 9 w/timestamp is in the mix of releases being worked on)
- [ ] Assign issue to "test manager", who will oversee the testing of the staged releases.
+ [ ] Test [CometD](https://github.com/cometd/cometd).
+ [ ] Test [Reactive HttpClient](https://github.com/jetty-project/jetty-reactive-httpclient).
Expand All @@ -58,7 +55,7 @@ This release process will produce releases:
- [ ] Update Jetty versions on the website ( follow instructions in [jetty-website](https://github.com/eclipse/jetty-website/blob/master/README.md) ).
+ [ ] Update (or check) [Download](https://eclipse.dev/jetty/download.php) page is updated.
+ [ ] Update (or check) documentation page(s) are updated.
- [ ] Publish GitHub Releases in the order of oldest (eg: 9) to newest (eg: 11) (to ensure that "latest" in github is truly the latest)
- [ ] Publish GitHub Releases.
- [ ] Prepare release announcement for mailing lists.
- [ ] Publish any [security advisories](https://github.com/eclipse/jetty.project/security/advisories).
+ [ ] Edit `VERSION.txt` to include any actual CVE number next to correspondent issue.
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,17 +71,17 @@ jobs:
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

- name: Set up Maven
uses: stCarolas/setup-maven@v4.5
with:
maven-version: 3.8.6

- 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
env:
MAVEN_OPTS: "-Djava.awt.headless=true -client -Xmx4G -Xms4G"
run:
./mvnw clean install -DskipTests -B -V


# ℹ️ 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
Expand Down
2 changes: 2 additions & 0 deletions .mvn/jvm.config
Original file line number Diff line number Diff line change
Expand Up @@ -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

103 changes: 103 additions & 0 deletions .mvn/maven-build-cache-config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
<cache xmlns="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.0 https://maven.apache.org/xsd/build-cache-config-1.0.0.xsd">
<configuration>
<hashAlgorithm>XXMM</hashAlgorithm>
<enabled>true</enabled>
<!-- activated via cli -->
<!-- to disable it just use -Dmaven.build.cache.enabled=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
-->
<!-- <remote enabled="true" saveToRemote="true" id="remote-build-cache-server">-->
<!-- <url>dav:http://nginx-cache-service.jenkins.svc.cluster.local:80</url>-->
<!-- </remote>-->
<multiModule>
<discovery>
<scanProfiles>
<scanProfile>ci</scanProfile>
</scanProfiles>
</discovery>
</multiModule>
</configuration>
<input>
<global>
<glob>*.{java,xml,properties,mod,adoc}</glob>
</global>
<plugins>
<plugin groupId="org.apache.maven.plugins" artifactId="maven-invoker-plugin">
<effectivePom>
<excludeProperties>
<excludeProperty>scriptVariables</excludeProperty>
<excludeProperty>settingsFile</excludeProperty>
<excludeProperty>filterProperties</excludeProperty>
</excludeProperties>
</effectivePom>
</plugin>
<plugin groupId="org.apache.maven.plugins" artifactId="maven-surefire-plugin">
<effectivePom>
<excludeProperties>
<excludeProperty>systemPropertyVariables</excludeProperty>
</excludeProperties>
</effectivePom>
</plugin>
<plugin artifactId="asciidoctor-maven-plugin" groupId="org.asciidoctor">
<effectivePom>
<excludeProperties>
<excludeProperty>attributes</excludeProperty>
</excludeProperties>
</effectivePom>
</plugin>
</plugins>
</input>
<executionControl>
<runAlways>
<goalsLists>
<goalsList artifactId="maven-install-plugin">
<goals>
<goal>install</goal>
</goals>
</goalsList>
<goalsList artifactId="maven-deploy-plugin">
<goals>
<goal>deploy</goal>
</goals>
</goalsList>
</goalsLists>
</runAlways>
<reconcile>
<plugins>
<!-- workaround for https://issues.apache.org/jira/browse/MBUILDCACHE-56 -->
<plugin artifactId="maven-enforcer-plugin" goal="enforce">
<nologs>
<nolog propertyName="commandLineRules"/>
</nologs>
</plugin>
<plugin artifactId="maven-invoker-plugin" goal="integration-test">
<nologs>
<nolog propertyName="scriptVariables"/>
<nolog propertyName="settingsFile"/>
<nolog propertyName="filterProperties"/>
</nologs>
</plugin>
<plugin artifactId="maven-surefire-plugin" goal="test">
<reconciles>
<reconcile propertyName="skip" skipValue="true"/>
<reconcile propertyName="skipExec" skipValue="true"/>
<reconcile propertyName="skipTests" skipValue="true"/>
<reconcile propertyName="testFailureIgnore" skipValue="true"/>
</reconciles>
<nologs>
<nolog propertyName="systemPropertyVariables"/>
</nologs>
</plugin>
<plugin artifactId="asciidoctor-maven-plugin" goal="process-asciidoc" groupId="org.asciidoctor">
<nologs>
<nolog propertyName="attributes"/>
</nologs>
</plugin>
</plugins>
</reconcile>
</executionControl>
</cache>

1 change: 1 addition & 0 deletions .mvn/maven.config
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
-Daether.dependencyCollector.impl=bf
43 changes: 37 additions & 6 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -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(), javaDoc()]
}
}
}
Expand All @@ -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: '' +
Expand All @@ -51,7 +51,7 @@ pipeline {
execPattern: '**/target/jacoco.exec',
classPattern: '**/target/classes',
sourcePattern: '**/src/main/java'
recordIssues id: "jdk17", name: "Static Analysis jdk17", aggregatingResults: true, enabledForFailure: true, tools: [mavenConsole(), java(), checkStyle(), errorProne(), spotBugs()]
recordIssues id: "jdk17", name: "Static Analysis jdk17", aggregatingResults: true, enabledForFailure: true, tools: [mavenConsole(), java(), checkStyle(), errorProne(), spotBugs(), javaDoc()]
}
}
}
Expand Down Expand Up @@ -104,9 +104,26 @@ 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 "
}
if (env.BRANCH_NAME ==~ /PR-\d+/) {
if (pullRequest.labels.contains("build-all-tests")) {
extraArgs = " -Dmaven.test.failure.ignore=true "
}
}
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"
}
}
}
Expand All @@ -117,4 +134,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
92 changes: 0 additions & 92 deletions Jenkinsfile-autobahn

This file was deleted.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
You are viewing a condensed version of this merge commit. You can view the full changes here.