`

jBPM(十三): 从ObjectFactory到ObjectInfo

阅读更多

      在jBPM(十一): 从JbpmContextFilter说起 中, 我们从JbpmThreadsServlet开始,引出了JbpmConfiguration类及其实例通过构造方法 JbpmConfiguration(ObjectFactory objectFactory)的创建.那objectFactory是怎么来的呢? 与之相关的又有些什么看点呢? 本篇中将试着做个梳理总结.

    ObjectFactory是一个接口. 它有两个方法createObject和hasObject, 这个不难理解,这两个方法跟接口的名字是相对应在的: 对象工厂(objectFactory)也就是要来创建对象(createObject)的,同时可能某些情况下有用就来一个判断某个对象有无 (hasObject)的方法. 在jBPM中它只有一个实现类ObjectFactoryImpl(BTW,Spring对jBPM支持的module中有一个 JbpmObjectFactory,此实现类在此不做讨论),先不看接口定义的两个方法在实现类里都做了些什么, 我们来看这个ObjectFactoryImpl是怎么创建的, 以及创建后又对它做了些什么set.

    在JbpmConfiguration类的parseObjectFactory方法里, 我们看到了如下的代码:

        ObjectFactoryParser objectFactoryParser = new ObjectFactoryParser();
        ObjectFactoryImpl objectFactoryImpl = new ObjectFactoryImpl();
        objectFactoryParser
              .parseElementsFromResource("org/jbpm/default.jbpm.cfg.xml", objectFactoryImpl);

        if (inputStream!=null) {
          log.debug("loading specific configuration...");
          objectFactoryParser.parseElementsStream(inputStream, objectFactoryImpl);
        }

        return objectFactoryImpl;
 

结 合上下文, 不难看出这是解析jBPM的配置文件, 并把配置文件里的相关信息以objectFactory实例的形式保存下来. 具体在解析时又做了些什么呢? 追着objectFactoryParser.parseElementsStream方法,发现最终调用了ObjectFactoryImpl类的 addObjectInfo方法,并在方法addObjectInfo中, 给ObjectFactoryImpl类的属性namedObjectInfos或objectInfos加了传来的ObjectInfo实例.

    ObjectInfo? 又是一个新的东东. 它代表什么? 这是一个jBPM解析配置文件过程中很重要的一个概念.先在这里放一放.

    上面的分析,我们看出ObjectFactory(也就是ObjectFactoryImpl类)创建后,把配置文件中信息放到了ObjectFactoryImpl属性namedObjectInfos和objectInfos中.

    在结束对ObjectFactory分析前,看下其定义的createObject方法(因另一方法hasObject一看就能明白,这里就不再赘述) 做了什么?顺着方法createObject,一直看到了objectInfo.createObject(this)的执行. 又是ObjectInfo?

    对,又是ObjectInfo! ObjectInfo还是一个接口, 这个接口有什么实现类? 它对应着配置文件中什么信息呢? 我们将在下一篇中加以梳理总结.

2
0
分享到:
评论

相关推荐

    JBPM数据库表说明 jbpm 工作流 详细到每一个字段,不要下载分

    JBPM数据库表说明 2 1 流程配置类数据库表: 2 1.1 JBPM_PROCESSDEFINITION:流程模版表 2 1.2 JBPM_NODE:流程节点表 2 1.3 JBPM_TRANSITION:流程迁移表 3 1.4 JBPM_ACTION:流程动作表 4 1.5 JBPM_EVENT:...

    jbpm jbpm4.3.jar

    jbpm jbpm4.3.jar DDDDDDDD

    JBPM实践之:并发子流程的实现.doc

    JBPM(Java Business Process Management)是一个开源的工作流和业务流程管理系统,它允许开发者设计、执行、管理和监控业务流程。在JBPM中,处理并发子流程是实现复杂业务逻辑的重要一环。本文将深入探讨如何使用...

    【转载 见附件】纵观jBPM:从jBPM3到jBPM5以及Activiti5

    "【转载 见附件】纵观jBPM:从jBPM3到jBPM5以及Activiti5" 这个标题表明这是一个关于jBPM发展历程的综合分析,涵盖了从jBPM3到jBPM5的变迁,并且提到了Activiti5,这是一款与jBPM相关的流程管理框架。标题暗示了文章...

    JBPM4.4所需要的包.rar

    标题中的"JBPM4.4所需要的包.rar"表明这是一个与JBPM 4.4...总的来说,这个"JBPM4.4所需要的包.rar"是一个基础的JBPM运行环境,涵盖了从表达式语言解析到邮件通知的关键组件,为搭建和运行JBPM 4.4流程提供了必要支持。

    纵观jBPM:从jBPM3到jBPM5以及Activiti5.doc

    【jBPM与Activiti的发展历程】 jBPM是一个开源的业务流程管理(Business Process Management,简称BPM)框架,自jBPM3以来经历了显著的变革。jBPM3是一个早期版本,提供了基于Eclipse的流程设计器和用于监控流程...

    jbpm-ee:jBPM 6的企业服务

    弃用-jbpm-ee jBPM的企业服务6。 还要注意,您需要更新arquillian.xml以指向JBoss EAP 6.1服务器,并且需要将服务器设置为包括MySQL驱动程序。 您还需要安装MySQL才能运行测试。 创建模式:jbpm-main。 添加用户:...

    jBPM(八): 也说jBPM + Tomcat + MySQL

    在集成jBPM到Tomcat的过程中,你需要确保Tomcat已经正确配置,包括设置环境变量、添加jBPM相关的库到`$CATALINA_HOME/lib`目录,以及配置数据源。此外,还需要在MySQL中创建相应的数据库和表结构,用于存储jBPM的...

    JBPM 4.4 API Document.CHM

    JBPM4.4工作流,英文的API提供了大量的类库

    jbpm-rest:jBPM 的简单 ReST 接口

    要使用 `jbpm-rest`,开发者首先需要将其集成到自己的应用环境中,这可能涉及到配置服务器、数据库以及 jBPM 的环境。然后,通过编写客户端代码或者直接发送 HTTP 请求,调用提供的 REST 接口进行流程操作。对于 ...

    jbpm流程设计器 + 生成对应xml文档 完美实现

    jbpm流程设计器 + 生成对应xml文档: 内部含有: jbpm控件 1: myflow2:插件原本内容 访问地址:http://localhost:8080/jbpmFlow1/myflow2/demo4.jsp 实现生成对应xml文档 并写有对xml文档读取存储到对象中,...

    jbpm-designer:用于jBPM的基于Web的BPMN2.0 Designer

    jbpm-designer是一款专为jBPM(Java Business Process Management)设计的基于Web的BPMN2.0(Business Process Model and Notation)建模工具。这个工具的主要目的是简化业务流程的设计和管理,使得非技术人员也能...

    jbpm视频环境配置

    1. **下载jbpm**:通常可以从jbpm的官方网站获取最新版本的jbpm发行包,解压到本地文件夹。 2. **安装JBPM服务器**:jbpm通常与Tomcat或JBOSS等应用服务器配合使用。需要将jbpm的war文件部署到服务器的webapps目录...

    jbpm4jbpm5

    开发者可以从中学到如何在实际项目中有效地运用jbpm,以及如何解决开发过程中遇到的问题。 总的来说,这个主题资料包提供了jbpm4和jbpm5的基础知识、实战经验和用户操作指导,对于想要学习或深化jbpm流程管理框架...

    jBPM开发:配置EclipseIDE开发环境参考.pdf

    - 将`jbpm-jpdl-suite-3.2.3/designer/eclipse/plugins`目录下的文件及文件夹复制到一个指定的目录,例如`D:\Genuitec\MyPlugins\jbpm-jpdl-designer-3.1.5`。 - 修改`CreatePluginsConfig.java`中的路径为`"D:\\...

    jbpm-study:请假流程 邮件发送 会签 jbpm4.4 spring mvc

    【jbpm-study:请假流程 邮件发送 会签 jbpm4.4 spring mvc】项目是一个基于Java技术栈的示例应用,旨在演示如何集成和使用jbpm(Business Process Management)4.4版本来实现请假流程,并结合Spring MVC进行业务逻辑...

    jbpm自带表及其相互之间的关系详解

    ### JBPM自带表及其相互之间的关系详解 JBPM(JBoss Business Process Management)是一个开源的工作流引擎,基于Java,用于实现业务流程管理(BPM)。它提供了强大的工具和API来设计、部署和运行复杂的业务流程。...

    jbpm数据库表结构

    JBPM的核心表结构覆盖了从流程定义到执行过程中的各个关键环节,具体包括但不限于以下几类: 1. **流程定义相关的表** - **JBPM_PROCESSDEFINITION**:流程模版表 - **ID_**:流程模版的唯一标识符。 - **NAME_*...

    jbpm-designer:定制的jbpm流程编辑器

    在BPM平台产品中,对jbpm的流程设计器(2.4.1)做了大量定制。包括: 本地化 界面简化,功能简化 连接平台获取变量、用户、组、子流程等 增加子系统参数 增强变量、用户、组设置 增加审批、会签设置,在任务图标上增加...

Global site tag (gtag.js) - Google Analytics