public void addRoutes()

in extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java [104:149]


    public void addRoutes(RuntimeValue<CamelContext> context, List<String> nonCdiRoutesBuilderClassNames) {
        List<RoutesBuilder> allRoutesBuilders = new ArrayList<>();

        try {
            for (String nonCdiRoutesBuilderClassName : nonCdiRoutesBuilderClassNames) {
                Class<RoutesBuilder> nonCdiRoutesBuilderClass = context.getValue().getClassResolver()
                        .resolveClass(nonCdiRoutesBuilderClassName, RoutesBuilder.class);
                allRoutesBuilders.add(context.getValue().getInjector().newInstance(nonCdiRoutesBuilderClass));
            }

            for (LambdaRouteBuilder builder : context.getValue().getRegistry().findByType(LambdaRouteBuilder.class)) {
                allRoutesBuilders.add(new RouteBuilder() {
                    @Override
                    public void configure() throws Exception {
                        builder.accept(this);
                    }
                });
            }

            for (LambdaEndpointRouteBuilder builder : context.getValue().getRegistry()
                    .findByType(LambdaEndpointRouteBuilder.class)) {
                allRoutesBuilders.add(new EndpointRouteBuilder() {
                    @Override
                    public void configure() throws Exception {
                        builder.accept(this);
                    }
                });
            }

            allRoutesBuilders.addAll(context.getValue().getRegistry().findByType(RoutesBuilder.class));

            // Add RouteConfigurationsBuilders before RoutesBuilders
            for (RoutesBuilder routesBuilder : allRoutesBuilders) {
                if (routesBuilder instanceof RouteConfigurationsBuilder) {
                    context.getValue().addRoutesConfigurations((RouteConfigurationsBuilder) routesBuilder);
                }
            }
            for (RoutesBuilder routesBuilder : allRoutesBuilders) {
                if (!(routesBuilder instanceof RouteConfigurationsBuilder)) {
                    context.getValue().addRoutes(routesBuilder);
                }
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }