/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* Copyright (c) 2013, MPL CodeInside http://codeinside.ru
*/
package ru.codeinside.gses.activiti;
import org.activiti.engine.impl.bpmn.deployer.BpmnDeployer;
import org.activiti.engine.impl.bpmn.parser.BpmnParser;
import org.activiti.engine.impl.bpmn.parser.CustomBpmnParser;
import org.activiti.engine.impl.persistence.deploy.Deployer;
import java.util.Collection;
final public class DeployerCustomizer {
public static Collection<? extends Deployer> customize(Collection<? extends Deployer> deployers, boolean sandbox) {
for (Deployer deployer : deployers) {
if (deployer instanceof BpmnDeployer) {
BpmnDeployer bpmnDeployer = (BpmnDeployer) deployer;
BpmnParser oldParser = bpmnDeployer.getBpmnParser();
CustomBpmnParser newParser = new CustomBpmnParser(oldParser.getExpressionManager(), sandbox);
newParser.getParseListeners().addAll(oldParser.getParseListeners());
bpmnDeployer.setBpmnParser(newParser);
}
}
return deployers;
}
}