# Installation

This guide will assist you in installing and running a demo setup of the various components of the jBPM project. If you have any feedback on how to improve this guide, if you encounter problems, or if you want to help out, do not hesitate to contact the jBPM community as described in the "What to do if I encounter problems or have questions?" section.

## Prerequisites

This script assumes you have Java JDK 1.5+ (set as JAVA_HOME), and Ant 1.7+ installed.
If you don't, use the following links to download and install them:
Java: http://java.sun.com/javase/downloads/index.jsp
Ant: http://ant.apache.org/bindownload.cgi

## Download the installer

First of all, you need to download the installer:
jbpm-{version}-installer.zip

You can for example find the latest release here or the latest snapshot release here.

## Demo setup

The easiest way to get started is to simply run the installation script to install the demo setup. Simply go into the install folder and run:
ant install.demo
This will:

- Download JBoss AS
- Download Eclipse
- Install Drools Guvnor into JBoss AS
- Install jBPM Designer into JBoss AS
- Install the jBPM Console into JBoss AS
- Install the jBPM Eclipse plugin
- Install the Drools Eclipse plugin

This could take a while (REALLY, not kidding, we are downloading an application server and Eclipse installation). The script however always shows which file it is downloading (you could for example check whether it is still downloading by checking the whether the size of the file in question in the jbpm-installer/lib folder is still increasing). If you want to avoid downloading specific components (because you will not be using them or you already have them installed somewhere else), check below for running only specific parts of the demo or directing the installer to an already installed component. You can also run ant install.demo.noeclipse if you do not wish to download Eclipse
(Download of Eclipse BIRT for reporting is turned on by default. If you do not wish to use the reporting engine, you can set the value of the jBPM.birt.download property to false in the build.properties file)
Once the demo setup has finished, you can start playing with the various components by starting the demo setup:
ant start.demo
This will:

- Start the H2 database
- Start the JBoss AS
- Start Eclipse
- Start the jBPM Human Task Service

Alternatively you can run ant start.demo.noeclipse if you do not wish to start Eclipse.
Once everything is started, you can start playing with the Eclipse tooling, Guvnor and jBPM console, as explained in the next three sections.

### Using Eclipse Tooling

The following screencast gives an overview of how to run a simple demo process in Eclipse. It shows you:

- How to import an existing example project into your workspace, containing
  - a sample BPMN2 process for requesting a performance evaluation
  - a sample Java class to start the process
- How to start the process
- How to debug a process using the audit view or runtime debugging

Once Eclipse has opened, simple import (using "File -> Import ..." and then under the General category, select "Existing Projects into Workspace") the existing sample project (in the jbpm-installer/sample/evaluation directory). This should add the sample project, including a simple BPMN2 process and a Java file to start the process. You can open the BPMN2 process by double-clicking it. To execute the process, right-click on ProcessTest.java in the com.sample package (under "src/main/java") and select "Run As - Java Application". In this case, it will simply start the process, which will result in the creation of a new user task for the user "krisv" in the human task service, after which the process will wait for its execution. We will show you later how you could complete human tasks like this using a human task client like the jbpm-console.
You could also create a new project using the jBPM project wizard. This sample project contains a simple HelloWorld BPMN2 process and an associated Java file to start the process. Simple select "File - New ... - Project ..." and under the "jBPM" category, select "jBPM project" and click "Next". Give the project a name and click "Finish". You should see a new project containing a "sample.bpmn" process and a "com.sample.ProcessTest" Java class. You can open the BPMN2 process by double-clicking it. To execute the process, right-click on ProcessTest.java and select "Run As - Java Application". You should see a "Hello World" statement in the output console.

### Using web management consoles

Open up the process management console:
http://localhost:8080/jbpm-console
Log in, using "krisv" / "krisv" as username / password.

The following screencast gives an overview of how to manage your process instances. It shows you:

- How to start a new process
- How to look up the current status of a running process instance
- How to look up your tasks
- How to complete a task
- How to generate reports to monitor your process execution

To manage your process instances, click on the "Processes" tab at the left an select "Process Overview". After a slight delay (if you are using the application for the first time, due to session initalization etc.), the "Process" list should show all the known processes. The jbpm-console in the demo setup currently loads all the process in the "src/main/resources" folder of the evaluation sample in "jbpm-installer/sample/evaluation". If you click the process, it will show you all current running instances. Since there are no running instances at this point, the "Instance" table will remain empty. If you have Guvnor running, and have packages in Guvnor that include processes, jbpm-console will include those as well.
You can start a new process instance by click on the "Start" button. After confirming that you want to start a new execution of this process, you will see a process form where you need to fill in the necessary information to start the process. In this case, you need to fill in your username "krisv", after which you can complete the form and close the window. A new instance should show up in the "Instance" table. If you click the process instance, you can check its details below and the diagram and instance data by click on the "Diagram" and "Instance Data" buttons respectively. The process instance that you just started is first requiring a self-evaluation of the user and is waiting until the user has completed this task.
To see the tasks that have been assigned to you, choose the "Tasks" tab on the left and select "Personal Tasks" (you may need to click refresh to update your task view). The personal tasks table should show a "Performance Evaluation" task for you. You can complete this task by selecting it and clicking the "View" button. This will open the task form for performance evaluations. You can fill in the necessary data and then complete the form and close the window. After completing the task, you could check the "Process Overview" once more to check the progress of your process instance. You should be able to see that the process is now waiting for your HR manager and project manager to also perform an evaluation. You could log in as "john" / "john" and "mary" / "mary" to complete these tasks.
After starting and/or completing a few process instances and human tasks, you can generate a report of what happened so far. Under "Reporting", select "Report Templates". By default, the console has two report templates, one for generating a generic overview for all processes and one for inspecting once specific process definition. If you select the latter, make sure to enter "com.sample.evaluation" as the process definition id to see the activity related to the evaluation process. Click the "Create Report" button to generate a realtime report of the current status. Notice that the initialization of the reports might take a moment, especially the first time you use the application.

### Using Guvnor repository

The Guvnor repository can be used as a process repository to store business processes. It also offers a web-based interface to manage your processes. This includes a web-based editor for viewing and editing processes.
Open up Drools Guvnor:
http://localhost:8080/drools-guvnor
Log in, using any non-empty username / password (we disabled authentication for demo purposes).

The following screencast gives an overview of how to manage your repository. It shows you:

- How to import an existing process (in this case the evaluation process) from eclipse into guvnor
- How to open up the evaluation process in the web editor
- How to build a package so it can be used for creating a session

Once you're done playing: ant stop.demo

and simply close all the rest.

## What to do if I encounter problems or have questions?

You can always contact the jBPM community for assistance.
Email: jbpm-dev@jboss.org
IRC: #jbpm at irc.codehaus.org
jBPM User Forum
Some common issues are explained below.
Q: What if the installer complains it cannot download component X?
A: Are you connected to the internet? Do you have a firewall turned on? Do you require a proxy? It might be possible that one of the locations we're downloading the components from is temporarly offline. Try downloading the components manually (possibly from alternate locations) and put them in the jbpm-installer/lib folder.
Q: What if the installer complains it cannot extract / unzip a certain jar/war/zip?
A: If your download failed while downloading a component, it is possible that the installer is trying to use an incomplete file. Try deleting the component in question from the jbpm-installer/lib folder and reinstall, so it will be downloaded again.
Q: What if I have been changing my installation (and it no longer works) and I want to start over again with a clean installation?
A: You can use ant clean.demo to remove all the installed components, so you end up with a fresh installation again.
Q: How do I prevent my Guvnor repository to be deleted after calling ant clean.demo or ant clean.demo.noeclipse?
A: You can set the value of jboss.clean.repository in build.properties to false.
Q: Where should I put my dependencies such as jar files including workitem implementations and/or my fact model jars?
A: You should place them in the dependencies directory and run ant clean.demo, then run ant install.demo or ant install.demo.noeclipse.
Q: I sometimes see exceptions when trying to stop or restart certain services, what should I do?
A: If you see errors during shutdown, are you sure the services were still running? If you see exceptions during restart, are you sure the service you started earlier was successfully shutdown? Maybe try killing the services manually if necessary.
Q: Something seems to be going wrong when running Eclipse but I have no idea what. What can I do?
A: Always check the consoles for output like error messages or stack traces. You can also check the Eclipse Error Log for exceptions. Try adding an audit logger to your session to figure out what's happening at runtime, or try debugging your application.
Q: Something seems to be going wrong when running the a web-based application like the jbpm-console, Guvnor and the Designer. What can I do?
A: You can check the server log for possible exceptions in the jbpm-installer/jboss-4.2.3.GA/server/default/log directory.
For all other questions, try contacting the jBPM community as described above.

## Manually installing the different components

If you don't want to use the demo setup, you can also use the individual ant targets, as described below.

### Getting JBoss AS

You need to download and install JBoss AS version 7.0.2.Final. If you don't have it installed yet, go into the install folder and run the installation script:
ant install.jboss
This will download and install the server in install/jboss-as-7.0.2.Final folder. If you don't want it to download the zip file, you can put the jboss-as-7.0.2.Final.zip in the install/lib folder.

If you already have it installed somewhere else, in install/build.properties, change the jboss.home property to the location of your JBoss AS installation.

### Getting Eclipse

You need to download and install Eclipse 3.6.1 If you don't have it installed yet, run installation script:
ant install.eclipse
This will download and install eclipse in install/eclipse folder. If you don't want it to download the eclipse file, you can put the file in the install/lib folder:
eclipse-SDK-3.6.1-linux-gtk.tar.gz (linux),
eclipse-SDK-3.6.1-win32.zip (windows), or
eclipse-SDK-3.6.1-macosx-carbon.tar.gz (mac).
If you don't want it to download the eclipse GEF file, you can put the GEF-runtime-3.6.1.zip file in the install/lib folder.

If you already have it installed somewhere else, in install/build.properties, change the eclipse.home property to the location of your Eclipse installation.

### Installing

In the install dir, run installation script:
ant install.guvnor.into.jboss
ant install.designer.into.jboss
ant install.jBPM-gwt-console.into.jboss
ant install.jBPM-eclipse.into.eclipse
ant install.drools-eclipse.into.eclipse

### Starting

Startup database:
ant start.h2

Startup JBoss AS:
ant start.jboss

Startup task service:
ant start.human.task

Startup eclipse:
ant start.eclipse

### Stopping

Once you're done playing
stop database:
ant stop.h2

stop JBoss AS:
ant stop.jboss

and simply close all the rest. You can also clean up your installation using:
ant clean.jboss ant clean.eclipse