JBoss.orgCommunity Documentation
jBPM Developers Guide
1. Introduction
1.1. Target audience
1.2. Overview
1.3. Sources and WIKI
1.4. Maven repository
1.5. Library dependencies
2. Incubation
2.1. timer
2.1.1. Duedate expressions
2.1.2. Business calendar
2.1.3. Timer transition
2.1.4. Timer event
2.1.5. Timer business time
2.1.6. Timer repeat
2.2. group
2.2.1. group simple
2.2.2. group timer
2.2.3. group multiple entries
2.2.4. group concurrency
2.2.5. group secret
2.3. Creating groups
2.4. Task outcomes
3. Migration from jBPM 3
3.1. Goals of jBPM 4
3.2. Known limitations
3.3. Process conversion tool
3.3.1. Overview
3.3.2. Arguments
3.3.3. Usage examples
3.3.4. Advanced
3.4. Translations and changes
4. The Process Virtual Machine
5. Architecture
5.1. APIs
5.2. Activity API
5.3. Event listener API
5.4. Client API
5.5. Environment
5.6. Commands
5.7. Services
6. Implementing basic activities
6.1. ActivityBehaviour
6.2. ActivityBehaviour example
6.3. ExternalActivityBehaviour
6.4. ExternalActivity example
6.5. Basic process execution
6.6. Events
6.7. Event propagation
7. Process anatomy
8. Advanced graph execution
8.1. Loops
8.2. Implicit proceed behaviour
8.3. Functional activities
8.4. Execution and threads
8.5. Process concurrency
8.6. Exception handlers
8.7. Process modifications
8.8. Locking and execution state
9. Configuration
9.1. Configuration basics
9.2. Customizing the identity component
10. Persistence
11. JobExecutor
11.1. Overview
11.2. Configuration
12. Advanced Mail Support
12.1. Producers
12.1.1. Default Producer
12.2. Templates
12.3. Servers
12.3.1. Multiple Servers
12.4. Extension Points
12.4.1. Custom Producers
13. Software logging
13.1. Configuration
13.2. Categories
13.3. JDK logging
13.4. Debugging persistence
14. History
15. JBoss Integration
15.1. Packaging process archives
15.2. Deploying processes archives to a JBoss instance
15.3. Process deployments and versioning
15.4. ProcessEngine and J2EE/JEE programming models
16. Spring Integration
16.1. Overview
16.2. Configuration
16.3. Usage
16.4. Testing
Chapter 1. Introduction
1.1. Target audience
1.2. Overview
1.3. Sources and WIKI
1.4. Maven repository
1.5. Library dependencies
1.1. Target audience
This developers guide is intended for experienced developers that want to get the full flexibility out of jBPM. The features described in this developers guide will not be supported. Use at your own risk.
1.2. Overview
Chapter 2, Incubation explains the features that are intended to move to the userguide eventually and become part of the supported offering. But incubation features are not yet considered stable.
Chapter 4, The Process Virtual Machine through Chapter 8, Advanced graph execution explain the process virtual machine and how activity and event listener can be build for it.
Chapter 9, Configuration through Chapter 15, JBoss Integration explain internal developer topics.
1.3. Sources and WIKI
The source code for jBPM can be found in our SVN repository:
https://anonsvn.jboss.org/repos/jbpm/jbpm4/
A description of how to build the sources is available in the wiki:
http://www.jboss.org/community/docs/DOC-12867
The jBPM WIKI is located here:
http://www.jboss.org/community/docs/DOC-11184
1.4. Maven repository
You can use jBPM with the libraries that ship in the distribution. The jbpm.jar in the distribution contains the classes of many jBPM modules: jbpm-api, jbpm-log, jbpm-test-base, jbpm-pvm, jbpm-jpdl and jbpm-enterprise. So the single jbpm.jar in the distribution does not allow to make a compile time distinction between the API classes and the implementation classes. If you prefer to build your project with only a dependency on jBPM's API, then our repository can be used directly. It is located here: http://repository.jboss.com/maven2/org/jbpm/jbpm4/
1.5. Library dependencies
If you want to install/deploy jBPM into your own application, this is still as easy as it was before: Just put the right libs in your application classpath. We didn't yet clean up the dependency description in the maven pom files. So we can't yet give the exact minimal set of libraries from the lib directory that you need to include in your application. The versions of the libraties that are in the lib directory are the ones that we tested with. So we recommend you to use those very versions of the libs. To help you on your way, here's the current maven dependency list for jPDL:
[INFO] ------------------------------------------------------------------------
[INFO] Building jBPM 4 - jPDL
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree]
[INFO] org.jbpm.jbpm4:jbpm-jpdl:jar:4.0
[INFO] +- org.jbpm.jbpm4:jbpm-pvm:jar:4.0:compile
[INFO] | +- org.jbpm.jbpm4:jbpm-api:jar:4.0:compile
[INFO] | | \- jboss:jboss-j2ee:jar:4.2.2.GA:compile
[INFO] | +- org.jbpm.jbpm4:jbpm-log:jar:4.0:compile
[INFO] | +- org.jbpm.jbpm4:jbpm-test-base:jar:4.0:compile
[INFO] | | \- org.hibernate:hibernate-core:jar:3.3.1.GA:compile
[INFO] | | +- antlr:antlr:jar:2.7.6:compile
[INFO] | | \- commons-collections:commons-collections:jar:3.1:compile
[INFO] | +- org.apache.ant:ant:jar:1.7.0:compile
[INFO] | | \- org.apache.ant:ant-launcher:jar:1.7.0:compile
[INFO] | +- log4j:log4j:jar:1.2.14:compile
[INFO] | +- juel:juel:jar:2.1.0:compile
[INFO] | +- juel:juel-impl:jar:2.1.0:compile
[INFO] | +- juel:juel-engine:jar:2.1.0:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.5.2:compile
[INFO] | +- org.slf4j:slf4j-jdk14:jar:1.5.2:compile
[INFO] | +- org.jboss.identity.idm:idm-core:jar:1.0.0.Beta1:compile
[INFO] | | +- org.jboss.identity.idm:idm-common:jar:1.0.0.Beta1:compile
[INFO] | | +- org.jboss.identity.idm:idm-api:jar:1.0.0.Beta1:compile
[INFO] | | +- org.jboss.identity.idm:idm-spi:jar:1.0.0.Beta1:compile
[INFO] | | \- com.sun.xml.bind:jaxb-impl:jar:2.1.8:compile
[INFO] | | \- javax.xml.bind:jaxb-api:jar:2.1:compile
[INFO] | | \- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] | +- org.jboss.identity.idm:idm-hibernate:jar:1.0.0.Beta1:compile
[INFO] | | +- javassist:javassist:jar:3.4.GA:compile
[INFO] | | +- org.hibernate:hibernate-cglib-repack:jar:2.1_3:compile
[INFO] | | \- org.slf4j:slf4j-log4j12:jar:1.5.2:compile
[INFO] | +- org.hibernate:hibernate-entitymanager:jar:3.4.0.GA:compile
[INFO] | | +- org.hibernate:ejb3-persistence:jar:1.0.2.GA:compile
[INFO] | | +- org.hibernate:hibernate-commons-annotations:jar:3.1.0.GA:compile
[INFO] | | +- org.hibernate:hibernate-annotations:jar:3.4.0.GA:compile
[INFO] | | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | | \- xml-apis:xml-apis:jar:1.0.b2:compile
[INFO] | | \- javax.transaction:jta:jar:1.1:compile
[INFO] | +- org.livetribe:livetribe-jsr223:jar:2.0.5:compile
[INFO] | \- javax.mail:mail:jar:1.4.1:compile
[INFO] | \- javax.activation:activation:jar:1.1:compile
[INFO] +- junit:junit:jar:3.8.1:compile
[INFO] \- hsqldb:hsqldb:jar:1.8.0.7:test
[INFO] ------------------------------------------------------------------------
The jboss idm dependencies in sections org.jboss.identity.idm:* can be ignored, including the org.hibernate:hibernate-entitymanager
This list should already get you started to select a small subset of libs instead of including all the libs from the ${jbpm.home}/lib directory. In one of the next releases, we'll cl
- 1
- 2
- 3
前往页