Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-3602

Investigate Flatlaf compatibility in IGB 10 for Windows

    Details

    • Type: Task
    • Status: To-Do (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      Flatlaf seems to work with Mac and Linux but in Windows it throws an javax namespace error. This error is the reason why David created three different branches for IGB JDK21:
      a) main-JDK21-with-javafx-no-theme
      b) main-JDK21-with-javafx-lighttheme
      c) main-JDK21-nojavafx-with-light-theme

      Changing the javax namespace to jakarta in Flatlat library should work in this issue.

        Attachments

          Activity

          Hide
          karthik Karthik Raveendran added a comment -

          After changing the javafx namespace in flallaf libraries (see attached jar files and script), the project is building but the following error appears while running:

          java.lang.NoClassDefFoundError: com/formdev/flatlaf/FlatDarkLaf
          	at com.affymetrix.main.OSGiHandler.setLaf(OSGiHandler.java:91)
          	at com.affymetrix.main.OSGiHandler.startOSGi(OSGiHandler.java:69)
          	at com.affymetrix.main.Main.main(Main.java:30)
          Caused by: java.lang.ClassNotFoundException: com.formdev.flatlaf.FlatDarkLaf
          	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
          	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
          	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
          	... 3 common frames omitted
          

          The only place the flatlaf changes should be implemented seems to be OSGIHandler.java. However, the set laf method is very sensitive in both OSGIHandler as well as IGB.java. May need some time to play around with it.

          Show
          karthik Karthik Raveendran added a comment - After changing the javafx namespace in flallaf libraries (see attached jar files and script), the project is building but the following error appears while running: java.lang.NoClassDefFoundError: com/formdev/flatlaf/FlatDarkLaf at com.affymetrix.main.OSGiHandler.setLaf(OSGiHandler.java:91) at com.affymetrix.main.OSGiHandler.startOSGi(OSGiHandler.java:69) at com.affymetrix.main.Main.main(Main.java:30) Caused by: java.lang.ClassNotFoundException: com.formdev.flatlaf.FlatDarkLaf at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang. ClassLoader .loadClass( ClassLoader .java:526) ... 3 common frames omitted The only place the flatlaf changes should be implemented seems to be OSGIHandler.java. However, the set laf method is very sensitive in both OSGIHandler as well as IGB.java. May need some time to play around with it.
          Hide
          karthik Karthik Raveendran added a comment - - edited

          Currently, testing dcnorris versions of flatlaf to check the errors there because one theory for the error was that the felix version is causing the error.
          a) The previous theory is that the race condition was not met but moving around the installation and implementation of Flatlaf as the UIManager lookandfeel class did not work.
          b) I also wonder if the jidesoft plaf is preventing flatlaf from getting implemented. I need to look into why and how we should use flatlaf-jide-oss.jar which is meant to prevent that.
          c) Another theory, the name space change from javax to jakarta in flatlaf may not have been done well.

          Show
          karthik Karthik Raveendran added a comment - - edited Currently, testing dcnorris versions of flatlaf to check the errors there because one theory for the error was that the felix version is causing the error. a) The previous theory is that the race condition was not met but moving around the installation and implementation of Flatlaf as the UIManager lookandfeel class did not work. b) I also wonder if the jidesoft plaf is preventing flatlaf from getting implemented. I need to look into why and how we should use flatlaf-jide-oss.jar which is meant to prevent that. c) Another theory, the name space change from javax to jakarta in flatlaf may not have been done well.
          Hide
          ann.loraine Ann Loraine added a comment -

          I think we can go ahead and close this. Based on what has been done thus far, it really seems like trying to use the library in IGB is error-prone and fragile. In that case, I think we should not use it, as the overhead of getting it to work is very high.

          Can we go ahead and conclude that we will not use this library in IGB due to its fragility?

          I would like to close this ticket, if you guys agree!

          attn: Karthik Raveendran and Nowlan Freese

          Show
          ann.loraine Ann Loraine added a comment - I think we can go ahead and close this. Based on what has been done thus far, it really seems like trying to use the library in IGB is error-prone and fragile. In that case, I think we should not use it, as the overhead of getting it to work is very high. Can we go ahead and conclude that we will not use this library in IGB due to its fragility? I would like to close this ticket, if you guys agree! attn: Karthik Raveendran and Nowlan Freese

            People

            • Assignee:
              karthik Karthik Raveendran
              Reporter:
              karthik Karthik Raveendran
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: