Class NonManagedPluginRegistry

  • All Implemented Interfaces:
    PluginRegistry

    public class NonManagedPluginRegistry
    extends Object
    implements PluginRegistry
    Manages the registry of Extensions and Extension Points outside any OSGI container. This implementation cannot handle multiple versions of the same plugin, so it either raises an exception or logs the issue as a warning. This is different to that mandated by the OSGi specification 3.0 $3.5.2.
    • Constructor Detail

      • NonManagedPluginRegistry

        public NonManagedPluginRegistry​(ClassLoaderResolver clr,
                                        String bundleCheckType,
                                        boolean allowUserBundles)
        Constructor.
        Parameters:
        clr - the ClassLoaderResolver
        bundleCheckType - Type of check on bundles (EXCEPTION, LOG, NONE)
        allowUserBundles - Whether to only load DataNucleus bundles (org.datanucleus).
    • Method Detail

      • 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
      • 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

        protected Bundle registerBundle​(URL manifest)
        Register the plugin bundle.
        Parameters:
        manifest - the url to the "meta-inf/manifest.mf" file or a jar file
        Returns:
        the Plugin
      • registerBundle

        protected Bundle registerBundle​(Manifest mf,
                                        URL manifest)
        Register the plugin bundle.
        Parameters:
        mf - the Manifest
        manifest - the url to the "meta-inf/manifest.mf" file or a jar file
        Returns:
        the Plugin
      • 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
      • registerExtensionsForPlugin

        public void registerExtensionsForPlugin​(URL pluginURL,
                                                Bundle bundle)
        Register extension and extension points for the specified plugin. Note that this is only present for testing purposes, hence also why it is public.
        Parameters:
        pluginURL - the URL to the plugin
        bundle - the bundle