網(wǎng)路冷眼@BlogJava

          熙熙攘攘一閑人 以冷靜的眼光觀察技術(shù)
          posts - 88, comments - 193, trackbacks - 0, articles - 28
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Extend the migration logic

          擴(kuò)展遷移邏輯

          The migration logic is written in such a way, that it is easy to extend to suit your needs. The source code is available as a Maven 2 project in the srcsubfolder of the downloaded zip file. To build a new zip file, after having changed or extended the logic, simply execute a

          遷移邏輯可以編寫,以便輕松地滿足你的需求。源代碼在所下載zip文件里src子文件夾里作一個Maven 2項目來使用。為了構(gòu)建一個新的zip文件,在已經(jīng)改變或者擴(kuò)展邏輯之后,簡單執(zhí)行下面指令

           mvn clean install

           

          to produce a new zip file in the target folder.

          在target文件下產(chǎn)生一個新的zip文件。

          Following picture gives a high-level overview of the classes in the migration logic.

          下圖提供了在遷移邏輯里類的高層次概貌。

          migration.code.overview

          • Both the ProcessConversion and ProcessDataMigration classes have a main method that directly is called from the ant build script in the root of the migration zip.
          • ProcessConversion and ProcessDataMigration 這兩個類都有在遷移zip的根目錄下的ant構(gòu)建腳本里調(diào)用的main方法。
          • These classes construct a ServiceFactory based on the two properties files, using a static factory method
          • 通過使用靜態(tài)的工廠方法,基于兩個properties文件這些類構(gòu)建一個ServiceFactory
          ServiceFactory.configureFromProperties(jbpmDbProperties, activitiDbProperties);
          • The services are constructed by the ServiceFactory (eg. getProcessConversionService()) and are used to execute the migration logic:
          • 通過ServiceFactory (eg. getProcessConversionService())構(gòu)建這些服務(wù),這些服務(wù)被用來執(zhí)行遷移邏輯:
           1 public void execute() throws IOException {
           2     
           3   // convert processes
           4   ServiceFactory serviceFactory = createServiceFactory();
           5   ProcessConversionService processConversionService = serviceFactory.getProcessConversionService();
           6   Map<String, Document> migratedProcesses = processConversionService.convertAllProcessDefinitions();
           7   
           8   // write results to bpmn20.xml files
           9   writeConvertedProcesses(migratedProcesses, workingDir);
          10     
          11   // Deploy processes to Activiti
          12   ActivitiService activitiService = serviceFactory.getActivitiService();
          13   activitiService.deployConvertedProcesses(migratedProcesses);
          14     
          15   // data migration
          16   
          17 }
          • The ProcessConversionService is an interface that contains process conversion and process definition data retrievel operations. It uses an implementation of Jbpm3Dao. The default implementation of this class uses a Hibernate SessionFactory to retrieve all the data from jBPM 3 tables.

          The ActivitiService offers operation needed to get the migrated data in the Activiti tables. For example, deploying the converted process definitions is such an operation

          ProcessConversionService 是一個包含流程轉(zhuǎn)換和數(shù)據(jù)檢索的流程定義借口。它使用了 Jbpm3Dao.的實現(xiàn)。這個類的缺省實現(xiàn)使用了Hibernate的SessionFactory從jBPM 3的數(shù)據(jù)庫表里檢索所有的數(shù)據(jù)。

          ActivitiService 提供需要從Activiti數(shù)據(jù)庫表遷移數(shù)據(jù)的操作。例如,部署轉(zhuǎn)換之后的流程定義就是如此的操作。

          • All these dependencies, ProcessConversionService, Jbpm3Dao, Sessionfactory, ActivitiService and ProcessEngine, are interfaces and can be implemented by your own implementation. You can inject them into the ServiceFactory using regular JavaBean setters. When no such custom implementation is set, the ServiceFactory will fall back to creating the default implementation:
          • 所有這些依賴, ProcessConversionService, Jbpm3Dao, Sessionfactory, ActivitiService 和 ProcessEngine都是接口,并能由你自己實現(xiàn)。采用正常的JavaBean設(shè)置器,能將它們注入到ServiceFactory。當(dāng)沒有設(shè)置這些實現(xiàn),ServiceFactory將后退一步,建立缺省的實現(xiàn):
              1 public ProcessConversionService getProcessConversionService() {
          
           2   if (processConversionService == null) {
           3     this.processConversionService = createDefaultProcessConversionService();
           4   } 
           5   return processConversionService;
           6 }
           7 
           8 protected ProcessConversionService createDefaultProcessConversionService() {
           9   ProcessConversionServiceImpl service = new ProcessConversionServiceImpl(getJbpm3Dao());
          10   return service;
          11 }
                     

          評論

          # re: Activiti User Guide(Activiti用戶指南)-Chapter 18. JBPM Migration(JBPM 遷移)(2)[未登錄]  回復(fù)  更多評論   

          2012-05-09 12:29 by hh
          事務(wù)能一起控制嗎?

          # re: Activiti User Guide(Activiti用戶指南)-Chapter 18. JBPM Migration(JBPM 遷移)(2)  回復(fù)  更多評論   

          2014-07-11 14:01 by cheap nikes
          同一樓
          主站蜘蛛池模板: 武安市| 雷州市| 鞍山市| 类乌齐县| 新巴尔虎右旗| 林口县| 井研县| 肥东县| 惠水县| 怀远县| 滁州市| 肥城市| 康定县| 巫溪县| 南郑县| 思南县| 攀枝花市| 本溪| 息烽县| 新昌县| 望都县| 东城区| 留坝县| 观塘区| 来凤县| 清丰县| 吉安县| 吴桥县| 三亚市| 柘荣县| 九龙城区| 鄄城县| 中宁县| 宜春市| 东兴市| 久治县| 临漳县| 界首市| 高安市| 灌南县| 莲花县|