@Bean(name = "xquery-component") @ConditionalOnClass(CamelContext.class) @ConditionalOnMissingBean(XQueryComponent.class) public XQueryComponent configureXQueryComponent( CamelContext camelContext, XQueryComponentConfiguration configuration) throws Exception { XQueryComponent component = new XQueryComponent(); component.setCamelContext(camelContext); Map<String, Object> parameters = new HashMap<>(); IntrospectionSupport.getProperties(configuration, parameters, null, false); for (Map.Entry<String, Object> entry : parameters.entrySet()) { Object value = entry.getValue(); Class<?> paramClass = value.getClass(); if (paramClass.getName().endsWith("NestedConfiguration")) { Class nestedClass = null; try { nestedClass = (Class) paramClass.getDeclaredField("CAMEL_NESTED_CLASS").get(null); HashMap<String, Object> nestedParameters = new HashMap<>(); IntrospectionSupport.getProperties(value, nestedParameters, null, false); Object nestedProperty = nestedClass.newInstance(); IntrospectionSupport.setProperties( camelContext, camelContext.getTypeConverter(), nestedProperty, nestedParameters); entry.setValue(nestedProperty); } catch (NoSuchFieldException e) { } } } IntrospectionSupport.setProperties( camelContext, camelContext.getTypeConverter(), component, parameters); return component; }
@Bean(name = "xquery-component") @ConditionalOnClass(CamelContext.class) @ConditionalOnMissingBean(XQueryComponent.class) public XQueryComponent configureXQueryComponent( CamelContext camelContext, XQueryComponentConfiguration configuration) throws Exception { XQueryComponent component = new XQueryComponent(); component.setCamelContext(camelContext); Map<String, Object> parameters = new HashMap<>(); IntrospectionSupport.getProperties(configuration, parameters, null, false); IntrospectionSupport.setProperties( camelContext, camelContext.getTypeConverter(), component, parameters); return component; }