您的位置:首页 > 产品设计

介绍FoxBpm如何实现发布连接器

2014-09-04 11:46 288 查看

     关于FoxBPM连接器前面单独做过介绍,本章介绍FoxBPM如何发布连接器。

 

    有关连接发布配置在foxbpm.cfg.xml文件中   

<resourcePathConfig>
<resourcePath id="foxbpmflowconnector" name="流程连接器路径"
type="flowConnector" projectName="foxbpm-connector"
virtualPath="src/main/
4000
java/org/foxbpm/connector/flowconnector/" src="org/foxbpm/connector/flowconnector/" />
<resourcePath id="foxbpmactorconnector" name="处理者选择器路径"
type="actorConnector" projectName="foxbpm-connector"
virtualPath="src/main/java/org/foxbpm/connector/actorconnector/" src="org/foxbpm/connector/actorconnector/" />
</resourcePathConfig>

   注意:这里配置有两个用途:

    1、foxbpm-rest服务通过以上配置来发布连接器信息 ;

    2、FoxBPM流程设计器需要获取以上配置来进行读取连接信息;

 

   以上是两个resourcePath节点项是FoxBPM默认提供的连接器。

   下面介绍下resourcePath 节点属性项:

    id:一般唯一编号;

    name:名称;

    type:这里目前只支持(flowConnector、actorConnector)其中一个;

    projectName:存在的工程名称,这里需要注意的是:这个项目名称和最终打包名称必须一致;

    virtualPath:这里注意是获取或者写入连接器资源信息;

    src:包路径;

    注意:路径分隔使用/

   关于FoxBPM连接器发布

        1、关于FoxBPM连接器发布是有foxbpm-rest服务来完成的,foxbpm-rest服务启动过程会通过FoxBPM流程引擎来获取foxbpm.cfg.xml文件中配置的连接器信息

    1、获取连接器资源信息

Map<String,Map<String,String>> pathMap = new HashMap<String,Map<String,String>>();
ProcessEngineConfigurationImpl processEngineConfigurationImpl = ProcessEngineManagement.getDefaultProcessEngine().getProcessEngineConfiguration();
ResourcePathConfig resourcePathConfig = processEngineConfigurationImpl.getResourcePathConfig();
List<ResourcePath> resourcePaths = resourcePathConfig.getResourcePath();

    2、处理连接器资源

for(ResourcePath path : resourcePaths){
if("flowConnector".equals(path.getType()) || "actorConnector".equals(path.getType())){
Map<String,String> pathList = pathMap.get(path.getProjectName());
if(pathList == null){
pathList = new HashMap<String, String>();
pathMap.put(path.getProjectName(), pathList);
}
pathList.put(path.getType(), path.getSrc());
}
}
for(String key : pathMap.keySet()){
Map<String,String> pathList = pathMap.get(key);
if(pathList ==null){
continue;
}

for(String tmp : pathList.keySet()){
String dirPath = pathList.get(tmp);
URL url = this.getClass().getClassLoader().getResource(dirPath);
if(url == null){
log.warn("位置:" + dirPath + " 不存在,跳过不处理");
continue;
}
String urlStr = url.toString();
String jarPath = urlStr.substring(0, urlStr.indexOf("!/") + 2);
URL jarURL = new URL(jarPath);
JarURLConnection jarCon = (JarURLConnection) jarURL.openConnection();
JarFile jarFile = jarCon.getJarFile();

Enumeration<JarEntry> jarEntrys = jarFile.entries();
while (jarEntrys.hasMoreElements()) {
JarEntry entry = jarEntrys.nextElement();
String name = entry.getName();
if(name.startsWith(dirPath) && !entry.isDirectory() && !name.endsWith(".class")){
处理连接器的配置文件....
}
}
log.debug("位置:" + dirPath + " 处理完毕");
}
}

   foxbpm-rest服务启动完成后,会在foxbpm-webapps-base服务的WEB-INF\classes\目录下生tmpConnectorZipFile.zip中

   注意:这时候还需要检查设计器中配置的rest服务地址和本地缓存地址是否都配置正确 ;window-->preferences-->流程设计器;

    
  
   保证以上配置都正确后,我们再点击“同步设计器” ,会提示如下信息
点击确定后会在d:/ba目录下生成serviceFiles\connector\foxbpm-connector\连接器信息,这里说明FoxBPM连接器发布完成了。

 

接下来我们可以创建一个bpmn文件来验证下,在流程图上点击一个人工任务选择“任务分配”,或“连接器”点击看是否能正常出现连接器配置界面。

 

 详情请关注FoxBPM,官方地址:https://github.com/FoxBPM/

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐