jbpm4各個包的作用描述

2021-07-27 07:22:45 字數 4946 閱讀 3755

org.jbpm.pvm.internal.ant

提供使用ant發布流程,輔助啟動jboss的任務。

org.jbpm.pvm.internal.builder

用來構造各種模型,包括活動,活動行為,事件,事件處理器,流程定義,變數,任務,等等。

org.jbpm.pvm.internal.cal

提供日曆,包括日期,

時間段,持續時間,節假日。

org.jbpm.pvm.internal.cfg

中的jbpmconfiguration和springconfiguration實現了org.jbpm.api.configuration,用來 從配置檔案構造processengine。

org.jbpm.api.client

這部分包含clientexecution, clientprocessdefinition, clientprocessinstance。clientexecution繼承了openexecution,宣告了end(), signal(), suspend(), resume()之類的方法。clientprocessdefintion繼承了openprocessdefintion,其中的功能主要是 createprocessinstance和startprocessinstance。

org.jbpm.pvm.internal.cmd

包含command和commandservice,這是

命令設計

模式的基礎。其中放著所有的命令,所有的流程操作都可以 在這裡找到。

org.jbpm.pvm.internal.email

下面有兩個子包impl和spi,只要注意spi下的addressresolver, mailproducer和mailsession就可以實現自定義的實現了。

org.jbpm.pvm.internal.env

包含context, environment, environmentfactory, transaction, wireobject。其中context, environment和environmentfactory組成了jbpm4裡的ioc系統。transaction定義了通用事務。 wireobject用來做依賴繫結。下面儲存著環境有關的實現類。包括authentication許可權認證,environment與context 相關的各個類。

org.jbpm.pvm.internal.hibernate

下面的類是專門與hibernate進行互動的類,包含型別轉換,命名策略和最主要的dbsessionimpl,所有與資料庫的操作都**於此。

org.jbpm.pvm.internal.history

下面是歷史操作所需要的部分,其下還包含events和model包。

org.jbpm.pvm.internal.identity

包主要負責身份認證的操作。包含三個子包cmd, impl和spi,cmd下定義所用到的命令,impl下是實現類,spi下放著identitysession。

org.jbpm.pvm.internal.jms

包括jmsmessagesession和jmsmessageutil,應該是用來處理jms的,jmsmessagesession與 org.jbpm.api.job.message相關聯。說明job下的message是依靠jms傳送非同步訊息的。

org.jbpm.pvm.internal.job

中提供了對job, message和timer的實現

org.jbpm.pvm.internal.jobexecutor

提供了任務執行器,包括jobexecutorservlet和對應的執行緒池,以及一系列的命令和處理器。無論是job, message或是timer,最終都會被這裡執行。

org.jbpm.pvm.internal.lob

org.jbpm.pvm.internal.model

這個模型包中包含了很多很多類,包括activity, compositeelement, condition, observableelement, openprocessdefinitiontransition。簡單分類一下。最底層的是observableelement,它是可以被事件監聽的 元素,並且可以繼承,compositeelement繼承了 observableelement,它裡面可以裝填多個活動。再加上event中定義了多個事件,這些就構成了最基本的事件模型。activity和 activitycoordinates分別定義了活動類和活動位置。以這些為基礎,openprocessdefinition繼承了 processdefinition和compositeelement。最終,我們還有乙個condition類,它只有乙個evaluate方法,接 受openexecution作為引數返回boolean值,condition和activity組合成了transition,這個轉移包含了起點, 終點,以及條件判斷。最龐大的模型部分,活動,轉移,流程定義,流程例項的實現類都放在這裡。在它的op子包中包含的是流程進行中的各項操作。

org.jbpm.pvm.internal.query

放的是history, job, processdefintion, processinstance這四個query類的實現,還提供了乙個page類,但是其中只有firstresult和maxresults,所以沒 啥大用。

org.jbpm.pvm.internal.repository

負責的是流程的發布,主要有deployment和repository對應的service, session和cache,這裡使用的快取,所以每次使用流程定義的時候可以利用快取提高效率。

org.jbpm.pvm.internal.script

包含對指令碼的支援,預設支援了juelscriptengine。

org.jbpm.pvm.internal.session

支援各種會話,dbsession, messagesession, repositorysession和timersession。

org.jbpm.pvm.internal.spring

這裡只有乙個commandtransactioncallback用來實現從spring中獲得事務,並用其執行jbpm中定義的各種命令。

org.jbpm.pvm.internal.stream

用於從各種途徑讀取資源,無論是jbpm配置檔案和流程資源都要通過這些來轉換成流的形式,以供給jbpm處理。

org.jbpm.pvm.internal.svc

其中svc或許是service的縮寫。這個包中除了包括org.jbpm.api包下定義的所有service介面的實現,還包括 commandservice的實現和認證***。

org.jbpm.pvm.internal.task

這裡代表了所有與任務,任務參與者相關的資訊,包括assignable, assignmenthandler, opentask, participation, swimlane, task, taskdefinition。簡單劃分後,主要有任務,任務定義任務處理。剩下的都是與任務分配有關了。taskdefinition從字面上來看是指 任務定義,裡邊只有乙個getname()。task中儲存了任務相關的一些內容,opentask主要用來處理歷史事件。參與者部分基本分成三個部分, 以assignable和assignmenthandler組成的自定義分配部分,participation參與者和swimlane泳道。暫時沒有 發現三者之間與任務的聯絡。

org.jbpm.pvm.internal.test

包下放了乙個jobtesthelper,顯然是可以幫助在

測試環境下執行job的,個人認為它放在pvm中似乎有 點兒不妥。

org.jbpm.pvm.internal.tx

其中負責處理事務,jtatransaction啦,springtransationinterceptor 啦,standardtransaction啦,這些需要根據實際環境具體選擇。jta的實現部分已經單獨放到子包jta中了。希望spring中的事務 也能這樣處理就好了。

org.jbpm.pvm.internal.type

用來進行型別轉換,主要是載入jbpm.cfg.xml對流程引擎進行初始化時,還有就是發布流程的時候進行型別轉換。子包包括 converter,matcher和variable,型別轉換器,型別匹配器和變數。

org.jbpm.pvm.internal.util

包含常用工具。

org.jbpm.pvm.internal.wire

用來在ioc裡進行依賴繫結。子包包含binding, descriptor, operation和xml,個人認為這是很麻煩的繫結方式,而且預設的繫結方式是使用field,而不是常見的setter繫結方式。

org.jbpm.pvm.internal.xml

包主要用於解析xml的,主要解析jbpm.cfg.xml和流程定義檔案。

配置檔案

jbpm 配置jbpm.default.cfg.xml,流程引擎的預設配置檔案。

jbpm.identity.cfg.xml, jbpm.jboss.idm.cfg.xml身份驗證配置檔案。

jbpm.jbossremote.cfg.xml遠端呼叫jboss實現命令模式。

jbpm.jobexecutor.cfg.xml任務執行器的配置。

hibernate對映jbpm.execution.hbm.xml, jbpm.history.hbm.xml, jbpm.identity.hbm.xml, jbpm.repository.hbm.xml, jbpm.task.hbm.xml這五個是hibernate對映檔案。

任務生命週期jbpm.task.lifecycle.xml任務的生命週期,包括啟動,暫停,繼續,完成,取消之類。

事務配置jbpm.tx.hibernate.cfg.xml預設的hibernate事務配置。

jbpm.tx.jta.cfg.xml使用jta的事務配置。

ioc配置jbpm.variable.types.xml變數型別對映。

jbpm.wire.bindings.xml依賴繫結對映。

參考文獻

1.深入pvm.

jBPM4的執行期環境

一 執行期環境就是乙個餐館 二 jbpm4的執行期環境 environment environment environmentfactory.openenvironment try finally 兩個關鍵的類 environmentfactory和environment.environmentfa...

jbpm4的多人會簽(fork join實現)

本文的主要思想是建立主任務與子任務,會簽分配給多個人,即建立了多個子任務,子任務要與主任務繫結,根據指定的會簽人完成子任務,每次到完成子任務時要判斷主任務的子任務個數有幾個,當所有子任務都完成,主任務沒有子任務時,就讓主任務指向下一節點。1.新建jbpm.xml檔案,如下 流程圖如下 2.其中com...

jbpm4事務和spring事務的整合

我們知道,支援嵌入到各種架構環境中使用一直是 jbpm工作流引擎的核心競爭力之一,自jbpm3版本開始,jbpm工作流引擎就在很多應用中被整合到spring等架構中使用,從jbpm4.4開始,jbpm工作流引擎可以支援開發者很自然的將其整合到spring架構中使用 spring架構整合jbpm4,只...