Introduction To BPMN
View more presentations from jimarlow.
125 readable slides that give good overview and even some deeper insights into BPMN.

As the focus of this book was BPM in government, the publisher has sent a copy to the President of the United States with a personal cover letter.Awsome !
task completes, that the server is up and running and ready to serve requests. We've done this in ant for a long time with an ant task and a Launcher. The StartJBossTask will create a Launcher thread, starts it and joins for it to complete.
public class StartJBossTask extends Task {
private static final String END_MESSAGE = " Started in ";
public void execute() throws BuildException {
try {
// build the command string
String command = ...build the command string...;
// launch the command and wait till the END_MESSAGE appears
Thread launcher = new Launcher(this, command, END_MESSAGE, null);
launcher.start();
launcher.join();
} catch (Exception e) {
e.printStackTrace();
}
}
...
The Launcher is a thread that spawns a process and listens to its InputStream till a certain message is displayed on the console by the spawned process.public class Launcher extends Thread {
Task task;
String command;
String endMsg;
File dir;
public Launcher(Task task, String command, String endMsg, String dir) {
this.task = task;
this.command = command;
this.endMsg = endMsg;
this.dir = (dir!=null ? new File(dir) : null);
}
public void run() {
try {
task.log("starting '" + command + "'...");
Process process = new ProcessBuilder(command)
.directory(dir)
.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
while (line.indexOf(endMsg) == -1) {
line = reader.readLine();
task.log(line);
}
task.log("'" + command + "' started.");
} catch (IOException e) {
throw new BuildException("couldn't start '" + command + "'", e);
}
}
}Using CATALINA_BASE: C:\Software\apache-tomcat-6.0.20Can you spot what is wrong ? Well... it took quite some time for me and that is why I'm sharing it here.
Using CATALINA_HOME: C:\Software\apache-tomcat-6.0.20
Using CATALINA_TMPDIR: C:\Software\apache-tomcat-6.0.20\temp
Using JRE_HOME: C:\Software\jdk1.5.0_11
Process process = new ProcessBuilder(command)So now we have Tomcat up and running, we couldn't leverage the same remote EJB configuration as we did with JBoss. So for Tomcat CI, we leverage cactus and run the tests in the webapp.
.redirectErrorStream(true)
.directory(dir)
.start();
The book also includes some interesting jBPM integrations like Service-enabling jBPM using Apache Tuscany and Integrating Esper with jBPM. Go check it out.Part III Business process management
- Chapter 5 Introducing jBPM
- BPM: the “secret sauce” of SOA
- History and overview of JBoss jBPM
- Understanding nodes
- Using transitions
- Extending using actions
- Using events for capturing lifecycle changes in a process
- Managing context using variables
- Summary
- Chapter 6 jBPM tasks
- What are tasks?
- Task user management
- Using timers
- Task controllers
- Developing with the task API
- Summary
- Chapter 7 Advanced jBPM capabilities
- Important enterprise features of jBPM
- Integration with SCA/SDO
- Summary
...and that in a holiday period. Nice. Keep clicking !