protected Component getComponent(String name, CamelContext context) throws Exception { LOG.trace("Finding Component: {}", name); try { ServiceReference<?>[] refs = bundleContext.getServiceReferences(ComponentResolver.class.getName(), "(component=" + name + ")"); if (refs != null) { for (ServiceReference<?> ref : refs) { Object service = bundleContext.getService(ref); if (ComponentResolver.class.isAssignableFrom(service.getClass())) { ComponentResolver resolver = (ComponentResolver) service; return resolver.resolveComponent(name, context); } } } return null; } catch (InvalidSyntaxException e) { throw ObjectHelper.wrapRuntimeCamelException(e); } }
@Override public Component resolveComponent(String name, CamelContext context) throws Exception { Component component = null; Iterator<CamelSubsytemExtension> iterator = subsystemState.getCamelSubsytemExtensions().iterator(); for (; iterator.hasNext() && component == null;) { CamelSubsytemExtension plugin = iterator.next(); component = plugin.resolveComponent(name, subsystemState); } return component != null ? component : delegate.resolveComponent(name, context); } }
@Override public Component resolveComponent(String name, CamelContext context) throws Exception { Component component = null; Iterator<CamelSubsytemExtension> iterator = subsystemState.getCamelSubsytemExtensions().iterator(); for (; iterator.hasNext() && component == null;) { CamelSubsytemExtension plugin = iterator.next(); component = plugin.resolveComponent(name, subsystemState); } return component != null ? component : delegate.resolveComponent(name, context); } }
@Override public Component resolveComponent(String name, CamelContext context) throws Exception { Component componentReg = ResolverHelper.lookupComponentInRegistryWithFallback(context, name, new ResolverHelper.LookupExceptionHandler() { @Override public void handleException(Exception e, Logger log, String name) { if (getException(NoSuchComponentException.class, e) != null) { // if the caused error is NoSuchComponentException then that can be expected so ignore } else if (getException(ComponentDefinitionException.class, e) != null) { LOG.warn("Problem looking up bean: " + name + " due: " + e.getMessage(), e); } else { LOG.trace("Ignored error looking up bean: " + name + " due: " + e.getMessage(), e); } } }); if (componentReg != null) { return componentReg; } try { Object bean = context.getRegistry().lookupByName(".camelBlueprint.componentResolver." + name); if (bean instanceof ComponentResolver) { LOG.debug("Found component resolver: {} in registry: {}", name, bean); return ((ComponentResolver) bean).resolveComponent(name, context); } } catch (Exception e) { LOG.trace("Ignored error looking up bean: " + name + " due: " + e.getMessage(), e); } return getComponent(name, context); }