anchor.diff:  [[TypeConverter-Addtypeconverterclassesatruntime]]
   === Add type converter classes at runtime
   
  -You can add new type converters at runtime, by having your classes
  -implement `org.apache.camel.TypeConverters` which is an marker
  -interface. Then for each type converter you want use
  -the `@Converter` annotation.
  +Classes implementing https://www.javadoc.io/doc/org.apache.camel/camel-api/latest/org/apache/camel/TypeConverters.html[`TypeConverters`] are added to the type converter registry
  +at runtime. Use https://javadoc.io/doc/org.apache.camel/camel-api/latest/org/apache/camel/Converter.html[`@Converter`] to mark each type converter.
   
   [source,java]
   ----
  
positive.code: </camelContext>
  ----
  
  And in Spring Boot `application.properties`:
  [source,properties]
  ----
  camel.springboot.load-type-converters=true
  ----
  
  Then Camel will discover discover Camel 2.x compatible type converters by
  search the classpath for a file called `META-INF/services/org/apache/camel/TypeConverter`,
  which lists all the type converter classes. These classes will then automatic
  be registered in the type converter registry. However invoking these type converters
  does **not** happen in a _fast way_ but uses Java method call reflection. It is therefore
  recommended to migrate your type converters to use the faster way. See further below.
  
  TIP: You can turn off the fallback of discovering Camel 2.x compatible type converters by
  setting the `loadTypeConverters` option to `false` on `CamelContext`.
  
  The converter classes must be annotated on the top class level with the `@Converter` annotation,
  and each converter method as well.
  
  E.g. the following shows how to register a converter from `File` to
  `InputStream`:
  
  [source,java]
  ----
  
negative.code: [[TypeConverter-TypeConverter]]
  = Type Converter
  
  Converting body payloads from one type to another is common when routing messages between endpoints.
  Conversions regularly occur between the following types:
  
  * `File`
  * `String`
  * `byte[]` and `ByteBuffer`
  * `InputStream` and `OutputStream`
  * `Reader` and `Writer`
  * `Document` and `Source`
  
  To convert the body of a message to another type:
  
  [source,java]
  ----
  Message message = exchange.getIn();
  Document document = message.getBody(Document.class); // <1>
  ----
  <1> where https://www.javadoc.io/doc/org.apache.camel/camel-api/current/org/apache/camel/Message.html#getBody-java.lang.Class-[`Message#getBody(Class)`] performs the conversion.
  
  [[TypeConverter-HowTypeConversionworks]]
  == How Type Conversion works
  