SolrResourceLoader (Solr 3.6.2 API)
Keywords: org.apache.solr.core.SolrResourceLoader class

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.solr.core
Class SolrResourceLoader

    java.lang.Object
      org.apache.solr.core.SolrResourceLoader

All Implemented Interfaces:
  ResourceLoader

    public class SolrResourceLoader

extends Object
implements ResourceLoader

Since:
  solr 1.3

Field Summary
`static org.slf4j.Logger` | `log`

Constructor Summary
`SolrResourceLoader(String instanceDir)`
`SolrResourceLoader(String instanceDir, ClassLoader parent)` This loader will delegate to the context classloader when possible, otherwise it will attempt to resolve resources using any jar files found in the "lib/" directory in the specified instance directory.
`SolrResourceLoader(String instanceDir, ClassLoader parent, Properties coreProperties)` This loader will delegate to the context classloader when possible, otherwise it will attempt to resolve resources using any jar files found in the "lib/" directory in the specified instance directory.

Method Summary
`Class` | `findClass(String cname, String... subpackages)` This method loads a class either with it's FQN or a short-name (solr.class-simplename or class-simplename).
`ClassLoader` | `getClassLoader()` + * EXPERT + * + * The underlying class loader.
`String` | `getConfigDir()`
`Properties` | `getCoreProperties()`
`String` | `getDataDir()`
`String` | `getInstanceDir()`
`List<String>` | `getLines(String resource)` Accesses a resource by name and returns the (non comment) lines containing data.
`List<String>` | `getLines(String resource, Charset charset)`
`List<String>` | `getLines(String resource, String encoding)` Accesses a resource by name and returns the (non comment) lines containing data using the given character encoding.
`void` | `inform(Map<String,SolrInfoMBean> infoRegistry)` Register any `SolrInfoMBean`s
`void` | `inform(ResourceLoader loader)` Tell all `ResourceLoaderAware` instances about the loader
`void` | `inform(SolrCore core)` Tell all `SolrCoreAware` instances about the SolrCore
`static String` | `locateInstanceDir()` Deprecated.
`static String` | `locateSolrHome()` Finds the solrhome based on looking up the value in one of three places: JNDI: via java:comp/env/solr/home The system property solr.solr.home Look in the current working directory for a solr/ directory The return value is normalized.
`Object` | `newAdminHandlerInstance(CoreContainer coreContainer, String cname, String... subpackages)`
`Object` | `newInstance(String cname, String... subpackages)`
`Object` | `newInstance(String cName, String[] subPackages, Class[] params, Object[] args)`
`static String` | `normalizeDir(String path)` Ensures a directory name always ends with a '/'.
`InputStream` | `openConfig(String name)` Opens a config resource by its name.
`InputStream` | `openResource(String resource)` Opens any resource by its name.
`InputStream` | `openSchema(String name)` Opens a schema resource by its name.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### log

    public static final org.slf4j.Logger log

Constructor Detail

### SolrResourceLoader

    public SolrResourceLoader(String instanceDir,
                              ClassLoader parent,
                              Properties coreProperties)

  This loader will delegate to the context classloader when possible, otherwise it will attempt to resolve resources using any jar files found in the "lib/" directory in the specified instance directory.

  Parameters:
    `instanceDir` - - base directory for this resource loader, if null locateSolrHome() will be used.
  See Also:
    `locateSolrHome()`

### SolrResourceLoader

    public SolrResourceLoader(String instanceDir,
                              ClassLoader parent)

  This loader will delegate to the context classloader when possible, otherwise it will attempt to resolve resources using any jar files found in the "lib/" directory in the specified instance directory. If the instance directory is not specified (=null), SolrResourceLoader#locateInstanceDir will provide one.

### SolrResourceLoader

    public SolrResourceLoader(String instanceDir)

Method Detail

### normalizeDir

    public static String normalizeDir(String path)

  Ensures a directory name always ends with a '/'.

### getConfigDir

    public String getConfigDir()

### getDataDir

    public String getDataDir()

### getCoreProperties

    public Properties getCoreProperties()

### openSchema

    public InputStream openSchema(String name)

  Opens a schema resource by its name. Override this method to customize loading schema resources.

  Returns:
    the stream for the named schema

### openConfig

    public InputStream openConfig(String name)

  Opens a config resource by its name. Override this method to customize loading config resources.

  Returns:
    the stream for the named configuration

### openResource

    public InputStream openResource(String resource)

  Opens any resource by its name. By default, this will look in multiple locations to load the resource: $configDir/$resource (if resource is not absolute) $CWD/$resource otherwise, it will look for it in any jar accessible through the class loader. Override this method to customize loading resources.

  Specified by:
    `openResource` in interface `ResourceLoader`
  Returns:
    the stream for the named resource

### getLines

    public List<String> getLines(String resource)
                          throws IOException

  Accesses a resource by name and returns the (non comment) lines containing data.

  A comment line is any line that starts with the character "#"

  Specified by:
    `getLines` in interface `ResourceLoader`
  Parameters:
    `resource` -
  Returns:
    a list of non-blank non-comment lines with whitespace trimmed from front and back.
  Throws:
    `IOException`

### getLines

    public List<String> getLines(String resource,
                                 String encoding)
                          throws IOException

  Accesses a resource by name and returns the (non comment) lines containing data using the given character encoding.

  A comment line is any line that starts with the character "#"

  Parameters:
    `resource` - the file to be read
    `encoding` -
  Returns:
    a list of non-blank non-comment lines with whitespace trimmed
  Throws:
    `IOException`

### getLines

    public List<String> getLines(String resource,
                                 Charset charset)
                          throws IOException

  Throws:
    `IOException`

### findClass

    public Class findClass(String cname,
                           String... subpackages)

  This method loads a class either with it's FQN or a short-name (solr.class-simplename or class-simplename). It tries to load the class with the name that is given first and if it fails, it tries all the known solr packages. This method caches the FQN of a short-name in a static map in-order to make subsequent lookups for the same class faster. The caching is done only if the class is loaded by the webapp classloader and it is loaded using a shortname.

  Parameters:
    `cname` - The name or the short name of the class.
    `subpackages` - the packages to be tried if the cnams starts with solr.
  Returns:
    the loaded class. An exception is thrown if it fails

### newInstance

    public Object newInstance(String cname,
                              String... subpackages)

  Specified by:
    `newInstance` in interface `ResourceLoader`

### newAdminHandlerInstance

    public Object newAdminHandlerInstance(CoreContainer coreContainer,
                                          String cname,
                                          String... subpackages)

### newInstance

    public Object newInstance(String cName,
                              String[] subPackages,
                              Class[] params,
                              Object[] args)

### inform

    public void inform(SolrCore core)

  Tell all `SolrCoreAware` instances about the SolrCore

### inform

    public void inform(ResourceLoader loader)

  Tell all `ResourceLoaderAware` instances about the loader

### inform

    public void inform(Map<String,SolrInfoMBean> infoRegistry)

  Register any `SolrInfoMBean`s

  Parameters:
    `infoRegistry` - The Info Registry

### locateSolrHome

    public static String locateSolrHome()

  Finds the solrhome based on looking up the value in one of three places:
  1. JNDI: via java:comp/env/solr/home
  2. The system property solr.solr.home
  3. Look in the current working directory for a solr/ directory
  The return value is normalized. Normalization essentially means it ends in a trailing slash.

  Returns:
    A normalized solrhome
  See Also:
    `normalizeDir(String)`

### locateInstanceDir

    @Deprecated
    public static String locateInstanceDir()

  Deprecated.

### getInstanceDir

    public String getInstanceDir()

### getClassLoader

    public ClassLoader getClassLoader()

  + * EXPERT + *

  + * The underlying class loader. Most applications will not need to use this. + * @return The `ClassLoader` +

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD