For updated content from Camunda, check out the Camunda Blog.

The so called “camunda toolkit for jbpm (tk4jbpm)” supports you in building Swing-GUI’s for JBoss jBPM 3.1.x applications. The project emerged from the need in some projects to integrate jBPM in a Java Swing client, which is not supported by jBPM itself.

In its current state, the toolkit is being used in two projects which are both running in production state. By contrast there are – unfortunately – lots of To-Do’s with respect to documentation & testing. No porting to jBPM 3.2.x or 4.x is done. This could be possible, but requires some time to do, which we cannot do without funding in a project.

Sme of the basic ideas are described in two article written for the german magazines JavaSPEKTRUM and JavaMagazin. The articles are available on the publiction’s section of our web page.


The camunda toolkit for jBPM contsists of the follwowing:

EJB SessionBean

The SessionBean can be used as central facade to access jBPM in an application server environment.


The Admin-Client is one of the main features of the toolkit. It covers the following use cases:

Some Screnshots:

Getting and using sources


You can get the sources via Subversion, all necessary details are on the sourceforge site:


The project is done with Maven2. Maven download the most of the dependencies for the project itself, but unfortunatly, not all libraries are available in a Maven2 repository, so we provide the other libs in the Subversion repository. You have to import these manually to Maven2. You find a file called “import-maven-libs.txt” in the root directory, there all necessary commands are listed, to import the camunda commons for example, you need the following command:

mvn install:install-file -DgroupId=com.camunda -DartifactId=commons /
    -Dversion=1.0 -Dpackaging=jar -Dfile=libs/camunda-commons.jar

After importing the libraries you can use the known Maven2 goals, for example:


To generate a working eclipse project just use the Maven2 Eclipse plugin:

mvn eclipse:eclipse

After that, you can import the project into your eclipse. If you don’t have it, you have to configure a variable M2_REPO which points to you local Maven2 repository.

See the “Guide to using Eclipse with Maven 2.x” for more details.


The releases of the toolkit can be found on the sourceforge project site: download files on sourceforge.


Just contact me via email:



How to use

For more information please read the gui tutotial too.

EJB 3 stuff

The AdminBean can easily be deployed in an EJB3 application server (like JBoss 4.0.4 GA). The only dependency is that the JbpmConfiguration is bound to JNDI with the name “java:/jbpm/JbpmConfiguration“.

In JBoss this can be done within the jboss-service.xml:

<?xml version="1.0" encoding="UTF-8"?> 						

  <mbean code="org.jbpm.jmx.JbpmService"
         description="Default jBPM Service">
      <attribute name="JndiName">java:/jbpm/JbpmConfiguration</attribute>

After you have done this you just have to copy the ejb3 archive to your JBoss deploy directory, that’s all.

If you want to use the Scheduler-MBean, which executes due timers, you can put the following MBean configuration in the same jboss-scheduler.xml:

   <!-- ==================================================================== -->
   <!-- Scheduler Service                                                    -->
   <!-- ==================================================================== -->

   <mbean code="org.jboss.varia.scheduler.Scheduler" name=":service=JbpmExecuteTimerScheduler">
      <attribute name="SchedulableClass"></attribute>
      <attribute name="SchedulableArgumentTypes">java.lang.String,java.lang.String</attribute>
      <attribute name="SchedulableArguments">@jbpm.scheduler.user@, @jbpm.scheduler.password@</attribute>
      <attribute name="InitialStartDate">0</attribute>
      <attribute name="SchedulePeriod">@jbpm.scheduler.period@</attribute>
      <attribute name="InitialRepetitions">@jbpm.scheduler.initialRepetitions@</attribute>
      <attribute name="StartAtStartup">@jbpm.scheduler.startAtStartup@</attribute>

      <!-- jbpm must be deployed before... -->

Using this scheduler is not the onl yoption to get schedulingin a ejb 3 environment to work. Other options are the ejb 3 timer service or some other scheduling framework.

Admin Client

The Admin-Client can also be easily included in a Swing client. The following code initializes the AdminServices to use the deployed bean on the application server configured in your local

CommandService commandService = (CommandService) new InitialContext().lookup("/jmgui/CommandServiceBean/remote");
Tk4jbpmConfiguration.initTk4jbpm(commandService, "/tk4jbpm.xml", false);

User Client Framework

please read the gui tutorial and the JavaMagazin article (available on the publications site).