kettle环境初始化

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()

流程图表示:

时间: 2024-09-27 17:58:49

kettle环境初始化的相关文章

Android应用程序UI硬件加速渲染环境初始化过程分析

在Android应用程序中,我们是通过Canvas API来绘制UI元素的.在硬件加速渲染环境中,这些Canvas API调用最终会转化为Open GL API调用(转化过程对应用程序来说是透明的).由于Open GL API调用要求发生在Open GL环境中,因此在每当有新的Activity窗口启动时,系统都会为其初始化好Open GL环境.这篇文章就详细分析这个Open GL环境的初始化过程. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! Open

DroidPlugin源码分析插件运行环境初始化

从DroidPlugin的官方文档中我们知道. 2 在AndroidManifest.xml中使用插件的com.morgoo.droidplugin.PluginApplication: 或者在自定义的Application的onCreate()函数中,调用PluginHelper.getInstance().applicationOnCreate(getBaseContext()); 在Application的attachBaseContext()函数中,调用 PluginHelper.get

Android系统编译环境初始化时Product产品的import-nodes过程

从运行make -f config,mk文件開始,config,mk作为当前的makefile文件.将会被make解析,一般make解析Makefile文件流程首先是载入当中include的各种其它mk文件,同一时候在载入的过程中会初始化自己定义的变量,相似于预编译,在完毕各种初始化后,确定目标以及依赖关系,终于运行目标输出动作. 在config.mk中存在多个须要include的mk文件.这里关注product相关的envsteup.mk 在envsteup.mk从又会include prod

kali linux Python 黑客编程1 开发环境初始化

kali linux Python 黑客编程1 开发环境初始化 为什么要选择Python? Python作为目前Linux系统下最流行的编程语言之一,对于安全工作者的作用可以和C++相提并论.Python提供了丰富的库供调用,丰富的第三方扩展模块.在网络应用,文本解析方面,Python编程有着其他语言无可比拟的优势.同时Python也是面向对象并且跨平台的语言,可以在linux/Unix.OSX.windows上无障碍运行. 1.1 查看PYTHON版本信息 Kali Linux默认已经安装了P

JQuery.easyui 1.4.4#环境初始化

使用git Bash工具,利用bower命令行轻松把环境初始化..版本是 1.4.4 命令:bower install jquery.easyui

Ecstore安装篇-1.运行环境初始化

Ecstore单机运行环境初始化 Ecstore运行环境要求 应用软件版本信息 Nginx 5.3.29 PHP 5.3.29

《python源码剖析》笔记 python环境初始化

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.线程环境初始化 Py_InitializeEx,Python会首先调用 PyInterpreterState_New创建一个崭新的PyInterpreterState对象. 创建了PyInterpreterState(进程状态)对象之后,Python会调用PyThreadState_New创建PyThreadState(线程状态)对象 全局变量_PyThreadState_Curren

实验用虚拟机环境初始化

实验用虚拟机环境初始化 1. 通过virt-viewer方式进入虚拟机, 配置对应的ip地址, 重启网络 2. 在宿主机中依次对每个虚拟机执行如下操作 tar -cf - init_vhost.sh | ssh node102 "tar -xf -; sh init_vhost.sh" init_vhost.sh内容如下: # hostname echo -e "\n 1. hostname" echo =========== sed -i -r 's/(HOSTN

[ Openstack ] Openstack-Mitaka 高可用之 环境初始化

目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群部署    Openstack-Mitaka 高可用之 memcache    Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs高可用集群    Openstack-Mitaka 高可用之 认证服务(keystone)    Openstack-Mitaka