Package org.datanucleus.plugin
Class OSGiPluginRegistry
- java.lang.Object
-
- org.datanucleus.plugin.OSGiPluginRegistry
-
- All Implemented Interfaces:
PluginRegistry
public class OSGiPluginRegistry extends Object implements PluginRegistry
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
OSGiPluginRegistry.ExtensionSorter
Sorter for extensions that puts DataNucleus extensions first, then any vendor extension.
-
Constructor Summary
Constructors Constructor Description OSGiPluginRegistry(ClassLoaderResolver clr)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
createExecutableExtension(ConfigurationElement confElm, String name, Class[] argTypes, Object[] args)
Loads a class (do not initialize) from an attribute ofConfigurationElement
Bundle[]
getBundles()
Accessor for all registered bundlesExtensionPoint
getExtensionPoint(String id)
Acessor for the ExtensionPointExtensionPoint[]
getExtensionPoints()
Acessor for the currently registed ExtensionPointsClass
loadClass(String pluginId, String className)
Loads a class (do not initialize)void
registerExtensionPoints()
Look for Bundles/Plugins and register them.protected void
registerExtensionPointsForPluginInternal(List<ExtensionPoint> extPoints, boolean updateExtensionPointsArray)
Register extension-points for the specified plugin.void
registerExtensions()
Look for Bundles/Plugins and register them.void
resolveConstraints()
Resolve constraints declared in bundle manifest.mf files.URL
resolveURLAsFileURL(URL url)
Converts a URL that uses a user-defined protocol into a URL that uses the file protocol.
-
-
-
Constructor Detail
-
OSGiPluginRegistry
public OSGiPluginRegistry(ClassLoaderResolver clr)
Constructor- Parameters:
clr
- the ClassLoaderResolver
-
-
Method Detail
-
getExtensionPoint
public ExtensionPoint getExtensionPoint(String id)
Description copied from interface:PluginRegistry
Acessor for the ExtensionPoint- Specified by:
getExtensionPoint
in interfacePluginRegistry
- Parameters:
id
- the unique id of the extension point- Returns:
- null if the ExtensionPoint is not registered
-
getExtensionPoints
public ExtensionPoint[] getExtensionPoints()
Description copied from interface:PluginRegistry
Acessor for the currently registed ExtensionPoints- Specified by:
getExtensionPoints
in interfacePluginRegistry
- Returns:
- array of ExtensionPoints
-
registerExtensionPoints
public void registerExtensionPoints()
Description copied from interface:PluginRegistry
Look for Bundles/Plugins and register them. Register also ExtensionPoints and Extensions declared in /plugin.xml files- Specified by:
registerExtensionPoints
in interfacePluginRegistry
-
registerExtensions
public void registerExtensions()
Description copied from interface:PluginRegistry
Look for Bundles/Plugins and register them. Register also ExtensionPoints and Extensions declared in /plugin.xml files- Specified by:
registerExtensions
in interfacePluginRegistry
-
registerExtensionPointsForPluginInternal
protected void registerExtensionPointsForPluginInternal(List<ExtensionPoint> extPoints, boolean updateExtensionPointsArray)
Register extension-points for the specified plugin.- Parameters:
extPoints
- ExtensionPoints for this pluginupdateExtensionPointsArray
- Whether to update "extensionPoints" array
-
createExecutableExtension
public Object createExecutableExtension(ConfigurationElement confElm, String name, Class[] argTypes, Object[] args) throws ClassNotFoundException, SecurityException
Description copied from interface:PluginRegistry
Loads a class (do not initialize) from an attribute ofConfigurationElement
- Specified by:
createExecutableExtension
in interfacePluginRegistry
- Parameters:
confElm
- the configuration elementname
- the attribute nameargTypes
- Types of the constructor argumentsargs
- The arguments- Returns:
- the instance
- Throws:
ClassNotFoundException
- If an error occursSecurityException
- If an error occurs
-
loadClass
public Class loadClass(String pluginId, String className) throws ClassNotFoundException
Description copied from interface:PluginRegistry
Loads a class (do not initialize)- Specified by:
loadClass
in interfacePluginRegistry
- Parameters:
pluginId
- the plugin idclassName
- the class name- Returns:
- the Class
- Throws:
ClassNotFoundException
- if an error occurs in loading
-
resolveURLAsFileURL
public URL resolveURLAsFileURL(URL url) throws IOException
Description copied from interface:PluginRegistry
Converts a URL that uses a user-defined protocol into a URL that uses the file protocol.- Specified by:
resolveURLAsFileURL
in interfacePluginRegistry
- Parameters:
url
- the url to be converted- Returns:
- the converted URL
- Throws:
IOException
- if an error occurs
-
resolveConstraints
public void resolveConstraints()
Description copied from interface:PluginRegistry
Resolve constraints declared in bundle manifest.mf files. This must be invoked after registering all bundles. Should log errors if bundles are not resolvable, or raise runtime exceptions.- Specified by:
resolveConstraints
in interfacePluginRegistry
-
getBundles
public Bundle[] getBundles()
Description copied from interface:PluginRegistry
Accessor for all registered bundles- Specified by:
getBundles
in interfacePluginRegistry
- Returns:
- the bundles
-
-