Class RegisterExtensionsProcessor

    • Field Detail

      • log

        private static final org.slf4j.Logger log
      • delayRegistration

        private boolean delayRegistration
      • forceUpdate

        private boolean forceUpdate
      • numFiles

        private int numFiles
      • numError

        private int numError
      • numRegistered

        private int numRegistered
      • numUnregistered

        private int numUnregistered
    • Constructor Detail

      • RegisterExtensionsProcessor

        public RegisterExtensionsProcessor​(XmlLoader loader,
                                           ProcessResults results)
        Create a new processor.
        Parameters:
        loader - The XML loader to use when parsing the metadata
    • Method Detail

      • begin

        public void begin​(ExtensionsManager manager,
                          int numFiles)
        Description copied from interface: ExtensionsFileProcessor
        Called by the extensions manager before the processing starts.
        Specified by:
        begin in interface ExtensionsFileProcessor
        Parameters:
        manager - The manager that is executing the action
        numFiles - The number of extension files that is going to be processed this time
      • setDelayRegistration

        public void setDelayRegistration​(boolean delayRegistration)
        Set a flag to indicate if the actual registration of the found extensions and extension points should be delayed or not. The default is to not delay registration, which means that it happend when the done(ExtensionsManager) method is called by the manager. If this flag is set the finalizeRegistration(ExtensionsManager, boolean) method must be explicitely called.
      • isRegistrationDelayed

        public boolean isRegistrationDelayed()
        Is the actual registration delayed or not?
      • setForceUpdate

        public void setForceUpdate​(boolean forceUpdate)
        Set a flag to indicate if already registered extensions should be re-registered or not.
        Parameters:
        forceUpdate - TRUE to always re-register extensions, FALSE to only register new or updated extensions
      • getXmlLoader

        public XmlLoader getXmlLoader()
        Get the loader the processor is using for parsing xml files with extension definitions.
      • finalizeRegistration

        public void finalizeRegistration​(ExtensionsManager manager,
                                         boolean unregisterMissing)
      • getNumFiles

        public int getNumFiles()
        Get the number of files that was successfully processed.
      • getNumError

        public int getNumError()
        Get the number of files that was had an error.
      • getNumRegistered

        public int getNumRegistered()
        Get the number of extensions + extension points that was registered.
      • getNumUnregistered

        public int getNumUnregistered()
        Get the number of extensions + extension points that was unregistered.
      • unregisterExtensionPoint

        private boolean unregisterExtensionPoint​(RegisterExtensionsProcessor.FileData data,
                                                 ExtensionPoint<?> ep,
                                                 Registry registry)
        Unregister the given extension point if it is not included in the new file data information. In all cases, factory metadata must be removed, since we leak memory otherwise (new factory instances are always created when scanning a modified file).
        Returns:
        TRUE if the extension point is not going to be registered again
      • unregisterExtension

        private boolean unregisterExtension​(RegisterExtensionsProcessor.FileData data,
                                            Extension<?> ext,
                                            Registry registry)
        Unregister the given extension if it is not included in the new file data information. In all cases, factory metadata must be removed, since we leak memory otherwise (new factory instances are always created when scanning a modified file).
        Returns:
        TRUE if the extension point is not going to be registered again