Got the source from GitHub. :p
https://github.com/droolsjbpm/jbpm/zipball/master
Also notice something. My NullPointerException was caused by
<bean id="taskService" class="org.jbpm.task.service.TaskService">
<property name="systemEventListener" ref="systemEventListener" />
</bean>
from drools-spring integration documentation. After looking at the souce code of
org.jbpm.task.serviceTaskService, the constructors are like:
TaskService(EntityManagerFactory emf, SystemEventListener systemEventListener)
and
TaskService(EntityManagerFactory emf, SystemEventListener systemEventListener, EscalatedDeadlineHandler escalationHandler)
So I change my spring setting to:
<bean id="taskService" class="org.jbpm.task.service.TaskService">
<constructor-arg name="emf" ref="htEmf" />
<constructor-arg name="systemEventListener" ref="systemEventListener" />
</bean>
and it works (for now).