JBoss 系列一 O O:Maven jBPM 6 集成示例

时间:2014-05-11 21:30:27   收藏:0   阅读:396

概述

jBPM 6 中底层架构基于 Maven,所以我们可以很容易的进行 Maven jBPM 6 集成示例,本文分三个部分:

基本原理介绍

如下图

bubuko.com,布布扣

如图所示,我们有两台服务器,jBPM 6 服务器和客户端服务器:

Maven jBPM 6集成

Maven jBPM 6集成实际上就简化为 Maven settings.xml的配置问题。如下配置

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 
<servers>
    <server>
      <id>guvnor-m2-repo</id>
	  <username>admin</username>
      <password>password1!</password>
      <configuration>
        <wagonProvider>httpclient</wagonProvider>
        <httpConfiguration>
          <all>
            <usePreemptive>true</usePreemptive>
          </all>
        </httpConfiguration>
      </configuration>
    </server>
  </servers>
 
  <profiles>
   
<profile>
      <id>guvnor-m2-repo</id>
      <repositories>
        <repository>
          <id>guvnor-m2-repo</id>
          <name>BRMS Repository</name>
          <url>http://10.66.218.46:8080/business-central/maven2/</url>
          <layout>default</layout>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>

  </profiles>

  <activeProfiles>
    <activeProfile>guvnor-m2-repo</activeProfile>
  </activeProfiles>

</settings>

如上为一配置示例,我们可以看出

有如上配置,如下代码可以运行获取远程 jBPM 6 服务器仓库中的流程等:

		KieServices kServices = KieServices.Factory.get();
		ReleaseId releaseId = kServices.newReleaseId( "com.redhat.gss", "01081954", "1.1-SNAPSHOT" );
		KieContainer kContainer = kServices.newKieContainer( releaseId );
                KieBase kbase = kContainer.getKieBase();
		KieSession ksession = kbase.newKieSession();
		    

如上代码运行可以需要三种方式指定 settings.xml:

jBPM 6 中使用 Maven 特性实时监听服务器端的更新

借助于 Maven 的特性,KieScanner 可以周期性的扫描远程jBPM 6 服务器运行的Maven Repo,当有远程发布有变更时,KieScanner 会自动更新 KieRepository,使其为最新的发布,如下代码

		KieServices kServices = KieServices.Factory.get();
		ReleaseId releaseId = kServices.newReleaseId( "org.kie.example", "project1", "1.0.0-SNAPSHOT" );
		KieContainer kContainer = kServices.newKieContainer( releaseId );
		KieScanner kScanner = kServices.newKieScanner( kContainer );
		kScanner.start( 1000 * 10);
		
		
		while(true) {
			KieSession ksession = kContainer.newKieSession();
            ksession.fireAllRules();

            Thread.sleep(10000);
		}

如果我们更新远程 project1 中的流程或规则文件,客户端的程序不要任何变化会运行远端的变化。关于这一部分的深入原理参照 https://github.com/kylinsoong/jBPM-Drools-Example/blob/master/drools-6-examples/kie-mvn/kie-mvn-architecture.md

JBoss 系列一 O O:Maven jBPM 6 集成示例,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!