I believe this is what the jbpm-human-task-war module is doing, although I haven't yet taken a close look at this.
Can you please tell me where is this module?
If you unpack the jBPM5.2 source distribution, the source code is organized into a set of what I would call "modules" (although perhaps that isn't the best term to use):
As you can see, included amongst these is jbpm-human-task and jbpm-human-task-war.
As previously stated, I haven't actually investigated the latter in detail, I am merely inferring its function from its name.
Hope this helps!
For these types of quesions it's sometimes best to take a look at the jbpm-installer build.xml and folllow the target execution. This should tell you pretty much where everything is.
Hope this helps.
This war doesn't come along with the default jbpm installer and am not sure whether its for any specific reasons.
Thanks I will build it from the source then.
Well, I decided to take a closer look at this WAR module. As previously stated, I had inferred its functionality from its name. On close inspection, I can't say that my previous inference was necessarily correct.
First, I have confirmed that, for the demo set-up, the Demo Task Server acts as the Human Task Service for both the Eclipse Tooling and the GWT Console demo.
However, given the name of this server, it is strongly implied that its use should be restricted to a limited situation such as the demo. So what is not clear is, what does jBoss recommend as an "enterprise class" implementation of the human task service?
So (as I said) I took a closer look at the WAR, what I see is there is one Servlet class that rejects GET and POST requests, when it initializes it executes more or less the same logic as the Demo Task Server. To wit, it kicks off a MinaTaskServer as a separate thread running in the same JVM as the servlet. So there are really just 2 differences I can discern between this and the demo server:
1.) It executes within a JEE container.
2.) It uses a JEE data source rather than a JDBC connection.
Of course I would consider point 2.) above as an absolute minimum requirement for an enterprise solution.
However, what I would think of as the "elephant in the living room" is that I don't think this is what the OP had in mind. My suspicion is that the OP was looking for an implementation of WS-HumanTask exposed via JAX-WS over SOAP (or similar words to that effect). I can find no evidence that anything like this is included in the jBPM 5.2 distribution.
Of course, some of us have been led to believe that it is something of a sin to create one's own threads within any JEE container. Perhaps that is less of a problem in jBoss than other platforms. A question (I honestly don't know the answer off the top of my head): Suppose I deploy this WAR to jBoss, then using jBoss' management console, I should be able to stop and restart the associated webapp. In that case, will the separate thread that was kicked off when the servlet starts up also terminate, or will it live on? If the foregoing is not a problem in jBoss, is it possibly still a problem with some other AS?
The other issue has to do with MINA and HornetQ. I had not been exposed to these technologies before evaluating jBPM. So the WS-HumanTask specification seems describe a command pattern, and it doesn't seem strictly necessary to expose this over SOAP or REST. So when using either the MINA or HornetQ implementation of the Human Task Service, I suppose it is reasonable to expect the developer not to care about protocol, you simply plug it in and it "just works" (unless it doesn't). Is that the case?
Thank you for your forebearance,