public RouteController routeController()

in core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/cluster/ClusteredRouteControllerAutoConfiguration.java [58:99]


    public RouteController routeController(ClusteredRouteControllerConfiguration configuration) {
        ClusteredRouteController controller = new ClusteredRouteController();
        controller.setNamespace(configuration.getNamespace());

        Optional.ofNullable(configuration.getInitialDelay())
            .map(TimePatternConverter::toMilliSeconds)
            .map(Duration::ofMillis)
            .ifPresent(controller::setInitialDelay);

        controller.setFilters(filters);
        controller.addFilter(new ClusteredRouteFilters.IsAutoStartup());

        if (ObjectHelper.isNotEmpty(configuration.getClusterService())) {
            controller.setClusterService(configuration.getClusterService());
        }

        for (Map.Entry<String, ClusteredRouteControllerConfiguration.RouteConfiguration> entry: configuration.getRoutes().entrySet()) {
            final String routeId = entry.getKey();
            final ClusteredRouteControllerConfiguration.RouteConfiguration conf = entry.getValue();

            if (conf.isClustered()) {
                ClusteredRouteConfiguration routeConfiguration = new ClusteredRouteConfiguration();

                routeConfiguration.setNamespace(
                    Optional.ofNullable(conf.getNamespace())
                        .orElseGet(controller::getNamespace)
                );
                routeConfiguration.setInitialDelay(
                    Optional.ofNullable(conf.getInitialDelay())
                        .map(TimePatternConverter::toMilliSeconds)
                        .map(Duration::ofMillis)
                        .orElseGet(controller::getInitialDelay)
                );

                controller.addRouteConfiguration(routeId, routeConfiguration);
            } else {
                controller.addFilter(new ClusteredRouteFilters.BlackList(routeId));
            }
        }

        return controller;
    }