Package org.apache.uima.pear.tools
Class InstallationController
java.lang.Object
org.apache.uima.pear.tools.InstallationController
The
Note: current version works both in Windows and Linux.
This class may be used in the following ways:
InstallationController class allows installing PEAR files that contain UIMA
compliant components. Note: current version works both in Windows and Linux.
This class may be used in the following ways:
- As a standalone Java application -
java -DUIMA_HOME=%UIMA_HOME% org.apache.uima.pear.tools.InstallationController {-local pear_file | component_id} [-root] [installation_directory]
where the-local pear_fileoption allows to install local PEAR file in the local file system (without using SITH services);
thecomponent_idis the ID of the component to be installed using SITH services;
the-rootoption enables component installation directly in the specified installation directory, as opposed to installing component in acomponent_idsubdirectory of the specified installation directory;
theinstallation_directoryis the directory where the new component will be installed - if the-rootoption is specified, the component is installed in this directory, otherwise it is installed in acomponent_idsubdirectory of this directory; by default - current working directory. - As a Java object -
in this case, the caller is expected to set theUIMA_HOMEvariable, using thesetUimaHomePath()method, immediately after creating a new instance of theInstallationControllerclass.
Installation is performed by using theinstallComponent()method.
Installation verification is performed by using theverifyComponent()method.
Error messages can be retrieved by using thegetInstallationMsg()andgetVerificationMsg()methods.
Note 1: Starting from version 0.6, theInstallationControllerclass utilizes intra-process message routing (seeMessageRouter). Applications need to call theterminate()method on each instance of theInstallationControllerclass after all their operations are completed.
The application can get output and error messages, printed by theInstallationController, by adding standard channel listeners (see theaddMsgListener()method). By default, the output and error messages are printed to the standard console streams. Alternatively, the application can use theInstallationControllerconstructor that accepts a custom message listener. In this case, the output and error messages will not be printed to the standard console streams.
Note 2: Starting from version 1.4, theInstallationControllerclass defines theInstallationController.PackageSelectorinterface and allows to plug-in custom package selectors for manually or automatically selecting root directories of installed PEAR packages, as well as PEAR package files that need to be installed.
Note 2: Starting from version 1.5, theInstallationControllerclass defines theInstallationController.InstallationMonitorinterface and allows to plug-in custom installation monitors for reporting component installation status and location of installed components.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceTheInstallationMonitorinterface defines methods required for notifying of component installation status and location of the installed PEAR packages.static interfaceThePackageSelectorinterface defines methods required for manually or automatically selecting installed PEAR package root directories and PEAR package files.static classTheTestStatusclass encapsulates attributes related to the results of the 'serviceability' verification test. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringprotected static final Stringstatic final Stringstatic final Stringstatic final Stringprotected static final Stringprotected static final Stringprotected static final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringprotected static final Stringstatic final Stringstatic final Stringprotected static final Stringprotected static final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringprotected static final String -
Constructor Summary
ConstructorsModifierConstructorDescriptionInstallationController(String componentId, File localPearFile, File rootDir) Constructor for the 'local' mode, which specifies component ID, local PEAR file and a local root directory where the component will be installed.InstallationController(String componentId, File localPearFile, File rootDir, boolean installInRootDir) Constructor for the 'local' mode, which specifies component ID, local PEAR file and a local root directory where the component will be installed.InstallationController(String componentId, File localPearFile, File rootDir, boolean installInRootDir, boolean cleanInstallDir) Constructor for the 'local' mode, which specifies component ID, local PEAR file and a local root directory where the component will be installed.InstallationController(String componentId, File localPearFile, File rootDir, boolean installInRootDir, MessageRouter.StdChannelListener msgListener) Constructor for the 'local' mode, which specifies component ID, local PEAR file and a local root directory where the component will be installed.InstallationController(String componentId, File localPearFile, File rootDir, boolean installInRootDir, MessageRouter.StdChannelListener msgListener, boolean cleanInstallDir) Constructor for the 'local' mode, which specifies component ID, local PEAR file and a local root directory where the component will be installed.InstallationController(String componentId, String rootDirPath) Constructs an instance of theInstallationControllerclass for a given component and a given installation root directory.InstallationController(String componentId, String rootDirPath, boolean installInRootDir) Constructs an instance of theInstallationControllerclass for a given component and a given installation root directory.InstallationController(String componentId, String rootDirPath, boolean installInRootDir, MessageRouter.StdChannelListener msgListener) Constructs an instance of theInstallationControllerclass for a given component and a given installation root directory.protectedInstallationController(String componentId, String rootDirPath, boolean installInRootDir, MessageRouter msgRouter, MessageRouter.StdChannelListener msgListener, boolean cleanInstallDir) Internal constructor that creates an instance of theInstallationControllerclass for a given component and a given installation root directory. -
Method Summary
Modifier and TypeMethodDescriptionprotected static StringBufferaddListOfJarFiles(File libDir, StringBuffer listBuffer) Appends a list of JAR files in a given lib directory, separated with the OS dependent separator (';' or ':'), to a given initialStringBufferobject.voidAdds a given object, implementing theMessageRouter.StdChannelListenerinterface to the list of standard channel listeners.protected static booleanaddToSystemEnvTable(Properties sysEnvTable, String localKey, String localValue) Adds a given local environment variable to appropriate system environment variable (before the system value).static String[]buildArrayOfNetworkParams(InstallationDescriptor insdObject) Creates a string array that contains network parameters (in the JVM '-Dname=value' format) specified in a given installation descriptor object.BuildsCLASSPATHfor the installed component, includingCLASSPATHfor all separate delegate components that are utilized by the main installed component, if any.static StringbuildComponentClassPath(String compRootDirPath, InstallationDescriptor insdObject, boolean addLibDir) Creates a string that should be added to the CLASSPATH for a given installed component associated with a given installation descriptor object.BuildsPATHfor the installed component, includingPATHfor all separate delegate components that are utilized by the main installed component, if any.static StringbuildComponentPath(String compRootDirPath, InstallationDescriptor insdObject) Creates a string that should be added to the SPATH for a given installed component associated with a given installation descriptor object.static StringbuildListOfEnvVars(InstallationDescriptor insdObject) Creates a string that contains the list of environment variables settings (in the JVM '-Dname=value' format) included in a given installation descriptor object.static StringbuildListOfNetworkParams(InstallationDescriptor insdObject) Creates a string that contains network parameters (in the JVM '-Dname=value' format) specified in a given installation descriptor object.BuildsPropertiestable of required environment variables for the installed component, including environment variables for all separate delegate components that are utilized by the main installed component, if any.static PropertiesbuildTableOfEnvVars(InstallationDescriptor insdObject) Creates aPropertiestable that contains (name, value) pairs of environment variables settings for a given installation descriptor object.static StringbuildUIMAClassPath(String uimaHomeEnv) Creates a string that should be added to the CLASSPATH environment variable for UIMA framework.static booleandeleteInstalledFiles(String componentId, File parentDir, boolean includeDelegates) Deletes all installed files for a given component in a given parent directory.static StringextractFilesFromPEARFile(String pearFileLocation, String fileExt, File targetDir, boolean cleanTarget) Extracts files with a given extension from a given PEAR file into a given target directory.protected static StringextractFilesFromPEARFile(String pearFileLocation, String fileExt, File targetDir, InstallationController controller, boolean cleanTarget) Internal implementatiton of theextractFilesFromPEARFilemethod, which allows sending messages to the OUT and ERR queues.static StringextractPEARFile(String pearFileLocation, File installationDir, boolean cleanTarget) Extracts all files of a given component from a given PEAR file into a given target directory.protected static StringextractPEARFile(String pearFileLocation, File installationDir, InstallationController controller, boolean cleanTarget) Internal implementation of theextractPEARFilemethod, which allows sending messages to the OUT and ERR queues.protected voidfinalize()Overrides standardfinalizemethod.protected voidGenerates/updates the PEAR configuration file setting the main component root directory, as well as root directories of all related delegate components.protected static voidgeneratePearSpecifier(String mainComponentRootPath, String mainComponentId) generates the pearSpecifier to run the installed pear component.protected voidGenerates the file (batch file for Windows) containing specific environment variables that should be used to run the component.protected static Hashtable<String,InstallationDescriptor> getDelegateInstallationDescriptors(Hashtable<String, String> installationTable) Creates aHashtablethat contains (compId, InsD) pairs for all separate delegate components specified in a given installation table.protected PrintWriterstatic Stringprotected static StringgetInstalledComponentRootPath(String componentId, InstallationController.PackageSelector pkgSelector) Retrieves the root directory path of a given component, installed in the local file system, by using a givenPackageSelectorinput.protected PrintWriterprotected static StringgetPEARFileLocation(String componentId, InstallationController.PackageSelector pkgSelector) Gets the PEAR file location (file path or URL) for a given component by using SITH DB a givenPackageSelectorinput.Performs installation of the specified component in the specified target directory, including all delegate components (if exist).Performs installation of XML descriptors of the specified component in the specified target directory, including XML descriptors of all the delegate components (if exist).protected voidPerforms installation of all separate delegate components for the specified main component.protected voidPerforms installation of XML descriptors for all separate delegate components of the specified main component.static voidStarts the application.voidRemoves a givenMessageRouter.StdChannelListenerobject from the list of standard channel listeners.voidSaves modified installation descriptor file.protected voidsetInstallationError(Exception error) Prints the stack trace of a givenExceptionobject as the installation error message.voidPlugs-in a given implementation of theInstallationMonitorinterface.static voidsetLocalMode(boolean inLocalMode) Switches between the 'local' and 'DB' modes, depending on a givenbooleanflag.voidPlugs-in a given implementation of thePackageSelectorinterface.voidsetUimaHomePath(String uimaHomePath) Sets a given UIMA local home directory path.protected voidsetVerificationError(Exception error) Prints the stack trace of a givenExceptionobject as the verification error message.voidTerminates theMessageRouterthread.booleanVerifies installations of the main component, and sets appropriate component status in the SITH DB.verifyComponentInstallation(PackageBrowser pkgBrowser) Runs the installation test for a given installed pear component, and returns theTestStatusobject with the test results.
-
Field Details
-
INSTALLATION_IN_PROGRESS
- See Also:
-
INSTALLATION_FAILED
- See Also:
-
INSTALLATION_COMPLETED
- See Also:
-
VERIFICATION_IN_PROGRESS
- See Also:
-
VERIFICATION_FAILED
- See Also:
-
VERIFICATION_COMPLETED
- See Also:
-
VERIFICATION_CANCELLED
- See Also:
-
INSTALLATION_TESTER_APP
- See Also:
-
PACKAGE_CONFIG_FILE
- See Also:
-
PACKAGE_METADATA_DIR
- See Also:
-
PACKAGE_BIN_DIR
- See Also:
-
PACKAGE_CONF_DIR
- See Also:
-
PACKAGE_DATA_DIR
- See Also:
-
PACKAGE_DESC_DIR
- See Also:
-
PACKAGE_DOC_DIR
- See Also:
-
PACKAGE_LIB_DIR
- See Also:
-
PACKAGE_RESOURCES_DIR
- See Also:
-
PACKAGE_SOURCES_DIR
- See Also:
-
SET_ENV_FILE
- See Also:
-
PEAR_DESC_FILE_POSTFIX
- See Also:
-
UIMA_HOME_ENV
- See Also:
-
UIMA_LIB_DIR
- See Also:
-
VINCI_LIB_DIR
- See Also:
-
JAR_FILE_EXT
- See Also:
-
CLASSPATH_VAR
- See Also:
-
PATH_VAR
- See Also:
-
LOCAL_OPT
- See Also:
-
INSTALL_IN_ROOT_OPT
- See Also:
-
-
Constructor Details
-
InstallationController
Constructs an instance of theInstallationControllerclass for a given component and a given installation root directory. By default, theInstallationControllercreates acomponent_idsubdirectory for the component code and resources. By default, theInstallationControllerclass sends all stdout and stderr messages to the default message listener, which prints them to the standard console streams.- Parameters:
componentId- The given component ID.rootDirPath- The given installation root directory path.
-
InstallationController
Constructs an instance of theInstallationControllerclass for a given component and a given installation root directory. If theinstallInRootDirflag istrue, the component will be installed in the given root directory, otherwise theInstallationControllerwill create acomponent_idsubdirectory for the component code and resources. By default, theInstallationControllerclass sends all stdout and stderr messages to the default message listener, which prints them to the standard console streams.- Parameters:
componentId- The given component ID.rootDirPath- The given installation root directory path.installInRootDir- Iftrue, the component will be installed in the given root directory, otherwise it will be installed in thecomponent_idsubdirectory of the root directory. Note: the installation directory will be cleaned before the PEAR file is installed to it.
-
InstallationController
public InstallationController(String componentId, String rootDirPath, boolean installInRootDir, MessageRouter.StdChannelListener msgListener) Constructs an instance of theInstallationControllerclass for a given component and a given installation root directory. If theinstallInRootDirflag istrue, the component will be installed in the given root directory, otherwise theInstallationControllerwill create acomponent_idsubdirectory for the component code and resources. If a given custom message listener is notnull, theInstallationControllerinstance will sends all stdout and stderr messages to the given message listener, otherwise these messages are sent to the default message listener, which prints them to the standard console streams.- Parameters:
componentId- The given component ID.rootDirPath- The given installation root directory path.installInRootDir- Iftrue, the component will be installed in the given root directory, otherwise it will be installed in thecomponent_idsubdirectory of the root directory. Note: the installation directory will be cleaned before the PEAR file is installed to it.msgListener- The given custom message listener ornull.
-
InstallationController
protected InstallationController(String componentId, String rootDirPath, boolean installInRootDir, MessageRouter msgRouter, MessageRouter.StdChannelListener msgListener, boolean cleanInstallDir) Internal constructor that creates an instance of theInstallationControllerclass for a given component and a given installation root directory. If theinstallInRootDirflag istrue, the component will be installed in the given root directory, otherwise theInstallationControllerwill create acomponent_idsubdirectory for the component code and resources. If a given customMessageRouteris notnull, the newInstallationControllerinstance will use the given message router, otherwise it will create a new message router object. If a given custom message listener is notnull, theInstallationControllerinstance will send all stdout and stderr messages to the given message listener, otherwise these messages are sent to the default message listener, which prints them to the standard console streams.- Parameters:
componentId- The given component ID.rootDirPath- The given installation root directory.installInRootDir- Iftrue, the component will be installed in the given root directory, otherwise it will be installed in thecomponent_idsubdirectory of the root directory.msgRouter- The given customMessageRouterobject ornull.msgListener- The given custom message listener object ornull.cleanInstallDir- Iftrue, the target installation directory will be cleaned before the PEAR file is installed.
-
InstallationController
Constructor for the 'local' mode, which specifies component ID, local PEAR file and a local root directory where the component will be installed. By default, theInstallationControllercreates acomponent_idsubdirectory for the component code and resources. By default, theInstallationControllerclass sends all stdout and stderr messages to the default message listener, which prints them to the standard console streams.- Parameters:
componentId- The given component ID.localPearFile- The given local PEAR file.rootDir- The given local root directory for installation.
-
InstallationController
public InstallationController(String componentId, File localPearFile, File rootDir, boolean installInRootDir, boolean cleanInstallDir) Constructor for the 'local' mode, which specifies component ID, local PEAR file and a local root directory where the component will be installed. If theinstallInRootDirflag istrue, the component code and resources will be installed in the specified root directory, otherwise theInstallationControllerwill create acomponent_idsubdirectory for the component code and resources. By default, theInstallationControllerclass sends all stdout and stderr messages to the default message listener, which prints them to the standard console streams.- Parameters:
componentId- The given component ID.localPearFile- The given local PEAR file.rootDir- The given local root directory for installation.installInRootDir- Iftrue, the component will be installed in the given root directory, otherwise it will be installed in thecomponent_idsubdirectory of the root directory.cleanInstallDir- Iftrue, the target installation directory will be cleaned before the PEAR file is installed.
-
InstallationController
public InstallationController(String componentId, File localPearFile, File rootDir, boolean installInRootDir) Constructor for the 'local' mode, which specifies component ID, local PEAR file and a local root directory where the component will be installed. If theinstallInRootDirflag istrue, the component code and resources will be installed in the specified root directory, otherwise theInstallationControllerwill create acomponent_idsubdirectory for the component code and resources. By default, theInstallationControllerclass sends all stdout and stderr messages to the default message listener, which prints them to the standard console streams.- Parameters:
componentId- The given component ID.localPearFile- The given local PEAR file.rootDir- The given local root directory for installation.installInRootDir- Iftrue, the component will be installed in the given root directory, otherwise it will be installed in thecomponent_idsubdirectory of the root directory. Note: the installation directory will be cleaned before the PEAR file is installed to it.
-
InstallationController
public InstallationController(String componentId, File localPearFile, File rootDir, boolean installInRootDir, MessageRouter.StdChannelListener msgListener) Constructor for the 'local' mode, which specifies component ID, local PEAR file and a local root directory where the component will be installed. If theinstallInRootDirflag istrue, the component code and resources will be installed in the specified root directory, otherwise theInstallationControllerwill create acomponent_idsubdirectory for the component code and resources. If the custom message listener is notnull, theInstallationControllerclass sends all stdout and stderr messages to this message listener, otherwise these messages are sent to the default message listener, which prints them to the standard console streams.- Parameters:
componentId- The given component ID.localPearFile- The given local PEAR file.rootDir- The given local root directory for installation.installInRootDir- Iftrue, the component will be installed in the given root directory, otherwise it will be installed in thecomponent_idsubdirectory of the root directory.msgListener- The given custom message listener ornull.
-
InstallationController
public InstallationController(String componentId, File localPearFile, File rootDir, boolean installInRootDir, MessageRouter.StdChannelListener msgListener, boolean cleanInstallDir) Constructor for the 'local' mode, which specifies component ID, local PEAR file and a local root directory where the component will be installed. If theinstallInRootDirflag istrue, the component code and resources will be installed in the specified root directory, otherwise theInstallationControllerwill create acomponent_idsubdirectory for the component code and resources. If the custom message listener is notnull, theInstallationControllerclass sends all stdout and stderr messages to this message listener, otherwise these messages are sent to the default message listener, which prints them to the standard console streams.- Parameters:
componentId- The given component ID.localPearFile- The given local PEAR file.rootDir- The given local root directory for installation.installInRootDir- Iftrue, the component will be installed in the given root directory, otherwise it will be installed in thecomponent_idsubdirectory of the root directory.msgListener- The given custom message listener ornull.cleanInstallDir- Iftrue, the target installation directory will be cleaned before the PEAR file is installed.
-
-
Method Details
-
addListOfJarFiles
protected static StringBuffer addListOfJarFiles(File libDir, StringBuffer listBuffer) throws IOException Appends a list of JAR files in a given lib directory, separated with the OS dependent separator (';' or ':'), to a given initialStringBufferobject. IfnullStringBufferobject is specified, creates newStringBufferobject.- Parameters:
libDir- The given lib directory.listBuffer- The initialStringBufferobject.- Returns:
- The list of JAR files in the given lib directory, appended to the given
StringBuffer. - Throws:
IOException- If any I/O exception occurred.
-
addToSystemEnvTable
protected static boolean addToSystemEnvTable(Properties sysEnvTable, String localKey, String localValue) Adds a given local environment variable to appropriate system environment variable (before the system value). The case of the local environment variable key is ignored.- Parameters:
sysEnvTable- The table of system environment variables.localKey- The given local environment variable key.localValue- The given local environment variable value.- Returns:
trueif the local value was really added,falseotherwise.
-
buildArrayOfNetworkParams
Creates a string array that contains network parameters (in the JVM '-Dname=value' format) specified in a given installation descriptor object.- Parameters:
insdObject- The given installation descriptor object.- Returns:
- The string array of network parameters in the JVM format.
-
buildComponentClassPath
public static String buildComponentClassPath(String compRootDirPath, InstallationDescriptor insdObject, boolean addLibDir) throws IOException Creates a string that should be added to the CLASSPATH for a given installed component associated with a given installation descriptor object.- Parameters:
compRootDirPath- The given root directory of the installed component.insdObject- The given installation descriptor object.addLibDir- Whether we should add jars from the libdir or not (true at packaging time, false at runtime).- Returns:
- The string that should be added to the CLASSPATH for the given component.
- Throws:
IOException- If any I/O exception occurred.
-
buildComponentPath
Creates a string that should be added to the SPATH for a given installed component associated with a given installation descriptor object.- Parameters:
compRootDirPath- The given root directory of the installed component.insdObject- The given installation descriptor object.- Returns:
- The string that should be added to the SPATH for the given component.
-
buildListOfEnvVars
Creates a string that contains the list of environment variables settings (in the JVM '-Dname=value' format) included in a given installation descriptor object.- Parameters:
insdObject- The given installation descriptor object.- Returns:
- The string of environment variables settings in the JVM format.
-
buildListOfNetworkParams
Creates a string that contains network parameters (in the JVM '-Dname=value' format) specified in a given installation descriptor object.- Parameters:
insdObject- The given installation descriptor object.- Returns:
- The string of network parameters in the JVM format.
-
buildTableOfEnvVars
Creates aPropertiestable that contains (name, value) pairs of environment variables settings for a given installation descriptor object.- Parameters:
insdObject- The given installation descriptor object.- Returns:
- The
Propertiestable that contains environment variables settings for the given installation descriptor object.
-
buildUIMAClassPath
Creates a string that should be added to the CLASSPATH environment variable for UIMA framework.- Parameters:
uimaHomeEnv- The location of UIMA framework (UIMA_HOME environment variable value).- Returns:
- The CLASSPATH string for UIMA framework.
-
deleteInstalledFiles
public static boolean deleteInstalledFiles(String componentId, File parentDir, boolean includeDelegates) throws IOException Deletes all installed files for a given component in a given parent directory. If theincludeDelegatesflag istrue, deletes also all files installed in a given parent directory for separate delegate components, specified in the main installation descriptor.- Parameters:
componentId- The given main component ID.parentDir- The given parent directory of the main component root directory.includeDelegates- Indicates whether files of the specified separate delegate components should be deleted.- Returns:
true, if the deletion operation completed successfully,falseotherwise.- Throws:
IOException- if any I/O exception occurred.
-
extractFilesFromPEARFile
public static String extractFilesFromPEARFile(String pearFileLocation, String fileExt, File targetDir, boolean cleanTarget) throws IOException Extracts files with a given extension from a given PEAR file into a given target directory. If the given filename extension isnull, extracts all the files from a given PEAR file. Returns the path to the new component root directory.- Parameters:
pearFileLocation- The given PEAR file location.fileExt- The given filename extension.targetDir- The given target directory.cleanTarget- If true, the target directory is cleaned before the PEAR file is installed to it.- Returns:
- The path to the new component root directory.
- Throws:
IOException- if any I/O exception occurred.
-
extractFilesFromPEARFile
protected static String extractFilesFromPEARFile(String pearFileLocation, String fileExt, File targetDir, InstallationController controller, boolean cleanTarget) throws IOException Internal implementatiton of theextractFilesFromPEARFilemethod, which allows sending messages to the OUT and ERR queues.- Parameters:
pearFileLocation- The given PEAR file location.fileExt- The given filename extension.targetDir- The given target directory.controller- The instance of theInstallationControllerclass that provides OUT and ERRcleanTarget- If true, the target directory is cleaned before the PEAR file is installed to it. message routing, ornull.- Returns:
- The path to the new component root directory.
- Throws:
IOException- if any I/O exception occurred.
-
extractPEARFile
public static String extractPEARFile(String pearFileLocation, File installationDir, boolean cleanTarget) throws IOException Extracts all files of a given component from a given PEAR file into a given target directory. Returns the path to the new component root directory.- Parameters:
pearFileLocation- The given PEAR file location.installationDir- The given target directory.cleanTarget- If true, the target directory is cleaned before the PEAR file is installed to it.- Returns:
- The path to the new component root directory.
- Throws:
IOException- if any I/O exception occurred.
-
extractPEARFile
protected static String extractPEARFile(String pearFileLocation, File installationDir, InstallationController controller, boolean cleanTarget) throws IOException Internal implementation of theextractPEARFilemethod, which allows sending messages to the OUT and ERR queues.- Parameters:
pearFileLocation- The given PEAR file location.installationDir- The given target directory.controller- The instance of theInstallationControllerclass that provides OUT and ERR message routing, ornull.cleanTarget- If true, the target directory is cleaned before the PEAR file is installed to it.- Returns:
- The path to the new component root directory.
- Throws:
IOException- if any I/O exception occurred.
-
getDelegateInstallationDescriptors
protected static Hashtable<String,InstallationDescriptor> getDelegateInstallationDescriptors(Hashtable<String, String> installationTable) throws IOExceptionCreates aHashtablethat contains (compId, InsD) pairs for all separate delegate components specified in a given installation table.- Parameters:
installationTable- The given installation table that specifies (compId, rootDirPath) pairs for all separate delegate components.- Returns:
- The
Hashtablethat contains (compId, InsD) pairs for all separate delegate components specified in the given installation table. - Throws:
IOException- If an I/O exception occurred while loading the installation descriptor files.
-
getHostIpAddress
- Returns:
- The local host IP address.
-
getInstalledComponentRootPath
protected static String getInstalledComponentRootPath(String componentId, InstallationController.PackageSelector pkgSelector) Retrieves the root directory path of a given component, installed in the local file system, by using a givenPackageSelectorinput. If the givenPackageSelectorisnull, the defaultPackageSelectorimplementation is used.- Parameters:
componentId- The given installed component ID.pkgSelector- The instance of thePackageSelectorclass that allows selecting root directory of the installed component in the local file system.- Returns:
- The root directory path of the given component in the local file system, or
null, if the component is not installed.
-
getPEARFileLocation
protected static String getPEARFileLocation(String componentId, InstallationController.PackageSelector pkgSelector) Gets the PEAR file location (file path or URL) for a given component by using SITH DB a givenPackageSelectorinput. If the givenPackageSelectorisnull, the defaultPackageSelectorimplementation is used.- Parameters:
componentId- The given component ID.pkgSelector- The instance of thePackageSelectorclass that allows selecting location of the given component PEAR file in the local file system, or in the network.- Returns:
- The location of the PEAR file for the given component, or
null, if the PEAR file was not found.
-
main
Starts the application. This application expects the following JVM run-time settings:- -DUIMA_HOME=<local_uima_root_dir>
- Parameters:
args- {-local pear_file | main_component_id} [-default] [installation_dir]
-
setLocalMode
public static void setLocalMode(boolean inLocalMode) Switches between the 'local' and 'DB' modes, depending on a givenbooleanflag.- Parameters:
inLocalMode- iftruethe utility operates in the 'local' mode, otherwise it operates in the 'DB' mode.
-
verifyComponentInstallation
public static InstallationController.TestStatus verifyComponentInstallation(PackageBrowser pkgBrowser) Runs the installation test for a given installed pear component, and returns theTestStatusobject with the test results.- Parameters:
pkgBrowser- The given package browser object of the installed pear package.- Returns:
- The
TestStatusobject that contains the return code and possible error message of the test.
-
addMsgListener
Adds a given object, implementing theMessageRouter.StdChannelListenerinterface to the list of standard channel listeners.- Parameters:
listener- The givenMessageRouter.StdChannelListenerobject to be added to the list.
-
buildComponentClassPath
BuildsCLASSPATHfor the installed component, includingCLASSPATHfor all separate delegate components that are utilized by the main installed component, if any.- Returns:
- The
CLASSPATHfor the installed component, ornull, if the component has not been installed. - Throws:
IOException- If any I/O exception occurred.
-
buildComponentPath
BuildsPATHfor the installed component, includingPATHfor all separate delegate components that are utilized by the main installed component, if any.- Returns:
- The
PATHfor the installed component, ornull, if the component has not been installed.
-
buildTableOfEnvVars
BuildsPropertiestable of required environment variables for the installed component, including environment variables for all separate delegate components that are utilized by the main installed component, if any.- Returns:
Propertiestable of required environment variables for the installed component, ornull, if the component has not been installed.
-
finalize
protected void finalize()Overrides standardfinalizemethod. -
installComponent
Performs installation of the specified component in the specified target directory, including all delegate components (if exist). If the installation completed successfully, returns theInstallationDescriptorobject for the installed component. If the installation failed, returnsnull, and sets the installation error message that can be retrieved using thegetInstallationMsg()method.- Returns:
- The
InstallationDescriptorobject for the installed component, if the installation succeeded,nullotherwise.
-
installComponentDescriptors
Performs installation of XML descriptors of the specified component in the specified target directory, including XML descriptors of all the delegate components (if exist). If the installation completed successfully, returns theInstallationDescriptorobject for the partially installed component. If the installation failed, returnsnull, and sets the installation error message that can be retrieved using thegetInstallationMsg()method.- Returns:
- The
InstallationDescriptorobject for the partially installed component, if the installation succeeded,nullotherwise.
-
installDelegateComponents
protected void installDelegateComponents()Performs installation of all separate delegate components for the specified main component. -
installDelegateComponentsDescriptors
protected void installDelegateComponentsDescriptors()Performs installation of XML descriptors for all separate delegate components of the specified main component. -
generatePearSpecifier
protected static void generatePearSpecifier(String mainComponentRootPath, String mainComponentId) throws IOException, SAXException generates the pearSpecifier to run the installed pear component. The descriptor that is created has the filename <componentID>_pear.xml and is created in the main component root directory. If the file already exist, it will be overridden.- Parameters:
mainComponentRootPath- main component root path where the pear was installed tomainComponentId- main component ID of the installed pear file- Throws:
IOException- if IO ExceptionSAXException- if SAX Exception
-
generateSetEnvFile
Generates the file (batch file for Windows) containing specific environment variables that should be used to run the component.- Throws:
IOException- if any I/O exception occurred.
-
generatePackageConfigFile
Generates/updates the PEAR configuration file setting the main component root directory, as well as root directories of all related delegate components.- Throws:
IOException- if any I/O exception occurred.
-
getErrMsgWriter
- Returns:
- Error message writer for intraprocess messaging.
-
getInstallationMsg
- Returns:
- The installation message (error message).
-
getOutMsgWriter
- Returns:
- Output message writer for intraprocess messaging.
-
getVerificationMsg
- Returns:
- The verification message (error message).
-
removeMsgListener
Removes a givenMessageRouter.StdChannelListenerobject from the list of standard channel listeners.- Parameters:
listener- The givenMessageRouter.StdChannelListenerobject to be removed from the list.
-
saveInstallationDescriptorFile
Saves modified installation descriptor file.- Throws:
IOException- if any I/O exception occurred.
-
setInstallationError
Prints the stack trace of a givenExceptionobject as the installation error message.- Parameters:
error- The givenExceptionobject.
-
setInstallationMonitor
Plugs-in a given implementation of theInstallationMonitorinterface.- Parameters:
monitor- The given implementation of theInstallationMonitorinterface.
-
setPackageSelector
Plugs-in a given implementation of thePackageSelectorinterface.- Parameters:
selector- The given implementation of thePackageSelectorinterface.
-
setVerificationError
Prints the stack trace of a givenExceptionobject as the verification error message.- Parameters:
error- The givenExceptionobject.
-
setUimaHomePath
Sets a given UIMA local home directory path.- Parameters:
uimaHomePath- The given UIMA local home directory path.
-
terminate
public void terminate()Terminates theMessageRouterthread. This method should be called after all the processing is finished. -
verifyComponent
public boolean verifyComponent()Verifies installations of the main component, and sets appropriate component status in the SITH DB.- Returns:
trueif the verification completed successfully,falseotherwise.
-