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);
}
}