Package org.apache.solr.pkg
Class PackageListeningClassLoader
java.lang.Object
org.apache.solr.pkg.PackageListeningClassLoader
- All Implemented Interfaces:
org.apache.solr.common.cloud.SolrClassLoader,PackageListeners.Listener
public class PackageListeningClassLoader
extends Object
implements org.apache.solr.common.cloud.SolrClassLoader, PackageListeners.Listener
A
SolrClassLoader that is designed to listen to a set of packages. This class registers a
listener for each package that is loaded through this. If any of those packages are updated, the
onReload runnable is run-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.solr.pkg.PackageListeners.Listener
PackageListeners.Listener.Ctx -
Constructor Summary
ConstructorsConstructorDescriptionPackageListeningClassLoader(CoreContainer coreContainer, org.apache.solr.common.cloud.SolrClassLoader fallbackClassLoader, Function<String, String> pkgVersionSupplier, Runnable onReload) -
Method Summary
Modifier and TypeMethodDescriptionvoidA callback when the package is updatedprotected void<T> Class<? extends T> findPackageVersion(PluginInfo.ClassName cName, boolean registerListener) This looks up for package and also listens for that package if requiredorg.apache.solr.common.MapWriter<T> TnewInstance(String cname, Class<T> expectedType, String... subpackages) <T> TnewInstance(String cname, Class<T> expectedType, String[] subPackages, Class<?>[] params, Object[] args) fetch the package versions of class namesName of the package or null to listen to all package changes
-
Constructor Details
-
PackageListeningClassLoader
public PackageListeningClassLoader(CoreContainer coreContainer, org.apache.solr.common.cloud.SolrClassLoader fallbackClassLoader, Function<String, String> pkgVersionSupplier, Runnable onReload) - Parameters:
fallbackClassLoader- TheSolrClassLoaderto use if no package is specifiedpkgVersionSupplier- Get the version configured for a given packageonReload- The callback function that should be run if a package is updated
-
-
Method Details
-
newInstance
- Specified by:
newInstancein interfaceorg.apache.solr.common.cloud.SolrClassLoader
-
findPackageVersion
public SolrPackageLoader.SolrPackage.Version findPackageVersion(PluginInfo.ClassName cName, boolean registerListener) This looks up for package and also listens for that package if required- Parameters:
cName- The class name
-
getPackageVersion
- Specified by:
getPackageVersionin interfacePackageListeners.Listener
-
newInstance
public <T> T newInstance(String cname, Class<T> expectedType, String[] subPackages, Class<?>[] params, Object[] args) - Specified by:
newInstancein interfaceorg.apache.solr.common.cloud.SolrClassLoader
-
findClass
- Specified by:
findClassin interfaceorg.apache.solr.common.cloud.SolrClassLoader
-
packageName
Description copied from interface:PackageListeners.ListenerName of the package or null to listen to all package changes- Specified by:
packageNamein interfacePackageListeners.Listener
-
packageDetails
Description copied from interface:PackageListeners.Listenerfetch the package versions of class names- Specified by:
packageDetailsin interfacePackageListeners.Listener
-
changed
Description copied from interface:PackageListeners.ListenerA callback when the package is updated- Specified by:
changedin interfacePackageListeners.Listener
-
doReloadAction
-