<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>1404</bug_id>
          
          <creation_ts>2019-11-30 18:39:08 +0100</creation_ts>
          <short_desc>Support Java 11+ Features (Module Encapsulation, jlink, ..)</short_desc>
          <delta_ts>2024-03-12 10:02:28 +0100</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>General</product>
          <component>generic</component>
          <version>tbd</version>
          <rep_platform>All</rep_platform>
          <op_sys>all</op_sys>
          <bug_status>CONFIRMED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>1425</dependson>
    
    <dependson>1363</dependson>
    
    <dependson>1374</dependson>
          <blocked>1505</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sven Gothel">sgothel</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>gouessej</cc>
    
    <cc>mfery</cc>
    
    <cc>stacktracer</cc>
    
    <cc>wwalker3</cc>
          
          <cf_type>FEATURE</cf_type>
          <cf_scm_refs></cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>6365</commentid>
    <comment_count>0</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2019-11-30 18:39:08 +0100</bug_when>
    <thetext>This bug entry acts as a parent node for all bugs related 
to support certain Java 11+ features on top of Bug 1636

I leave references for this issue:

Related Reading / Overview
- https://blog.joda.org/2018/09/from-java-8-to-java-11.html
- https://blog.joda.org/search/label/modules

Related JEPs
- http://openjdk.java.net/jeps/220 Modular JRE
- http://openjdk.java.net/jeps/260 Encapsulation
- http://openjdk.java.net/jeps/238 Multi-Release JAR Files
- http://openjdk.java.net/jeps/282 jlink (the Java linker)
- http://openjdk.java.net/jeps/261 Module System

++++

Please note that:
- Both, Java-8 and Java-11 have LTS (long time support)

- We will not test against Java-9 nor Java-10: Already outdated

- Oracle&apos;s Java build&apos;s are no more licensed for commercial use beyond Java-8

- We will only test &amp; use OpenJDK builds starting with Java-11</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6366</commentid>
    <comment_count>1</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2019-11-30 18:41:41 +0100</bug_when>
    <thetext>.. on top of Bug 1363</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6629</commentid>
    <comment_count>2</comment_count>
    <who name="Mike Hogye">stacktracer</who>
    <bug_when>2020-02-14 20:28:43 +0100</bug_when>
    <thetext>Will the eventual 2.4.0 release jars include &quot;Automatic-Module-Name&quot; entries in their manifests? (This is described by one of your Related Reading links: https://blog.joda.org/search/label/modules.)

The 2.4.0-rc-20200202 jars (not the fat jar, but the gluegen-rt and jogl-all jars) currently don&apos;t work when they are put on the modulepath, where they are treated as automatic modules. Java makes up module names based on the jar filenames ... and Java&apos;s heuristic gives the same module name for both &quot;jogl-all-2.4.0-rc-20200202.jar&quot; and &quot;jogl-all-2.4.0-rc-20200202-natives-linux-amd64.jar&quot;. (The heuristic scans until it finds the first hyphen-then-digit, and assumes the rest of the filename is a version -- the automatic module name for both jars is &quot;jogl.all&quot;.)

This could be addressed by putting &quot;Automatic-Module-Name&quot; entries in the jar manifests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6630</commentid>
    <comment_count>3</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2020-02-17 14:00:35 +0100</bug_when>
    <thetext>(In reply to Mike Hogye from comment #2)
Re &quot;Automatic-Module-Name&quot;, thank you Mike!

Can you create a new bug entry and make it a child of this parent entry.

We certainly can change things for the manifest,
if they are backward compatible to Java8 .. (should be).

While I don&apos;t see jar files such as &quot;jogl-all-2.4.0-rc-20200202-natives-linux-amd64.jar&quot;, i.e. added version tag &apos;2.4.0-rc-date&apos; but this hints to the native lib loading via this auto-module feature?
Hence it is not so much relevant to the &apos;fat jar&apos;?

Please open the new bug entry, elaborate and link to these two comments.
If it is helping .. why not?
You may also propose a tested git patch ...
Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6632</commentid>
    <comment_count>4</comment_count>
    <who name="Mike Hogye">stacktracer</who>
    <bug_when>2020-02-17 18:36:28 +0100</bug_when>
    <thetext>(In reply to Sven Gothel from comment #3)

Added Bug 1425, which clarifies what I meant about the jar filenames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6746</commentid>
    <comment_count>5</comment_count>
    <who name="Julien Gouesse">gouessej</who>
    <bug_when>2021-09-05 23:12:04 +0200</bug_when>
    <thetext>I get this when I run an example using Java 17 build 35:
Exception in thread &quot;main&quot; java.lang.UnsatisfiedLinkError: /tmp/jogamp_0000/file_cache/jln3159141199686910866/jln18332382328256781421/natives/linux-amd64/libnativewindow_awt.so: /home/gouessej/Documents/installation/jdk-17/lib/libjawt.so: version `SUNWprivate_1.1&apos; not found (required by /tmp/jogamp_0000/file_cache/jln3159141199686910866/jln18332382328256781421/natives/linux-amd64/libnativewindow_awt.so)
        at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
        at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:384)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:228)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:170)
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389)
        at java.base/java.lang.Runtime.load0(Runtime.java:755)
        at java.base/java.lang.System.load(System.java:1953)
        at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:603)
        at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:63)
        at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:106)
        at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:487)
        at jogamp.nativewindow.NWJNILibLoader.access$000(NWJNILibLoader.java:39)
        at jogamp.nativewindow.NWJNILibLoader$1.run(NWJNILibLoader.java:49)
        at jogamp.nativewindow.NWJNILibLoader$1.run(NWJNILibLoader.java:41)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
        at jogamp.nativewindow.NWJNILibLoader.loadNativeWindow(NWJNILibLoader.java:41)
        at jogamp.nativewindow.jawt.JAWTUtil.&lt;clinit&gt;(JAWTUtil.java:336)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:467)
        at com.jogamp.nativewindow.NativeWindowFactory$3.run(NativeWindowFactory.java:344)
        at com.jogamp.nativewindow.NativeWindowFactory$3.run(NativeWindowFactory.java:340)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
        at com.jogamp.nativewindow.NativeWindowFactory.initSingleton(NativeWindowFactory.java:340)
        at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1721)
        at com.jogamp.opengl.GLProfile.access$000(GLProfile.java:80)
        at com.jogamp.opengl.GLProfile$1.run(GLProfile.java:230)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
        at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:216)
        at com.jogamp.opengl.GLProfile.getProfileMap(GLProfile.java:2297)
        at com.jogamp.opengl.GLProfile.get(GLProfile.java:1021)
        at com.jogamp.opengl.GLProfile.get(GLProfile.java:1050)
        at com.jogamp.opengl.GLProfile.getMaximum(GLProfile.java:756)
        at com.ardor3d.framework.jogl.CapsUtil.getProfile(CapsUtil.java:32)
        at com.ardor3d.framework.jogl.CapsUtil.getCapsForSettings(CapsUtil.java:103)
        at com.ardor3d.framework.jogl.CapsUtil.getCapsForSettings(CapsUtil.java:50)
        at com.ardor3d.framework.jogl.awt.JoglAwtCanvas.&lt;init&gt;(JoglAwtCanvas.java:55)
        at com.ardor3d.framework.jogl.awt.JoglAwtCanvas.&lt;init&gt;(JoglAwtCanvas.java:50)
        at com.ardor3d.example.canvas.JoglAwtExample.addCanvas(JoglAwtExample.java:153)
        at com.ardor3d.example.canvas.JoglAwtExample.main(JoglAwtExample.java:105) 

Is it fixed on the &quot;java11&quot; branch? Is it a known problem?</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>