/**
   * This method will stop and remove any existing Camel routes in this context, and then configure
   * a new Camel route using the properties set in the setter methods.
   *
   * <p>Invoked after all of the setter methods have been called (for initial route creation), and
   * also called whenever an existing route is updated.
   */
  public void init() {
    LOGGER.trace("INSIDE: init()");

    if (routeCollection != null) {
      try {
        // This stops the route before trying to remove it
        LOGGER.debug("Removing " + routeCollection.size() + " routes");
        camelContext.removeRouteDefinitions(routeCollection);
      } catch (Exception e) {
        LOGGER.warn(e.getMessage());
      }
    } else {
      LOGGER.debug("No routes to remove before configuring a new route");
    }

    configureCamelRoute();
  }