Class PluginBag<T>

java.lang.Object
org.apache.solr.core.PluginBag<T>
All Implemented Interfaces:
AutoCloseable

public class PluginBag<T> extends Object implements AutoCloseable
This manages the lifecycle of a set of plugin of the same type .
  • Constructor Details

    • PluginBag

      public PluginBag(Class<T> klass, SolrCore core, boolean needThreadSafety)
      Pass needThreadSafety=true if plugins can be added and removed concurrently with lookups.
    • PluginBag

      public PluginBag(Class<T> klass, SolrCore core)
      Constructs a non-threadsafe plugin registry
  • Method Details

    • getJaxrsRegistry

      public PluginBag.JaxrsResourceToHandlerMappings getJaxrsRegistry()
    • initInstance

      public static void initInstance(Object inst, PluginInfo info)
    • checkContains

      public Set<String> checkContains(Collection<String> names)
      Check if any of the mentioned names are missing. If yes, return the Set of missing names
    • createPlugin

      public PluginBag.PluginHolder<T> createPlugin(PluginInfo info)
    • get

      public T get(String name)
      Get a plugin by name. If the plugin is not already instantiated, it is done here
    • get

      public T get(String name, boolean useDefault)
      Fetches a plugin by name , or the default
      Parameters:
      name - name using which it is registered
      useDefault - Return the default , if a plugin by that name does not exist
    • keySet

      public Set<String> keySet()
    • put

      public T put(String name, T plugin)
      register a plugin by a name
    • put

      public PluginBag.PluginHolder<T> put(String name, PluginBag.PluginHolder<T> plugin)
    • getRegistry

      public Map<String,PluginBag.PluginHolder<T>> getRegistry()
    • contains

      public boolean contains(String name)
    • isLoaded

      public boolean isLoaded(String name)
      To check if a plugin by a specified name is already loaded
    • close

      public void close()
      Close this registry. This will in turn call a close on all the contained plugins
      Specified by:
      close in interface AutoCloseable
    • closeQuietly

      public static void closeQuietly(Object inst)
    • v2lookup

      public Api v2lookup(String path, String method, Map<String,String> parts)
    • getApiBag

      public ApiBag getApiBag()
    • getJerseyEndpoints

      public org.glassfish.jersey.server.ResourceConfig getJerseyEndpoints()