一、 将jbpm变为基于RCP的应用
开源的jbpm一个eclipse中plugin的项目不是RCP项目。所以要先将jbpm变为一个RCP独立的应用程序。
将jbpm导入eclipse
从http://labs.jboss.com/jbossjbpm/jpdl_downloads/上下载jbpm,解压;
在eclipse下导入工程,有两个工程要导入,如图中的两个文件夹,分别是org.jbpm.gd.jpdl文件夹和org.jbpm.gd.jpdl两个文件夹
导入好以后在eclipse中的形态应如图
在plugin.xml文件中增加对"org.eclipse.core.runtime.applications"的扩展
先在org.jbpm.gd.jpdl中新建一个包org.jbpm.gd.jpdl.rcp,在下面建五个类
package org.jbpm.gd.jpdl.rcp;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
/**
* The activator class controls the plug-in life cycle
*/
public class Activator extends AbstractUIPlugin {
// The plug-in ID
public static final String PLUGIN_ID = "org.jbpm.gd.jpdl.rcp";
// The shared instance
private static Activator plugin;
/**
* The constructor
*/
public Activator() {
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static Activator getDefault() {
return plugin;
}
/**
* Returns an image descriptor for the image file at the given
* plug-in relative path
*
* @param path the path
* @return the image descriptor
*/
public static ImageDescriptor getImageDescriptor(String path) {
return imageDescriptorFromPlugin(PLUGIN_ID, path);
}
}
package org.jbpm.gd.jpdl.rcp;
import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
/**
* This class controls all aspects of the application's execution
*/
public class Application implements IApplication {
/* (non-Javadoc)
* @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
*/
public Object start(IApplicationContext context) throws Exception {
Display display = PlatformUI.createDisplay();
try {
int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
if (returnCode == PlatformUI.RETURN_RESTART)
return IApplication.EXIT_RESTART;
else
return IApplication.EXIT_OK;
} finally {
display.dispose();
}
}
/* (non-Javadoc)
* @see org.eclipse.equinox.app.IApplication#stop()
*/
public void stop() {
final IWorkbench workbench = PlatformUI.getWorkbench();
if (workbench == null)
return;
final Display display = workbench.getDisplay();
display.syncExec(new Runnable() {
public void run() {
if (!display.isDisposed())
workbench.close();
}
});
}
}
package org.jbpm.gd.jpdl.rcp;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
super(configurer);
}
protected void makeActions(IWorkbenchWindow window) {
}
protected void fillMenuBar(IMenuManager menuBar) {
}
}
package org.jbpm.gd.jpdl.rcp;
import org.eclipse.ui.application.IWorkbenchConfigurer;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchAdvisor;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
private static final String PERSPECTIVE_ID = "org.jbpm.gd.jpdl.JpdlPerspective";
public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
return new ApplicationWorkbenchWindowAdvisor(configurer);
}
public String getInitialWindowPerspectiveId() {
return PERSPECTIVE_ID;
}
public void initialize(IWorkbenchConfigurer configurer) {
super.initialize(configurer);
}
}
package org.jbpm.gd.jpdl.rcp;
import org.eclipse.swt.graphics.Point;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
super(configurer);
}
public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
return new ApplicationActionBarAdvisor(configurer);
}
public void preWindowOpen() {
IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
configurer.setInitialSize(new Point(1024, 768));
configurer.setShowCoolBar(false);
configurer.setShowStatusLine(false);
configurer.setTitle("JBPM");
}
}
打开org.jbpm.gd.jpdl中的plugin.xml,选择名为extensions的tab项,在Add中加入org.eclipse.croe.runtime.applications,并对其做如图配置,或者在plugin.xml代码中加入:
为项目增加product Configuration配置,并导出应用程序
选择org.jbpm.gd.jpdl工程,点右键New/Other/Product Configuration
增加一个名为org.jbpm.gd.jpdl.product的文件,在overview页中,为产品配置name为jbpm,在produt Id栏中点击new,设置name为org.jbpm.gd.jpdl,finish,在product configuration里选择plug-ins 保存。
然后点击product configuration进入configuration页,点击Add在弹出框里选择org.jbpm.gd.jpdl,然后点击add required plug-ins按钮。保存。
product Configuration 的配置完成,可以将工程导出为应用程序了。
导出程序
选择org.jbpm.gd.jpdl工程,点右键Export,在弹出框中选择Eclipse product,next,选择你建的product configuration和导出的目录,finish,工程导出完成。在你导出的目录里,你可以找到eclipse.exe文件,双击可以直接打开应用程序。
分享到:
相关推荐
在本篇博客“用java web start来发布jbpm(三)”中,博主将深入探讨如何使用Java Web Start来发布JBPM(Business Process Management System,业务流程管理系统)。 JBPM是一个开源的工作流和业务流程管理框架,它...
【jbpm5 web整合例子】是一个关于如何将JBPM5工作流引擎与Web应用程序整合的实践项目,适合那些想要在Web环境中使用业务流程管理(BPM)功能的开发者。JBPM5是一个开源的工作流和业务规则管理系统,它提供了一整套...
这个项目是一个基于Web的JBPM5.2实例,特别设计用于在Apache Tomcat服务器上运行。理解这个应用的关键在于熟悉JBPM5的核心功能以及如何在Tomcat环境下配置和部署。 首先,JBPM5提供了以下核心功能: 1. **工作流...
【JBPM web(SSH+JBPM)例子】是一个基于Java技术栈实现的工作流管理系统示例,其中SSH代表Spring、Struts和Hibernate这三个流行的Java企业级开发框架的组合,而JBPM则是Business Process Management(业务流程管理...
**jbpm工作流web应用** 是一个基于Java的业务流程管理(BPM)系统,它提供了全面的工作流解决方案,能够帮助开发者构建可扩展且灵活的Web应用程序。jbpm结合了Eclipse开发环境、Tomcat应用服务器和MySQL数据库,形成...
对于"Jbpm4Web"这个压缩包,很可能包含了一个基于JBPM4的工作流管理系统的web应用示例。源码可能包括了前端的HTML、CSS和JavaScript文件,以及后端的Java代码,用于与JBPM4服务器交互。开发者可以通过研究这些源码,...
jbpm designer (基于web的图形化流程设计工具)
"jbpm4web"是基于JBPM4开发的一个Web版本的示例项目,旨在帮助学习者更直观地理解和应用JBPM4的核心功能。这个Demo涵盖了业务流程的创建、发起、驳回和删除等关键操作,为初学者提供了一个实践平台。 1. **流程设计...
本指南由胡奇编写,旨在为开发者提供一个全面的参考,帮助他们快速学习和掌握使用jBPM4进行工作流应用的开发。 ### 标题知识点: - **工作流应用开发:** 工作流应用开发是指通过建立工作流模型,使用计算机程序来...
除了核心引擎,jbpm还提供了丰富的API和工具集,包括一个基于Web的流程设计器,使得非技术背景的业务人员也能参与到流程的设计中来。此外,jbpm还支持与其他Java企业级框架如Spring的集成,方便在现有企业应用中嵌入...
【jbpm3.12 web】是一个关于Jbpm3.12版本在Web环境中的应用和集成的专题。Jbpm(Java Business Process Management)是一个开源的工作流管理系统,主要用于处理业务流程自动化和管理工作流。这个压缩包文件可能包含...
综上所述,"我写的一个jbpm实例"是一个全面展示jbpm功能和SSH框架集成的应用案例,涵盖了流程设计、部署、执行、监控等多个方面。通过学习这个实例,读者可以加深对jbpm的理解,为实际项目开发提供参考。
JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上 JBPM的工程文件,大家可以到...
- **jbpm4web**:可能是一个基于jbpm4.3的工作流Web应用程序示例,它演示了如何在Web环境中使用jbpm,并可能包含了SSH框架的集成。 - **文件内容**:这个压缩包可能包含Web应用的源代码、配置文件、流程定义文件...
【jbpm_websale.rar】是一个包含JBPM(Business Process Management)网上销售示例的压缩包,这个实例对于初学者理解和掌握JBPM技术及其在Java Web应用中的实践非常有帮助。该实例结合了JSF(JavaServer Faces)前端...
这个“jbpm-console.rar”压缩包包含了一个基于Java的企业级OA(Office Automation)系统的源码,该系统利用jbpm来实现工作流功能。下面将详细解释其中涉及的关键知识点: 1. **Java企业OA系统**:OA系统是一种企业...
总结来说,jbpm4.0三个例子为Java开发者提供了一个很好的学习平台,通过实际操作可以深入理解jbpm4的工作原理和应用方式。如果你在MyEclipse 7.5或Eclipse 3.42环境中遇到问题,如库文件冲突,可以参考描述中的建议...
【基于WEB的JBPM实例】是一个综合性的项目,它展示了如何在Web环境中集成并使用JBPM(Java Business Process Management)框架。JBPM是一款开源的工作流和业务流程管理系统,旨在帮助企业设计、执行、监控和优化业务...
JBPM(java Business Process Management)是一个基于JavaEE的轻量级工作流管理系统,旨在支持企业级的流程定义、部署、执行和管理。作为JBoss的一个子项目,它与其他优秀开源项目如Seam、Drools和Hibernate紧密集成...