The identity module is optional, that's why the default sql script doesn't create the necessary (four) tables for this.
Basically you have two options:
- take the mysql.identity.script.sql file attached to this wiki: http://wiki.jboss.org/wiki/Wiki.jsp?page=JbpmOnTomcat
- use Hibernates hbm2ddl feature to auto-generate the tables as described here: http://wiki.jboss.org/wiki/Wiki.jsp?page=UseHibernateToCreateJbpmDB
It is not realy optional. Did you try removing it once? I could not get that to work and assignments do not work at all.... Some things have to be changed in that area (I still want to look into that once, but often spend to much time answering the forum instead of working on it)
you are right, this should be better documented. I will put it on my agenda to try it out and document it in a wiki. But for all interested already, this is what Tom has to say about this topic:
Two basic steps should be taken into account.
jBPM itself does not contain any capabilities for authentication. Therefor, the easiest way to make jBPM aware of the current user is to inject it with the method jbpmContext.setActorId(String); This should be done as one of the first methods inside a JbpmContext try-finally block.
Second thing to do is implement your own AssignmentHandler that will calculate the actorId (String) when tasks are to be assigned. Then reference this AssignmentHandler in the process definition.
Tom is partially correct... there is a hardcoded reference in the code (see the jira) which is because it cannot fully be configured as a service.