-
New Feature
-
Resolution: Fixed
-
Major
-
Powered by SuggestiMate
This issue is a trial balloon to see how people think of us moving to Servlet 3.0 as the minimum requirement for Jenkins to improve user experience.
If you have thoughts about this (including arguments against this), please make your case as a comment, so that we can make an informed decision.
[JENKINS-23378] Raise minimum requirement to servlet 3.1
I think this is fine and we should just go on with this.
If someone has an issue with this, then he does not have to update to the latest version until he is ready.
In general I think the level of compatibility we try to fulfil with jenkins is not healthy for the project anymore...
I've been trying to get the support guys to upgrade our Jenkins env to tomcat7 for a while now, but we keep backing down to tomcat6 as soon as instabilities arise.
So I'm for this change as it would force us to actually take the leap
+1 for the Switch. Guys using tomcat6 should be able to move to tomcat7.
Upgrading to Servlet 3.0 is a great idea, especially if only the 3% user base will be impacted.
The only thing to have in consideration is that without servlet 3.1 Jenkins won't be able to use WebSockets or Server-Side Events, as both require non-blocking IO and HTTP protocol upgrade, features available from Servlet 3.1.
All the libraries that I know that promise comet-style communication for Servlet < 3.1 use long polling, or open a special port for the WebSocket connection.
I'm changing this to Servlet 3.1. See this post for an overview of what's new in servlet 3.1. Among other things it support NIO.
Tomcat 8 is the first release to support 3.1 (initial release mid 2014).
Jetty 9.1 is required for 3.1, which will require updating Winstone-Jetty (which is based on 8.1 with Servlet 3.0 support only).
WebSphere may only support Servlet 3.1 in its current 9 beta release?
May be interesting to repeat the experience used to gather the data for the spreadsheet linked from http://jenkins-ci.org/content/thinking-about-moving-servlet-30 for Servlet 3.1. The spec is only two and a half years old, rather than 3.0's five when this issue was opened (now 6.5 years).
Proposed change to Winstone at https://github.com/jenkinsci/winstone/pull/22
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
war/pom.xml
http://jenkins-ci.org/commit/jenkins/27e161587b859b01e56c65603dba893c404b9d00
Log:
JENKINS-23378 integrate Winstone 3.x that brings Servlet 3.1
executable-war module was also adjusted to keep up with the winstone
change.
I've updated maven-hudson-dev-plugin to Jetty 9.2 as well, and the corresponding change to the 2.0 branch is going through the pipeline. The remaining work at this point is:
- Update maven-hpi-plugin
- Update web.xml
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
pom.xml
war/pom.xml
http://jenkins-ci.org/commit/jenkins/2b90f1c6cbd9fe9779a5e94b96f503fef5a08308
Log:
JENKINS-23378 new version of hudson-dev plugin that supports Servlet 3.1
I had to disable annotation scanning or else it adds too much overhead
to the startup time.
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
pom.xml
http://jenkins-ci.org/commit/jenkins/da91c95ff08533effd602d7c55556e026ca10031
Log:
JENKINS-23378 maven-hpi-plugin that supports servlet 3.1
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
core/pom.xml
core/src/main/java/hudson/WebAppMain.java
war/src/main/webapp/WEB-INF/web.xml
http://jenkins-ci.org/commit/jenkins/8713646a47b964f9b25d6eb1f7ee610cc5686404
Log:
JENKINS-23378 Servlet 3.1
Start declaring servlet 3.1 dependency
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
pom.xml
src/main/java/org/jenkinsci/maven/plugins/hpi/AbstractJettyMojo.java
src/main/java/org/jenkinsci/maven/plugins/hpi/ConsoleScanner.java
src/main/java/org/jenkinsci/maven/plugins/hpi/RunMojo.java
http://jenkins-ci.org/commit/maven-hpi-plugin/a91d455c77093335fae1baf6a8bfb1a54a2a1f04
Log:
Merge pull request #28 from jenkinsci/jetty9.2
JENKINS-23378 update to Jetty9.2
Compare: https://github.com/jenkinsci/maven-hpi-plugin/compare/01181f07e3e9...a91d455c7709
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
pom.xml
src/main/java/org/jvnet/hudson/test/HudsonTestCase.java
src/main/java/org/jvnet/hudson/test/JavaNetReverseProxy.java
src/main/java/org/jvnet/hudson/test/JenkinsRule.java
src/main/java/org/jvnet/hudson/test/NoListenerConfiguration.java
src/main/java/org/jvnet/hudson/test/ThreadPoolImpl.java
http://jenkins-ci.org/commit/jenkins-test-harness/eec94edfe6a4708ebb3ea068d94d7a8e6f37996e
Log:
JENKINS-23378 Servlet 3.1 support
Test harness now runs with Jetty 9.2
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
pom.xml
src/main/java/org/jvnet/hudson/test/HudsonTestCase.java
src/main/java/org/jvnet/hudson/test/JavaNetReverseProxy.java
src/main/java/org/jvnet/hudson/test/JenkinsRule.java
src/main/java/org/jvnet/hudson/test/NoListenerConfiguration.java
src/main/java/org/jvnet/hudson/test/ThreadPoolImpl.java
http://jenkins-ci.org/commit/jenkins-test-harness/f8efd0032cda8584aafd6fc435fd7bb8e61df8c6
Log:
Merge pull request #12 from jenkinsci/jetty9.2
JENKINS-23378 Servlet 3.1 support
Compare: https://github.com/jenkinsci/jenkins-test-harness/compare/5681958948c3...f8efd0032cda
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
war/src/main/webapp/WEB-INF/web.xml
http://jenkins-ci.org/commit/jenkins/76c4c121a3b5fdeec9138ac463a33df911c378e5
Log:
JENKINS-23378 accept any user with any role
not just those who have one of the roles defined in this web.xml
The special role name $B!H (B* $B!I (B is a shorthand for all role names
defined in the deployment descriptor. The special role name $B!H (B** $B!I (B is a
shorthand for any authenticated user independent of role. When
the special role name $B!H (B** $B!I (B appears in an authorization constraint,
it indicates that any authenticated user, independent
of role, is authorized to perform the constrained requests.
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
changelog.html
core/pom.xml
core/src/main/java/hudson/WebAppMain.java
core/src/main/java/hudson/cli/CLIAction.java
core/src/main/java/hudson/model/AsyncAperiodicWork.java
core/src/main/java/hudson/model/AsyncPeriodicWork.java
core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java
core/src/main/java/hudson/util/StreamTaskListener.java
core/src/main/java/hudson/util/XStream2.java
core/src/main/java/jenkins/security/ApiTokenProperty.java
core/src/main/resources/hudson/ProxyConfiguration/help-name.html
core/src/main/resources/hudson/ProxyConfiguration/help-name_de.html
core/src/main/resources/hudson/ProxyConfiguration/help-name_fr.html
core/src/main/resources/hudson/ProxyConfiguration/help-name_tr.html
core/src/main/resources/hudson/model/Messages_pl.properties
core/src/main/resources/hudson/model/View/AsynchPeople/index_pl.properties
core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html
pom.xml
test/pom.xml
test/src/test/java/hudson/model/ComputerConfigDotXmlTest.java
test/src/test/java/hudson/model/QueueTest.java
test/src/test/java/hudson/model/UpdateSiteTest.java
test/src/test/java/hudson/util/XStream2Security247Test.java
test/src/test/java/jenkins/security/Security232Test.java
test/src/test/resources/hudson/util/XStream2Security247Test/config.xml
war/src/main/webapp/WEB-INF/web.xml
http://jenkins-ci.org/commit/jenkins/08a8f1472205d33f742cf2e3a4f27b3c49e69f06
Log:
Merge pull request #2063 from jenkinsci/JENKINS-23378
[FIXED JENKINS-23378] Servlet 3.1
Compare: https://github.com/jenkinsci/jenkins/compare/796b82461b90...08a8f1472205
See http://jenkins-ci.org/content/thinking-about-moving-servlet-30 for the context.