Release Announcement: General Availability of Java 16 / JDK 16
by Rory O'Donnell
Hi Sanne & Yoann,
*Release Announcement: General Availability of Java 16 / JDK 16 *
**
* JDK 16, the reference implementation of Java 16, is now Generally
Available. [1]
* GPL-licensed OpenJDK builds from Oracle are available here:
http://jdk.java.net/16/ <http://jdk.java.net/16/>
* JDK 16 Release notes
<https://www.oracle.com/java/technologies/javase/16-relnotes.html>
*JDK 16 includes the following features [2]:*
* JEP 338:Vector API (Incubator) <https://openjdk.java.net/jeps/338>
* JEP 347:Enable C++14 Language Features
<https://openjdk.java.net/jeps/347>
* JEP 357:Migrate from Mercurial to Git
<https://openjdk.java.net/jeps/357>
* JEP 369:Migrate to GitHub <https://openjdk.java.net/jeps/369>
* JEP 376:ZGC: Concurrent Thread-Stack Processing
<https://openjdk.java.net/jeps/376>
* JEP 380:Unix-Domain Socket Channels <https://openjdk.java.net/jeps/380>
* JEP 386:Alpine Linux Port <https://openjdk.java.net/jeps/386>
* JEP 387:Elastic Metaspace <https://openjdk.java.net/jeps/387>
* JEP 388:Windows/AArch64 Port <https://openjdk.java.net/jeps/388>
* JEP 389:Foreign Linker API (Incubator)
<https://openjdk.java.net/jeps/389>
* JEP 390:Warnings for Value-Based Classes
<https://openjdk.java.net/jeps/390>
* JEP 392:Packaging Tool <https://openjdk.java.net/jeps/392>
* JEP 393:Foreign-Memory Access API (Third Incubator)
<https://openjdk.java.net/jeps/393>
* JEP 394:Pattern Matching for instanceof
<https://openjdk.java.net/jeps/394>
* JEP 395:Records <https://openjdk.java.net/jeps/395>
* JEP 396:Strongly Encapsulate JDK Internals by Default
<https://openjdk.java.net/jeps/396>
* JEP 397:Sealed Classes (Second Preview)
<https://openjdk.java.net/jeps/397>
Thanks to everyone who contributed to JDK 16, whether by creating
features or enhancements, logging bugs, or
downloading and testing the early-access builds.
*OpenJDK 17 Early Access build 13 is now available at
http://jdk.java.net/17 <http://jdk.java.net/17/>
*
**
* These early access, open source builds are provided under the GNU
General Public License, version 2, with the Classpath Exception
<http://openjdk.java.net/legal/gplv2+ce.html>.
* JEPs targeted to JDK 17, so far:
o JEP 356: Enhanced Pseudo-Random Number Generators
<https://openjdk.java.net/jeps/356>
* Release Notes are available at http://jdk.java.net/17/release-notes
<http://jdk.java.net/17/release-notes>
* Significant changes since the last availability email:
o JDK-8259709: Disable SHA-1 XML Signatures (b13)
o JDK-6323374: (coll) Optimize Collections.unmodifiable* and
synchronized*(b13)
o JDK-8139348: Deprecate 3DES and RC4 in Kerberos (b12)
o JDK-8259662: Don't wrap SocketExceptions into SSLExceptions in
SSLSocketImpl (b11)
o JDK-8235139: Deprecate the socket impl factory mechanism(b10)
o JDK-8225081: Remove Telia Company CA certificate expiring in
April 2021(b9)
*Project Lanai Early-Access Builds
*
* EA 10 Build 17-lanai+3-133 (2021/3/2) is available -
http://jdk.java.net/lanai/
* These early access, open source builds are provided under the GNU
General Public License, version 2, with the Classpath Exception
<http://openjdk.java.net/legal/gplv2+ce.html>.
*Project Loom Early-Access Builds*
* Build 17-loom+4-174 (2021/3/12) is available - http://jdk.java.net/loom/
* These early access, open source builds are provided under the GNU
General Public License, version 2, with the Classpath Exception
<http://openjdk.java.net/legal/gplv2+ce.html>.
*Project Panama Early-Access Builds
*
* Build 17-panama+2-51 (2021/2/12) is available -
http://jdk.java.net/panama/
* These early access, open source builds are provided under the GNU
General Public License, version 2, with the Classpath Exception
<http://openjdk.java.net/legal/gplv2+ce.html>.
Rgds,Rory
[1] https://mail.openjdk.java.net/pipermail/jdk-dev/2021-March/005188.html
[2] https://openjdk.java.net/projects/jdk/16/
<https://openjdk.java.net/projects/jdk/16/>
3 years, 9 months
Bot for checking contribution rules in Hibernate projects
by Yoann Rodiere
Hello everyone,
I just deployed a GitHub bot on our infrastructure. The purpose of this bot
is to run basic checks on pull requests, so that contributors know right
away if something needs to be changed, without having to wait for a human
to take the time to review. And to avoid oversights for some boring, but
nevertheless important rules.
You can see a few failing checks in this playground project:
-
https://github.com/yrodiere/hibernate-github-bot-playground/pull/6/checks
- https://github.com/yrodiere/hibernate-github-bot-playground/pull/6
Pull requests failing these checks can still be merged ; the checks are
only here to help, not to enforce anything. So if you need to merge a few
commits that do not mention a JIRA ticket (e.g. changes in github
workflows), you can still do it.
The checks are obviously very simple. At the moment, we check:
- That the pull request title has at least two words
- That the pull request title doesn't end with a dot or ellipsis (they
are a sign that the title may be incomplete)
- That every commit message starts with a JIRA ticket key.
- That the pull request title/description mentions all JIRA ticket keys
mentioned in commit messages.
We can definitely work on adding more checks, or tuning the existing
checks. Please create issues here:
https://github.com/hibernate/hibernate-github-bot/issues
The bot is currently only enabled on Hibernate Search and Hibernate ORM. If
you want to enable it on other projects, please follow instructions here:
https://github.com/hibernate/hibernate-github-bot/#enabling-the-bot-in-a-...
To anyone interested, the bot was implemented using Quarkus and Guillaume's
GitHub extension: https://github.com/quarkiverse/quarkus-github-app
Cheers,
Yoann Rodière
Hibernate Team
yoann(a)hibernate.org
3 years, 9 months
Dialect.supportsValuesList() ignored for InsertUpdateTests.testInsertValues
by Mark Rotteveel
Testing against Firebird, it seems like Dialect.supportsValuesList() is
ignored.
Specifically the test
org.hibernate.orm.test.query.hql.InsertUpdateTests.testInsertValues
generates the following statement even with Dialect.supportsValuesList()
return false:
```
insert
into
Ticket
(id, ticket_key, subject, details)
values
(2, 'XYZ123', 'Outage', 'Something is broken'), (
13, 'HIJ456', 'x', 'x'
)
```
Or is this a situation where this is ignored because the HQL explicitly
contains two lists?
Mark
--
Mark Rotteveel
3 years, 9 months
Query generated for insert ... select
by Mark Rotteveel
For an INSERT ... SELECT, Hibernate (in wip/6.0) will generate a SQL
statement with parentheses around the select statement.
This happens in AbstractSqlAstTranslator.visitQuerySpec(QuerySpec
querySpec) because the querySpec is not a root. Firebird doesn't support
a parenthesized select in insert (yet).
What would be the best way to address this in the AstTranslator or
elsewhere? Overriding the entire visitQuerySpec(QuerySpec querySpec)
method could be brittle as significant changes would need to be
replicated to the Firebird-specific translator, and this only really
applies when processing a select in an insert statement (I think; there
are some other places where Firebird doesn't support parenthesized
selects where the standard does).
Mark
--
Mark Rotteveel
3 years, 9 months
List of keywords in AnsiSqlKeywords.java incomplete
by Mark Rotteveel
I was doing some testing Firebird against wip/6.0 and I tripped over the
fact the list of keywords in AnsiSqlKeywords.java (introduced for
https://hibernate.atlassian.net/browse/HHH-9768) is incomplete.
For example, the keyword POSITION is missing from the list, while it is
listed in SQL:2003 <reserved word>, on the other hand ADD is in the
list, which is only listed as non-reserved in <non-reserved word>. I
also notice that most - if not all - other function names are missing.
Firebird is particular finicky about keywords. I see two approaches:
1) I add the difference between the current list in AnsiSqlKeywords +
DatabaseMetaData.getKeywords() (which only returns those not reserved in
SQL:2003) and Firebird's actual keywords explicitly in the dialect
2) I update the list in AnsiSqlKeywords to contain all reserved words
from SQL:2003 (+ retain any additional keywords currently in the list)
This last option would have compatibility consequences (as additional
keywords may get quoted, which could change case-sensitivity for some
databases), so that may not be desirable.
Your thoughts on this?
Mark
--
Mark Rotteveel
3 years, 9 months