About the new Java release model @ Seki Java (2018/07/20)

Java release model has changed

At Seki Java '18 July New Release Model Related & JCP [Osaka], there was a session about the new Java release model, so I participated. It was. Regarding the Java release model, Good article has been uploaded in various ways, but I will summarize it as my memorandum.

New JDK release model commentary (Mr. Takashi Ito)

Material has been uploaded.

Free Java isn't gone!

So far

--Conventional (up to JDK8) source development by the OpenJDK community. No binary provided. Oracle was building and generating binaries. At this time, JavaFX, installer, etc. (outside Java standard specifications) were also packed at that time. The form of provision is JDK / JRE. The license is BCL (binary code license). Copying / distributing inside the company is OK, but copying / distributing outside the company is NG. --Actually, the libraries and tools (compiler, etc.) are the same. ――This was surprising. I thought it was completely different ... --Oracle carries out security updates four times a year and also includes bug fixes. --Since OpenJDK had its own update, it has not been released in perfect agreement with Oracle JDK.

Needs for JDK release

--Short-term version upgrade ――I want to use one version for a long time --Needs from user companies --Adaptation to IT trends and infrastructure evolution --Release with stable cycle --JDK9 has been postponed for about 2 years ... ―― 6 → 7 is 4 years and 7 months, 7 → 8 is 2 years and 8 months, 8 → 9 is 3 years and 6 months ――The longer the period, the more new functions will be installed. ―― 8-9 also has 91 functions (jigsaw, etc.) ... --Developer needs to release new features sooner

Java 9 or later adopts a solution to achieve both early release and long support

--Oracle offers two patterns of releases --Binaries as openJDK are provided free of charge --A binary containing only the installer is provided as an Oracle JDK. This is paid. --The only difference is the presence or absence of the installer. JFR / JMC, which was previously only available in Oracle JDK, will be included as an OpenJDK specification from JDK11. --OpenJDK released in 6 months, Oracle JDK released in 3 years --OpenJDK allows you to take advantage of new features faster --Oracle JDK supports fixed version needs (LTS) --Updates are applied in the same cycle. 4 times a year. Since security updates can be applied, OpenJDK is also available for commercial use. --About support --OpenJDK is free support from the community. --Oracle JDK is paid support by Oracle. However, it will be available free of charge for development, testing, trial production, etc. (planned). --It will be similar to WebLogic ――In the future, OracleJDK / OpenJDK will have a life cycle together, but OracleJDK will be provided with LTS (for update release) with 8 year support once every 3 years. --LTS will have a 5-year overlap. --Releases occur 6 times a year. --The upgrade release is fixed in March and September. New features are added. --Update release is fixed at 1,4,7,10. Targets are vulnerability countermeasures and bug FIX. No new features added. --Get release information from OpenJDK. --Deprecated / removed targets are listed in the release notes. --After being deprecated, it may be deleted in the next version upgrade at the earliest. Deprecated → There is a possibility that deletion will be completed in one year. --If you can't add the function in time, go to the next release.

What should be done

--Java 9 and 10 should not be used for commercial purposes. ――11 is LTS, so updating from 8 to 11 is recommended. 11 is support until September 2026. --If you miss 11, the commercial recommended version will skip up to 17LTS. --There is also a non-Oracle JDK option --Old JDK is still available. Both Oracle JDK / OpenJDK are available.

About the future JCP-Update of activity contents- (Naoko Hamamoto)

~~ It seems that this material has not been uploaded yet. However, I found Past Material online. I feel that the contents are almost the same. ~~ Material has been uploaded.

Join the JCP!

What is JCP?

What is JSR?

--Proposal of planning specifications. Over 380 so far. --JSR proceeds by voting. If it is less, it will be rejected.

What will happen from here

――We have been trying to make it transparent for several years and open our activities. --The minutes are open to the public. --The recording of the questionnaire to EC is also open to the public. --One EC. --Previously, SE / EE and ME were separated. --Efforts to increase the number of participants --Free membership added ――It is now possible to participate with an electronic signature instead of paper --Lower barriers to entry --Since Associate Seats has been added to EC, individual seats are secured. --Registration is in English. Japanese characters are garbled ... ――When registering, support in Japanese is also possible. --First, let's join from Associate! ――Until now, I wrote the specs first, but I proposed JSR387 so that it can be developed code first.

Q&A ――If you want to become a member, is there a review? --If you live in Japan, there is no examination -Is it mandatory to attend the monthly meeting? --Only EC is required to attend the meeting ――I want you to participate only in the annual election ――I want you to participate in the activities you want to participate in and freely support Java.

How to deal with Java version upgrade (Mr. Shin Tanimoto)

Material has been uploaded.

Follow the version upgrade as much as possible

Which version are you using?

--Java 9 is already EOL. ――One year ago: Java is slow. ――The slowness of the cycle could be a weak point. --Now: Java is moving too fast ――The life cycle has become faster ――When it comes to changing the Java life cycle, it's not the essence of paying or making it free, but it's important that the update speed is faster. ――Everyone in the world is confused! ――If the life cycle becomes faster, you can follow it, but it's not easy.

Why should i follow

--Response to security issues ――In the old days, you had to wait until it died, but recently the speed of attackers has increased. --A well-known vulnerability should not be left unattended. The patch should be applied immediately. -It is out of the question to wait until it withers. --Technical follow-up ――By continuing to update, you can follow modern. ――For that reason, it is necessary to work on microservices and test automation, which improves the target environment as a side effect. --Java is highly backward compatible, so it's unlikely that something will get stuck with the update. You can update with confidence. --There are some things like JavaFX that disappear ...

About update

--About retesting --There is no choice but to test. ――Security risks cannot be left unattended and must be done. ――Isn't it easier to secure a budget if you plan to add functions at the time of version upgrade? —— Test automation as much as possible to minimize manual testing. --Support for peripheral libraries and frameworks --Spring 1.x is not supported from Java 9. --When the Java version goes up, the library / FW must also follow. --Depending on the version of the library / FW, the version to be used may be automatically bound. --Since support for Java 9 or later is delayed for lombok, there are some patterns that cannot be mentioned. --Support for new grammar --A sense of unity --Automatic conversion with IDE? --Mixed old and new

Version upgrade strategy

--JDK options - OpenJDK - OracleJDK - AdoptOpenJDK --Providing an original built OpenJDK --Sponsored by IBM, Microsoft, etc. ―― LTS for 4 years --Red Hat JDK --OpenJDK built by Red Hat ――There is no official announcement, but it seems that a reasonable LTS will be provided

--Choice -① Follow the latest -② Follow LTS -③ Do not follow ――Until now, there were only options (2) and (3), but with this change in the release model, options (1) have increased. There was no negative impact, simply more options ――The actual route is ②, but I definitely want you to try ①

Summary

There was a person in our company who said "Java is over" ahead of the story that "Java will be charged". However, I have never received support in case of trouble (fortunately), and although I may not have paid for Java, it seems that I use Java on an expensive AP server for a fee. However, all you really need is vulnerability countermeasures. The conclusion is that there is no negative effect because the vulnerability countermeasures are provided for a fee or free of charge. However, if you want to use free Java, use AdoptOpenJDK instead of OpenJDK.

Recommended Posts

About the new Java release model @ Seki Java (2018/07/20)
About the current development environment (Java 8)
Guess about the 2017 Java Persistence Framework (3) Reladomo
About the procedure for java to work
I tried the new era in Java
About Java interface
[Java] About Java 12 features
About the confusion seen in startup Java servers
About the description order of Java system properties
About the idea of anonymous classes in Java
A story about the JDK in the Java 11 era
What is the Java Servlet / JSP MVC model?
[Java] About arrays
Pleiades Eclipse 2020-03 release ~ Java 14 Let's try new features!
Something about java
Where about java
About Java features
About the method
About Java threads
java1.8 new features
[Java] About interface
About Java class
About Java arrays
About java inheritance
About interface, java interface
I touched on the new features of Java 15
About the package
Understanding the MVC framework with server-side Java 2/4 Model
About List [Java]
About java var
About Java literals
About Java commands
Think about the JAVA = JAVAscript problem (needed in the future)
New topics from the Java SE 11 Programmer II exam
What Java engineers need to prepare for the Java 11 release
About Java log output
Output about the method # 2
About Java functional interface
Java, about 2D arrays
Java 12 new feature summary
About the StringBuilder class
About class division (Java)
Commentary: About the interface
Refactor the Fat Model
About [Java] [StreamAPI] allMatch ()
About Java StringBuilder class
About the asset pipeline
About the function double-java
Java 13 new feature summary
[Java] About Singleton Class
About Java method binding
About the ternary operator
[Java] About anonymous classes
About method splitting (Java)
[Java Silver] About initialization
About the length method
About Java Array List
About Java Polymorphism super ()
About inheritance (Java Silver)
About the Kernel module
About Java String class