Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-1096

Rework application class loading to be more friendly to modular environments

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      There are two issues with modularity/classloading in Infinispan:

      1) Using the TCCL as the classloader to load Infinispan classes is a bad idea. Instead we should use org.infinispan.foo.Bar.getClass().getClassLoader().

      This has been addressed as a separate issue.

      2) When we need to load application classes we need a different approach to that used today. Most of the time the TCCL is perfect for this. However sometimes Infinispan may be invoked outside of the application, when the TCCL may not be set in AS7. Jason and I discussed three options:

      a) require (through a platform integration documentation contract) that the TCCL must always be set when Infinispan is invoked.
      b) Have some sort of InvocationContext which knows what the correct classloader to use is (aka Hibernate/Seam/Weld design where there is a per-application construct based on a ThreadLocal). Given this hasn't been designed into the core, it seems like a large retrofit
      c) Make users specify the CL (directly or indirectly) via the API (as we discussed).

              pmuiratbleepbleep Pete Muir (Inactive)
              pmuiratbleepbleep Pete Muir (Inactive)
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: