Class ExtensionLoader<T>
java.lang.Object
org.apache.dubbo.common.extension.ExtensionLoader<T>
ApplicationModel, DubboBootstrap and this class are
at present designed to be singleton or static (by itself totally static or uses some static fields).
So the instances returned from them are of process or classloader scope. If you want to support
multiple dubbo servers in a single process, you may need to refactor these three classes.
Load dubbo extensions
- auto inject dependency extension
- auto wrap extension in wrapper
- default extension is an adaptive instance
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoidaddExtension(String name, Class<?> clazz) Register new extension via APIvoiddestroy()getActivateExtension(URL url, String key) This is equivalent togetActivateExtension(url, key, null)getActivateExtension(URL url, String[] values) This is equivalent togetActivateExtension(url, values, null)getActivateExtension(URL url, String[] values, String group) Get activate extensions.getActivateExtension(URL url, String key, String group) This is equivalent togetActivateExtension(url, url.getParameter(key).split(","), null)Return default extension, returnnullif it's not configured.Return default extension name, returnnullif not configured.getExtension(String name) Find the extension with the given name.getExtension(String name, boolean wrap) static <T> ExtensionLoader<T> getExtensionLoader(Class<T> type) Deprecated.get extension loader from extension director of some module.getExtensionName(Class<?> extensionClass) getExtensionName(T extensionInstance) getLoadedExtension(String name) Get extension's instance.Return the list of extensions which are already loaded.static List<LoadingStrategy> Get allLoading StrategiesgetOrDefaultExtension(String name) Get the extension by specified name if found, orreturns the default onebooleanhasExtension(String name) voidreplaceExtension(String name, Class<?> clazz) Deprecated.not recommended any longer, and use only when teststatic voidresetExtensionLoader(Class type) Deprecated.static voidsetLoadingStrategies(LoadingStrategy... strategies) toString()
-
Method Details
-
setLoadingStrategies
-
getLoadingStrategies
Get allLoading Strategies- Returns:
- non-null
- Since:
- 2.7.7
- See Also:
-
getExtensionLoader
Deprecated.get extension loader from extension director of some module.- See Also:
-
resetExtensionLoader
Deprecated. -
destroy
public void destroy() -
getExtensionName
-
getExtensionName
-
getActivateExtension
This is equivalent togetActivateExtension(url, key, null)- Parameters:
url- urlkey- url parameter key which used to get extension point names- Returns:
- extension list which are activated.
- See Also:
-
getActivateExtension
This is equivalent togetActivateExtension(url, values, null)- Parameters:
url- urlvalues- extension point names- Returns:
- extension list which are activated
- See Also:
-
getActivateExtension
This is equivalent togetActivateExtension(url, url.getParameter(key).split(","), null)- Parameters:
url- urlkey- url parameter key which used to get extension point namesgroup- group- Returns:
- extension list which are activated.
- See Also:
-
getActivateExtension
Get activate extensions.- Parameters:
url- urlvalues- extension point namesgroup- group- Returns:
- extension list which are activated
- See Also:
-
getActivateExtensions
-
getLoadedExtension
Get extension's instance. Returnnullif extension is not found or is not initialized. Pls. note that this method will not trigger extension load.In order to trigger extension load, call
getExtension(String)instead.- See Also:
-
getLoadedExtensions
Return the list of extensions which are already loaded.Usually
getSupportedExtensions()should be called in order to get all extensions.- See Also:
-
getLoadedExtensionInstances
-
getExtension
Find the extension with the given name.- Throws:
IllegalStateException- If the specified extension is not found.
-
getExtension
-
getOrDefaultExtension
Get the extension by specified name if found, orreturns the default one- Parameters:
name- the name of extension- Returns:
- non-null
-
getDefaultExtension
Return default extension, returnnullif it's not configured. -
hasExtension
-
getSupportedExtensions
-
getSupportedExtensionInstances
-
getDefaultExtensionName
Return default extension name, returnnullif not configured. -
addExtension
Register new extension via API- Parameters:
name- extension nameclazz- extension class- Throws:
IllegalStateException- when extension with the same name has already been registered.
-
replaceExtension
Deprecated.not recommended any longer, and use only when testReplace the existing extension via API- Parameters:
name- extension nameclazz- extension class- Throws:
IllegalStateException- when extension to be placed doesn't exist
-
getAdaptiveExtension
-
toString
-