码迷,mamicode.com
首页 > 其他好文 > 详细

kettle环境初始化

时间:2016-08-19 20:34:34      阅读:1185      评论:0      收藏:0      [点我收藏+]

标签:

kettle环境初始化

  程序启动时会初始化kettle的运行环境,例如,spoon启动时main方法就会调用KettleEnvironment.init()来为spoon的运行环境作初始化。通过KettleEnvironment.init()来初始化环境时,会读取属性文件、注册插件等,以init()方法为切入点,调试了一下源码,大概整理了一下脉络,并简单记录下来:

  1. 调用KettleClientEnvironment.init()方法初始化客户端环境,具体的子流程以下:
    1. 创建.kettle目录,并在该目录下创建一个默认的kttle.properties文件---createKettleHome()
    2. 读取kettle.properties文件,把内容设置到系统变量中---EnvUtil.environmentInit()
    3. 初始化一些日志配置
    4. 注册插件类型(5种类型)并进行初始化---PluginRegistry.init( true )
  2. 如果运行在一个standalone model(例如spoon,kitche,carte),则会初始化JNDI,具体细节查看JndiUtil.initJNDI()
  3. 把本地插件类型(RowDistributionPluginType,StepPluginType,PartitionerPluginType,JobEntryPluginType,LogTablePluginType,RepositoryPluginType,
    LifecyclePluginTypeKettleLifecyclePluginType,ImportRulePluginType,CartePluginType,CompressionPluginType,AuthenticationProviderPluginType,
    AuthenticationConsumerPluginType)添加到PluginRestry类的pluginTypes:List<PluginTypeInterface>中
  4. 调用PluginRegistry.init()进行初始化插件
  5. 初始化kettle变量,其实是解析kettle-variables.xml并保存里面的配置到List里---KettleVariablesList.init()
  6. 初始化生命周期监听器---initLifecycleListeners()
  7. 初始化日志插件---initLoggingPlugins()

 

流程图表示:

 

技术分享

kettle环境初始化

标签:

原文地址:http://www.cnblogs.com/czm1032851561/p/5788747.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!