Interface ExtensionsFileProcessor

All Known Implementing Classes:
DeleteResourcesProcessor, DisablePluginsProcessor, ExtractResourcesProcessor, IgnoreFileProcessor, InstalledFileProcessor, LoadServletsProcessor, MarkAsProcessedProcessor, PluginInstallationProcessor, RegisterExtensionsProcessor, ResetProcessor, UninstalledFileProcessor, UnregisterExtensionsProcessor, WebClientRegisterExtensionsProcessor

public interface ExtensionsFileProcessor
Interface that is used to request a callback for each extensions file managed by an extensions manager. Implementations are more or less free to do whatever they want with the file. Typically, they will scan the XML metadata or the contents of a JAR file and do something with it.

A processer implementation is used by calling ExtensionsManager.processFiles(ExtensionsFileProcessor).

The manager will first call begin(ExtensionsManager, int) and then processFile(ExtensionsManager, ExtensionsFile.WriteableExtensionsFile) for each file that has been confirmed to contain a valid extension definitions file. If all files could be processed without problems the manager finishes by calling done(ExtensionsManager). If the processor throws an exception the processing is immediately aborted and done(ExtensionsManager, Throwable) is called instead.

Since:
3.0
Author:
Nicklas
Last modified
$Date: 2011-10-24 15:02:46 +0200 (må, 24 okt 2011) $
  • Method Details

    • begin

      void begin(ExtensionsManager manager, int numFiles)
      Called by the extensions manager before the processing starts.
      Parameters:
      manager - The manager that is executing the action
      numFiles - The number of extension files that is going to be processed this time
    • processFile

      Called by the extensions manager for each extensions file that it manages. The order of the files is generally not predicatable and may change from one invokation to the next.

      If the processor throws an exception the manager will abort processing and call done(ExtensionsManager, Throwable). Error that are related to a specific file should be catched by the processor and registered by calling .......

      If all files was processed without exceptions the manager will call done(ExtensionsManager).

      Note that the file is read-only to begin with. If the processor wants to call any write-operation the file must be opened by calling ExtensionsFile.WriteableExtensionsFile.open(). It is recommended that the processor calls ExtensionsFile.WriteableExtensionsFile.close() once it is done writing.

      Parameters:
      manager - The manager that is executing the action
      file - The file to be processed
    • done

      void done(ExtensionsManager manager)
      Called by the extensions manager after a successful completion of the processing.
      Parameters:
      manager - The manager that is executing the action
    • done

      void done(ExtensionsManager manager, Throwable t)
      Called by the extensions manager if an exception was thrown by the processor.
      Parameters:
      manager - The manager that is executing the action
      t - The exception