anchor.diff:  
   === Checked vs unchecked exceptions
   
  -Most of the Camel exception classes has been migrated to be unchecked (eg extends `RuntimeException`).
  +Most of the Camel exception classes have been migrated to be unchecked (e.g. extends `RuntimeException`).
   
   Also the lifecycle of the `start`, `stop` and `suspend`, `resume` methods on `Service` and `SuspendableService` has been changed to not throw checked exceptions.
   
  
positive.code: 
  === getOut on Exchange
  
  The `hasOut` and `getOut` methods on `Exchange` has been deprecated in favour of using `getMessage` instead. (sidenote: The camel-core are still using these methods in a few places to be backwards compatible and rely on this logic as Camel was initially designed with the concepts of IN and OUT message inspired from the JBI and SOAP-WS specifications).
  
  === OUT message removed from Simple language and Mock component
  
  
negative.code: 
  Testing using `adviceWith` currently needs to be changed from:
  
  [source,java]
  ----
  context.getRouteDefinition("start").adviceWith(camelContext, new AdviceWithRouteBuilder() {
    ...
  }
  ----
  
  to using style:
  
  [source,java]
  ----
  ModelCamelContext mcc = camelContext.adapt(ModelCamelContext.class);
  RouteReifier.adviceWith(mcc.getRouteDefinition("start"), mcc, new AdviceWithRouteBuilder() {
    ...
  }
  ----
  
  However its even easier using lambda style with `AdviceWithRouteBuilder` directly:
  
  [source,java]
  ----
  AdviceWithRouteBuilder.adviceWith(context, "myRoute", a -> {
    a.replaceFromWith("direct:start");
  }
  ----
  
  === Generic Classes
  
  