Search in sources :

Example 1 with ProcessApplicationElResolver

use of org.camunda.bpm.application.ProcessApplicationElResolver in project camunda-bpm-platform by camunda.

the class DefaultElResolverLookup method lookupResolver.

public static final ELResolver lookupResolver(AbstractProcessApplication processApplication) {
    ServiceLoader<ProcessApplicationElResolver> providers = ServiceLoader.load(ProcessApplicationElResolver.class);
    List<ProcessApplicationElResolver> sortedProviders = new ArrayList<ProcessApplicationElResolver>();
    for (ProcessApplicationElResolver provider : providers) {
        sortedProviders.add(provider);
    }
    if (sortedProviders.isEmpty()) {
        return null;
    } else {
        // sort providers first
        Collections.sort(sortedProviders, new ProcessApplicationElResolver.ProcessApplicationElResolverSorter());
        // add all providers to a composite resolver
        CompositeELResolver compositeResolver = new CompositeELResolver();
        StringBuilder summary = new StringBuilder();
        summary.append(String.format("ElResolvers found for Process Application %s", processApplication.getName()));
        for (ProcessApplicationElResolver processApplicationElResolver : sortedProviders) {
            ELResolver elResolver = processApplicationElResolver.getElResolver(processApplication);
            if (elResolver != null) {
                compositeResolver.add(elResolver);
                summary.append(String.format("Class %s", processApplicationElResolver.getClass().getName()));
            } else {
                LOG.noElResolverProvided(processApplication.getName(), processApplicationElResolver.getClass().getName());
            }
        }
        LOG.paElResolversDiscovered(summary.toString());
        return compositeResolver;
    }
}
Also used : CompositeELResolver(org.camunda.bpm.engine.impl.javax.el.CompositeELResolver) ELResolver(org.camunda.bpm.engine.impl.javax.el.ELResolver) CompositeELResolver(org.camunda.bpm.engine.impl.javax.el.CompositeELResolver) ArrayList(java.util.ArrayList) ProcessApplicationElResolver(org.camunda.bpm.application.ProcessApplicationElResolver)

Aggregations

ArrayList (java.util.ArrayList)1 ProcessApplicationElResolver (org.camunda.bpm.application.ProcessApplicationElResolver)1 CompositeELResolver (org.camunda.bpm.engine.impl.javax.el.CompositeELResolver)1 ELResolver (org.camunda.bpm.engine.impl.javax.el.ELResolver)1