In
this tutorial we are going to see how to set up jBPM 6.5.0.Final
development environment locally. jBPM team did a excellent job by
providing a complete jBPM 6.5.0.Final environment for you to just
download and extract the jBPM
6.5.0.Final-installer-full.zip bundle
and run the ant script, ant will take care of all the installation
task for you...sounds interesting, please checkout jBPM
document
for further details. I
highly recommend you to use the automated (ant script) jbpm-installer bundle
provided by jBPM team.
For others those who prefer the manual installation, then proceed with the rest of the document.
Please download the following software in your local machine.....
1.2 Setting java class path in RHEL 7 / CentOS 7.
In the terminal window, type the below and enter, make sure you enter the right java installed location, it will installed in the /usr/lib/jvm folder.
For others those who prefer the manual installation, then proceed with the rest of the document.
Please download the following software in your local machine.....
- jBPM Workbench kie-wb
- jBPM dashboard
- jBPM kie-server
- GEF-SDK update site
kie-wb
is a web based workbench or console, dashboard is for building
business dashboards and reports and kie-server is the runtime
execution server. All of these three components are web applications
(war), it can be deploy into any java enabled server like IBM
WebSphere, Oracle WebLogic, WildFly, Red Hat JBoss EAP and Apache Tomcat
etc.
jBPM-6.5.0.Final on WildFly-10.1.0.Final integrated with Eclipse Neon development Environment
You
have two options for developer process development environment, you
can use kie workbench(kie-wb) or IDE like eclipse or JBoss developer
studio for process development, also you can combine these two
options (above
diagram)
for your convenience.
jBPM
uses the JPA 2 to allow users to config whatever the datasource you
want to use to persist runtime data. Out of the box jBPM uses h2 java
SQL database for persisting runtime data. In this demo we use MySQL
database for jBPM.
In
my environment RHEL 7 is my operating system, you can use CentOS 7
alternatively if you don't have RHEL 7 installed.
1. Install JDK 8 and set CLASSPATH environment variable
1.1 If you don't have java installed in your system, In RHEL7/CentOS7, open a terminal and please type the following and enter,1.2 Setting java class path in RHEL 7 / CentOS 7.
In the terminal window, type the below and enter, make sure you enter the right java installed location, it will installed in the /usr/lib/jvm folder.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-0.b14.el7_2.x86_64
export PATH=$PATH:$JAVA_HOME/bin
2. Install maven and and set CLASSPATH
2.1 To install maven, type the following command in terminal and enter
[root@localhost ~]# wget http://mirrors.gigenet.com/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.zip
2.2
Unzip into your development home folder(eg, /opt)
root@localhost ~]# unzip apache-maven-3.3.9-bin.zip -C /opt/
2.3 Setting maven in CLASSPATH, please type the following command in your terminal window and enter...
[psingaram@localhost apache-ant-1.9.7]$ export M2_HOME=/opt/apache-maven-3.3.9
[psingaram@localhost apache-ant-1.9.7]$ export M2=$M2_HOME/bin
[root@localhost opt]# PATH=$M2:$PATH
3. Install Eclipse Neon and install JBoss Integration Tools/plug-ins
3.1 To download eclipse neon, please type the following command and enter, this will download the eclipse neon into your local machine...
[root@localhost
utils]# wget
http://ftp.jaist.ac.jp/pub/eclipse/technology/epp/downloads/release/neon/3/eclipse-jee-neon-3-linux-gtk-x86_64.tar.gz
3.2
Update eclipse.ini for java home, add the following line into your
eclipse.ini file
-vm
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-0.b14.el7_2.x86_64/bin/java
3.3
Update eclipse neon with required development tools and plus-ins...
3.3.1
Install JBoss Tools 4.4.2.Final plugins
http://download.jboss.org/jbosstools/neon/stable/updates/
3.3.2
JBoss Tools Integration Stack 4.4.1.Final
http://download.jboss.org/jbosstools/neon/stable/updates/integration-stack/
3.3.3
Update bpmn2 modeler site
http://download.eclipse.org/bpmn2-modeler/updates/neon/1.3.2/
3.3.4
Update gef-sdk
https://hudson.eclipse.org/gef/job/gef4-maintenance/lastSuccessfulBuild/ /artifact/update-site/
3.3.5
Update drools-jbpm plugins…
http://downloads.jboss.org/jbpm/release/6.5.0.Final/updatesite/
4.0 Install MySQL and configuration
4.1
To download and install mysql in your local machine, please type the
following commands and type one by one in sequence...
- wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
- yum install mysql-community-release-el7-5.noarch.rpm
- yum install mysql-server
- mysql --version
4.2
Update mysql config file….
[root@localhost
/]# vi /etc/my.cnf
[mysqld]
lower_case_table_names=1
character-set-server=utf8
collation-server=utf8_general_c
4.3
Start mysql, type the following command and enter..
systemctl start mysqld
4.4
To check your mysql server status, please type the following and
enter.
systemctl
status mysqld
4.5
Login to your newly installed mysql server using the following
command and follow the commands for jbpm schema creation.
mysql
-u root -p
mysql>
CREATE DATABASE jbpm;
mysql>
use jbpm;
mysql>
source
/home/psingaram/Downloads/jbpm-installer/db/ddl-scripts/mysql5/mysql5-jbpm-schema.sql
mysql>
source
/home/psingaram/Downloads/jbpm-installer/db/ddl-scripts/mysql5/quartz_tables_mysql.sql
the above listed sql fils will be available from the
following link...
https://github.com/kiegroup/jbpm/tree/master/jbpm-installer/src/main/resources/db/ddl-scripts/mysql5
5.0 Install WildFly 10.1.0.Final Application Server
5.1
Type the following command in your terminal and type the following
command and enter
[root@localhost
jbpm]# wget
http://download.jboss.org/wildfly/10.1.0.Final/wildfly-10.1.0.Final.zip
5.3
Update hibernate.4.3.11 module
5.4
Update mysql module in WildFly server and configure mysql datasource
- Navigate to your installed WildFly configuration folder..
- Open the standalone-full.xml and locate the datasources subsystem (<subsystem xmlns="urn:jboss:domain:datasources:1.1">) and add the following subsystem for mysql
<subsystem
xmlns="urn:jboss:domain:datasources:1.1">
<datasources>
<datasource jndi-name="java:jboss/datasources/jbpmDS" pool-name="jbpmDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://localhost:3306/jbpm</connection-url>
<driver>mysql</driver>
<security>
<user-name>{username}</user-name>
<password>{password}</password>
</security>
</datasource>
<drivers>
<driver name="mysql" module="com.mysqldatabase.mysql">
<driver-class>com.mysql.jdbc.Driver</driver-class>
<datasources>
<datasource jndi-name="java:jboss/datasources/jbpmDS" pool-name="jbpmDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://localhost:3306/jbpm</connection-url>
<driver>mysql</driver>
<security>
<user-name>{username}</user-name>
<password>{password}</password>
</security>
</datasource>
<drivers>
<driver name="mysql" module="com.mysqldatabase.mysql">
<driver-class>com.mysql.jdbc.Driver</driver-class>
<xa-datasource-class>
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
</driver>
</drivers>
</datasources>
</subsystem>
- Navigate to SERVER_HOME/modules/system/layers/base/com
- Create folder mysqldatabase/mysql/main (eg,SERVER_HOME/modules/system/layers/base/com/mysqldatabase/mysql/main)
- Create module.xml file with following data
- Download mysql jdbc driver (eg,mysql-connector-java-5.1.38-bin.jar) and put into this ((SERVER_HOME/modules/system/layers/base/com/mysqldatabase/mysql/main)) location.
6.0 Install KIE Workbench (kie-wb) on WildFly 10.1.0.Final Application Server and configuration
6.1
Download jBPM workbench (kie-wb) and rename to downloaded war file
into kie-wb.war
[root@localhost
jbpm]# wget
https://repository.jboss.org/nexus/content/groups/public-jboss/org/kie/kie-wb-distribution-wars/6.5.0.Final/kie-wb-distribution-wars-6.5.0.Final-wildfly10.war
6.1 Unpack the war file in a temp folder,
navigate to SERVER_HOME/standalone/deployments/business-central.war/WEB-INF
6.2
Open
jboss-deployment-structure.xml
and
add the following line
6.4
Open persistence.xml, update the datasource name, make sure
this is the same name you created in the standalone-full.xml datasource
name
<jta-data-source>java:jboss/datasources/jbpmDS</jta-data-source>
6.5
Replace the default h2 dialect information with the following code
<properties>
<property
name="hibernate.dialect"
value="org.hibernate.dialect.MySQLDialect"/>
...
...
6.7 Now re-create the war file (repack) from the unpacked , modified files,
jar -cvf kie-wb *
6.8 Navigate to Wildfly 10.1.0.Final/standalone/deployment folder,
6.9 Copy the created kie-wb.war and paste into deployment folder
7.1 Move to SERVER_HOME/standalone/deployments/dashbuilder.war/WEB-INF
jar -cvf kie-wb *
6.9 Copy the created kie-wb.war and paste into deployment folder
7.0 Install dashboard on WildFly 10.1.0.Final Application Server and configuration
7.1 Download
dashboard
[root@localhost
jbpm]# wget
https://repository.jboss.org/nexus/content/groups/public-jboss/org/jbpm/dashboard/jbpm-dashboard-distributions/6.5.0.Final/jbpm-dashboard-distributions-6.5.0.Final-wildfly10.war
7.2 Rename
the downloaded war file into dashboard.war7.1 Move to SERVER_HOME/standalone/deployments/dashbuilder.war/WEB-INF
6.7
Open jboss-deployment-structure.xml and add the the following
code..
<deployment>
<dependencies>
<module
name="com.mysqldatabase.mysql" export="true"
services="import" meta-inf="import"/>
….
…..
</dependencies>
<deployment>
6.8
Open jboss-web.xml and update the jndi name, make sure this is the
same name you created in the standalone.xml datasource name in
step6 ...
<jndi-name>java:jboss/datasources/jbpmDS</jndi-name>
6.9
Make sure you save those above mentioned files as you modified.
6.10 Now, navigate to your Server_Home/standalone.configuration folder and open standalone-full.xml file and update the system properties as follows..what we are trying to do here is , jBPM by default creates the those git and kie repo in server bin folder, but maintenance purpose we are moving out of the server and store in in user home.
<system-properties>
<property
name="org.kie.demo" value="${org.kie.demo:false}"/>
<property
name="org.kie.example" value="${org.kie.example:false}"/>
<property
name="org.uberfire.nio.git.dir" value="/home/psin/jbpmrepo"
/>
<property
name="org.uberfire.metadata.index.dir"
value="/home/username1/jbpmrepo" />
<property
name="org.guvnor.m2repo.dir" value="/home/username/jbpmrepo"
/>
</system-properties>
6.11 At this point your are done with all the settings, this is the time
to test your installation
6.12 Navigate to SERVER_HOME/bin/ folder, type the following command to start the WildFly sever in standalone-full mode
SERVER_HOME/bin/./standalone.sh
– c standalone-full.xml
6.13 Open your browser and enter the following url..
7.0 Integrating eclipse neon with jBPM Workbench (kie-wb)
Log in to kie workbench (kie-wb) and create a sample jbpm project, build and deploy.Open your eclipse neon IDE, clone the git repository from kie-wb workbench. From the cloned git repo, import the git project into java workspace, since git is version control system, you can able to check-out, edit save and check-in into git. Those modification will be updated in kie-wb. Modification done in kie-wb side will be available in eclipse vice versa.
Please watch the below youtube video for detailed instructions....
https://youtu.be/qimrdgROMQQ
---thanks for reading---