public class ExtensionLoader<T> extends Object
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
SPI,
Adaptive,
Activate| 限定符和类型 | 方法和说明 |
|---|---|
void |
addExtension(String name,
Class<?> clazz)
Register new extension via API
|
static void |
destroyAll()
已过时。
|
List<T> |
getActivateExtension(URL url,
String key)
This is equivalent to
getActivateExtension(url, key, null) |
List<T> |
getActivateExtension(URL url,
String[] values)
This is equivalent to
getActivateExtension(url, values, null) |
List<T> |
getActivateExtension(URL url,
String[] values,
String group)
Get activate extensions.
|
List<T> |
getActivateExtension(URL url,
String key,
String group)
This is equivalent to
getActivateExtension(url, url.getParameter(key).split(","), null) |
T |
getAdaptiveExtension() |
T |
getDefaultExtension()
Return default extension, return
null if it's not configured. |
String |
getDefaultExtensionName()
Return default extension name, return
null if not configured. |
T |
getExtension(String name)
Find the extension with the given name.
|
T |
getExtension(String name,
boolean wrap) |
static <T> ExtensionLoader<T> |
getExtensionLoader(Class<T> type) |
String |
getExtensionName(Class<?> extensionClass) |
String |
getExtensionName(T extensionInstance) |
Object |
getLoadedAdaptiveExtensionInstances() |
T |
getLoadedExtension(String name)
Get extension's instance.
|
List<T> |
getLoadedExtensionInstances() |
Set<String> |
getLoadedExtensions()
Return the list of extensions which are already loaded.
|
static List<LoadingStrategy> |
getLoadingStrategies()
Get all
Loading Strategies |
T |
getOrDefaultExtension(String name)
Get the extension by specified name if found, or
returns the default one |
T |
getOriginalInstance(String name)
get the original type.
|
Set<T> |
getSupportedExtensionInstances() |
Set<String> |
getSupportedExtensions() |
boolean |
hasExtension(String name) |
void |
replaceExtension(String name,
Class<?> clazz)
已过时。
not recommended any longer, and use only when test
|
static void |
resetExtensionLoader(Class type)
已过时。
|
static void |
setLoadingStrategies(LoadingStrategy... strategies) |
String |
toString() |
public static void setLoadingStrategies(LoadingStrategy... strategies)
public static List<LoadingStrategy> getLoadingStrategies()
Loading StrategiesLoadingStrategy,
Prioritizedpublic static <T> ExtensionLoader<T> getExtensionLoader(Class<T> type)
@Deprecated public static void resetExtensionLoader(Class type)
@Deprecated public static void destroyAll()
public List<T> getActivateExtension(URL url, String key)
getActivateExtension(url, key, null)url - urlkey - url parameter key which used to get extension point namesgetActivateExtension(org.apache.dubbo.common.URL, String, String)public List<T> getActivateExtension(URL url, String[] values)
getActivateExtension(url, values, null)url - urlvalues - extension point namesgetActivateExtension(org.apache.dubbo.common.URL, String[], String)public List<T> getActivateExtension(URL url, String key, String group)
getActivateExtension(url, url.getParameter(key).split(","), null)url - urlkey - url parameter key which used to get extension point namesgroup - groupgetActivateExtension(org.apache.dubbo.common.URL, String[], String)public List<T> getActivateExtension(URL url, String[] values, String group)
url - urlvalues - extension point namesgroup - groupActivatepublic T getLoadedExtension(String name)
null if 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.
getExtension(String)public Set<String> getLoadedExtensions()
Usually getSupportedExtensions() should be called in order to get all extensions.
getSupportedExtensions()public Object getLoadedAdaptiveExtensionInstances()
public T getExtension(String name)
IllegalStateException
will be thrown.public T getOrDefaultExtension(String name)
returns the default onename - the name of extensionpublic T getDefaultExtension()
null if it's not configured.public boolean hasExtension(String name)
public String getDefaultExtensionName()
null if not configured.public void addExtension(String name, Class<?> clazz)
name - extension nameclazz - extension classIllegalStateException - when extension with the same name has already been registered.@Deprecated public void replaceExtension(String name, Class<?> clazz)
name - extension nameclazz - extension classIllegalStateException - when extension to be placed doesn't existpublic T getAdaptiveExtension()
Copyright © 2011–2023 The Apache Software Foundation. All rights reserved.