Class AbstractVMRunner

  • All Implemented Interfaces:
    IVMRunner

    public abstract class AbstractVMRunner
    extends Object
    implements IVMRunner
    Abstract implementation of a VM runner.

    Clients implementing VM runners should subclass this class.

    Since:
    2.0
    See Also:
    IVMRunner
    • Constructor Detail

      • AbstractVMRunner

        public AbstractVMRunner()
    • Method Detail

      • abort

        protected void abort​(String message,
                             Throwable exception,
                             int code)
                      throws CoreException
        Throws a core exception with an error status object built from the given message, lower level exception, and error code.
        Parameters:
        message - the status message
        exception - lower level exception associated with the error, or null if none
        code - error code
        Throws:
        CoreException - The exception encapsulating the reason for the abort
      • getPluginIdentifier

        protected abstract String getPluginIdentifier()
        Returns the identifier of the plug-in this VM runner originated from.
        Returns:
        plug-in identifier
      • quoteWindowsArgs

        protected static String[] quoteWindowsArgs​(String[] cmdLine)
        Since:
        3.11
      • getCmdLineAsString

        protected String getCmdLineAsString​(String[] cmdLine)
        Returns the given array of strings as a single space-delimited string.
        Parameters:
        cmdLine - array of strings
        Returns:
        a single space-delimited string
      • getDefaultProcessMap

        protected Map<String,​String> getDefaultProcessMap()
        Returns the default process attribute map for Java processes.
        Returns:
        default process attribute map for Java processes
      • newProcess

        protected IProcess newProcess​(ILaunch launch,
                                      Process p,
                                      String label,
                                      Map<String,​String> attributes)
                               throws CoreException
        Returns a new process aborting if the process could not be created.
        Parameters:
        launch - the launch the process is contained in
        p - the system process to wrap
        label - the label assigned to the process
        attributes - values for the attribute map
        Returns:
        the new process
        Throws:
        CoreException - problems occurred creating the process
        Since:
        3.0
      • combineVmArgs

        protected String[] combineVmArgs​(VMRunnerConfiguration configuration,
                                         IVMInstall vmInstall)
        Combines and returns VM arguments specified by the runner configuration, with those specified by the VM install, if any.
        Parameters:
        configuration - runner configuration
        vmInstall - VM install
        Returns:
        combined VM arguments specified by the runner configuration and VM install
        Since:
        3.0
      • isModular

        protected boolean isModular​(VMRunnerConfiguration config,
                                    IVMInstall vmInstall)
        Examines the project and install for presence of module and execution support.
        Parameters:
        config - runner configuration
        vmInstall - VM install
        Returns:
        true if project is a module and uses JRE version 9 or more, or false otherwise
        Since:
        3.10