Super is don my solution is:
<pre>
public class CustomBpmnParseHandler extends ServiceTaskParseHandler {
private ExpressionManager expressionManager;
protected void executeParse(BpmnParse bpmnParse, ServiceTask serviceTask) {
super.executeParse(bpmnParse, serviceTask);
this.expressionManager = bpmnParse.getExpressionManager();
ActivityImpl activity = findActivity(bpmnParse, serviceTask.getId());
if (activity.getActivityBehavior() instanceof MailActivityBehavior) {
activity.setActivityBehavior(
createCustomMailActivityBehavior(serviceTask.getId(), serviceTask.getFieldExtensions()));
}
}
public CustomMailActivityBehavior createCustomMailActivityBehavior(String taskId, List<FieldExtension> fields) {
List<FieldDeclaration> fieldDeclarations = createFieldDeclarations(fields);
return (CustomMailActivityBehavior) ClassDelegate.instantiateDelegate(CustomMailActivityBehavior.class,
fieldDeclarations);
}
public List<FieldDeclaration> createFieldDeclarations(List<FieldExtension> fieldList) {
List<FieldDeclaration> fieldDeclarations = new ArrayList<FieldDeclaration>();
for (FieldExtension fieldExtension : fieldList) {
FieldDeclaration fieldDeclaration = null;
if (StringUtils.isNotEmpty(fieldExtension.getExpression())) {
fieldDeclaration = new FieldDeclaration(fieldExtension.getFieldName(), Expression.class.getName(),
this.expressionManager.createExpression(fieldExtension.getExpression()));
} else {
fieldDeclaration = new FieldDeclaration(fieldExtension.getFieldName(), Expression.class.getName(),
new FixedValue(fieldExtension.getStringValue()));
}
fieldDeclarations.add(fieldDeclaration);
}
return fieldDeclarations;
}
}
</pre>
thank you very much.