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;
}
}
Aggregations