Class DefaultProcessBuilder
- java.lang.Object
-
- com.platformlib.process.builder.impl.DefaultProcessBuilder
-
- All Implemented Interfaces:
ProcessBuilder,ProcessConfiguration
public abstract class DefaultProcessBuilder extends java.lang.Object implements ProcessBuilder, ProcessConfiguration
Default process builder. Implements most of methods required for process building.
-
-
Field Summary
-
Fields inherited from interface com.platformlib.process.builder.ProcessBuilder
BASH_EXTENSION, BAT_EXTENSION, CMD_EXTENSION, EXE_EXTENSION, SH_EXTENSION
-
-
Constructor Summary
Constructors Constructor Description DefaultProcessBuilder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DefaultProcessBuilderaddMaskApplier(java.util.function.Function<java.lang.String,java.lang.String> maskApplier)Add mask applier for masking sensitive data before putting it in logs and passing to output consumers.DefaultProcessBuildercommand(java.lang.String command)Set command to execute.DefaultProcessBuildercommandAndArguments(java.lang.Object... commandAndArguments)Set command and argumentsDefaultProcessBuilderdefaultExtensionMapping()Add default mapping command extensions.DefaultProcessBuilderdryRun(java.util.function.Consumer<ProcessDryRunConfigurator> processDryRunConfigurator)Configure dry run mode.DefaultProcessBuilderenvVariables(java.util.Map<java.lang.String,java.lang.String> envVariables)Add env variables.DefaultProcessBuilderexecutionTimeout(java.time.Duration timeout)Set execution timeout.protected java.util.Optional<java.lang.String>getCommand()java.util.Collection<java.lang.Object>getCommandAndArguments()Get command and arguments to execute.java.util.Optional<ProcessDryRunConfiguration>getDryRunConfiguration()Get dry run configuration.java.util.Map<java.lang.String,java.lang.String>getEnvVariables()Get process environment variables.ExecutionModegetExecution()Get process execution mode.java.util.Optional<java.time.Duration>getExecutionTimeout()Get process execution timeout.java.util.Optional<java.util.concurrent.Executor>getExecutor()Get process executor.java.util.Collection<java.util.function.Function<java.lang.String,java.lang.String>>getMaskAppliers()Get mask appliers.java.util.Optional<java.lang.String>getName()Get process name.java.util.Optional<ProcessDestroyerHandler>getProcessDestroyerHandler()Get process destroy handler.java.util.Optional<ProcessInstanceConfiguration>getProcessInstanceConfiguration()Get process output configuration which will be available viaProcessInstance.java.util.Optional<ProcessLoggerConfiguration>getProcessLoggerConfiguration()Get process logger configuration.java.util.Collection<java.io.OutputStream>getStandardErrorRedirects()Get output streams to redirect process standard error stream.java.util.Collection<java.io.OutputStream>getStandardOutputRedirects()Get output streams to redirect process standard output stream.java.util.Optional<java.util.function.Consumer<java.lang.String>>getStdErrConsumer()Get process standard error consumer.java.util.Optional<java.io.InputStream>getStdIn()Get process standard input stream.java.util.Optional<java.util.function.Consumer<java.lang.String>>getStdOutConsumer()Get process standard out consumer.java.util.Optional<java.lang.String>getWorkDirectory()Get process work directory where the process should be started.DefaultProcessBuilderlogger(java.util.function.Consumer<ProcessLoggerConfigurator> processLoggerConfigurator)Configure process logger configuration.DefaultProcessBuildermapBashExtension()AddProcessBuilder.BASH_EXTENSIONextension mapping if process is executed on NIX platform.DefaultProcessBuildermapBatExtension()AddProcessBuilder.BAT_EXTENSIONextension mapping if process is executed on WINDOWS platform.DefaultProcessBuildermapCmdExtension()AddProcessBuilder.CMD_EXTENSIONextension mapping if process is executed on WINDOWS platform.DefaultProcessBuildermapExeExtension()AddProcessBuilder.EXE_EXTENSIONextension mapping if process is executed on WINDOWS platform..DefaultProcessBuildermapShExtension()AddProcessBuilder.SH_EXTENSIONextension mapping if process is executed on NIX platform.DefaultProcessBuildername(java.lang.String name)Set process executor formal name.DefaultProcessBuilderprocessDestroyerHandler(ProcessDestroyerHandler processDestroyerHandler)Specify destroy/kill process handler.DefaultProcessBuilderprocessInstance(java.util.function.Consumer<ProcessInstanceConfigurator> processInstanceConfigurator)Configure process instance.DefaultProcessBuilderrawExecution()Run command as is.DefaultProcessBuilderredirectStandardError(java.io.OutputStream outputStream)Redirect process standard error to given stream.DefaultProcessBuilderredirectStandardOutput(java.io.OutputStream outputStream)Redirect process standard output to given stream.DefaultProcessBuilderstandardInput(java.io.InputStream processStandardInputStream)Set process standard input stream.DefaultProcessBuilderstdErrConsumer(java.util.function.Consumer<java.lang.String> stdErrConsumer)Set process error output consumer.DefaultProcessBuilderstdOutConsumer(java.util.function.Consumer<java.lang.String> stdOutConsumer)Set process standard output consumer.DefaultProcessBuilderwithExecutor(java.util.concurrent.Executor executor)Set java process executor.DefaultProcessBuilderworkDirectory(java.lang.String workDirectory)Set work directory for process executing.DefaultProcessBuilderworkDirectory(java.nio.file.Path workDirectory)Set work directory for process executing.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.platformlib.process.builder.ProcessBuilder
build
-
-
-
-
Method Detail
-
name
public DefaultProcessBuilder name(java.lang.String name)
Description copied from interface:ProcessBuilderSet process executor formal name. Default value is current thread name. The name will be added as suffix to any started threads.- Specified by:
namein interfaceProcessBuilder- Parameters:
name- executor name- Returns:
- Returns this process configurator
-
workDirectory
public DefaultProcessBuilder workDirectory(java.lang.String workDirectory)
Description copied from interface:ProcessBuilderSet work directory for process executing.- Specified by:
workDirectoryin interfaceProcessBuilder- Parameters:
workDirectory- work directory where the process should be started- Returns:
- Returns this process builder
-
workDirectory
public DefaultProcessBuilder workDirectory(java.nio.file.Path workDirectory)
Description copied from interface:ProcessBuilderSet work directory for process executing.- Specified by:
workDirectoryin interfaceProcessBuilder- Parameters:
workDirectory- work directory where the process should be started- Returns:
- Returns this process builder
-
envVariables
public DefaultProcessBuilder envVariables(java.util.Map<java.lang.String,java.lang.String> envVariables)
Description copied from interface:ProcessBuilderAdd env variables.- Specified by:
envVariablesin interfaceProcessBuilder- Parameters:
envVariables- env variables- Returns:
- Returns this process builder
-
defaultExtensionMapping
public DefaultProcessBuilder defaultExtensionMapping()
Description copied from interface:ProcessBuilderAdd default mapping command extensions. The full path command extension will be automatically detected in next order: For Windows platform: cmd -> bat -> exe For Unix platform: no extension -> sh -> bash- Specified by:
defaultExtensionMappingin interfaceProcessBuilder- Returns:
- process builder
-
mapBashExtension
public DefaultProcessBuilder mapBashExtension()
Description copied from interface:ProcessBuilderAddProcessBuilder.BASH_EXTENSIONextension mapping if process is executed on NIX platform.- Specified by:
mapBashExtensionin interfaceProcessBuilder- Returns:
- Returns this process configurator
-
mapShExtension
public DefaultProcessBuilder mapShExtension()
Description copied from interface:ProcessBuilderAddProcessBuilder.SH_EXTENSIONextension mapping if process is executed on NIX platform.- Specified by:
mapShExtensionin interfaceProcessBuilder- Returns:
- Returns this process configurator
-
mapBatExtension
public DefaultProcessBuilder mapBatExtension()
Description copied from interface:ProcessBuilderAddProcessBuilder.BAT_EXTENSIONextension mapping if process is executed on WINDOWS platform.- Specified by:
mapBatExtensionin interfaceProcessBuilder- Returns:
- Returns this process configurator
-
mapCmdExtension
public DefaultProcessBuilder mapCmdExtension()
Description copied from interface:ProcessBuilderAddProcessBuilder.CMD_EXTENSIONextension mapping if process is executed on WINDOWS platform.- Specified by:
mapCmdExtensionin interfaceProcessBuilder- Returns:
- Returns this process configurator
-
mapExeExtension
public DefaultProcessBuilder mapExeExtension()
Description copied from interface:ProcessBuilderAddProcessBuilder.EXE_EXTENSIONextension mapping if process is executed on WINDOWS platform..- Specified by:
mapExeExtensionin interfaceProcessBuilder- Returns:
- Returns this process configurator
-
stdOutConsumer
public DefaultProcessBuilder stdOutConsumer(java.util.function.Consumer<java.lang.String> stdOutConsumer)
Description copied from interface:ProcessBuilderSet process standard output consumer.- Specified by:
stdOutConsumerin interfaceProcessBuilder- Parameters:
stdOutConsumer- process stdout consumer- Returns:
- Returns this process configurator
-
stdErrConsumer
public DefaultProcessBuilder stdErrConsumer(java.util.function.Consumer<java.lang.String> stdErrConsumer)
Description copied from interface:ProcessBuilderSet process error output consumer.- Specified by:
stdErrConsumerin interfaceProcessBuilder- Parameters:
stdErrConsumer- process error consumer- Returns:
- Returns this process configurator
-
standardInput
public DefaultProcessBuilder standardInput(java.io.InputStream processStandardInputStream)
Description copied from interface:ProcessBuilderSet process standard input stream.- Specified by:
standardInputin interfaceProcessBuilder- Parameters:
processStandardInputStream- stream to process standard input- Returns:
- Returns this process builder
-
command
public DefaultProcessBuilder command(java.lang.String command)
Description copied from interface:ProcessBuilderSet command to execute.- Specified by:
commandin interfaceProcessBuilder- Parameters:
command- command to execute- Returns:
- Returns this process builder
-
commandAndArguments
public DefaultProcessBuilder commandAndArguments(java.lang.Object... commandAndArguments)
Description copied from interface:ProcessBuilderSet command and arguments- Specified by:
commandAndArgumentsin interfaceProcessBuilder- Parameters:
commandAndArguments- command and arguments to execute- Returns:
- Returns this process builder
-
withExecutor
public DefaultProcessBuilder withExecutor(java.util.concurrent.Executor executor)
Description copied from interface:ProcessBuilderSet java process executor.- Specified by:
withExecutorin interfaceProcessBuilder- Parameters:
executor- executor- Returns:
- Returns this process builder
-
executionTimeout
public DefaultProcessBuilder executionTimeout(java.time.Duration timeout)
Description copied from interface:ProcessBuilderSet execution timeout. By default unlimited.- Specified by:
executionTimeoutin interfaceProcessBuilder- Parameters:
timeout- command execution timeout- Returns:
- Returns this process builder
-
addMaskApplier
public DefaultProcessBuilder addMaskApplier(java.util.function.Function<java.lang.String,java.lang.String> maskApplier)
Description copied from interface:ProcessBuilderAdd mask applier for masking sensitive data before putting it in logs and passing to output consumers.- Specified by:
addMaskApplierin interfaceProcessBuilder- Parameters:
maskApplier- mask applier- Returns:
- Returns this process builder
-
redirectStandardOutput
public DefaultProcessBuilder redirectStandardOutput(java.io.OutputStream outputStream)
Description copied from interface:ProcessBuilderRedirect process standard output to given stream.- Specified by:
redirectStandardOutputin interfaceProcessBuilder- Parameters:
outputStream- output stream to redirect- Returns:
- Returns this process builder
-
redirectStandardError
public DefaultProcessBuilder redirectStandardError(java.io.OutputStream outputStream)
Description copied from interface:ProcessBuilderRedirect process standard error to given stream.- Specified by:
redirectStandardErrorin interfaceProcessBuilder- Parameters:
outputStream- output stream to redirect- Returns:
- Returns this process builder
-
rawExecution
public DefaultProcessBuilder rawExecution()
Description copied from interface:ProcessBuilderRun command as is. Some features such as setting environment variables could be disabled. Depends on platform and implementation.- Specified by:
rawExecutionin interfaceProcessBuilder- Returns:
- Returns this process builder
-
processDestroyerHandler
public DefaultProcessBuilder processDestroyerHandler(ProcessDestroyerHandler processDestroyerHandler)
Description copied from interface:ProcessBuilderSpecify destroy/kill process handler.- Specified by:
processDestroyerHandlerin interfaceProcessBuilder- Parameters:
processDestroyerHandler- process destroy/kill handler.- Returns:
- Returns this process builder
-
dryRun
public DefaultProcessBuilder dryRun(java.util.function.Consumer<ProcessDryRunConfigurator> processDryRunConfigurator)
Description copied from interface:ProcessBuilderConfigure dry run mode.- Specified by:
dryRunin interfaceProcessBuilder- Parameters:
processDryRunConfigurator- dry run configurator- Returns:
- Returns this process builder
-
getMaskAppliers
public java.util.Collection<java.util.function.Function<java.lang.String,java.lang.String>> getMaskAppliers()
Description copied from interface:ProcessConfigurationGet mask appliers. Used for masking data in logs.- Specified by:
getMaskAppliersin interfaceProcessConfiguration- Returns:
- Returns collections of mask appliers.
-
getName
public java.util.Optional<java.lang.String> getName()
Description copied from interface:ProcessConfigurationGet process name.- Specified by:
getNamein interfaceProcessConfiguration- Returns:
- Returns process name if set,
Optional.empty()otherwise
-
getWorkDirectory
public java.util.Optional<java.lang.String> getWorkDirectory()
Description copied from interface:ProcessConfigurationGet process work directory where the process should be started.- Specified by:
getWorkDirectoryin interfaceProcessConfiguration- Returns:
- Returns process working directory if set,
Optional.empty()otherwise
-
getExecutor
public java.util.Optional<java.util.concurrent.Executor> getExecutor()
Description copied from interface:ProcessConfigurationGet process executor.- Specified by:
getExecutorin interfaceProcessConfiguration- Returns:
- Returns process executor,
Optional.empty()otherwise
-
getExecutionTimeout
public java.util.Optional<java.time.Duration> getExecutionTimeout()
Description copied from interface:ProcessConfigurationGet process execution timeout.- Specified by:
getExecutionTimeoutin interfaceProcessConfiguration- Returns:
- Returns process execution timeout
-
getEnvVariables
public java.util.Map<java.lang.String,java.lang.String> getEnvVariables()
Description copied from interface:ProcessConfigurationGet process environment variables.- Specified by:
getEnvVariablesin interfaceProcessConfiguration- Returns:
- Returns process environment variables
-
getStdOutConsumer
public java.util.Optional<java.util.function.Consumer<java.lang.String>> getStdOutConsumer()
Description copied from interface:ProcessConfigurationGet process standard out consumer.- Specified by:
getStdOutConsumerin interfaceProcessConfiguration- Returns:
- Returns process standard out consumer if set, null otherwise
-
getStdErrConsumer
public java.util.Optional<java.util.function.Consumer<java.lang.String>> getStdErrConsumer()
Description copied from interface:ProcessConfigurationGet process standard error consumer.- Specified by:
getStdErrConsumerin interfaceProcessConfiguration- Returns:
- Returns process standard error consumer if set, null otherwise
-
getCommandAndArguments
public java.util.Collection<java.lang.Object> getCommandAndArguments()
Description copied from interface:ProcessConfigurationGet command and arguments to execute.- Specified by:
getCommandAndArgumentsin interfaceProcessConfiguration- Returns:
- Returns command and arguments to execute.
-
getStandardOutputRedirects
public java.util.Collection<java.io.OutputStream> getStandardOutputRedirects()
Description copied from interface:ProcessConfigurationGet output streams to redirect process standard output stream.- Specified by:
getStandardOutputRedirectsin interfaceProcessConfiguration- Returns:
- Returns collections of stream to redirect process standard output
-
getStandardErrorRedirects
public java.util.Collection<java.io.OutputStream> getStandardErrorRedirects()
Description copied from interface:ProcessConfigurationGet output streams to redirect process standard error stream.- Specified by:
getStandardErrorRedirectsin interfaceProcessConfiguration- Returns:
- Returns collections of stream to redirect process standard error
-
getExecution
public ExecutionMode getExecution()
Description copied from interface:ProcessConfigurationGet process execution mode.- Specified by:
getExecutionin interfaceProcessConfiguration- Returns:
- Returns execution mode
-
getStdIn
public java.util.Optional<java.io.InputStream> getStdIn()
Description copied from interface:ProcessConfigurationGet process standard input stream.- Specified by:
getStdInin interfaceProcessConfiguration- Returns:
- Returns process standard input stream if set,
Optional.empty()otherwise
-
getProcessDestroyerHandler
public java.util.Optional<ProcessDestroyerHandler> getProcessDestroyerHandler()
Description copied from interface:ProcessConfigurationGet process destroy handler.- Specified by:
getProcessDestroyerHandlerin interfaceProcessConfiguration- Returns:
- Process destroy handler if set,
Optional.empty()otherwise
-
getDryRunConfiguration
public java.util.Optional<ProcessDryRunConfiguration> getDryRunConfiguration()
Description copied from interface:ProcessConfigurationGet dry run configuration.- Specified by:
getDryRunConfigurationin interfaceProcessConfiguration- Returns:
- Returns dry run configuration if set,
Optional.empty()otherwise
-
logger
public DefaultProcessBuilder logger(java.util.function.Consumer<ProcessLoggerConfigurator> processLoggerConfigurator)
Description copied from interface:ProcessBuilderConfigure process logger configuration. This configuration responds for what should be put in log (command line, process output and etc).- Specified by:
loggerin interfaceProcessBuilder- Parameters:
processLoggerConfigurator- process logger configurator- Returns:
- Returns this process builder
-
processInstance
public DefaultProcessBuilder processInstance(java.util.function.Consumer<ProcessInstanceConfigurator> processInstanceConfigurator)
Description copied from interface:ProcessBuilderConfigure process instance. Responds what should be included inProcessInstancewhich is result of process execution.- Specified by:
processInstancein interfaceProcessBuilder- Parameters:
processInstanceConfigurator- process execution result configuration- Returns:
- Returns this process builder
-
getCommand
protected java.util.Optional<java.lang.String> getCommand()
-
getProcessInstanceConfiguration
public java.util.Optional<ProcessInstanceConfiguration> getProcessInstanceConfiguration()
Description copied from interface:ProcessConfigurationGet process output configuration which will be available viaProcessInstance.- Specified by:
getProcessInstanceConfigurationin interfaceProcessConfiguration- Returns:
- Returns process instance configuration
-
getProcessLoggerConfiguration
public java.util.Optional<ProcessLoggerConfiguration> getProcessLoggerConfiguration()
Description copied from interface:ProcessConfigurationGet process logger configuration.- Specified by:
getProcessLoggerConfigurationin interfaceProcessConfiguration- Returns:
- Returns process logger configuration
-
-