Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Java 11 migration #5691

Closed
13 of 18 tasks
dmlloyd opened this issue Nov 22, 2019 · 21 comments
Closed
13 of 18 tasks

Java 11 migration #5691

dmlloyd opened this issue Nov 22, 2019 · 21 comments
Labels
kind/epic Large issue with links to sub-issues
Milestone

Comments

@dmlloyd
Copy link
Member

dmlloyd commented Nov 22, 2019

Description

It is necessary for a variety of reasons to move to Java 11 as a baseline platform requirement.

Analysis

Moving to Java 11 is a process that has to be taken in steps. The following requirements must be met:

  • Minimize user disruption by providing a smooth migration timeline
  • Define a definitive time frame for ending Java 8 support

Tasks

@dmlloyd dmlloyd added the kind/epic Large issue with links to sub-issues label Nov 22, 2019
@FroMage
Copy link
Member

FroMage commented Nov 22, 2019

Is there any risk in requiring 11 wrt user libs? Are there any popular user lib that doesn't work when running on jdk > 8?

@dmlloyd
Copy link
Member Author

dmlloyd commented Nov 22, 2019

User libs are an open-ended set, so the answer is (asymptotically) "yes" IMO. Hopefully at the point we start printing the deprecation warning, those kinds of issues will bubble up rapidly.

@dmlloyd
Copy link
Member Author

dmlloyd commented Nov 22, 2019

/me apologizes to any experts on set theory :)

@cescoffier
Copy link
Member

For the record, for the container images, I have duplicated all of them to have the java8 and java 11 ones. For example https://quay.io/repository/quarkus/ubi-quarkus-native-image?tab=tags

@dmlloyd
Copy link
Member Author

dmlloyd commented Nov 22, 2019

@cescoffier do you want to add check items to cover the container image work? If so, please add them in the approximately correct place (chronologically). Thanks

@cescoffier
Copy link
Member

@dmlloyd I have already done the container image work. So chronologically speaking it was first and checked :-)

@dmlloyd
Copy link
Member Author

dmlloyd commented Nov 22, 2019

Great, that means we're already well along our way, let's add that check! :)

What about other tasks e.g. deprecating the 8 image, any future cleanup work after we drop 8, etc.?

@cescoffier
Copy link
Member

cescoffier commented Nov 23, 2019

@dmlloyd yes, cleanup and reverting to single image would be required once we decide to go full steam with java 11.

Edit: Tasks added to the list.

@maxandersen
Copy link
Member

It is necessary for a variety of reasons to move to Java 11 as a baseline platform requirement.

Can we list those variety of reasonsas I'm sure we'll have many users still for whatever reasons (good and bad) stuck on java8. Would be great to have stated explicitly why java 11 beyound "it's the newest" for them to understand the advantages/needs.

@dmlloyd dmlloyd mentioned this issue Nov 25, 2019
6 tasks
@dmlloyd
Copy link
Member Author

dmlloyd commented Nov 25, 2019

It is necessary for a variety of reasons to move to Java 11 as a baseline platform requirement.

Can we list those variety of reasonsas I'm sure we'll have many users still for whatever reasons (good and bad) stuck on java8. Would be great to have stated explicitly why java 11 beyound "it's the newest" for them to understand the advantages/needs.

In fact we never intended to support Java 8 at all. It was a requirement for native image generation only. The only reason that really matters is that Java 8 is extremely outdated and should really not be used for new projects, generally speaking.

@Sanne
Copy link
Member

Sanne commented Mar 31, 2020

Is the checklist up to date?

We can probably close this "epic" and defer some of the minor polishing tasks?

@gsmet
Copy link
Member

gsmet commented Mar 31, 2020

I think it mostly is, I updated it yesterday.

I prefer to have one issue that centralizes this personally so that we can be sure we don't forget anything.

@dmlloyd
Copy link
Member Author

dmlloyd commented Mar 31, 2020

The main task - requiring 11 - doesn't even have an issue yet, so there's a bit more than "minor polishing" left... :-)

@Sanne
Copy link
Member

Sanne commented Mar 31, 2020

I think it mostly is, I updated it yesterday.

I prefer to have one issue that centralizes this personally so that we can be sure we don't forget anything.

Fair enough, just checking this wasn't an abandoned issue.

The main task - requiring 11 - doesn't even have an issue yet, so there's a bit more than "minor polishing" left... :-)

Ok, but note that this issue is named "migration" not "requiring" - so I assumed we were good enough.

@dmlloyd when importing the Quarkus sources in IDEA, at least in my case it defaults to JDK11 and then it fails to compile because of:

import sun.misc.Signal;
import sun.misc.SignalHandler;

in io.quarkus.runtime.Application . Is that something on your radar?

@dmlloyd
Copy link
Member Author

dmlloyd commented Mar 31, 2020

That's odd. Those classes are present in 11 (in the jdk.unsupported module) and I don't seem to have that problem, despite also using 11 as my default.

@sorin-costea
Copy link
Contributor

Probably related to log4j2 multi-release feature, I get this warning:
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
I run under Java 11 but I think you'll see it from Java 9 on.

@jaikiran
Copy link
Member

@dmlloyd when importing the Quarkus sources in IDEA, at least in my case it defaults to JDK11 and then it fails to compile because of:

import sun.misc.Signal;
import sun.misc.SignalHandler;

in io.quarkus.runtime.Application . Is that something on your radar?

Hello @Sanne, just saw your comment today. I remember running into this issue with IntelliJ IDEA too. Took me a while to understand that this is a IDE configuration issue. I had to "uncheck" the "Use '--release' option for cross-compilation (Java 9 and later)" under Preferences -> Build, Execution, Deployment -> Compiler -> Java Compiler to get the build working. That checkbox was (by default?) checked in my case which was causing this error.

@jaikiran
Copy link
Member

Hello @sorin-costea,

Probably related to log4j2 multi-release feature, I get this warning:
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
I run under Java 11 but I think you'll see it from Java 9 on.

Can you please create a separate issue adding details about your Quarkus usage and when you see this message?

@MartinX3
Copy link

MartinX3 commented May 8, 2021

I this fixed with Quarkus 2.0?
In 1.13.x i still can't enable java 11 everywhere without getting an dying postgresql connection using kotlin.

@gsmet
Copy link
Member

gsmet commented May 8, 2021

@MartinX3 Well, in this case better open a specific issue with a reproducer. Java 11 is supported since forever. This issue is about moving to Java 11 as the minimum version.

Thanks for the reminder anyway, this issue should be closed.

@gsmet gsmet closed this as completed May 8, 2021
@gsmet gsmet added this to the 2.0 - main milestone May 8, 2021
@MartinX3
Copy link

MartinX3 commented May 16, 2021

@gsmet
You added the 2.0 milestone
Does this mean I need to wait for 2.0? :)

Edit:
I created an issue ticket #17253

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/epic Large issue with links to sub-issues
Projects
None yet
Development

No branches or pull requests

9 participants