@Bean(name = "sql-component")
 @ConditionalOnClass(CamelContext.class)
 @ConditionalOnMissingBean(SqlComponent.class)
 public SqlComponent configureSqlComponent(
     CamelContext camelContext, SqlComponentConfiguration configuration) throws Exception {
   SqlComponent component = new SqlComponent();
   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
 public SqlComponent sqlComponent() {
   SqlComponent sqlComponent = new SqlComponent();
   sqlComponent.setDataSource(xaJdbcDataSource);
   return sqlComponent;
 }
Esempio n. 3
0
 @Bean
 public SqlComponent sql() {
   SqlComponent sqlComponent = new SqlComponent();
   sqlComponent.setDataSource(dataSource());
   return sqlComponent;
 }