Class ServiceLoaderUtil


  • class ServiceLoaderUtil
    extends java.lang.Object
    Shared ServiceLoader/FactoryFinder Utils. JAF and MAIL use the same loading logic of thread context class loader, calling class loader, and finally the system class loader.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) static void checkPackageAccess​(java.lang.String className)  
      (package private) static <P,​T extends java.lang.Exception>
      P
      firstByServiceLoader​(java.lang.Class<P> spiClass, java.lang.ClassLoader loader, java.util.logging.Logger logger, ServiceLoaderUtil.ExceptionHandler<T> handler)  
      (package private) static <P,​T extends java.lang.Exception>
      P
      newInstance​(java.lang.String className, java.lang.Class<P> service, java.lang.ClassLoader classLoader, ServiceLoaderUtil.ExceptionHandler<T> handler)  
      (package private) static <P> java.lang.Class<P> nullSafeLoadClass​(java.lang.String className, java.lang.ClassLoader classLoader)  
      (package private) static <P> java.lang.Class<P> safeLoadClass​(java.lang.String className, java.lang.ClassLoader classLoader)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ServiceLoaderUtil

        ServiceLoaderUtil()
    • Method Detail

      • firstByServiceLoader

        static <P,​T extends java.lang.Exception> P firstByServiceLoader​(java.lang.Class<P> spiClass,
                                                                              java.lang.ClassLoader loader,
                                                                              java.util.logging.Logger logger,
                                                                              ServiceLoaderUtil.ExceptionHandler<T> handler)
                                                                       throws T extends java.lang.Exception
        Throws:
        T extends java.lang.Exception
      • checkPackageAccess

        static void checkPackageAccess​(java.lang.String className)
      • nullSafeLoadClass

        static <P> java.lang.Class<P> nullSafeLoadClass​(java.lang.String className,
                                                        java.lang.ClassLoader classLoader)
                                                 throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • newInstance

        static <P,​T extends java.lang.Exception> P newInstance​(java.lang.String className,
                                                                     java.lang.Class<P> service,
                                                                     java.lang.ClassLoader classLoader,
                                                                     ServiceLoaderUtil.ExceptionHandler<T> handler)
                                                              throws T extends java.lang.Exception
        Throws:
        T extends java.lang.Exception
      • safeLoadClass

        static <P> java.lang.Class<P> safeLoadClass​(java.lang.String className,
                                                    java.lang.ClassLoader classLoader)
                                             throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException