Class PMController

java.lang.Object
org.apache.uima.tools.pear.merger.PMController

public class PMController extends Object
The PMController class allows to merge several input PEAR files in one PEAR file and generate an aggregate analysis engine from the components encapsulated in the input PEARs.
See Also:
  • Field Details

    • PEAR_MERGER

      static final String PEAR_MERGER
      See Also:
    • LOG_FILE

      static final String LOG_FILE
      See Also:
    • AGGREGATE_NAME_ARG

      static final String AGGREGATE_NAME_ARG
      See Also:
    • AGGREGATE_PEAR_FILE_ARG

      static final String AGGREGATE_PEAR_FILE_ARG
      See Also:
    • __pearFiles

      private static File[] __pearFiles
    • __aggregateName

      private static String __aggregateName
    • __aggregatePearFile

      private static File __aggregatePearFile
    • __logger

      private static Logger __logger
    • __logFileEnabled

      private static boolean __logFileEnabled
    • _inpPearFiles

      private File[] _inpPearFiles
    • _outAggCompName

      private String _outAggCompName
    • _outAggPearFile

      private File _outAggPearFile
    • _tempWorkDir

      private File _tempWorkDir
    • _outAggRootDir

      private File _outAggRootDir
    • _outDlgRootDirs

      private File[] _outDlgRootDirs
    • _dlgInstDescs

      private InstallationDescriptor[] _dlgInstDescs
    • _outAggInstDesc

      private InstallationDescriptor _outAggInstDesc
  • Constructor Details

    • PMController

      public PMController(File[] inpPearFiles, String outCompName, File outPearFile) throws IOException
      Constructor that takes a given array of input PEAR files, a given output component name (ID) and a given output PEAR file.
      Parameters:
      inpPearFiles - The given array of input PEAR files.
      outCompName - The given output component name (ID).
      outPearFile - The given output PEAR file.
      Throws:
      IOException - If any I/O exception occurred during initialization.
  • Method Details

    • main

      public static void main(String[] args)
      The command line application entry point. This method expects the following command line arguments:
      • pear_file_1 ... pear_file_n - input PEAR files (required)
      • -n agg_name - a name of the output aggregate analysis engine (required)
      • -f agg_pear_file - output aggregate PEAR file (optional).
        If the output PEAR file is not specified, the default output PEAR file is created in the current working directory.
      Parameters:
      args - pear_file_1 ... pear_file_n -n agg_name [-f agg_pear_file]
    • getLogger

      public static Logger getLogger()
      Returns the instance of the class-specific Logger object.
      Returns:
      The instance of the class-specific Logger object.
    • logErrorMessage

      public static void logErrorMessage(String message)
      Logs a given error message to the log file and prints it to the standard error console stream.
      Parameters:
      message - The given error message.
    • logInfoMessage

      public static void logInfoMessage(String message)
      Logs a given info message to the log file and prints it to the standard output console stream.
      Parameters:
      message - The given info message.
    • logWarningMessage

      public static void logWarningMessage(String message)
      Logs a given warning message to the log file and prints it to the standard error console stream.
      Parameters:
      message - The given warning message.
    • parseCommandLine

      private static boolean parseCommandLine(String[] args)
      Parses and validates the command line and initializes static attributes.
      Parameters:
      args - The given command line arguments.
      Returns:
      true, if the command line arguments are valid, false otherwise.
    • setLogFileEnabled

      public static void setLogFileEnabled(boolean enable)
      Enables/disables PM log file. By default, the log file is disabled.
      Parameters:
      enable - if true, the log file is enabled, otherwise it is disabled.
    • cleanUp

      public void cleanUp() throws IOException
      Deletes all temporary directories and files after the merging operation is completed.
      Throws:
      IOException - If an I/O exception occurred.
    • extractInputPears

      private long extractInputPears() throws IOException
      Extracts all specified input PEARs to their corresponding folders inside the output root folder. Returns the total size (bytes) of extracted files.
      Returns:
      The total size of extracted files.
      Throws:
      IOException - If any I/O exception occurred during extraction.
    • initializeTaskAttributes

      private void initializeTaskAttributes() throws IOException
      Intializes the 'PEAR Merger' task attributes, based on the specified input.
      Throws:
      IOException - If any I/O exception occurred during initialization.
    • mergePears

      public boolean mergePears() throws IOException
      Merges specified input PEARs into one PEAR, which encapsulates aggregate AE that refers to input components, as delegates. Returns true, if the merging operation completed successfully, false otherwise.
      Returns:
      true, if the merge operation completed successfully, false otherwise.
      Throws:
      IOException - If an I/O exception occurred during the merging operation.