Raible's Wiki
Raible Designs AppFuseHomepage- Korean - Chinese - Italian - Japanese QuickStart Guide User Guide Tutorials Other ApplicationsStruts ResumeSecurity Example Struts Menu
Set your name in
UserPreferences
Referenced by
JSPWiki v2.2.33
Hide Menu |
Part I: Integrating jBPM into AppFuse - Integrate jBPM Support (via Spring-Modules) into AppFuse. About this tutorialThis is the 3rd tutorial of a 3 part series. The tutorial will cover enhancing defintions with users, tasks, schedule, persistence and injecting spring beans into action. Before proceeding further please review Part I / Part II.Table of Contents
[#1] Create JBPM Schema Ant TasksBefore we create the schema tasks lets create some packages which willl contain actions and config files.Create the following packages: The following files are from the Jbpm Starter Kit (see IntegratingJBPMIntoAppFuse for the download link) :- Copy these files to org.appfuse.jbpm.config: create.db.hibernate.properties does require modification . It has to point to the Jbpm datasource (same as the one defined in Part I). hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.url=jdbc:mysql://localhost/jbpm?useUnicode=true&characterEncoding=utf-8 hibernate.connection.username=root hibernate.connection.password= hibernate.show_sql=true hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
<!-- DAO -->
<path id="dao.compile.classpath">
...
<pathelement location="${commons-collections.jar}"/>
...
</path>
identity.db.xml contains users/group/participation data. It can be modified to your liking. More on this later when we delve into creating / assinging tasks in the workflow. And finally add these targets to your main AppFuse build.xml file:
<target name="build.processes" description="builds the example processes">
<copy todir="build/dao/gen/org/appfuse/jbpm/process/test">
<fileset dir="src/dao/org/appfuse/jbpm/process/test" />
</copy>
<zip destfile="build/dao/gen/org/appfuse/jbpm/process/test.process">
<fileset dir="build/dao/gen/org/appfuse/jbpm/process/test" />
</zip>
</target>
<target name="clean_jbpm" depends="build.processes, declare.jbpm.tasks" description="refreshes jbpm database">
<jbpmschema actions="drop"
cfg="src/dao/org/appfuse/jbpm/config/hibernate.cfg.xml"
properties="src/dao/org/appfuse/jbpm/config/create.db.hibernate.properties"/>
<jbpmschema actions="create"
cfg="src/dao/org/appfuse/jbpm/config/hibernate.cfg.xml"
properties="src/dao/org/appfuse/jbpm/config/create.db.hibernate.properties"/>
<deployprocess cfg="src/dao/org/appfuse/jbpm/config/hibernate.cfg.xml"
properties="src/dao/org/appfuse/jbpm/config/create.db.hibernate.properties">
<fileset dir="build/dao/gen/org/appfuse/jbpm/process" includes="*.process" />
</deployprocess>
<loadidentities file="src/dao/org/appfuse/jbpm/config/identity.db.xml"
cfg="src/dao/org/appfuse/jbpm/config/hibernate.cfg.xml"
properties="src/dao/org/appfuse/jbpm/config/create.db.hibernate.properties"/>
</target>
<target name="declare.jbpm.tasks">
<taskdef classpathref="dao.compile.classpath" resource="org/jbpm/ant/jbpm.ant.tasks.properties" format="properties"></taskdef>
</target>
build.processes is a convenience task to build process defnitions. Multiple definitions can be added. declare.jbpm.tasks does exactly what it names implies, loads task definitions used in clean_jbpm target. clean_jbpm refreshes the jbpm db. Which i find myself doing a lot of! It first drops the schema(you will lose all changes, so beware), then creates a new one, then deploys process defintions and finally loads workflow identities(users) into the jbpm database. Execute ant clean_jbpm and watch the magic happen!
|
||||||