Camel in Action 2nd edition - Errata ==================================== p63 Figure 2.13 the EIP diagram for multicast should ideally have been updated to include black lines connected to all 3 destinations. p125 bottom - only the number of parameters would vary. + only the parameter types or number of parameters would vary. p137 bottom Last code example, closing parenthesis of msg.getHeader("customerId") is missing. p183 bottom - That means you shouldn’t use the Routing Slip EIP in the route + That means you shouldn’t use the Dynamic Router EIP in the route p272 top - Notice that @path and @PathParams map to the partIds - Notice that @path and @PathParams map to the cartIds p275 - 3 Start the rules service: + 3 Start the rating service: - 4 Start the recommendation service: + 4 Start the rules service: - 5 Start the rating service: + 5 Start the recommendation service: p384 In table 9.9, the description for the mockEndpoints, and mockEndpoints(pattern...) should be updated to not say "in the route" as these methods apply to all endpoints, also for other routes. p454 In the middle the data type should be changed from int to integer: - .param().name("id").dataType("int").description("The order id").endParam() + .param().name("id").dataType("integer").description("The order id").endParam() - + p510 The example in section 11.5.1 Using onWhen on page 510 needs to add @ExchangeException to the parameter to bind the parameter to the caused exception, in listing 11.16: - public static boolean isIllegalDataError(HttpOperationFailedException cause) + public static boolean isIllegalDataError(@ExchangeException HttpOperationFailedException cause) And the code snippet in the middle of page 510 needs to use the correct method name: - .onWhen(bean(MyHttpUtil.class, "isIllegalData")) + .onWhen(bean(MyHttpUtil.class, "isIllegalDataError")) p673 A colon is missing after http in the code snippet: - from("jetty:http//0.0.0.0:8080/ping").transform(constant("PONG\n")); + from("jetty:http://0.0.0.0:8080/ping").transform(constant("PONG\n")); p831 and 832 The built in operator examples which is using the ${in.header.xxx} syntax should be replaced with ${header.xxx} because the in.* syntax has been deprecated.