package org.camunda.bpm.extension.osgi.engine;
import java.util.ArrayList;
import java.util.List;
import org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.camunda.bpm.engine.impl.el.ExpressionManager;
import org.camunda.bpm.engine.impl.scripting.engine.BeansResolverFactory;
import org.camunda.bpm.engine.impl.scripting.engine.ResolverFactory;
import org.camunda.bpm.engine.impl.scripting.engine.ScriptBindingsFactory;
import org.camunda.bpm.engine.impl.scripting.engine.VariableScopeResolverFactory;
import org.camunda.bpm.extension.osgi.scripting.impl.OsgiScriptingEngines;
public class ProcessEngineFactoryWithELResolver extends ProcessEngineFactory {
private ExpressionManager expressionManager;
@Override
public void init() {
ProcessEngineConfigurationImpl configImpl = (ProcessEngineConfigurationImpl) getProcessEngineConfiguration();
configImpl.setExpressionManager(expressionManager);
List<ResolverFactory> resolverFactories = configImpl.getResolverFactories();
if (resolverFactories == null) {
resolverFactories = new ArrayList<ResolverFactory>();
resolverFactories.add(new VariableScopeResolverFactory());
resolverFactories.add(new BeansResolverFactory());
}
configImpl.setScriptingEngines(new OsgiScriptingEngines(new ScriptBindingsFactory(resolverFactories)));
super.init();
}
public void setExpressionManager(ExpressionManager manager){
this.expressionManager = manager;
}
}