As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
public class CustomParse implements BpmnParseHandler { @Override public Collection<Class<? extends BaseElement>> getHandledTypes() { List<Class<? extends BaseElement>> elements = new ArrayList<>(); elements.add(UserTask.class); return elements; } @Override public void parse(BpmnParse bpmnParse, BaseElement element) { String taskDefinitionKey = element.getId(); // returns the correct task key Map<String, TaskDefinition> tarefas = ((ProcessDefinitionEntity) bpmnParse.getCurrentScope().getProcessDefinition()).getTaskDefinitions(); for(Entry<String, TaskDefinition> e : tarefas.entrySet()) { System.out.println("****************** " + e.getKey() + " :: " + e.getValue()); } TaskDefinition taskDefinition = ((ProcessDefinitionEntity) bpmnParse.getCurrentScope().getProcessDefinition()).getTaskDefinitions().get( taskDefinitionKey); if (taskDefinition != null) { // taskDefinition is always null at this point taskDefinition.addTaskListener(TaskListener.EVENTNAME_CREATE, new CustomTaskListener()); } } }
<br>public class MyParseHandler implements BpmnParseHandler {<br> @Inject<br> private MyListener listener; // What should I put here to "manually inject" an instance of MyListener?<br> <br> @Override<br> public Collection<Class<? extends BaseElement>> getHandledTypes() {<br> List<Class<? extends BaseElement>> elements = new ArrayList<>();<br> elements.add(UserTask.class);<br> return elements;<br> }<br><br> @Override<br> public void parse(BpmnParse bpmnParse, BaseElement element) { <br> String taskDefinitionKey = element.getId();<br> <br> TaskDefinition taskDefinition = ((ProcessDefinitionEntity) bpmnParse.getCurrentScope().getProcessDefinition()).getTaskDefinitions().get(<br> taskDefinitionKey);<br><br> if (taskDefinition != null) { <br> taskDefinition.addTaskListener(TaskListener.EVENTNAME_CREATE, listener); // listener is always null<br> }<br> }<br>}<br>
<br><?xml version="1.0" encoding="UTF-8"?><br><beans<br> xmlns="<a href="http://www.springframework.org/schema/beans" rel="nofollow noopener noreferrer">http://www.springframework.org/schema/beans</a>"<br> xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance" rel="nofollow noopener noreferrer">http://www.w3.org/2001/XMLSchema-instance</a>"<br> xsi:schemaLocation="<a href="http://www.springframework.org/schema/beans" rel="nofollow noopener noreferrer">http://www.springframework.org/schema/beans</a><br> <a href="http://www.springframework.org/schema/beans/spring-beans.xsd" rel="nofollow noopener noreferrer">http://www.springframework.org/schema/beans/spring-beans.xsd</a>"><br><br> <!– lookup the JTA-Transaction manager –><br> <bean<br> id="transactionManager"<br> class="org.springframework.jndi.JndiObjectFactoryBean"><br> <property<br> name="jndiName"<br> value="java:jboss/TransactionManager"/><br> <property<br> name="resourceRef"<br> value="true" /><br> </bean><br><br> <!– process engine configuration –><br> <bean<br> id="processEngineConfiguration"<br> class="org.activiti.cdi.CdiJtaProcessEngineConfiguration"><br> <property<br> name="dataSourceJndiName"<br> value="java:/MyDS" /><br> <property<br> name="databaseType"<br> value="mysql" /><br> <property<br> name="transactionManager"<br> ref="transactionManager" /><br> <property<br> name="transactionsExternallyManaged"<br> value="true" /><br> <property<br> name="databaseSchemaUpdate"<br> value="true" /><br><br> <property name="postBpmnParseHandlers"><br> <list><br> <bean class="MyParseHandler" /><br> </list><br> </property><br> </bean><br></beans><br>