Friday, January 2, 2015

Camel Spring Boot and type conversion API bridge

Spring comes with the powerful type conversion API. Spring API happens not to be much different from the Camel type converter API. As those APIs are so similar, Camel Spring Boot automatically registers bridge converter (SpringTypeConverter) that delegates to the Spring conversion API.

It basically means that out-of-the-box Camel will threat Spring Converters as Camel ones. With this approach you can enjoy both Camel and Spring converters accessed via Camel TypeConverter API:
@Component
public class InvoiceProcessor {
 
  @Autowired
  private TypeConverter typeConverter;
 
  public UUID parseInvoiceId(Invoice invoice) {
    // Using Spring's StringToUUIDConverter
    UUID id = invoice.typeConverter.convertTo(UUID.class, invoice.getId());
  }
 
}

Under the hood Camel Spring Boot delegates conversion to the Spring's ConversionService. If no ConversionService instance is available, Camel Spring Boot auto-configuration will create one for you.

No comments:

Post a Comment