Class EtlExecutor
- All Implemented Interfaces:
Runnable,Callable<ExecutionStatistics>
- Direct Known Subclasses:
EtlExecutorBean
Use ConfigurationFactory to parse script files and to configure
the executor.
The usage scenario of this class may be described using the following steps:
EtlExecutor(scriptella.configuration.ConfigurationEl)Create an instance of this class and pass ascript file configuration.Executethe script
Additionally simplified helper methods are declared in this class:
ETL Cancellation
Scriptella execution model relies on a standard JavaThread.interrupt() mechanism.
To interrupt the ETL execution invoke Thread.interrupt() on a thread
which started ETL operation. As a part of interruption process
the engine tries to roll back all changes made during the ETL operation.
ExecutorService and Future
can also be used to control ETL execution.
Integration with third-party systems
For convenience EtlExecutor implementsRunnable and Callable.
This feature simplifies integration of Scriptella executors with Executors
or other systems like Spring/Quartz etc. It also minimizes application code dependency on Scriptella.- Version:
- 1.0
- Author:
- Fyodor Kupolov
-
Constructor Summary
ConstructorsConstructorDescriptionCreates ETL executor.EtlExecutor(ConfigurationEl configuration) Creates an ETL executor for specified configuration file. -
Method Summary
Modifier and TypeMethodDescriptioncall()A synonym forexecute().execute()Executes ETL based on a specified configuration.execute(ProgressIndicator indicator) Executes ETL based on a specified configuration.Returns ETL configuration for this executor.booleanReturns true if monitoring/management via JMX is enabled.booleanGetter forsuppressStatisticsproperty.static EtlExecutornewExecutor(File scriptFile) Converts file to URL and invokesnewExecutor(java.net.URL).static EtlExecutornewExecutor(URL scriptFileUrl) Helper method to create a new ScriptExecutor for specified script URL.static EtlExecutornewExecutor(URL scriptFileUrl, Map<String, ?> externalProperties) Helper method to create a new ScriptExecutor for specified script URL.protected EtlContextprepare(ProgressIndicator indicator) Prepares the scripts context.voidrun()A runnable adapter forexecute()method.voidsetConfiguration(ConfigurationEl configuration) Sets ETL configuration.voidsetJmxEnabled(boolean jmxEnabled) Enables or disables ETL monitoring/management via JMX.voidsetSuppressStatistics(boolean suppressStatistics) Enables or disables collecting of statistics.
-
Constructor Details
-
EtlExecutor
public EtlExecutor()Creates ETL executor. -
EtlExecutor
Creates an ETL executor for specified configuration file.- Parameters:
configuration- ETL configuration.
-
-
Method Details
-
getConfiguration
Returns ETL configuration for this executor.- Returns:
- ETL configuration.
-
setConfiguration
Sets ETL configuration.- Parameters:
configuration- ETL configuration.
-
isJmxEnabled
public boolean isJmxEnabled()Returns true if monitoring/management via JMX is enabled.If jmxEnabled=true the executor registers MBeans for executed ETL files. The object names of the mbeans have the following form:
scriptella: type=etl,url="ETL_FILE_URL"- Returns:
- true if monitoring/management via JMX is enabled.
-
setJmxEnabled
public void setJmxEnabled(boolean jmxEnabled) Enables or disables ETL monitoring/management via JMX.If jmxEnabled=true the executor registers MBeans for executed ETL files. The object names of the mbeans have the following form:
scriptella: type=etl,url="ETL_FILE_URL"- Parameters:
jmxEnabled- true if monitoring/management via JMX is enabled.- See Also:
-
isSuppressStatistics
public boolean isSuppressStatistics()Getter forsuppressStatisticsproperty.- Returns:
- true if statistics collection is disabled. Default value is false.
-
setSuppressStatistics
public void setSuppressStatistics(boolean suppressStatistics) Enables or disables collecting of statistics. Default value is false, which means statistics is collected.Setting this option to
truemay improve performance in some cases.- Parameters:
suppressStatistics- true if statistics collection should be disabled.
-
execute
Executes ETL based on a specified configuration.- Returns:
- execution statistics for ETL execution.
- Throws:
EtlExecutorException- if ETL fails.- See Also:
-
execute
Executes ETL based on a specified configuration.- Parameters:
indicator- progress indicator to use.- Returns:
- execution statistics for ETL execution.
- Throws:
EtlExecutorException- if ETL fails.
-
prepare
Prepares the scripts context.- Parameters:
indicator- progress indicator to use.- Returns:
- prepared scripts context.
-
newExecutor
Converts file to URL and invokesnewExecutor(java.net.URL).- Parameters:
scriptFile- ETL file.- Returns:
- configured instance of script executor.
- See Also:
-
newExecutor
Helper method to create a new ScriptExecutor for specified script URL.Calls
newExecutor(java.net.URL, java.util.Map)and passesSystem propertiesas external properties.- Parameters:
scriptFileUrl- URL of script file.- Returns:
- configured instance of script executor.
-
newExecutor
Helper method to create a new ScriptExecutor for specified script URL.- Parameters:
scriptFileUrl- URL of script file.externalProperties- seeConfigurationFactory.setExternalParameters(java.util.Map)- Returns:
- configured instance of script executor.
- See Also:
-
run
A runnable adapter forexecute()method.Please note that due to a checked exceptions limitation a
SystemExceptionis thrown instead of theEtlExecutorException.- Specified by:
runin interfaceRunnable- Throws:
SystemException- a wrappedEtlExecutorException.- See Also:
-
call
A synonym forexecute().- Specified by:
callin interfaceCallable<ExecutionStatistics>- Throws:
EtlExecutorException
-