JDK 22 Feature Freeze!

2023-12-13 Thread David Delabassee
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

2023-12-13 Thread Volkan Yazıcı
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)

2023-12-13 Thread Volkan Yazıcı
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)
>