You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2020/09/21 11:43:38 UTC

[camel-k-runtime] branch master updated: Remove suport for configuration classes #480

This is an automated email from the ASF dual-hosted git repository.

lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git


The following commit(s) were added to refs/heads/master by this push:
     new 60ddf19  Remove suport for configuration classes #480
60ddf19 is described below

commit 60ddf192afa647e13e2bef724b4b9ec7ca97f5f8
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Mon Sep 21 13:00:30 2020 +0200

    Remove suport for configuration classes #480
---
 .../k/loader/groovy/GroovySourceLoader.groovy      |  7 +--
 .../camel/k/loader/java/JavaSourceLoader.java      | 10 +++-
 .../k/loader/java/JavaSourceLoaderTest.groovy      |  8 ---
 .../camel/k/loader/java/support/TestRuntime.groovy |  5 --
 .../camel/k/loader/js/JavaScriptSourceLoader.java  |  8 +--
 .../camel/k/loader/js/support/TestRuntime.groovy   |  5 --
 .../camel/k/loader/kotlin/KotlinSourceLoader.kt    |  8 +--
 .../camel/k/loader/kotlin/support/TestRuntime.kt   |  4 --
 .../apache/camel/k/loader/xml/XmlSourceLoader.java |  7 +--
 .../camel/k/loader/xml/support/TestRuntime.groovy  |  5 --
 .../camel/k/loader/yaml/YamlSourceLoader.java      | 57 ++++++-------------
 .../camel/k/loader/yaml/support/TestSupport.groovy | 16 +++---
 .../apache/camel/k/main/ApplicationRuntime.java    |  5 --
 .../java/org/apache/camel/k/main/RuntimeTest.java  | 29 ++++++----
 .../apache/camel/k/main/support/MyProcessor.java   | 19 ++-----
 .../src/test/resources/MyRoutesConfig.java         | 33 -----------
 .../k/quarkus/cron/deployment/Application.java     | 15 +++--
 .../camel/k/loader/support/LoaderSupport.java      |  6 +-
 .../org/apache/camel/k/quarkus/Application.java    |  5 --
 .../src/main/java/org/apache/camel/k/Runtime.java  |  4 --
 .../main/java/org/apache/camel/k/SourceLoader.java | 64 ++--------------------
 .../apache/camel/k/support/DelegatingRuntime.java  |  5 --
 .../org/apache/camel/k/support/RouteBuilders.java  | 30 ++++++++--
 .../org/apache/camel/k/support/SourcesSupport.java | 59 +++++++++-----------
 .../camel/k/cron/CronSourceLoaderInterceptor.java  | 22 +-------
 .../knative/KnativeSourceLoaderInterceptor.java    | 22 +-------
 26 files changed, 140 insertions(+), 318 deletions(-)

diff --git a/camel-k-loader-groovy/src/main/groovy/org/apache/camel/k/loader/groovy/GroovySourceLoader.groovy b/camel-k-loader-groovy/src/main/groovy/org/apache/camel/k/loader/groovy/GroovySourceLoader.groovy
index 78cc20d..d5b09aa 100644
--- a/camel-k-loader-groovy/src/main/groovy/org/apache/camel/k/loader/groovy/GroovySourceLoader.groovy
+++ b/camel-k-loader-groovy/src/main/groovy/org/apache/camel/k/loader/groovy/GroovySourceLoader.groovy
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.k.loader.groovy
 
+import org.apache.camel.RoutesBuilder
 import org.apache.camel.k.Runtime
 import org.apache.camel.k.Source
 import org.apache.camel.k.SourceLoader
@@ -31,8 +32,8 @@ class GroovySourceLoader implements SourceLoader {
     }
 
     @Override
-    Result load(Runtime runtime, Source source) throws Exception {
-        def builder = RouteBuilders.endpoint(source, { reader, builder ->
+    RoutesBuilder load(Runtime runtime, Source source) {
+        return RouteBuilders.endpoint(source, { reader, builder ->
             def ic = new ImportCustomizer()
             ic.addStarImports('org.apache.camel')
             ic.addStarImports('org.apache.camel.spi')
@@ -48,7 +49,5 @@ class GroovySourceLoader implements SourceLoader {
             script.setDelegate(new IntegrationConfiguration(builder))
             script.run()
         })
-
-        return Result.on(builder)
     }
 }
diff --git a/camel-k-loader-java/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java b/camel-k-loader-java/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java
index 7d18fe2..5286090 100644
--- a/camel-k-loader-java/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java
+++ b/camel-k-loader-java/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java
@@ -16,12 +16,14 @@
  */
 package org.apache.camel.k.loader.java;
 
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.Collections;
 import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.camel.RoutesBuilder;
 import org.apache.camel.k.CompositeClassloader;
 import org.apache.camel.k.Runtime;
 import org.apache.camel.k.Source;
@@ -41,12 +43,12 @@ public class JavaSourceLoader implements SourceLoader {
     }
 
     @Override
-    public Result load(Runtime runtime, Source source) throws Exception {
+    public RoutesBuilder load(Runtime runtime, Source source) {
         try (InputStream is = source.resolveAsInputStream(runtime.getCamelContext())) {
             final String content = IOHelper.loadText(is);
             final String name = determineQualifiedName(source, content);
             final Reflect compiled = Reflect.compile(name, content);
-            final Object instance = compiled.create().get();
+            final RoutesBuilder instance = compiled.create().get();
 
             // The given source may contains additional nested classes which are unknown to Camel
             // as they are associated to the ClassLoader used to compile the source thus we need
@@ -56,7 +58,9 @@ public class JavaSourceLoader implements SourceLoader {
                 ((CompositeClassloader) loader).addClassLoader(instance.getClass().getClassLoader());
             }
 
-            return Result.on(instance);
+            return instance;
+        } catch (IOException e) {
+            throw new RuntimeException(e);
         }
     }
 
diff --git a/camel-k-loader-java/src/test/groovy/org/apache/camel/k/loader/java/JavaSourceLoaderTest.groovy b/camel-k-loader-java/src/test/groovy/org/apache/camel/k/loader/java/JavaSourceLoaderTest.groovy
index 2b868f8..1290d79 100644
--- a/camel-k-loader-java/src/test/groovy/org/apache/camel/k/loader/java/JavaSourceLoaderTest.groovy
+++ b/camel-k-loader-java/src/test/groovy/org/apache/camel/k/loader/java/JavaSourceLoaderTest.groovy
@@ -68,14 +68,6 @@ class JavaSourceLoaderTest extends Specification {
             }
     }
 
-    def "load configuration"() {
-        when:
-            runtime.loadRoutes("classpath:MyRoutesConfig.java")
-        then:
-            runtime.configurations.size() == 1
-    }
-
-
     def "load"(location) {
         expect:
             runtime.loadRoutes(location)
diff --git a/camel-k-loader-java/src/test/groovy/org/apache/camel/k/loader/java/support/TestRuntime.groovy b/camel-k-loader-java/src/test/groovy/org/apache/camel/k/loader/java/support/TestRuntime.groovy
index 6d8f2ea..d496d8a 100644
--- a/camel-k-loader-java/src/test/groovy/org/apache/camel/k/loader/java/support/TestRuntime.groovy
+++ b/camel-k-loader-java/src/test/groovy/org/apache/camel/k/loader/java/support/TestRuntime.groovy
@@ -47,11 +47,6 @@ class TestRuntime implements Runtime, AutoCloseable {
         this.context.addRoutes(builder)
     }
 
-    @Override
-    void addConfiguration(Object configuration) {
-        this.configurations.add(configuration)
-    }
-
     void loadRoutes(String... routes) {
         SourcesSupport.loadSources(this, routes)
     }
diff --git a/camel-k-loader-js/src/main/java/org/apache/camel/k/loader/js/JavaScriptSourceLoader.java b/camel-k-loader-js/src/main/java/org/apache/camel/k/loader/js/JavaScriptSourceLoader.java
index 790a69c..031bbb5 100644
--- a/camel-k-loader-js/src/main/java/org/apache/camel/k/loader/js/JavaScriptSourceLoader.java
+++ b/camel-k-loader-js/src/main/java/org/apache/camel/k/loader/js/JavaScriptSourceLoader.java
@@ -45,10 +45,8 @@ public class JavaScriptSourceLoader implements SourceLoader {
     }
 
     @Override
-    public Result load(Runtime runtime, Source source) throws Exception {
-        RoutesBuilder builder = RouteBuilders.endpoint(source, JavaScriptSourceLoader::doLoad);
-
-        return SourceLoader.Result.on(builder);
+    public RoutesBuilder load(Runtime runtime, Source source) {
+        return RouteBuilders.endpoint(source, JavaScriptSourceLoader::doLoad);
     }
 
     private static void doLoad(Reader reader, EndpointRouteBuilder builder) {
@@ -84,7 +82,7 @@ public class JavaScriptSourceLoader implements SourceLoader {
         //
         builder.getContext().addLifecycleStrategy(new LifecycleStrategySupport() {
             @Override
-            public void onContextStop(CamelContext camelContext) {
+            public void onContextStopping(CamelContext camelContext) {
                 context.close(true);
             }
         });
diff --git a/camel-k-loader-js/src/test/groovy/org/apache/camel/k/loader/js/support/TestRuntime.groovy b/camel-k-loader-js/src/test/groovy/org/apache/camel/k/loader/js/support/TestRuntime.groovy
index 92a9ed7..afd1cf2 100644
--- a/camel-k-loader-js/src/test/groovy/org/apache/camel/k/loader/js/support/TestRuntime.groovy
+++ b/camel-k-loader-js/src/test/groovy/org/apache/camel/k/loader/js/support/TestRuntime.groovy
@@ -50,11 +50,6 @@ class TestRuntime implements Runtime, AutoCloseable {
         this.context.addRoutes(builder)
     }
 
-    @Override
-    void addConfiguration(Object configuration) {
-        this.configurations.add(configuration)
-    }
-
     void loadRoutes(String... routes) {
         SourcesSupport.loadSources(this, routes)
     }
diff --git a/camel-k-loader-kotlin/camel-k-loader-kotlin/src/main/kotlin/org/apache/camel/k/loader/kotlin/KotlinSourceLoader.kt b/camel-k-loader-kotlin/camel-k-loader-kotlin/src/main/kotlin/org/apache/camel/k/loader/kotlin/KotlinSourceLoader.kt
index 7dffd6c..4b21c18 100644
--- a/camel-k-loader-kotlin/camel-k-loader-kotlin/src/main/kotlin/org/apache/camel/k/loader/kotlin/KotlinSourceLoader.kt
+++ b/camel-k-loader-kotlin/camel-k-loader-kotlin/src/main/kotlin/org/apache/camel/k/loader/kotlin/KotlinSourceLoader.kt
@@ -17,6 +17,7 @@
 package org.apache.camel.k.loader.kotlin
 
 import org.apache.camel.Experimental
+import org.apache.camel.RoutesBuilder
 import org.apache.camel.RuntimeCamelException
 import org.apache.camel.builder.endpoint.EndpointRouteBuilder
 import org.apache.camel.k.Runtime
@@ -41,13 +42,10 @@ class KotlinSourceLoader : SourceLoader {
         return listOf("kts")
     }
 
-    @Throws(Exception::class)
-    override fun load(runtime: Runtime, source: Source): SourceLoader.Result {
-        val builder = RouteBuilders.endpoint(source) {
+    override fun load(runtime: Runtime, source: Source): RoutesBuilder {
+        return RouteBuilders.endpoint(source) {
             reader, builder -> doLoad(reader, builder)
         }
-
-        return SourceLoader.Result.on(builder)
     }
 
     private fun doLoad(reader: Reader, builder: EndpointRouteBuilder) {
diff --git a/camel-k-loader-kotlin/camel-k-loader-kotlin/src/test/kotlin/org/apache/camel/k/loader/kotlin/support/TestRuntime.kt b/camel-k-loader-kotlin/camel-k-loader-kotlin/src/test/kotlin/org/apache/camel/k/loader/kotlin/support/TestRuntime.kt
index 85fa391..6ab8b54 100644
--- a/camel-k-loader-kotlin/camel-k-loader-kotlin/src/test/kotlin/org/apache/camel/k/loader/kotlin/support/TestRuntime.kt
+++ b/camel-k-loader-kotlin/camel-k-loader-kotlin/src/test/kotlin/org/apache/camel/k/loader/kotlin/support/TestRuntime.kt
@@ -49,10 +49,6 @@ class TestRuntime : Runtime {
         this.context.addRoutes(builder)
     }
 
-    override fun addConfiguration(configuration: Any) {
-        this.configurations.add(configuration)
-    }
-
     fun loadRoutes(vararg routes: String) {
         SourcesSupport.loadSources(this, *routes)
     }
diff --git a/camel-k-loader-xml/src/main/java/org/apache/camel/k/loader/xml/XmlSourceLoader.java b/camel-k-loader-xml/src/main/java/org/apache/camel/k/loader/xml/XmlSourceLoader.java
index 963c4bc..eb601f9 100644
--- a/camel-k-loader-xml/src/main/java/org/apache/camel/k/loader/xml/XmlSourceLoader.java
+++ b/camel-k-loader-xml/src/main/java/org/apache/camel/k/loader/xml/XmlSourceLoader.java
@@ -21,6 +21,7 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.k.Runtime;
 import org.apache.camel.k.Source;
@@ -43,8 +44,8 @@ public class XmlSourceLoader implements SourceLoader {
     }
 
     @Override
-    public Result load(Runtime runtime, Source source) throws Exception {
-        RouteBuilder builder = new RouteBuilder() {
+    public RoutesBuilder load(Runtime runtime, Source source) {
+        return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
                 final ExtendedCamelContext context = getContext().adapt(ExtendedCamelContext.class);
@@ -81,7 +82,5 @@ public class XmlSourceLoader implements SourceLoader {
                 }
             }
         };
-
-        return Result.on(builder);
     }
 }
diff --git a/camel-k-loader-xml/src/test/groovy/org/apache/camel/k/loader/xml/support/TestRuntime.groovy b/camel-k-loader-xml/src/test/groovy/org/apache/camel/k/loader/xml/support/TestRuntime.groovy
index 2d24ddf..57df2e8 100644
--- a/camel-k-loader-xml/src/test/groovy/org/apache/camel/k/loader/xml/support/TestRuntime.groovy
+++ b/camel-k-loader-xml/src/test/groovy/org/apache/camel/k/loader/xml/support/TestRuntime.groovy
@@ -50,11 +50,6 @@ class TestRuntime implements Runtime, AutoCloseable {
         this.context.addRoutes(builder)
     }
 
-    @Override
-    void addConfiguration(Object configuration) {
-        this.configurations.add(configuration)
-    }
-
     void loadRoutes(String... routes) {
         SourcesSupport.loadSources(this, routes)
     }
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java b/camel-k-loader-yaml/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java
index 2e90f54..ce014b5 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.k.loader.yaml;
 
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.List;
 
@@ -30,7 +27,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategy;
 import com.fasterxml.jackson.databind.SerializationFeature;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
 import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator;
-import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.RoutesBuilder;
 import org.apache.camel.k.Runtime;
 import org.apache.camel.k.Source;
 import org.apache.camel.k.SourceLoader;
@@ -38,21 +35,20 @@ import org.apache.camel.k.annotation.Loader;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.k.loader.yaml.spi.StartStepParser;
 import org.apache.camel.k.loader.yaml.spi.StepParser;
+import org.apache.camel.k.support.RouteBuilders;
 
 @Loader("yaml")
 public class YamlSourceLoader implements SourceLoader {
+    public static final ObjectMapper MAPPER;
+
     static {
+        // register custom reifiers auto-generated from the step parser definitions
         YamlReifiers.registerReifiers();
-    }
-
-    private final ObjectMapper mapper;
 
-    public YamlSourceLoader() {
-        YAMLFactory yamlFactory = new YAMLFactory()
-            .configure(YAMLGenerator.Feature.MINIMIZE_QUOTES, true)
-            .configure(YAMLGenerator.Feature.USE_NATIVE_TYPE_ID, false);
-
-        this.mapper = new ObjectMapper(yamlFactory)
+        MAPPER = new ObjectMapper(
+            new YAMLFactory()
+                .configure(YAMLGenerator.Feature.MINIMIZE_QUOTES, true)
+                .configure(YAMLGenerator.Feature.USE_NATIVE_TYPE_ID, false))
             .registerModule(new YamlModule())
             .setSerializationInclusion(JsonInclude.Include.NON_EMPTY)
             .setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE)
@@ -68,34 +64,15 @@ public class YamlSourceLoader implements SourceLoader {
     }
 
     @Override
-    public Result load(Runtime runtime, Source source) throws Exception {
-        return Result.on(
-            builder(source.resolveAsInputStream(runtime.getCamelContext()))
-        );
-    }
-
-    final ObjectMapper mapper() {
-        return mapper;
-    }
-
-    final RouteBuilder builder(String content) {
-        return builder(new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8)));
-    }
-
-    final RouteBuilder builder(InputStream is) {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                final StepParser.Resolver resolver = StepParser.Resolver.caching(new YamlStepResolver());
+    public RoutesBuilder load(Runtime runtime, Source source) {
+        return RouteBuilders.route(source, (reader, builder) -> {
+            final StepParser.Resolver resolver = StepParser.Resolver.caching(new YamlStepResolver());
 
-                try (is) {
-                    for (Step step : mapper.readValue(is, Step[].class)) {
-                        StartStepParser.invoke(
-                            new StepParser.Context(this, null, mapper, step.node, resolver),
-                            step.id);
-                    }
-                }
+            for (Step step : MAPPER.readValue(reader, Step[].class)) {
+                StartStepParser.invoke(
+                    new StepParser.Context(builder, null, MAPPER, step.node, resolver),
+                    step.id);
             }
-        };
+        });
     }
 }
diff --git a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/support/TestSupport.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/support/TestSupport.groovy
index 2781923..37ceae8 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/support/TestSupport.groovy
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/support/TestSupport.groovy
@@ -40,7 +40,7 @@ import java.nio.charset.StandardCharsets
 @Slf4j
 class TestSupport extends Specification {
     static def RESOLVER =  new YamlStepResolver()
-    static def MAPPER = new YamlSourceLoader().mapper()
+    static def MAPPER = YamlSourceLoader.MAPPER
 
     static StepParser.Context stepContext(String content) {
         def node = MAPPER.readTree(content.stripMargin())
@@ -76,7 +76,9 @@ class TestSupport extends Specification {
             Source source,
             @DelegatesTo(CamelContext) Closure closure) {
         def context = new DefaultCamelContext()
-        def builder = new YamlSourceLoader().load(Runtime.on(context), source).builder().orElseThrow(() -> new IllegalArgumentException());
+        def builder = new YamlSourceLoader().load(Runtime.on(context), source)
+
+        assert builder != null
 
         context.disableJMX()
         context.setStreamCaching(true)
@@ -117,11 +119,7 @@ class TestSupport extends Specification {
         return type.getConstructor().newInstance().toProcessor(stepContext(content))
     }
 
-    static <U extends StartStepParser> ProcessorDefinition<?> toStartProcessor(Class<U> type, String content) {
-        return type.getConstructor().newInstance().process(stepContext(content))
-    }
-
-    static ProcessorDefinition<?> toProcessor(String id, String content) {
+    static Object toProcessor(String id, String content) {
         def ctx = stepContext(content)
         def parser = RESOLVER.resolve(ctx.camelContext, id)
 
@@ -140,7 +138,9 @@ class TestSupport extends Specification {
 
     static def load(CamelContext context, String content) {
         def source = Sources.fromBytes('yaml', content.stripMargin().getBytes(StandardCharsets.UTF_8))
-        def builder = new YamlSourceLoader().load(Runtime.on(context), source).builder().orElseThrow(() -> new IllegalArgumentException());
+        def builder = new YamlSourceLoader().load(Runtime.on(context), source)
+
+        assert builder != null
 
         context.addRoutes(builder)
     }
diff --git a/camel-k-main/camel-k-runtime-main/src/main/java/org/apache/camel/k/main/ApplicationRuntime.java b/camel-k-main/camel-k-runtime-main/src/main/java/org/apache/camel/k/main/ApplicationRuntime.java
index 05cb0b2..df01e69 100644
--- a/camel-k-main/camel-k-runtime-main/src/main/java/org/apache/camel/k/main/ApplicationRuntime.java
+++ b/camel-k-main/camel-k-runtime-main/src/main/java/org/apache/camel/k/main/ApplicationRuntime.java
@@ -82,11 +82,6 @@ public final class ApplicationRuntime implements Runtime {
     }
 
     @Override
-    public void addConfiguration(Object configuration) {
-        this.main.configure().addConfiguration(configuration);
-    }
-
-    @Override
     public void setInitialProperties(Properties properties) {
         this.main.getCamelContext().getPropertiesComponent().setInitialProperties(properties);
     }
diff --git a/camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/RuntimeTest.java b/camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/RuntimeTest.java
index 8197df6..bbb649a 100644
--- a/camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/RuntimeTest.java
+++ b/camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/RuntimeTest.java
@@ -29,6 +29,7 @@ import org.apache.camel.k.http.PlatformHttpServiceContextCustomizer;
 import org.apache.camel.k.listener.ContextConfigurer;
 import org.apache.camel.k.listener.SourcesConfigurer;
 import org.apache.camel.k.main.support.MyBean;
+import org.apache.camel.k.main.support.MyProcessor;
 import org.apache.camel.k.support.SourcesSupport;
 import org.apache.camel.k.test.AvailablePortFinder;
 import org.apache.camel.model.ModelCamelContext;
@@ -104,10 +105,14 @@ public class RuntimeTest {
 
     @Test
     public void testLoadJavaSource() throws Exception {
-        runtime.addListener(SourcesSupport.forRoutes("classpath:MyRoutesWithBeans.java", "classpath:MyRoutesConfig.java"));
+        runtime.setProperties(mapOf(
+            "camel.beans.myProcessor", "#class:" + MyProcessor.class.getName()
+        ));
+
+        runtime.addListener(SourcesSupport.forRoutes("classpath:MyRoutesWithBeans.java"));
         runtime.addListener(Runtime.Phase.Started, r -> {
             assertThat(runtime.getCamelContext().getRoutes()).hasSize(1);
-            assertThat(runtime.getRegistry().lookupByName("my-processor")).isNotNull();
+            assertThat(runtime.getRegistry().lookupByName("myProcessor")).isNotNull();
             assertThat(runtime.getRegistry().lookupByName("my-bean")).isInstanceOfSatisfying(MyBean.class, b -> {
                 assertThat(b).hasFieldOrPropertyWithValue("name", "my-bean-name");
             });
@@ -121,15 +126,16 @@ public class RuntimeTest {
         runtime.setInitialProperties(
             "camel.k.sources[0].name", "MyRoutesWithBeans",
             "camel.k.sources[0].location", "classpath:MyRoutesWithBeans.java",
-            "camel.k.sources[0].language", "java",
-            "camel.k.sources[1].name", "MyRoutesConfig",
-            "camel.k.sources[1].location", "classpath:MyRoutesConfig.java",
-            "camel.k.sources[1].language", "java"
+            "camel.k.sources[0].language", "java"
         );
+        runtime.setProperties(mapOf(
+            "camel.beans.myProcessor", "#class:" + MyProcessor.class.getName()
+        ));
+
         runtime.addListener(new SourcesConfigurer());
         runtime.addListener(Runtime.Phase.Started, r -> {
             assertThat(runtime.getCamelContext().getRoutes()).hasSize(1);
-            assertThat(runtime.getRegistry().lookupByName("my-processor")).isNotNull();
+            assertThat(runtime.getRegistry().lookupByName("myProcessor")).isNotNull();
             assertThat(runtime.getRegistry().lookupByName("my-bean")).isInstanceOfSatisfying(MyBean.class, b -> {
                 assertThat(b).hasFieldOrPropertyWithValue("name", "my-bean-name");
             });
@@ -141,14 +147,17 @@ public class RuntimeTest {
     @Test
     public void testLoadJavaSourceFromSimpleProperties() throws Exception {
         runtime.setInitialProperties(
-            "camel.k.sources[0].location", "classpath:MyRoutesWithBeans.java",
-            "camel.k.sources[1].location", "classpath:MyRoutesConfig.java"
+            "camel.k.sources[0].location", "classpath:MyRoutesWithBeans.java"
         );
+        runtime.setProperties(mapOf(
+            "camel.beans.myProcessor", "#class:" + MyProcessor.class.getName()
+        ));
+
         runtime.addListener(new SourcesConfigurer());
         runtime.addListener(Runtime.Phase.Started, Runtime::stop);
         runtime.run();
 
-        assertThat(runtime.getRegistry().lookupByName("my-processor")).isNotNull();
+        assertThat(runtime.getRegistry().lookupByName("myProcessor")).isNotNull();
         assertThat(runtime.getRegistry().lookupByName("my-bean")).isInstanceOfSatisfying(MyBean.class, b -> {
             assertThat(b).hasFieldOrPropertyWithValue("name", "my-bean-name");
         });
diff --git a/camel-k-loader-java/src/test/resources/MyRoutesConfig.java b/camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/support/MyProcessor.java
similarity index 70%
rename from camel-k-loader-java/src/test/resources/MyRoutesConfig.java
rename to camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/support/MyProcessor.java
index bf733e7..db9f965 100644
--- a/camel-k-loader-java/src/test/resources/MyRoutesConfig.java
+++ b/camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/support/MyProcessor.java
@@ -14,20 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-import org.apache.camel.BindToRegistry;
+package org.apache.camel.k.main.support;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-
-public class MyRoutesConfig {
-    @BindToRegistry
-    public static MyProcessor myProcessor() {
-        return new MyProcessor();
-    }
 
-    public static class MyProcessor implements Processor {
-        @Override
-        public void process(Exchange exchange) throws Exception {
-        }
+public class MyProcessor implements Processor {
+    @Override
+    public void process(Exchange exchange) throws Exception {
     }
-}
\ No newline at end of file
+}
diff --git a/camel-k-main/camel-k-runtime-main/src/test/resources/MyRoutesConfig.java b/camel-k-main/camel-k-runtime-main/src/test/resources/MyRoutesConfig.java
deleted file mode 100644
index 65f8a05..0000000
--- a/camel-k-main/camel-k-runtime-main/src/test/resources/MyRoutesConfig.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import org.apache.camel.BindToRegistry;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-
-public class MyRoutesConfig {
-    @BindToRegistry("my-processor")
-    public static MyProcessor myProcessor() {
-        return new MyProcessor();
-    }
-
-    public static class MyProcessor implements Processor {
-        @Override
-        public void process(Exchange exchange) throws Exception {
-        }
-    }
-}
\ No newline at end of file
diff --git a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java
index 27927c6..87d6c81 100644
--- a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java
+++ b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java
@@ -29,6 +29,7 @@ import javax.ws.rs.core.MediaType;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.RoutesBuilder;
 import org.apache.camel.k.Constants;
 import org.apache.camel.k.Runtime;
 import org.apache.camel.k.Source;
@@ -82,18 +83,16 @@ public class Application {
         interceptor.setRuntime(rt);
         interceptor.setOverridableComponents("timer");
 
-        SourceLoader.Result result = interceptor.afterLoad(
+        RoutesBuilder builder = interceptor.afterLoad(
             loader,
             source,
             loader.load(rt, source));
 
-        result.builder().ifPresent(b -> {
-            try {
-                context.addRoutes(b);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        });
+        try {
+            context.addRoutes(builder);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
 
         return "" + context.getRoutesSize();
     }
diff --git a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-loader-support/src/main/java/org/apache/camel/k/loader/support/LoaderSupport.java b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-loader-support/src/main/java/org/apache/camel/k/loader/support/LoaderSupport.java
index 7e36b83..2f358ca 100644
--- a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-loader-support/src/main/java/org/apache/camel/k/loader/support/LoaderSupport.java
+++ b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-loader-support/src/main/java/org/apache/camel/k/loader/support/LoaderSupport.java
@@ -23,6 +23,7 @@ import javax.json.JsonArrayBuilder;
 import javax.json.JsonObject;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.RoutesBuilder;
 import org.apache.camel.k.Runtime;
 import org.apache.camel.k.Source;
 import org.apache.camel.k.SourceLoader;
@@ -36,10 +37,9 @@ public final class LoaderSupport {
         final SourceLoader loader = context.getRegistry().lookupByNameAndType(loaderId, SourceLoader.class);
         final Runtime runtime = Runtime.on(context);
         final Source source = Sources.fromBytes(name, loaderId, null, code);
-        final SourceLoader.Result result = loader.load(Runtime.on(context), source);
+        final RoutesBuilder builder = loader.load(Runtime.on(context), source);
 
-        result.builder().ifPresent(runtime::addRoutes);
-        result.configuration().ifPresent(runtime::addConfiguration);
+        runtime.addRoutes(builder);
 
         return Json.createObjectBuilder()
             .add("components", extractComponents(context))
diff --git a/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java b/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java
index 8dcb621..0d971f5 100644
--- a/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java
+++ b/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java
@@ -63,11 +63,6 @@ public final class Application {
         }
 
         @Override
-        public void addConfiguration(Object configuration) {
-            main.configure().addConfiguration(configuration);
-        }
-
-        @Override
         public void setInitialProperties(Properties properties) {
             main.setInitialProperties(properties);
         }
diff --git a/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java b/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java
index d0979a0..b43152c 100644
--- a/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java
+++ b/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java
@@ -87,10 +87,6 @@ public interface Runtime extends HasCamelContext, AutoCloseable {
         }
     }
 
-    default void addConfiguration(Object configuration) {
-        throw new UnsupportedOperationException();
-    }
-
     default void setPropertiesLocations(Collection<String> locations) {
         getCamelContext().getPropertiesComponent().setLocation(
             locations.stream()
diff --git a/camel-k-runtime-core/src/main/java/org/apache/camel/k/SourceLoader.java b/camel-k-runtime-core/src/main/java/org/apache/camel/k/SourceLoader.java
index 923b3ee..0b15130 100644
--- a/camel-k-runtime-core/src/main/java/org/apache/camel/k/SourceLoader.java
+++ b/camel-k-runtime-core/src/main/java/org/apache/camel/k/SourceLoader.java
@@ -17,10 +17,8 @@
 package org.apache.camel.k;
 
 import java.util.List;
-import java.util.Optional;
 
 import org.apache.camel.RoutesBuilder;
-import org.apache.camel.util.ObjectHelper;
 
 public interface SourceLoader {
     /**
@@ -38,65 +36,11 @@ public interface SourceLoader {
      * @return the RoutesBuilder.
      * @throws Exception
      */
-    Result load(Runtime runtime, Source source) throws Exception;
+    RoutesBuilder load(Runtime runtime, Source source);
 
     /**
-     * Represent the result of the process of loading a {@link Source}.
+     * Define some entry point to intercept the creation fo routes from a {@link Source}
      */
-    interface Result {
-        /**
-         * A {@RoutesBuilder} containing routes to be added to the {@link org.apache.camel.CamelContext}.
-         */
-        Optional<RoutesBuilder> builder();
-
-        /**
-         * A configuration class that can be used to customize the {@link org.apache.camel.CamelContext}.
-         */
-        Optional<Object> configuration();
-
-        /**
-         * Construct an instance of {@link Result} for the given {@link RoutesBuilder}.
-         */
-        static Result on(RoutesBuilder target) {
-            ObjectHelper.notNull(target, "target");
-
-            return new Result() {
-                @Override
-                public Optional<RoutesBuilder> builder() {
-                    return Optional.of(target);
-                }
-
-                @Override
-                public Optional<Object> configuration() {
-                    return Optional.empty();
-                }
-            };
-        }
-
-        /**
-         * Construct an instance of {@link Result} by determining the type of hte given target object..
-         */
-        static Result on(Object target) {
-            ObjectHelper.notNull(target, "target");
-
-            return new Result() {
-                @Override
-                public Optional<RoutesBuilder> builder() {
-                    return target instanceof RoutesBuilder
-                        ? Optional.of((RoutesBuilder)target)
-                        : Optional.empty();
-                }
-
-                @Override
-                public Optional<Object> configuration() {
-                    return target instanceof RoutesBuilder
-                        ? Optional.empty()
-                        : Optional.of(target);
-                }
-            };
-        }
-    }
-
     interface Interceptor {
         /**
          * Invoked before the source is materialized top a RoutesBuilder.
@@ -107,8 +51,8 @@ public interface SourceLoader {
         /**
          * Invoked after the source is materialized and before is added to the runtime.
          */
-        default Result afterLoad(SourceLoader loader, Source source, Result result) {
-            return result;
+        default RoutesBuilder afterLoad(SourceLoader loader, Source source, RoutesBuilder builder) {
+            return builder;
         }
     }
 }
diff --git a/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/DelegatingRuntime.java b/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/DelegatingRuntime.java
index 960306b..9cce10f 100644
--- a/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/DelegatingRuntime.java
+++ b/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/DelegatingRuntime.java
@@ -78,11 +78,6 @@ public class DelegatingRuntime implements Runtime {
     }
 
     @Override
-    public void addConfiguration(Object configuration) {
-        runtime.addConfiguration(configuration);
-    }
-
-    @Override
     public void setPropertiesLocations(Collection<String> locations) {
         runtime.setPropertiesLocations(locations);
     }
diff --git a/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/RouteBuilders.java b/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/RouteBuilders.java
index 63b9e70..fbb67bc 100644
--- a/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/RouteBuilders.java
+++ b/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/RouteBuilders.java
@@ -17,17 +17,19 @@
 package org.apache.camel.k.support;
 
 import java.io.Reader;
-import java.util.function.BiConsumer;
-import java.util.function.Consumer;
 
+import org.apache.camel.RoutesBuilder;
+import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.builder.endpoint.EndpointRouteBuilder;
 import org.apache.camel.k.Source;
+import org.apache.camel.util.function.ThrowingBiConsumer;
+import org.apache.camel.util.function.ThrowingConsumer;
 
 public final class RouteBuilders {
     private RouteBuilders() {
     }
 
-    public static EndpointRouteBuilder endpoint(Source source, BiConsumer<Reader, EndpointRouteBuilder> consumer) {
+    public static EndpointRouteBuilder endpoint(Source source, ThrowingBiConsumer<Reader, EndpointRouteBuilder, Exception> consumer) {
         return new EndpointRouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -38,7 +40,7 @@ public final class RouteBuilders {
         };
     }
 
-    public static EndpointRouteBuilder endpoint(Consumer<EndpointRouteBuilder> consumer) {
+    public static EndpointRouteBuilder endpoint(ThrowingConsumer<EndpointRouteBuilder, Exception> consumer) {
         return new EndpointRouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -46,4 +48,24 @@ public final class RouteBuilders {
             }
         };
     }
+
+    public static RoutesBuilder route(Source source, ThrowingBiConsumer<Reader, RouteBuilder, Exception> consumer) {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                try (Reader reader = source.resolveAsReader(getContext())) {
+                    consumer.accept(reader, this);
+                }
+            }
+        };
+    }
+
+    public static RoutesBuilder route(ThrowingConsumer<RouteBuilder, Exception> consumer) {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                consumer.accept(this);
+            }
+        };
+    }
 }
diff --git a/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/SourcesSupport.java b/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/SourcesSupport.java
index 0482ec7..88dda22 100644
--- a/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/SourcesSupport.java
+++ b/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/SourcesSupport.java
@@ -101,14 +101,13 @@ public final class SourcesSupport {
                 interceptor.beforeLoad(loader, source);
             }
 
-            SourceLoader.Result result = loader.load(runtime, source);
+            RoutesBuilder result = loader.load(runtime, source);
 
             for (SourceLoader.Interceptor interceptor: interceptors) {
                 result = interceptor.afterLoad(loader, source, result);
             }
 
-            result.builder().ifPresent(runtime::addRoutes);
-            result.configuration().ifPresent(runtime::addConfiguration);
+            runtime.addRoutes(result);
         } catch (Exception e) {
             throw RuntimeCamelException.wrapRuntimeCamelException(e);
         }
@@ -128,37 +127,33 @@ public final class SourcesSupport {
         return List.of(
             new SourceLoader.Interceptor() {
                 @Override
-                public SourceLoader.Result afterLoad(SourceLoader loader, Source source, SourceLoader.Result result) {
-                    RouteBuilder builder = result.builder()
-                        .map(RouteBuilder.class::cast)
-                        .orElseThrow(() -> new IllegalArgumentException("Unexpected routes builder type"));
-
-                    builder.addLifecycleInterceptor(new RouteBuilderLifecycleStrategy() {
-                        @Override
-                        public void afterConfigure(RouteBuilder builder) {
-                            List<RouteDefinition> routes = builder.getRouteCollection().getRoutes();
-                            List<RouteTemplateDefinition> templates = builder.getRouteTemplateCollection().getRouteTemplates();
-
-                            if (routes.size() != 1) {
-                                throw new IllegalArgumentException("There should be a single route definition, got " + routes.size());
+                public RoutesBuilder afterLoad(SourceLoader loader, Source source, RoutesBuilder builder) {
+                    return SourcesSupport.afterConfigure(builder, rb -> {
+                        rb.addLifecycleInterceptor(new RouteBuilderLifecycleStrategy() {
+                            @Override
+                            public void afterConfigure(RouteBuilder builder) {
+                                List<RouteDefinition> routes = builder.getRouteCollection().getRoutes();
+                                List<RouteTemplateDefinition> templates = builder.getRouteTemplateCollection().getRouteTemplates();
+
+                                if (routes.size() != 1) {
+                                    throw new IllegalArgumentException("There should be a single route definition, got " + routes.size());
+                                }
+                                if (!templates.isEmpty()) {
+                                    throw new IllegalArgumentException("There should not be any template, got " + templates.size());
+                                }
+
+                                // create a new template from the source
+                                RouteTemplateDefinition templatesDefinition = builder.getRouteTemplateCollection().routeTemplate(source.getId());
+                                templatesDefinition.setRoute(routes.get(0));
+
+                                source.getPropertyNames().forEach(templatesDefinition::templateParameter);
+
+                                // remove all routes definitions as they have been translated
+                                // in the related route template
+                                routes.clear();
                             }
-                            if (!templates.isEmpty()) {
-                                throw new IllegalArgumentException("There should not be any template, got " + templates.size());
-                            }
-
-                            // create a new template from the source
-                            RouteTemplateDefinition templatesDefinition = builder.getRouteTemplateCollection().routeTemplate(source.getId());
-                            templatesDefinition.setRoute(routes.get(0));
-
-                            source.getPropertyNames().forEach(templatesDefinition::templateParameter);
-
-                            // remove all routes definitions as they have been translated
-                            // in the related route template
-                            routes.clear();
-                        }
+                        });
                     });
-
-                    return SourceLoader.Result.on(builder);
                 }
             }
         );
diff --git a/camel-k-runtime-cron/src/main/java/org/apache/camel/k/cron/CronSourceLoaderInterceptor.java b/camel-k-runtime-cron/src/main/java/org/apache/camel/k/cron/CronSourceLoaderInterceptor.java
index 36ac205..21d55a2 100644
--- a/camel-k-runtime-cron/src/main/java/org/apache/camel/k/cron/CronSourceLoaderInterceptor.java
+++ b/camel-k-runtime-cron/src/main/java/org/apache/camel/k/cron/CronSourceLoaderInterceptor.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.k.cron;
 
-import java.util.Optional;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
@@ -75,24 +73,8 @@ public class CronSourceLoaderInterceptor implements SourceLoader.Interceptor, Ru
     }
 
     @Override
-    public void beforeLoad(SourceLoader loader, Source source) {
-        // no-op
-    }
-
-    @Override
-    public SourceLoader.Result afterLoad(SourceLoader loader, Source source, SourceLoader.Result result) {
-        return new SourceLoader.Result() {
-            @Override
-            public Optional<RoutesBuilder> builder() {
-                return result.builder().map(
-                    builder -> SourcesSupport.afterConfigure(builder, CronSourceLoaderInterceptor.this::afterConfigure)
-                );
-            }
-            @Override
-            public Optional<Object> configuration() {
-                return result.configuration();
-            }
-        };
+    public RoutesBuilder afterLoad(SourceLoader loader, Source source, RoutesBuilder builder) {
+        return SourcesSupport.afterConfigure(builder, CronSourceLoaderInterceptor.this::afterConfigure);
     }
 
     private void afterConfigure(RouteBuilder builder) {
diff --git a/camel-k-runtime-knative/src/main/java/org/apache/camel/k/loader/knative/KnativeSourceLoaderInterceptor.java b/camel-k-runtime-knative/src/main/java/org/apache/camel/k/loader/knative/KnativeSourceLoaderInterceptor.java
index 979fae7..ab670d0 100644
--- a/camel-k-runtime-knative/src/main/java/org/apache/camel/k/loader/knative/KnativeSourceLoaderInterceptor.java
+++ b/camel-k-runtime-knative/src/main/java/org/apache/camel/k/loader/knative/KnativeSourceLoaderInterceptor.java
@@ -17,7 +17,6 @@
 package org.apache.camel.k.loader.knative;
 
 import java.util.List;
-import java.util.Optional;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.RoutesBuilder;
@@ -36,25 +35,8 @@ public class KnativeSourceLoaderInterceptor implements SourceLoader.Interceptor
     private static final Logger LOGGER = LoggerFactory.getLogger(KnativeSourceLoaderInterceptor.class);
 
     @Override
-    public void beforeLoad(SourceLoader loader, Source source) {
-        // no-op
-    }
-
-    @Override
-    public SourceLoader.Result afterLoad(SourceLoader loader, Source source, SourceLoader.Result result) {
-        return new SourceLoader.Result() {
-            @Override
-            public Optional<RoutesBuilder> builder() {
-                return result.builder().map(
-                    bulider -> SourcesSupport.afterConfigure(bulider, KnativeSourceLoaderInterceptor::afterConfigure)
-                );
-            }
-
-            @Override
-            public Optional<Object> configuration() {
-                return result.configuration();
-            }
-        };
+    public RoutesBuilder afterLoad(SourceLoader loader, Source source, RoutesBuilder bulider) {
+        return SourcesSupport.afterConfigure(bulider, KnativeSourceLoaderInterceptor::afterConfigure);
     }
 
     private static void afterConfigure(RouteBuilder builder) {