Class OSGiPluginRegistry

    • Field Detail

      • DATANUCLEUS_PKG

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

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

        java.util.Map<java.lang.String,​Bundle> registeredPluginByPluginId
        registered bundles files keyed by bundle symbolic name
    • Constructor Detail

      • OSGiPluginRegistry

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

      • getExtensionPoint

        public ExtensionPoint getExtensionPoint​(java.lang.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​(java.util.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 java.lang.Object createExecutableExtension​(ConfigurationElement confElm,
                                                          java.lang.String name,
                                                          java.lang.Class[] argTypes,
                                                          java.lang.Object[] args)
                                                   throws java.lang.ClassNotFoundException,
                                                          java.lang.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:
        java.lang.ClassNotFoundException - If an error occurs
        java.lang.SecurityException - If an error occurs
      • loadClass

        public java.lang.Class loadClass​(java.lang.String pluginId,
                                         java.lang.String className)
                                  throws java.lang.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:
        java.lang.ClassNotFoundException - if an error occurs in loading
      • resolveURLAsFileURL

        public java.net.URL resolveURLAsFileURL​(java.net.URL url)
                                         throws java.io.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:
        java.io.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
      • getOsgiBundle

        private org.osgi.framework.Bundle getOsgiBundle​(java.lang.String symbolicName)