Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
shark工作流源代码学习(四)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

怎么装载流程定义

上篇文章已经讨论过,流程定义的装载只需要做一次;下面讨论怎么装载的问题

 

首先给出流程定义的装载的代码,其中的序号对应于后面的解释:

/**
*
输入的是流程定义文件名,返回的是流程定义的包ID

*/

public String packageLoad(String xpdlName) throws MyException

    {  

  //(1)返回库管理器

       RepositoryMgr rm = Shark.getInstance().getRepositoryManager();

 //(2)库管理器得到包ID

       String pkgId = rm.getPackageId(xpdlName);

//(3)得到包管理器

        PackageAdministration pa = Shark.getInstance().getAdminInterface().getPackageAdministration();

       if (!pa.isPackageOpened(pkgId))

       {

           try

           {

//(4)装载流程定义

              pa.openPackage(xpdlName);

           }

           catch (Exception e)

           {

              throw new MyException (e);

           }

       }

       return rm.getPackageId(xpdlName);

    }

 

(1)返回库管理器

该功能实际是通过SharkEngineManger来实现的,如下:

public RepositoryMgr getRepositoryManager () {

      return SharkEngineManager.getInstance().getObjectFactory().createRepositoryManager();

   } 

SharkRepositoryMgr的实现类是RepositoryManager

(2) 库管理器得到包ID

  该功能实现时,实现取出SharkUtilities.EXTERNAL_PACKAGES_REPOSITORY下的全部流程定义,再进行文件名的比较.

(3)得到包ID,余下的事情交由PackageAdministration来完成

 

作者又名HongSoft,研究领域:1)基于工作流的BPM系统研究2)基于JAVA的信息安全技术.欢迎和大家讨论JAVA相关各方面问题 [email protected]

 

 

 




相关文章

相关软件