Class OSGiPluginRegistry

java.lang.Object
org.datanucleus.plugin.OSGiPluginRegistry
All Implemented Interfaces:
PluginRegistry

public class OSGiPluginRegistry extends Object implements PluginRegistry
  • Field Details

    • DATANUCLEUS_PKG

      private static final String DATANUCLEUS_PKG
      DataNucleus package to define whether to check for deps, etc.
      See Also:
    • extensionPointsByUniqueId

      Map<String,ExtensionPoint> extensionPointsByUniqueId
      extension points keyed by Unique Id (plugin.id +"."+ id)
    • registeredPluginByPluginId

      Map<String,Bundle> registeredPluginByPluginId
      registered bundles files keyed by bundle symbolic name
    • extensionPoints

      ExtensionPoint[] extensionPoints
      extension points
  • Constructor Details

    • OSGiPluginRegistry

      public OSGiPluginRegistry(ClassLoaderResolver clr)
      Constructor
      Parameters:
      clr - the ClassLoaderResolver
  • Method Details

    • getExtensionPoint

      public ExtensionPoint getExtensionPoint(String id)
      Description copied from interface: PluginRegistry
      Acessor for the ExtensionPoint
      Specified by:
      getExtensionPoint in interface PluginRegistry
      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 interface PluginRegistry
      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 interface PluginRegistry
    • 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 interface PluginRegistry
    • registerExtensionPointsForPluginInternal

      protected void registerExtensionPointsForPluginInternal(List<ExtensionPoint> extPoints, boolean updateExtensionPointsArray)
      Register extension-points for the specified plugin.
      Parameters:
      extPoints - ExtensionPoints for this plugin
      updateExtensionPointsArray - Whether to update "extensionPoints" array
    • registerBundle

      private Bundle registerBundle(org.osgi.framework.Bundle osgiBundle)
      Register the plugin bundle.
      Parameters:
      osgiBundle - the OSGi bundle
      Returns:
      the Plugin
    • 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 of ConfigurationElement
      Specified by:
      createExecutableExtension in interface PluginRegistry
      Parameters:
      confElm - the configuration element
      name - the attribute name
      argTypes - Types of the constructor arguments
      args - The arguments
      Returns:
      the instance
      Throws:
      ClassNotFoundException - If an error occurs
      SecurityException - 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 interface PluginRegistry
      Parameters:
      pluginId - the plugin id
      className - 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 interface PluginRegistry
      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 interface PluginRegistry
    • getBundles

      public Bundle[] getBundles()
      Description copied from interface: PluginRegistry
      Accessor for all registered bundles
      Specified by:
      getBundles in interface PluginRegistry
      Returns:
      the bundles
    • getOsgiBundle

      private org.osgi.framework.Bundle getOsgiBundle(String symbolicName)