Modify

Opened 3 years ago

Last modified 17 hours ago

#17858 assigned enhancement

OpenWebStart/Java 17 migration

Reported by: Don-vip Owned by: Don-vip
Priority: major Milestone: Longterm
Component: Core Version:
Keywords: java11 adoptopenjdk icedtea-web java17 Cc: Bjoeni

Description (last modified by Don-vip)

Things are starting to take shape with what comes after Java WebStart (see #16047):

https://openwebstart.com/

Original 2019 plan:

On the current roadmap, the first version will be released end of October. A macro planning for a Java 8 => Java 11 transitions for all JOSM users would roughly look like this:

  • September 2019: we start testing OpenWebStart on all platforms. Likely we'll found a lot of bugs
  • November 2019 : first OpenWebStart version. Unlikely to fix all bugs we'll find
  • Somewhere in 2020: OpenWebStart version without any bug impacting us, we start asking everyone to switch
  • End of 2020: End of Java WebStart support by Oracle for Java 8. We force everyone to switch
  • Somewhere in 2021: Enough JOSM users have switched to OpenWebStart so we can consider moving the codebase to Java 11.

New 2021 plan:

  • 2021-03-28: ask Oracle Java WebStart users to switch to OpenWebStart => r17679
  • 2021-08-22: new Windows package that includes Java 16 => r18151:18155
  • 2021-08-22: include JavaFX 16 in macOS and Windows packages => r18161
  • 2021-08-22: update JNLP files to request Azul JVM from OpenWebStart as it includes JavaFX => r18158:18159
  • 2021-08-22: update Debian/Ubuntu launch script to depend on openjfx => r18160
  • September 2021: Java 17 is released. Switch macOS / Windows packages to Java 17 and JavaFX 17, update Debian/Ubuntu launch script to prefer 17 over 11 and 8
  • April 2022: Ubuntu 22.04 LTS is released and ships Java 17
  • somewhere in 2022: Enough JOSM users are now using Java 17+ so we can consider moving the codebase to Java 17.

Attachments (8)

rockets_win.png (4.0 KB) - added by Don-vip 14 months ago.
rocket_dark.png (4.4 KB) - added by Don-vip 14 months ago.
Screenshot 2021-03-27 at 12.23.47.png (30.8 KB) - added by simon04 14 months ago.
Screenshot 2021-03-27 at 14.08.28.png (130.3 KB) - added by simon04 14 months ago.
dialog.png (32.4 KB) - added by Don-vip 14 months ago.
dialog2.png (29.9 KB) - added by Don-vip 14 months ago.
Screenshot 2021-04-02 at 00.29.33.png (93.0 KB) - added by simon04 14 months ago.
17858.auto_module_name.patch (935 bytes) - added by taylor.smock 9 months ago.
Add automatic module name -- #15229 seems to indicate we'll want a lot of subpackages, but it may be useful to say "hey, we will be using this base module name"

Download all attachments as: .zip

Change History (107)

comment:1 Changed 3 years ago by Don-vip

First problem: #17632

comment:2 Changed 3 years ago by Don-vip

Keywords: adoptopenjdk icedtea-web added

comment:3 Changed 3 years ago by Don-vip

First alpha version (0.2.0) is available for download: https://openwebstart.com/download/

comment:4 Changed 3 years ago by Don-vip

Milestone: Longterm

comment:5 Changed 2 years ago by mdk

Version 1.1.1 is released (at 16.12.2019)

comment:7 Changed 2 years ago by Don-vip

AdoptOpenJDK API now available through https://josm.openstreetmap.de/remote/adoptopenjdk-api/ (#18723)

comment:8 Changed 2 years ago by Don-vip

https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes/

As of 18.04.4, OpenJDK 11 is the default in 18.04.

OpenJDK 8 has moved to universe and will remain available there for the life of 18.04, to provide migration time for packages, custom applications, or scripts that can't be build with OpenJDK 11. OpenJDK 8 will be updated in 18.04 until Ubuntu 16.04 LTS reaches EOL in April 2021.

comment:9 Changed 2 years ago by Don-vip

Last edited 2 years ago by Don-vip (previous) (diff)

comment:10 Changed 2 years ago by Don-vip

AdoptOpenJDK officially refused to ship OpenJFX in their binary distributions:
https://github.com/AdoptOpenJDK/TSC/issues/27#issuecomment-607663428

So the best distribution for us would be Azul Zulu and Bellsoft's Liberica.

comment:11 Changed 2 years ago by taylor.smock

Another issue: #19044 (Azul Zulu 11.0.6/AdoptOpenJDK 11.0.6). It looks like jdk.swing.interop.SwingInterOpUtils doesn't exist, for whatever reason. Oddly enough, it is never directly called by us (its called by JFXPanel, which is in the java distribution). I haven't filed a bug upstream, since I haven't run with a "standard" version of Azul Zulu yet.

EDIT: Not reproducible with Azul Zulu or AdoptOpenJDK from CLI.

Possibly related to https://github.com/AdoptOpenJDK/IcedTea-Web/issues/595 .

Last edited 2 years ago by taylor.smock (previous) (diff)

comment:12 Changed 2 years ago by mdk

It looks like ​https://github.com/AdoptOpenJDK/IcedTea-Web/issues/595 is fixed in the actual release 1.1.7

comment:13 Changed 19 months ago by jBeata

Do you have a more clear deadline for moving the code-base to Java11? It will happen in the first half of 2021 or the second?

comment:14 in reply to:  13 Changed 19 months ago by stoecker

Replying to jBeata:

Do you have a more clear deadline for moving the code-base to Java11? It will happen in the first half of 2021 or the second?

Usually when less than 5% of our users use older versions. Currently 70% of our users use Java 8. About 20% use Java 11.

comment:15 Changed 19 months ago by Don-vip

Oracle changed again their plans concerning Java 8. It was previously expected they stop releasing public updates of Java 8 on java.com (the version used by nearly all our Windows users) at the end of 2020.

Now the plan is:

Oracle will continue to provide free public updates and auto updates of Java SE 8 indefinitely for Personal, Development and other Users via java.com. Oracle will provide at least 18 months notice on this page and other communication channels if an end of availability date is set. [...]
Oracle does not plan to migrate desktops from Java SE 8 to later versions via the auto update feature. This includes the Java Plugin and Java Web Start. [...]

So we won't see any major decrease of Java 8 usage until we force this change by promoting OpenWebStart and Java 11 to our users. I didn't start to work on this yet.

Given on our past experience, it takes months between the time we start to deprecate a version of Java and the time enough people abandoned it, so I wouldn't see a Java 11 migration before Q2 2021 at best.

comment:16 in reply to:  15 Changed 19 months ago by stoecker

Replying to Don-vip:

Q2 2021 at best.

Still very optimistic. Q4 2021 or later seems more realistic ;-) Even Linux has still about 30% Java 8.

P.S. Added --os option to our checkjosm tool :-)

comment:17 Changed 19 months ago by Don-vip

I meant S2, with Q4 in mind actually :)

comment:18 Changed 19 months ago by jBeata

Thanks for the clarification. We also use Java 8 since the minimum version for running JOSM is Java 8. But we plan to switch as soon as JOSM main version is updated to 11.

comment:19 Changed 15 months ago by Don-vip

Current numbers:

Java Main Version --> 8 (7174, 67.6%) 9 (21,  0.2%) 10 (24,  0.2%) 11 (2130, 20.1%) 12 (167,  1.6%) 13 (248,  2.3%) 14 (299,  2.8%) 15 (532,  5.0%) 16 (10,  0.1%) 17 (7,  0.1%)

I'm really happy to see that OpenWebStart really kicks in: several versions released, 5 companies seem to sponsor Karakun on front page, nearly 200 developers have starred the project on GitHub. Software is now available on Windows, mac and Linux. It's a complete and viable replacement to Oracle WebStart.

I'll see how to detect Oracle WebStart and suggest users to switch to OpenWebStart. At the same time they do that, they'll switch from Oracle JRE 8 to Azul JRE 11.

@Dirk would it be possible to update checkjosm to get vendor stats? I'd like to see the percentage of users running an Oracle runtime versus those who do not.

comment:20 Changed 15 months ago by stoecker

That information isn't available in the User-Agent, so I can't display it :-)

comment:21 in reply to:  20 Changed 15 months ago by Don-vip

Replying to stoecker:

That information isn't available in the User-Agent, so I can't display it :-)

Ah, I thought it was sent. I'll check only Java 8 then. Should be the same thing.

comment:22 Changed 15 months ago by Bjoeni

Cc: Bjoeni added

comment:23 Changed 14 months ago by Don-vip

I just fixed #18737 which was the only blocker to OpenWebStart migration. Let's get rid of Oracle Java WebStart.

Changed 14 months ago by Don-vip

Attachment: rockets_win.png added

Changed 14 months ago by Don-vip

Attachment: rocket_dark.png added

comment:24 Changed 14 months ago by Don-vip

Vote for your preferred rocket icon! Which one looks the best? 1, 2, 3, 4?



comment:25 Changed 14 months ago by simon04

I vote for 4️⃣ :-)

comment:26 Changed 14 months ago by simon04

Awesome, successfully tested (ticket #18737) on macOS! On Windows and macOS the status report lacks any indication that JOSM is running via webstart:

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2021-03-26 22:41:31 +0100 (Fri, 26 Mar 2021)
Revision:17674
Build-Date:2021-03-27 02:30:56
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (17674 en) Mac OS X 10.16
OS Build number: macOS 11.2.3 (20D91)
Memory Usage: 410 MB / 2048 MB (171 MB allocated, but free)
Java version: 16+36, Azul Systems, Inc., OpenJDK 64-Bit Server VM
Look and Feel: com.formdev.flatlaf.FlatLightLaf
Screen: Display 1 1440×900 (scaling 2,00×2,00) Display 2 3008×1692 (scaling 2,00×2,00)
Maximum Screen Size: 3008×1692
Best cursor sizes: 16×16→16×16, 32×32→32×32
VM arguments: [--add-modules=java.scripting,java.sql, --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=javafx.graphics/com.sun.javafx.application=ALL-UNNAMED, --add-exports=jdk.deploy/com.sun.deploy.config=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED, --add-opens=java.desktop/javax.imageio.spi=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, -Djava.util.Arrays.useLegacyMergeSort=true, --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED,java.desktop, --add-exports=java.base/jdk.internal.util.jar=ALL-UNNAMED,java.desktop, --add-exports=java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED,java.desktop, --add-reads=java.naming=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/sun.awt.X11=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/sun.applet=ALL-UNNAMED,java.desktop,jdk.jsobject, --add-exports=java.base/sun.security.action=ALL-UNNAMED,java.desktop, --add-reads=java.base=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED,java.desktop, --add-exports=java.naming/com.sun.jndi.toolkit.url=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.util=ALL-UNNAMED,java.desktop,ALL-UNNAMED, --add-reads=java.desktop=ALL-UNNAMED,java.naming, --add-exports=java.desktop/sun.awt=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.x509=ALL-UNNAMED,java.desktop,ALL-UNNAMED, --add-exports=java.desktop/javax.jnlp=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.provider=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.validator=ALL-UNNAMED,java.desktop]

Plugins:
+ ImportImagePlugin (35567)
+ apache-commons (35524)
+ ejml (35458)
+ flatlaf (35703)
+ geotools (35458)
+ jts (35458)
+ log4j (35458)

This statement might help us to identify OpenWebStart:

Class.forName("com.openwebstart.launcher.OpenWebStartLauncher")

comment:27 in reply to:  24 Changed 14 months ago by skyper

Replying to Don-vip:

Vote for your preferred rocket icon! Which one looks the best? 1, 2, 3, 4?

I like 1 or 4. Maybe, the dark brown on the outside wings could be a bit lighter. With the dark mode icons need to respect dark and light background and often contrasting outlines like 1 and 2 show are helpful.

Changed 14 months ago by simon04

Changed 14 months ago by simon04

comment:28 Changed 14 months ago by simon04

When starting, OpenWebStart shows this information message:

App name on macos screen menu is Boot · Issue 325 · karakun/OpenWebStart · https://github.com/karakun/OpenWebStart/issues/325

comment:29 in reply to:  26 ; Changed 14 months ago by Don-vip

Replying to simon04:

This statement might help us to identify OpenWebStart:

Class.forName("com.openwebstart.launcher.OpenWebStartLauncher")

I plan to use this (not tested yet):

    /**
     * Determines whether JOSM has been started via Web Start (JNLP).
     * @return true if JOSM has been started via Web Start (JNLP)
     * @since xxx
     */
    public static boolean isRunningWebStart() {
        try {
            // See http://stackoverflow.com/a/16200769/2257172
            return Class.forName("javax.jnlp.ServiceManager") != null;
        } catch (ClassNotFoundException e) {
            return false;
        }
    }

    /**
     * Determines whether JOSM has been started via Oracle Java Web Start.
     * @return true if JOSM has been started via Oracle Java Web Start
     * @since 15740
     */
    public static boolean isRunningJavaWebStart() {
        return isRunningWebStart() && Package.getPackage("com.sun.javaws") != null;
    }

    /**
     * Determines whether JOSM has been started via Open Web Start (IcedTea-Web).
     * @return true if JOSM has been started via Open Web Start (IcedTea-Web)
     * @since xxx
     */
    public static boolean isRunningOpenWebStart() {
        return isRunningWebStart() && Package.getPackage("net.adoptopenjdk.icedteaweb") != null;
    }

Changed 14 months ago by Don-vip

Attachment: dialog.png added

comment:30 Changed 14 months ago by Don-vip

This is the upgrade text I came with. Comments?


For the icon, I've started a poll on Twitter as well, I hope a clear winner comes out :D

comment:31 in reply to:  29 Changed 14 months ago by Don-vip

Replying to Don-vip:

    public static boolean isRunningOpenWebStart() {
        return isRunningWebStart() && Package.getPackage("net.adoptopenjdk.icedteaweb") != null;
    }

And we should also be aware of upcoming changes that will probably affect package names for ITW https://blog.adoptium.net/2021/03/eclipse-adoptium-announcement/

comment:32 in reply to:  30 ; Changed 14 months ago by simon04

Replying to Don-vip:

This is the upgrade text I came with. Comments?

Two small suggestions:

-Oracle implementation (2x)
+an Oracle implementation

-as a new product: OpenWebStart.
+as a new product: OpenWebStart

What is the difference between "OK" and "Download OpenWebStart"?

You you plan to add this dialog for the 21.03 release (I'm referring to i18n)?

comment:33 in reply to:  32 Changed 14 months ago by Don-vip

Replying to simon04:

Two small suggestions:

-Oracle implementation (2x)
+an Oracle implementation

-as a new product: OpenWebStart.
+as a new product: OpenWebStart

Thanks.

What is the difference between "OK" and "Download OpenWebStart"?

OK does nothing, it just closes the dialog. It's the same behaviour as current MainApplication.askUpdateJava dialog.

You you plan to add this dialog for the 21.03 release (I'm referring to i18n)?

Yes, tomorrow evening.

comment:34 in reply to:  30 Changed 14 months ago by stoecker

Replying to Don-vip:

This is the upgrade text I came with. Comments?

Remove the remaining sentence after "Java 11" and join the two sentences with "but".

I'd vote for icon 4 (icon 1 is second place).

Changed 14 months ago by Don-vip

Attachment: dialog2.png added

comment:35 Changed 14 months ago by Don-vip

New version taking into account Simon and Dirk feedback:


comment:36 Changed 14 months ago by simon04

Looks good! 👍🏿

comment:37 Changed 14 months ago by stoecker

Actually I meant to join the first two sentences, but this is even better ;-)

comment:38 Changed 14 months ago by Don-vip

Good :) Thank you :)

comment:39 Changed 14 months ago by Don-vip

In 17679/josm:

see #17858 - ask Oracle Java WebStart users to switch to OpenWebStart

Rocket icon from https://github.com/twitter/twemoji/blob/v13.0.2/assets/svg/1f680.svg

comment:40 Changed 14 months ago by simon04

Java Warnings (Package.getPackage is deprecated since Java 9):

/Users/simon/src/josm/src/org/openstreetmap/josm/tools/Utils.java:1742: warning: [deprecation] getPackage(String) in Package has been deprecated
        return isRunningWebStart() && Package.getPackage("com.sun.javaws") != null;
                                             ^
/Users/simon/src/josm/src/org/openstreetmap/josm/tools/Utils.java:1751: warning: [deprecation] getPackage(String) in Package has been deprecated
        return isRunningWebStart() && Package.getPackage("net.adoptopenjdk.icedteaweb") != null;
                                             ^

comment:41 Changed 14 months ago by Don-vip

In 17692/josm:

see #17858 - fix deprecation warnings

Changed 14 months ago by simon04

comment:42 in reply to:  28 Changed 14 months ago by simon04

Replying to simon04:

When starting, OpenWebStart shows this information message:

"The proxy 'System proxy' does not support 'Passive FTP Mode (PASV)'"

Only affects macOS, see https://github.com/karakun/OpenWebStart/blob/26c8990af7f2214b290d1056cd27a7f78f4477a6/openwebstart/src/main/java/com/openwebstart/proxy/mac/MacProxyProvider.java#L36-L38

Fixed by selecting "No Proxy" in the OpenWebStart Settings:


comment:43 Changed 14 months ago by gaben

On Windows, the WebStart dialogue pops up and not steals the focus, sometimes resulting in a JOSM 'loading' indefinitely. The same applies to Java update notification windows. The only way to resolve is to click somewhere on the splash screen.

URL:https://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2021-04-01 23:17:01 +0200 (Thu, 01 Apr 2021)
Build-Date:2021-04-01 21:46:03
Revision:17702
Relative:URL: ^/trunk

Identification: JOSM/1.5 (17702 hu) Windows 10 64-Bit
OS Build number: Windows 10 Pro for Workstations 2009 (19042)
Memory Usage: 912 MB / 1820 MB (719 MB allocated, but free)
Java version: 1.8.0_281-b09, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Screen: \Display0 1920×1200 (scaling 1,00×1,00)
Maximum Screen Size: 1920×1200
Best cursor sizes: 16×16→32×32, 32×32→32×32
System property file.encoding: Cp1250
System property sun.jnu.encoding: Cp1250

comment:44 Changed 12 months ago by nkamapper

I have an old iMac running High Sierra, which is not supported by OpenWebStart. The iMac cannot be upgraded to a newer OS. Is there a way to get an earlier version of josn.jnlp, which would work?

comment:45 Changed 12 months ago by skyper

Not on the official side, I guess, but note, *.jnlp are text files which can be modified and created with any text editor.

Another solution is to use .jar files directly. Starting should work from file manager or with java -jar path/filename from the console or with a simple start script including the java command. See Download.

comment:46 Changed 12 months ago by Don-vip

We will only support OpenWebStart for JNLP. However in your case you can use the macOS build directly instead of WebStart. There is also the brew cask package on macOS.

comment:47 in reply to:  19 Changed 9 months ago by taylor.smock

Somewhere in 2021: Enough JOSM users have switched to OpenWebStart so we can consider moving the codebase to Java 11.

Replying to Don-vip:

Current numbers:

Java Main Version --> 8 (7174, 67.6%) 9 (21,  0.2%) 10 (24,  0.2%) 11 (2130, 20.1%) 12 (167,  1.6%) 13 (248,  2.3%) 14 (299,  2.8%) 15 (532,  5.0%) 16 (10,  0.1%) 17 (7,  0.1%)

Have these numbers changed significantly? As in, will we be able to move to Java 11 somewhere in 2021, or is it going to be somewhere in 2022?

comment:48 Changed 9 months ago by stoecker

Looks still similar (I stripped the absolute values, only left the %):

Java Main Version --> 8 (66.4%) 9 (0.1%) 10 (0.2%) 11 (21.1%) 12 (1.0%) 13 (1.7%) 14 (2.3%) 15 (0.9%) 16 (5.6%) 17 (0.5%) 18 (0.3%)

Values of 15 now moved to 16, but the others are mainly unmoved.

Last edited 8 months ago by Don-vip (previous) (diff)

comment:49 in reply to:  48 Changed 9 months ago by taylor.smock

OK. We probably won't be moving to Java 11 this year then.
Thanks for looking.

comment:50 Changed 9 months ago by stoecker

It seems the majority of newer Java versions comes from newer Linux systems.

comment:51 Changed 9 months ago by Don-vip

Good news: most of Linux and mac users now use Java >= 11.
Bad news: almost 90% of Windows users (Windows users being about two thirds of the JOSM user base) are still using Java 8.

But it's not surprising as Oracle JRE will never prompt Java 8 users to update. And apart of the Java WebStart > OpenWebstart migration message, I still haven't make anything to ask "regular" JRE-based users to transition from an Oracle JRE to something else, so now would be a good time.

From https://rafael.codes/openjdk/ I think we should promote these two OpenJDK distributions:

They both ship OpenJFX, which could be handy for future long-term JOSM developments.

comment:52 in reply to:  51 ; Changed 9 months ago by taylor.smock

Replying to Don-vip:

Bad news: almost 90% of Windows users (Windows users being about two thirds of the JOSM user base) are still using Java 8.

I think I remember something somewhere talking about Minecraft and Java 16 being the baseline. Hopefully that pushes most of the users on Windows to Java 16 (and 16 > 11 :) ).

Do we want to use jpackage for the Windows installer as well (we are already using it for Mac)? This may also help us push to Java 11+. But it does increase size (15 mb -> 38mb).

They both ship OpenJFX, which could be handy for future long-term JOSM developments.

Good to know -- Mapillary was asking me (again) if I could reuse their Javascript based image viewer, which requires either (1) a JS engine that supports newer features (no native Java ones) or (b) embedding a web browser and distributing that for all the platforms JOSM supports.

comment:53 in reply to:  52 ; Changed 9 months ago by stoecker

Replying to taylor.smock:

Good to know -- Mapillary was asking me (again) if I could reuse their Javascript based image viewer, which requires either (1) a JS engine that supports newer features (no native Java ones) or (b) embedding a web browser and distributing that for all the platforms JOSM supports.

We did that in the past with a tool called webkit-image, which rendered a URL and saved the resulting image. This was necessary to follow the Yahoo guidelines for their service. Was an ugly workaround, but it worked. Don't know if JOSM still has the code for this or if it was removed.

comment:54 in reply to:  53 ; Changed 9 months ago by Don-vip

Replying to stoecker:

Don't know if JOSM still has the code for this or if it was removed.

Removed long ago ;) r11578:11581

Last edited 9 months ago by Don-vip (previous) (diff)

comment:55 in reply to:  52 Changed 9 months ago by Don-vip

Replying to taylor.smock:

Do we want to use jpackage for the Windows installer as well (we are already using it for Mac)? This may also help us push to Java 11+. But it does increase size (15 mb -> 38mb).

Yes, can be an option too.

comment:56 Changed 9 months ago by gaben

I still use Java 8 on Windows because in later versions they changed how scaling works and it is unusable for me. On Linux there is no difference :)
Will try again and report back if something improved in the meantime, which potentially means minus one Java 8 user.

comment:57 in reply to:  54 ; Changed 9 months ago by taylor.smock

Replying to Don-vip:

Replying to stoecker:

Don't know if JOSM still has the code for this or if it was removed.

Removed long ago ;) r11578:11581

author of removal: stoecker :)

And yes, it looks like an ugly workaround. AKA not something I want to do. I kind of want to try to avoid workarounds, if at all possible. They tend to break.

But if JavaFX is an option in the future, I believe MS Streetside has a 360 image viewer, which would probably fix the problem anyway (ignoring the perennial "2048px is too little for 360" comments).

comment:58 in reply to:  56 ; Changed 9 months ago by taylor.smock

Replying to gaben:

I still use Java 8 on Windows because in later versions they changed how scaling works and it is unusable for me. On Linux there is no difference :)
Will try again and report back if something improved in the meantime, which potentially means minus one Java 8 user.

Stupid question: Have you reported a bug to the JDK maintainers? Or is the scaling issue intentional?

comment:59 in reply to:  57 Changed 9 months ago by stoecker

Replying to taylor.smock:

Don't know if JOSM still has the code for this or if it was removed.

Removed long ago ;) r11578:11581

author of removal: stoecker :)

Ah no. That's unfair. It was broken before.

comment:60 in reply to:  58 Changed 9 months ago by anonymous

Replying to taylor.smock:

Stupid question: Have you reported a bug to the JDK maintainers? Or is the scaling issue intentional?

It was reported years ago and as far as I know it's an intentional fix for another scaling issue.
If you are interested I can collect the JDK ticket(s) and SO questions and a possible solution if there is any (should be).

Edit: the login cookie expired, it was me (gaben).

Last edited 9 months ago by gaben (previous) (diff)

comment:61 Changed 9 months ago by Don-vip

Ah great, we can give an hint to OpenWebStart about the vendor we prefer:
https://openwebstart.com/docs/OWSGuide.html#_specify_a_specific_vendor_in_the_jnlp_file

So if we set "Azul" or "BellSoft", OpenWebStart will download this JVM instead of AdoptOpenJDK (which doesn't include JavaFX).

It seems we can only specify a single vendor, so which one should we use between the two? Both seem OK.

comment:63 Changed 9 months ago by Don-vip

In 18159/josm:

see #17858 - request Azul JVM from OpenWebStart and add following JavaFX modules: controls,media,swing,web

comment:64 Changed 9 months ago by Don-vip

In 18160/josm:

see #17858 - make Debian/Ubuntu package depend on openjfx and add following JavaFX modules: controls,media,swing,web

comment:65 Changed 9 months ago by Don-vip

In 18161/josm:

see #17083, see #17858 - include JavaFX 16 in macOS/Windows packages

comment:66 Changed 9 months ago by Don-vip

Description: modified (diff)
Keywords: java17 added
Summary: OpenWebStart/Java 11 migrationOpenWebStart/Java 17 migration

I think we have now a good chance to switch to Java 17 somewhere in 2022. This migration will have been absolutely horrible, the worst in my Java development experience.

comment:67 Changed 9 months ago by Don-vip

Description: modified (diff)

comment:68 Changed 9 months ago by Don-vip

In 18166/josm:

see #17858 - promote Azul and BellSoft distributions over Oracle one

comment:69 Changed 9 months ago by Don-vip

In 35805/osm:

see #17858 - do no longer ship Java FX through giant openjfx plugin

comment:70 Changed 9 months ago by Don-vip

In 35806/osm:

see #17858 - do no longer ship Java FX through giant openjfx plugin (dist)

comment:71 Changed 9 months ago by Don-vip

In 18167/josm:

see #17858 - deprecate native javafx plugins, no longer needed, would rather cause harm as loading JavaFX through classpath is no longer supported anayway

https://github.com/openjdk/jfx/blob/master/doc-files/release-notes-16.md#javafx-runtime-logs-a-warning-if-javafx-modules-are-loaded-from-the-classpath

Changed 9 months ago by taylor.smock

Add automatic module name -- #15229 seems to indicate we'll want a lot of subpackages, but it may be useful to say "hey, we will be using this base module name"

comment:72 in reply to:  71 Changed 9 months ago by taylor.smock

Replying to Don-vip:

In 18167/josm:

see #17858 - deprecate native javafx plugins, no longer needed, would rather cause harm as loading JavaFX through classpath is no longer supported anayway

https://github.com/openjdk/jfx/blob/master/doc-files/release-notes-16.md#javafx-runtime-logs-a-warning-if-javafx-modules-are-loaded-from-the-classpath

For this deprecation, I should probably update the MS Streetside plugin to no longer depend upon JavaFX, right? Or should I wait for the September release to avoid breaking stuff right now?

comment:73 Changed 9 months ago by Don-vip

No need to wait for next release if you bump the min JOSM version of the plugin.

comment:74 in reply to:  73 ; Changed 9 months ago by taylor.smock

Replying to Don-vip:

No need to wait for next release if you bump the min JOSM version of the plugin.

Fair enough. Except I don't think the current JOSM packages for Windows are built that way. So I've got to wait for the stable release in order to set the min version. I can technically set the min version to the latest version, but I probably ought to wait for a release.

Anyway, I was thinking:

  • Move the JavaFX 360 viewer from MS Streetside into JOSM core (in a try-catch block, just so that people without JavaFX can still use JOSM), this will fix #16472.
  • Modify the ImageEntry class to have a isPano or is360 method (probably a default method returning false)
  • Modify the ImageEntry class to have a getNext and getPrevious method (maybe also getFirst and getLast as well)
  • Modify the ImageEntry class to have an additionalPainters method so that detections can be drawn on the image (Mapillary/KartaView).

But that should be in a different ticket. :)

comment:75 in reply to:  74 Changed 9 months ago by Don-vip

Replying to taylor.smock:

  • Move the JavaFX 360 viewer from MS Streetside into JOSM core (in a try-catch block, just so that people without JavaFX can still use JOSM), this will fix #16472.

I plan to finally take a look at it, move it to the openjfx plugin, with necessary changes in core if needed (like the MP3 player) so that 360 pictures can be viewed with just the openjfx plugin (indeed to fix #16472). Making sure JavaFX was available everywhere was the first step.

Let's discuss it in #16472.

comment:76 in reply to:  74 ; Changed 9 months ago by stoecker

Replying to taylor.smock:

I can technically set the min version to the latest version, but I probably ought to wait for a release.

That's not necessary. The minimum version is the needed minimum version for the plugin to work. The "stable" release is a rather artificial construct for josm to satisfy users (and developers) who expect such a thing. For the plugin mechanics it makes no difference.

comment:77 Changed 9 months ago by Don-vip

In 35807/osm:

see #17858 - fix javafx plugin

comment:78 Changed 9 months ago by Don-vip

In 35808/osm:

see #17858 - fix javafx plugin (dist)

comment:79 in reply to:  76 Changed 9 months ago by taylor.smock

Replying to stoecker:

That's not necessary. The minimum version is the needed minimum version for the plugin to work. The "stable" release is a rather artificial construct for josm to satisfy users (and developers) who expect such a thing. For the plugin mechanics it makes no difference.

The reason why I was inclined to wait for release is just in case someone's JNLP file doesn't self update -- I'm presuming there will be a note in StartupPage about the new JavaFX dependency, so they would at least be able to know about the change.

EDIT: I'm going to have to troubleshoot why I cannot seem to build MS Streetside (I've tried with openjfx installed).

See r35809/osm.

Last edited 9 months ago by taylor.smock (previous) (diff)

comment:80 Changed 9 months ago by Don-vip

In fact, why did you remove the dependency? I only deprecated the native plugins, but the openjfx plugin still exists, and I'd like to make it the only JOSM plugin to provide a 360° image viewer, if it appears JavaFX is really mandatory and we can't create a Swing-based one in core.

Last edited 9 months ago by Don-vip (previous) (diff)

comment:81 Changed 9 months ago by Don-vip

In 18171/josm:

see #17858 - add javafx to module-path in Linux launcher

comment:82 in reply to:  80 Changed 9 months ago by taylor.smock

Replying to Don-vip:

In fact, why did you remove the dependency? I only deprecated the native plugins, but the openjfx plugin still exists, and I'd like to make it the only JOSM plugin to provide a 360° image viewer, if it appears JavaFX is really mandatory and we can't create a Swing-based one in core.

My bad. I read "deprecated" as move off ASAP.

comment:83 Changed 9 months ago by Don-vip

No problem. The JavaFX handling is not really simple :D

comment:84 Changed 8 months ago by Don-vip

New numbers:

Java Main Version --> 8 (63.2%) 9 (0.1%) 10 (0.2%) 11 (20.4%) 12 (0.7%) 13 (1.3%) 14 (1.7%) 15 (0.8%) 16 (9.2%) 17 (1.3%) 18 (1.1%)

comment:85 Changed 8 months ago by skyper

Problem with open webstart on windows: #21354

comment:86 Changed 8 months ago by skyper

There are problems with kendzi3d plugin and java 16/17, see #21348.

Last edited 8 months ago by skyper (previous) (diff)

comment:87 Changed 7 months ago by Don-vip

Looks like the impact of Windows installer is massive, Java 8 dropped a lot more than I expected:

Java Main Version --> 8 (39.3%) 9 (0.1%) 10 (0.1%) 11 (24.2%) 12 (0.4%) 13 (1.0%) 14 (1.2%) 15 (0.4%) 16 (17.9%) 17 (8.3%) 18 (7.2%)

Among Java 8 users, the OS market share is:

Linux (18.6%) Mac (8.1%) Windows (73.4%)

comment:88 in reply to:  86 Changed 2 months ago by taylor.smock

Replying to skyper:

There are problems with kendzi3d plugin and java 16/17, see #21348.

Good news: I've got a kendzi3d-dev plugin that runs on Mac OSX under Java 17. There are a couple of bugs, but it doesn't crash.

comment:89 Changed 4 weeks ago by taylor.smock

As a heads up, some of the tools we use depend upon Java 11+ now.

Specifically,

comment:90 Changed 4 weeks ago by stoecker

StartupPage now warns for Java < 11. Maybe that helps ;-)

Last edited 4 weeks ago by stoecker (previous) (diff)

comment:91 Changed 4 weeks ago by taylor.smock

Good to know (also, Ubuntu 22.04 was released today).

It has been awhile since the last update of Java stats (see comment:87), but I would presume we are at least 60%+ Java 11 or later. And hopefully more like 80%+.

Anyway, neither checkstyle nor error_prone are required updates to get Java-EarlyAccess-JOSM working again (I think I could update jacoco from 0.8.7 to 0.8.8, but I don't know if something else will cause it to fail).

comment:92 Changed 4 weeks ago by stoecker

Current stats: 8 (36.1%) 11 (22.1%) 17 (34.6%)

comment:93 Changed 45 hours ago by anonymous

Hello, i still run into issues in OWS. It keeps saying that "no suitable jvm is found" whenever I launch from the file.

comment:94 in reply to:  93 Changed 45 hours ago by anonymous

Replying to anonymous:

Hello, i still run into issues in OWS. It keeps saying that "no suitable jvm is found" whenever I launch from the file.

worth noting, I can't launch from the terminal either.

comment:95 Changed 35 hours ago by anonymous

Used OWS in general without problems. Had a break of some weeks and now on MacOS 12.3.1 OWS complains about a missing JVM and it does not download it automaticalle. Is there a way to install the needed JVM (azul?) manually?

comment:96 Changed 26 hours ago by ajf3934221jos

Same problem … NO JVM

comment:97 Changed 19 hours ago by jBeata

Do you have a more clear deadline for discontinuing Java 8 support?

comment:98 in reply to:  96 Changed 18 hours ago by ajf3934221jos

Replying to ajf3934221jos:

Same problem … NO JVM

... solved by itself

comment:99 in reply to:  93 Changed 17 hours ago by taylor.smock

Replying to anonymous, anonymous, anonymous, ajf3934221jos, ajf3934221jos:

Hello, i still run into issues in OWS. It keeps saying that "no suitable jvm is found" whenever I launch from the file.

This appears to have been an OpenWebStart Bug. See https://github.com/karakun/OpenWebStart/issues/514 for more information. It should be fixed now.

Replying to jBeata:

Do you have a more clear deadline for discontinuing Java 8 support?

I do not. I don't know about the rest of the team. As noted by stoecker, we still have ~1/3 users on Java 8. Previous practice has been to increase Java versions when a relatively small portion of JOSM users are on the deprecated version (from comment:14, <5%). With that said, getting users to migrate off of Java 8 is somewhat of a nightmare (specifically for Mac/Windows users), since the java.com releases are Java 8. I've updated documentation to point to other Java distributions (specifically Azul with JavaFX), and I encourage users to either use OpenWebStart or the installers.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as assigned The owner will remain Don-vip.
as The resolution will be set.
to The owner will be changed from Don-vip to the specified user.
The owner will change to Don-vip
as duplicate The resolution will be set to duplicate.The specified ticket will be cross-referenced with this ticket

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.