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!
|