背景
程序启动时会初始化kettle的运行环境,例如,spoon启动时main方法就会调用KettleEnvironment.init()来为spoon的运行环境作初始化。通过KettleEnvironment.init()来初始化环境时,会读取属性文件、注册插件等,以init()方法为切入点,调试了一下源码,大概整理了一下脉络,并简单记录下来:
步骤
- 调用KettleClientEnvironment.init()方法初始化客户端环境,具体的子流程以下:
- 创建.kettle目录,并在该目录下创建一个默认的kttle.properties文件—
createKettleHome() - 读取kettle.properties文件,把内容设置到系统变量中—
EnvUtil.environmentInit() - 初始化一些日志配置
- 注册插件类型(5种类型)并进行初始化—
PluginRegistry.init( true ) - 如果运行在一个standalone model(例如spoon,kitche,carte),则会初始化JNDI,具体细节查看
JndiUtil.initJNDI() - 把本地插件类型
RowDistributionPluginType,StepPluginType,PartitionerPluginType,JobEntryPluginType,LogTablePluginType, RepositoryPluginType,LifecyclePluginTypeKettleLifecyclePluginType,ImportRulePluginType,CartePluginType,CompressionPluginType, AuthenticationProviderPluginType,AuthenticationConsumerPluginType添加到PluginRestry类的**pluginTypes:List**中 - 调用
PluginRegistry.init()进行初始化插件 - 初始化kettle变量,其实是解析kettle-variables.xml并保存里面的配置到List里—
KettleVariablesList.init() - 初始化生命周期监听器—
initLifecycleListeners() - 初始化日志插件—
initLoggingPlugins()
本文详细介绍了Kettle启动时的初始化流程,包括创建.kettle目录、读取kettle.properties文件、初始化日志配置、注册插件类型等内容。
1221

被折叠的 条评论
为什么被折叠?



