JDK 22 Feature Freeze!
Welcome to the final OpenJDK Quality Outreach update of 2023! JDK 22, scheduled for General Availability on March 19, 2024, is now in Rampdown Phase One (RDP1) [1]. At this point, the overall JDK 22 feature set is frozen (see the final list of JEPs integrated into JDK 22 below) and only low-risk enhancements might still be considered. The coming weeks should be leveraged to identify and resolve as many issues as possible, i.e. before JDK 22 enters the Release Candidates phase in early February 2024. So, we count on you to test your projects and help us make JDK 22 another solid release! [1] https://mail.openjdk.org/pipermail/jdk-dev/2023-December/008535.html ## JDK 22 Early-Access Builds JDK 22 Early-Access builds 27 are now available [2] with the Release Notes here [3]. Those builds are provided under the GNU GPL v2, with the Classpath Exception. ### JEPs integrated into JDK 22: - JEP 423: Region Pinning for G1 - JEP 447: Statements before super(…) (Preview) - JEP 454: Foreign Function & Memory API - JEP 456: Unnamed Variables & Patterns - JEP 457: Class-File API (Preview) - JEP 458: Launch Multi-File Source-Code Programs - JEP 459: String Templates (2nd Preview) - JEP 460: Vector API (7th Incubator) - JEP 461: Stream Gatherers (Preview) - JEP 462: Structured Concurrency (2nd Preview) - JEP 463: Implicitly Declared Classes and Instance Main Methods (2nd Preview) - JEP 464: Scoped Values (2nd Preview) ### Changes in recent JDK 22 builds that may be of interest: - JDK-8318646: Integer#parseInt("") throws empty NumberFormatException message [Reported by Apache Lucene] - JDK-8318082: ConcurrentModificationException from IndexWriter [Reported by JOOQ] - JDK-8319450: New methods java.net.InetXAddress.ofLiteral() miss @since tag [Reported by JaCoCo] - JDK-8321164: javac w/ annotation processor throws AssertionError: Filling jrt:/… during … [Reported by Hibernate] - JDK-8310644: Make panama memory segment close use async handshakes - JDK-8302233: HSS/LMS: keytool and jarsigner changes - JDK-8211238: New @Deprecated JFR event - JDK-8319124: Update XML Security for Java to 3.0.3 - JDK-8306055: Add a built-in Catalog to JDK XML module - JDK-8319244: implement JVMTI handshakes support for virtual threads - JDK-8319196: ExecutableElement.getReceiverType doesn't return receiver types for methods loaded from bytecode - JDK-8318759: Add four DigiCert root certificates - JDK-8317374: Add Let's Encrypt ISRG Root X2 - JDK-8306116: Update CLDR to Version 44.0 - JDK-8287843: File::getCanonicalFile doesn't work for \\?\C:\ style paths DOS device paths - JDK-8288899: java/util/concurrent/ExecutorService/CloseTest.java failed with "InterruptedException: sleep interrupted" - JDK-8311596: Add separate system properties for TLS server and client for maximum chain length - JDK-8318160: javac does not reject private method reference with type-variable receiver - JDK-8305753: Allow JIT compilation for -Xshare:dump - JDK-8187591: -Werror turns incubator module warning to an error - JDK-8318096: Introduce AsymmetricKey interface with a getParams method - JDK-8319174: Enhance robustness of some j.m.BigInteger constructors - JDK-8288899: Changes to java.util.concurrent.ForkJoinPool and ForkJoinTask - JDK-8272215: Add InetAddress methods for parsing IP address literals - JDK-8316996: Catalog API Enhancement: add a factory method - JDK-8305814: Update Xalan Java to 2.7.3 - JDK-8313643: Update HarfBuzz to 8.2.2 - JDK-8316030: Update Libpng to 1.6.40 Note: A more comprehensive list of changes can be found here [4]. [2] https://jdk.java.net/22/ [3] https://jdk.java.net/22/release-notes [4] https://github.com/openjdk/jdk/compare/jdk-22+20...jdk-22+27 ## JDK 23 Early-Access Builds Given that JDK 22 is in Rampdown Phase, the initial JDK 23 EA builds are now also available [5]. These EA builds are provided under the GNU General Public License v2, with the Classpath Exception. [5] https://jdk.java.net/23/ ## JavaFX 22 Early-Access Builds These are early-access builds of the JavaFX 22 [8] Runtime built from openjdk/jfx [9]. This allows JavaFX application developers to build and test their applications with JavaFX 22 on JDK 22. The JavaFX 22 API Javadocs are also available [10]. The JavaFX runtime is delivered as an SDK and as a set of jmods for each platform. You can use the SDK to compile and run JavaFX applications. You can use the jmods with jlink to create a JDK that includes the JavaFX modules, and optionally, your modular application. JavaFX 22 is designed to work with JDK 22,but it is known to work with JDK 17 and later versions. [8] https://jdk.java.net/javafx22/ [9] https://github.com/openjdk/jfx [10] https://download.java.net/java/early_access/javafx22/docs/api/overview-summary.html ## Topics of Interest: - Java 22 Unpacking - Inside Java Newscast https://inside.java/2023/12/07/newscast-59/ - Java On The GPU - Inside Java Newscast https://inside.java/2023/11/16/newscast-58/ - Better Java
[VOTE] Release Apache Log4j 3.0.0-beta1
This is a vote to release the Apache Log4j 3.0.0-beta1. Website: https://logging.staged.apache.org/log4j GitHub: https://github.com/apache/logging-log4j2 Commit: c5dbdcfeb0216e1e3e333436e9b4d04cc3b8e6fd Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j Nexus: https://repository.apache.org/content/repositories/orgapachelogging-1246 Signing key: 0x077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0 Please download, test, and cast your votes on this mailing list. [ ] +1, release the artifacts [ ] -1, don't release, because... This vote is open for 72 hours and will pass unless getting a net negative vote count. All votes are welcome and we encourage everyone to test the release, but only the Logging Services PMC votes are officially counted. == Review Kit The minimum set of steps needed to review the uploaded distribution files in the Subversion repository can be summarized as follows: # Check out the distribution svn co https://dist.apache.org/repos/... && cd $_ # Verify checksums shasum --check *.sha512 # Verify signatures wget -O - https://downloads.apache.org/logging/KEYS | gpg --import for sigFile in *.asc; do gpg --verify $sigFile; done # Verify reproduciblity umask 0022 unzip *-src.zip -d src cd src export NEXUS_REPO=https://repository.apache.org/content/... sh mvnw -Prelease \ verify artifact:compare \ -Dreference.repo=$NEXUS_REPO \ -Dcyclonedx.skip Some SBOM discrepancy is causing reproducibility mismatch, hence the `-Dcyclonedx.skip`. Since `2.x` and `main` are greatly diverged, I couldn't figure out the missing piece yet. == Release Notes This is the first beta release of the upcoming major release, i.e., `3.0.0`. === Added * Add annotations for nullability. (LOG4J2-1477) * Remove deprecated code. (LOG4J2-2493) * Add a more generalized dependency injection system to plugins inspired by JSR 330. (LOG4J2-2803) * Add and enhance structured properties for per-context settings outside configuration files. (1473) * Automate artifact publishing and release preparation. (LOG4J2-3466) * Add support for dependency injection of plugins into container types such as `Optional`, `Collection`, `Set`, `Stream`, `List`, and `Map`. (LOG4J2-3496) * Add support for `ConstraintValidator` in plugin classes. (LOG4J2-3497) === Changed * Remove liquibase-log4j2 maven module (#1193) * Make the output of annotation processing reproducible. (#1520) * Replace `synchronized` blocks with locks for improved performance with virtual threads. (#1532) * Removes additional `isFiltered` checks in `AsyncLoggerConfig`. (#1550) * Ignore exceptions thrown by PropertySources. Eliminate ClassCastException when SimpleLoggerContext is used. (spring-projects/spring-boot#33450, #1799) * Update `com.lmax:disruptor` to version `4.0.0` (#1829) * Migrate most tests to JUnit 5. This includes a more powerful set of test extensions. (LOG4J2-2653) * Make Log4j use its own BOM. (LOG4J2-3511) * Change encoding of HTTP Basic Authentication to UTF-8. (#1970) * Upgraded the required compiler version to Java 17 * Upgraded the required runtime version to Java 17 * Update `actions/checkout` to version `4.1.1` (#1869) * Update `actions/setup-java` to version `3.13.0` (#1809) * Update `actions/setup-python` to version `4.7.1` (#1831) * Update `ch.qos.logback:logback-classic` to version `1.4.14` (#2028) * Update `com.datastax.cassandra:cassandra-driver-core` to version `3.11.5` (#1889) * Update `com.fasterxml.jackson:jackson-bom` to version `2.16.0` (#1974) * Update `com.github.luben:zstd-jni` to version `1.5.5-11` (#2032) * Update `com.github.spotbugs:spotbugs-maven-plugin` to version `4.7.3.6` (#1879) * Update `com.github.tomakehurst:wiremock-jre8` to version `2.35.1` (#1765) * Update `com.google.errorprone:error_prone_core` to version `2.23.0` (#1871) * Update `com.google.guava:guava-testlib` to version `32.1.3-jre` (#1934) * Update `com.h2database:h2` to version `2.2.224` (#1917) * Update `commons-codec:commons-codec` to version `1.16.0` (#2054) * Update `commons-io:commons-io` to version `2.15.1` (#2035) * Update `commons-logging:commons-logging` to version `1.3.0` (#2046) * Update `de.flapdoodle.reverse:de.flapdoodle.reverse` to version `1.7.2` (#2000) * Update `io.netty:netty-bom` to version `4.1.101.Final` (#1999) * Update `net.java.dev.jna:jna` to version `5.14.0` (#2082) * Update `org.apache.aries.spifly:org.apache.aries.spifly.dynamic.bundle` to version `1.3.7` (#2053) * Update `org.apache.commons:commons-compress` to version `1.25.0` (#2055) * Update `org.apache.commons:commons-csv` to version `1.10.0` (#2041) * Update `org.apache.commons:commons-dbcp2` to version `2.11.0` (#2044) * Update `org.apache.commons:commons-lang3` to version `3.14.0` (#2036) * Update `org.apache.commons:commons-pool2` to version `2.12.0` (#2038) * Update `org.apache.groovy:groovy-bom` to version `4.0.16` (#2039) * Update `org.apache.maven:maven-core` to version `3.9.6` (#2049)
Re: [VOTE][LAZY] Release Apache Logging Parent 10.5.0 (RC2)
I am canceling this RC2 vote. Recent `log4j-3.0.0-beta1` release caused some `log4j-changelog` issues to surface. I have already pushed fixes addressing those issues. Due to the recent versioning scheme discussion, I have also added `UPDATED` changelog entry type too. We should ideally get all these into the upcoming `logging-parent` release. In conclusion, I will first issue a new `log4j-tools` release and then a `logging-parent` version `0.5.0` RC3. On Mon, Dec 11, 2023 at 9:57 AM Volkan Yazıcı wrote: > This is a lazy-vote to release the Apache Logging Parent version `10.5.0` > (RC2). > > Website: https://logging.staged.apache.org/logging-parent > GitHub: https://github.com/apache/logging-parent > Commit: 9bb44007955fd892d31c8c65f02cfbdd03d461b3 > Distribution: > https://dist.apache.org/repos/dist/dev/logging/logging-parent > Nexus: > https://repository.apache.org/content/repositories/orgapachelogging-1241 > Signing key: 0x077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0 > > Please download, test, and cast your votes on this mailing list. > > [ ] +1, release the artifacts > [ ] -1, don't release, because... > > This vote is open for 72 hours and will pass unless getting a > net negative vote count. All votes are welcome and we encourage > everyone to test the release, but only the Logging Services PMC > votes are officially counted. > > === Review kit > > The minimum set of steps needed to review the uploaded distribution > files in the Subversion repository can be summarized as follows: > > # Check out the distribution > svn co https://dist.apache.org/repos/... && cd $_ > > # Verify checksums > shasum --check *.sha512 > > # Verify signatures > wget -O - https://downloads.apache.org/logging/KEYS | gpg --import > for sigFile in *.asc; do gpg --verify $sigFile; done > > # Verify reproduciblity > umask 0022 > unzip *-src.zip -d src > cd src > export NEXUS_REPO=https://repository.apache.org/content/... > sh mvnw -Prelease verify artifact:compare -Dreference.repo=$NEXUS_REPO > > === Release notes > > This minor release contains dependency updates and a change in the way > BND is employed. > > BND Maven Plugins are upgraded to version `7.0.0`, which requires Java 17. > Log4j was the blocker for this upgrade and the issue is resolved in > apache/logging-log4j2#2021. > > Changed > > * Switch from `bnd:jar` to `bnd:bnd-process` to improve integration > with the ecosystem; IDEs, Maven plugins, etc. (#69) > * Update `biz.aQute.bnd:bnd-baseline-maven-plugin` to version `7.0.0` (#78) > * Update `biz.aQute.bnd:bnd-maven-plugin` to version `7.0.0` > * Update `com.diffplug.spotless:spotless-maven-plugin` to version `2.41.1` > (#70) > * Update `com.github.spotbugs:spotbugs-annotations` to version `4.8.2` > (#68) > * Update `com.github.spotbugs:spotbugs-maven-plugin` to version `4.8.2.0` > (#71) > * Update `org.apache:apache` to version `31` (#73) > * Update `org.apache.logging.log4j:log4j-changelog-maven-plugin` to > version `0.6.0` (#72) >