Comments (16)
The New Relic report is pretty insightful:
https://newrelic.com/resources/report/2024-state-of-the-java-ecosystem
Two key points:
- 35% of applications are using Java 17, representing a nearly 300% growth rate in one year. It took years for Java 11 to reach anywhere near that level.
- Eclipse Adoptium rising in popularity amongst JDK vendors.
from selenium.
I don't think there is a specific improvment in 21 that could be helpful currently.
from selenium.
Why not going to 21 (also LTS) instead?
Everybody who needs to upgrade it's local JVM could install 21 instead of 17, so there is no overhead for them.
from selenium.
It is just easier to convince people to do the shorter jump.
I also had in mind the requirement to have at least Java 17 in autumn, at the beginning of winter. Even if Selenium 5 does not happen.
from selenium.
The only jump you have to convince people to, is to drop JDK 8. I would also vote for targeting the most recent LTS release.
from selenium.
https://www.selenium.dev/blog/2023/java-8-support/
Since 4.14, Java 11 is required.
from selenium.
That's what I mean π the biggest step was done.
from selenium.
Java 17 is EOL in September 2024
So it might make sense to jump to 21 which is how we do it for all the other languages
from selenium.
@diemol / @pujagani / @joerg1985
Do we know what code changes we would make if we could update to either 17 or 21?
If we don't have anything specific, it might make more sense to update more slowly. For Java 11 we had a specific need for the http client.
from selenium.
+1 to Titus and Diego's thought process. I don't know anything pressing that requires Java 21 right off the bat in our codebase. I am in favour of updating slowly since it is not a trivial task in many organizations/users due to various reasons based on what I have seen.
However, based on what I understand, Java 21 does have performance improvements. So might be a good idea to identify timelines for that too.
from selenium.
I'm seeing this as the "End of Public Updates" for Java 17:
September 2024 for Oracle[4]
October 2027 for Eclipse Temurin[13]
October 2027 for Red Hat[8]
October 2029 for Amazon Corretto[14]
September 2029 for Azul[11]
March 2030 for BellSoft Liberica[10]
If we don't have anything specific in mind to target Java 21, I think we should continue to support Java 17
from selenium.
In other languages we remove support for versions that are no longer "officially" supported.
What if we do "oracle LTS - 1"
So:
- Require Java 17 on September 2024
- Require Java 21 on September 2026
- Require Java 25 on September 2028
from selenium.
Ouch, if we require Java 17, that's over 60% of people right now where it wouldn't match their current dev environments, so we may want to be more conservative; especially if there isn't anything we need to upgrade for (like we did for Java 11).
If we use the Eclipse EOL dates that's:
- Require Java 17 on September 2027
- Require Java 21 on September 2029
- Require Java 25 on September 2031
Is that too conservative?
from selenium.
Jenkins went through 3 proposals and landed on supporting 2 LTS versions at any given time:
Therefore, the Jenkins project is adopting a 2 + 2 + 2 Java support plan, where Jenkins supports a new Java LTS release in the first two years after the general availability of that Java LTS release, then requires that Java LTS release as the Jenkins minimum Java version in the next two years of that Java LTS releaseβs upstream support, then drops support for that Java LTS release two years before that Java LTS release reaches end of life upstream.
In practice, this means that Jenkins will support a given Java LTS release for approximately two-thirds the amount of time that upstream Java vendors do, that Jenkins will support two Java LTS releases at any given time rather than three, and that large scale users can stay on a Java LTS release for four years at a time.
https://www.jenkins.io/blog/2023/11/06/introducing-2-2-2-java-support-plan/
I suspect differing needs of features however, with Selenium.
from selenium.
I think the base line is the support of the netty and the graphql dependencies. They are hard to replace and externally exposed by the server, so there must be support from a security point of view. Everything else could be somehow replaced. But i don't know the jdk support plan of them.
from selenium.
Wow, so Jenkins is being very aggressive.
Comparison of options:
Minimum Version | Oracle | Eclipse | Jenkins |
---|---|---|---|
Java 17 | September 2024 | September 2027 | September 2024 |
Java 21 | September 2026 | September 2029 | September 2025 |
Java 25 | September 2028 | September 2031 | September 2027 |
from selenium.
Related Issues (20)
- [π Bug]: NoSuchDriverException: Message: Unable to obtain driver for chrome HOT 5
- [π Bug]: Selenium return to previous page after driver.get HOT 1
- [π Bug]: Failed to initialize BiDi Mapper when starting Chrome with Profile HOT 5
- [π Bug]:org.openqa.selenium.NoSuchWindowException: Window is closed HOT 1
- [π Feature]: Drivers for ARM processors or offical work around HOT 4
- [π Bug]: Selenium Manager is encountering an issue with the setProxyAutoconfigUrl() method. HOT 2
- [π Bug]: CEF browser is not activating while switching to new window HOT 2
- [π Bug]: vertical size not matching HOT 2
- [π Bug]: [dotnet] Unable to use wrapped IWebElements from EventFiringWebDriver within Actions HOT 1
- [π Bug]: headless mode error of chrome 129 HOT 5
- [π Bug]: HOT 4
- [π Bug]: HTTP exception thrown HOT 2
- [π Bug]: Cannot open Chrome session with incognito mode along with Bidi CDP HOT 7
- [π Bug]: Tracing seems to be affected with the Selenium version org.seleniumhq.selenium:selenium-java:4.24.0 HOT 8
- [π Bug]: ava.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.service.DriverFinder.<init> HOT 1
- [π Bug]: inconsistent tagging for the release versions HOT 3
- [π Bug]: Text is considered as invisible when using native dialog inside a web component HOT 2
- [π Bug]: NoSuchElementException not thrown when using implicitly_wait in BrowserStack HOT 5
- [π Bug]: WARNING: Unable to find an exact match for CDP version 129, returning the closest version; found: 128; Please update to a Selenium version that supports CDP version 129 HOT 2
- [π Bug]: selenium safari with httpauthentication HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from selenium.