Class ClasspathResourceLoader

  • All Implemented Interfaces:
    ResourceLoader

    public final class ClasspathResourceLoader
    extends java.lang.Object
    implements ResourceLoader
    Simple ResourceLoader that uses ClassLoader.getResourceAsStream(String) and Class.forName(String,boolean,ClassLoader) to open resources and classes, respectively.

    To use this class with the Java Module System, you must open all modules on classpath that contain resources to the org.apache.lucene.core module, otherwise resources can't be looked up. It is recommended to use ModuleResourceLoader for such use cases as this would limit to certain modules.

    See Also:
    ModuleResourceLoader
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.Class<?> clazz  
      private java.lang.ClassLoader loader  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
        ClasspathResourceLoader​(java.lang.Class<?> clazz)
      Creates an instance using the context classloader to load Resources and classes Resources are resolved relative to the given class, if path is not absolute.
      private ClasspathResourceLoader​(java.lang.Class<?> clazz, java.lang.ClassLoader loader)  
        ClasspathResourceLoader​(java.lang.ClassLoader loader)
      Creates an instance using the given classloader to load Resources and classes.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <T> java.lang.Class<? extends T> findClass​(java.lang.String cname, java.lang.Class<T> expectedType)
      Finds class of the name and expected type
      java.io.InputStream openResource​(java.lang.String resource)
      Opens a named resource
      • Methods inherited from class java.lang.Object

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

      • clazz

        private final java.lang.Class<?> clazz
      • loader

        private final java.lang.ClassLoader loader
    • Constructor Detail

      • ClasspathResourceLoader

        public ClasspathResourceLoader​(java.lang.ClassLoader loader)
        Creates an instance using the given classloader to load Resources and classes. Resource paths must be absolute.
      • ClasspathResourceLoader

        public ClasspathResourceLoader​(java.lang.Class<?> clazz)
        Creates an instance using the context classloader to load Resources and classes Resources are resolved relative to the given class, if path is not absolute.
      • ClasspathResourceLoader

        private ClasspathResourceLoader​(java.lang.Class<?> clazz,
                                        java.lang.ClassLoader loader)
    • Method Detail

      • openResource

        public java.io.InputStream openResource​(java.lang.String resource)
                                         throws java.io.IOException
        Description copied from interface: ResourceLoader
        Opens a named resource
        Specified by:
        openResource in interface ResourceLoader
        Throws:
        java.io.IOException
      • findClass

        public <T> java.lang.Class<? extends T> findClass​(java.lang.String cname,
                                                          java.lang.Class<T> expectedType)
        Description copied from interface: ResourceLoader
        Finds class of the name and expected type
        Specified by:
        findClass in interface ResourceLoader