Skip to content

Set JDK21 as the baseline for the 3.0 major version#154

Merged
andrross merged 1 commit intoopensearch-project:mainfrom
andrross:jdk-21-baseline
Jun 10, 2024
Merged

Set JDK21 as the baseline for the 3.0 major version#154
andrross merged 1 commit intoopensearch-project:mainfrom
andrross:jdk-21-baseline

Conversation

@andrross
Copy link
Copy Markdown
Member

@andrross andrross commented Jun 6, 2024

Issues Resolved

Resolves #153

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Signed-off-by: Andrew Ross <andrross@amazon.com>
@andrross andrross added the v3.0.0 Issues targeting release v3.0.0 label Jun 6, 2024
targetCompatibility = JavaVersion.VERSION_11
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_21
sourceCompatibility = JavaVersion.VERSION_21
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@reta Should we keep source compatibility at Java 11 so that we don't introduce syntax that can't be backported to 2.x? I'm thinking we should probably keep this constraint until we've got a release date for 3.0 and can make a clean break away from the 2.x line.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@reta Should we keep source compatibility at Java 11 so that we don't introduce syntax that can't be backported to 2.x?

@andrross here is the thing, Apache Lucene 10 is using JDK-21 release (source + target), so we won't be able to stick to JDK-11 and use Apache Lucene 10 types (in general)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So the risk is that Lucene exposes something in its API that is only available in JDK 21+? How does that fail if we have a lower source constraint? Does it only fail if we attempt to use that thing?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So the risk is that Lucene exposes something in its API that is only available in JDK 21+?

Correct, fe records.

How does that fail if we have a lower source constraint? Does it only fail if we attempt to use that thing?

I think it won't fail (since most of the construct are retrofitted into existing bytecode), but it will force to use weird combination (fe classes and records) to essentially describe the same things. Plus we are loosing a lot from language enhancements .

@andrross andrross merged commit 1936f89 into opensearch-project:main Jun 10, 2024
@andrross andrross deleted the jdk-21-baseline branch June 10, 2024 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v3.0.0 Issues targeting release v3.0.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Set custom-codecs plugin 3.0.0 baseline JDK version to JDK-21

2 participants