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
commit 8d7322356ba1b0bf038907b6d0a84bf119d1ffaf Author: Luca Burgazzoli <lburgazz...@gmail.com> AuthorDate: Mon Dec 14 14:34:47 2020 +0100 api(SourceLoader): remove dependency on org.apache.camel.k.Runtime --- .../main/java/org/apache/camel/k/SourceLoader.java | 9 ++++---- .../org/apache/camel/k/support/SourcesSupport.java | 2 +- .../java/org/apache/camel/k/cron/CronTest.java | 2 +- .../k/loader/groovy/GroovySourceLoader.groovy | 6 +++--- .../camel/k/loader/java/JavaSourceLoader.java | 24 ++++++++++------------ .../camel/k/loader/js/JavaScriptSourceLoader.java | 7 +++---- .../camel/k/loader/kotlin/KotlinSourceLoader.kt | 6 +++--- .../apache/camel/k/loader/xml/XmlSourceLoader.java | 14 ++++++------- .../camel/k/loader/yaml/YamlSourceLoader.java | 8 ++++---- .../camel/k/loader/yaml/support/TestSupport.groovy | 5 ++--- .../k/quarkus/cron/deployment/Application.java | 2 +- .../camel/k/quarkus/it/webhook/Application.java | 2 +- .../camel/k/loader/support/LoaderSupport.java | 2 +- 13 files changed, 43 insertions(+), 46 deletions(-) diff --git a/camel-k-core/api/src/main/java/org/apache/camel/k/SourceLoader.java b/camel-k-core/api/src/main/java/org/apache/camel/k/SourceLoader.java index 602de98..a7c0045 100644 --- a/camel-k-core/api/src/main/java/org/apache/camel/k/SourceLoader.java +++ b/camel-k-core/api/src/main/java/org/apache/camel/k/SourceLoader.java @@ -16,8 +16,9 @@ */ package org.apache.camel.k; -import java.util.List; +import java.util.Collection; +import org.apache.camel.CamelContext; import org.apache.camel.RoutesBuilder; public interface SourceLoader { @@ -26,16 +27,16 @@ public interface SourceLoader { * * @return the supported languages. */ - List<String> getSupportedLanguages(); + Collection<String> getSupportedLanguages(); /** * Creates a camel {@link RoutesBuilder} from the given resource. * - * @param runtime the runtime. + * @param camelContext the runtime. * @param source the source to load. * @return the RoutesBuilder. */ - RoutesBuilder load(Runtime runtime, Source source); + RoutesBuilder load(CamelContext camelContext, Source source); /** * Define some entry point to intercept the creation fo routes from a {@link Source} diff --git a/camel-k-core/support/src/main/java/org/apache/camel/k/support/SourcesSupport.java b/camel-k-core/support/src/main/java/org/apache/camel/k/support/SourcesSupport.java index 968ff95..34215d4 100644 --- a/camel-k-core/support/src/main/java/org/apache/camel/k/support/SourcesSupport.java +++ b/camel-k-core/support/src/main/java/org/apache/camel/k/support/SourcesSupport.java @@ -100,7 +100,7 @@ public final class SourcesSupport { interceptor.beforeLoad(loader, source); } - RoutesBuilder result = loader.load(runtime, source); + RoutesBuilder result = loader.load(runtime.getCamelContext(), source); for (SourceLoader.Interceptor interceptor: interceptors) { result = interceptor.afterLoad(loader, source, result); diff --git a/camel-k-cron/impl/src/test/java/org/apache/camel/k/cron/CronTest.java b/camel-k-cron/impl/src/test/java/org/apache/camel/k/cron/CronTest.java index 1be90e4..83c9d09 100644 --- a/camel-k-cron/impl/src/test/java/org/apache/camel/k/cron/CronTest.java +++ b/camel-k-cron/impl/src/test/java/org/apache/camel/k/cron/CronTest.java @@ -53,7 +53,7 @@ public class CronTest { RoutesBuilder builder = interceptor.afterLoad( loader, source, - loader.load(runtime, source)); + loader.load(runtime.getCamelContext(), source)); runtime.getCamelContext().addRoutes(builder); diff --git a/camel-k-loader-groovy/impl/src/main/groovy/org/apache/camel/k/loader/groovy/GroovySourceLoader.groovy b/camel-k-loader-groovy/impl/src/main/groovy/org/apache/camel/k/loader/groovy/GroovySourceLoader.groovy index d5b09aa..a635ab7 100644 --- a/camel-k-loader-groovy/impl/src/main/groovy/org/apache/camel/k/loader/groovy/GroovySourceLoader.groovy +++ b/camel-k-loader-groovy/impl/src/main/groovy/org/apache/camel/k/loader/groovy/GroovySourceLoader.groovy @@ -16,8 +16,8 @@ */ package org.apache.camel.k.loader.groovy +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 import org.apache.camel.k.loader.groovy.dsl.IntegrationConfiguration @@ -27,12 +27,12 @@ import org.codehaus.groovy.control.customizers.ImportCustomizer class GroovySourceLoader implements SourceLoader { @Override - List<String> getSupportedLanguages() { + Collection<String> getSupportedLanguages() { return Collections.singletonList('groovy') } @Override - RoutesBuilder load(Runtime runtime, Source source) { + RoutesBuilder load(CamelContext camelContext, Source source) { return RouteBuilders.endpoint(source, { reader, builder -> def ic = new ImportCustomizer() ic.addStarImports('org.apache.camel') diff --git a/camel-k-loader-java/impl/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java b/camel-k-loader-java/impl/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java index 5286090..b3e7f8d 100644 --- a/camel-k-loader-java/impl/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java +++ b/camel-k-loader-java/impl/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java @@ -18,14 +18,14 @@ package org.apache.camel.k.loader.java; import java.io.IOException; import java.io.InputStream; +import java.util.Collection; import java.util.Collections; -import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.camel.CamelContext; import org.apache.camel.RoutesBuilder; import org.apache.camel.k.CompositeClassloader; -import org.apache.camel.k.Runtime; import org.apache.camel.k.Source; import org.apache.camel.k.SourceLoader; import org.apache.camel.k.annotation.Loader; @@ -38,13 +38,13 @@ public class JavaSourceLoader implements SourceLoader { private static final Pattern PACKAGE_PATTERN = Pattern.compile("^\\s*package\\s+([a-zA-Z][\\.\\w]*)\\s*;.*$", Pattern.MULTILINE); @Override - public List<String> getSupportedLanguages() { + public Collection<String> getSupportedLanguages() { return Collections.singletonList("java"); } @Override - public RoutesBuilder load(Runtime runtime, Source source) { - try (InputStream is = source.resolveAsInputStream(runtime.getCamelContext())) { + public RoutesBuilder load(CamelContext camelContext, Source source) { + try (InputStream is = source.resolveAsInputStream(camelContext)) { final String content = IOHelper.loadText(is); final String name = determineQualifiedName(source, content); final Reflect compiled = Reflect.compile(name, content); @@ -53,7 +53,7 @@ public class JavaSourceLoader implements SourceLoader { // 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 // to add it to the ApplicationContextClassLoader. - final ClassLoader loader = runtime.getCamelContext().getApplicationContextClassLoader(); + final ClassLoader loader = camelContext.getApplicationContextClassLoader(); if (loader instanceof CompositeClassloader) { ((CompositeClassloader) loader).addClassLoader(instance.getClass().getClassLoader()); } @@ -65,13 +65,11 @@ public class JavaSourceLoader implements SourceLoader { } private static String determineQualifiedName(Source source, String content) { - String name = StringSupport.substringBefore(source.getName(), ".java"); - Matcher matcher = PACKAGE_PATTERN.matcher(content); + final String name = StringSupport.substringBefore(source.getName(), ".java"); + final Matcher matcher = PACKAGE_PATTERN.matcher(content); - if (matcher.find()) { - name = matcher.group(1) + "." + name; - } - - return name; + return matcher.find() + ? matcher.group(1) + "." + name + : name; } } diff --git a/camel-k-loader-js/impl/src/main/java/org/apache/camel/k/loader/js/JavaScriptSourceLoader.java b/camel-k-loader-js/impl/src/main/java/org/apache/camel/k/loader/js/JavaScriptSourceLoader.java index 031bbb5..bf4fe6f 100644 --- a/camel-k-loader-js/impl/src/main/java/org/apache/camel/k/loader/js/JavaScriptSourceLoader.java +++ b/camel-k-loader-js/impl/src/main/java/org/apache/camel/k/loader/js/JavaScriptSourceLoader.java @@ -17,13 +17,12 @@ package org.apache.camel.k.loader.js; import java.io.Reader; +import java.util.Collection; import java.util.Collections; -import java.util.List; import org.apache.camel.CamelContext; import org.apache.camel.RoutesBuilder; import org.apache.camel.builder.endpoint.EndpointRouteBuilder; -import org.apache.camel.k.Runtime; import org.apache.camel.k.Source; import org.apache.camel.k.SourceLoader; import org.apache.camel.k.annotation.Loader; @@ -40,12 +39,12 @@ public class JavaScriptSourceLoader implements SourceLoader { private static final String LANGUAGE_ID = "js"; @Override - public List<String> getSupportedLanguages() { + public Collection<String> getSupportedLanguages() { return Collections.singletonList(LANGUAGE_ID); } @Override - public RoutesBuilder load(Runtime runtime, Source source) { + public RoutesBuilder load(CamelContext camelContext, Source source) { return RouteBuilders.endpoint(source, JavaScriptSourceLoader::doLoad); } diff --git a/camel-k-loader-kotlin/impl/src/main/kotlin/org/apache/camel/k/loader/kotlin/KotlinSourceLoader.kt b/camel-k-loader-kotlin/impl/src/main/kotlin/org/apache/camel/k/loader/kotlin/KotlinSourceLoader.kt index 4b21c18..2b718f4 100644 --- a/camel-k-loader-kotlin/impl/src/main/kotlin/org/apache/camel/k/loader/kotlin/KotlinSourceLoader.kt +++ b/camel-k-loader-kotlin/impl/src/main/kotlin/org/apache/camel/k/loader/kotlin/KotlinSourceLoader.kt @@ -16,11 +16,11 @@ */ package org.apache.camel.k.loader.kotlin +import org.apache.camel.CamelContext 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 import org.apache.camel.k.Source import org.apache.camel.k.SourceLoader import org.apache.camel.k.loader.kotlin.dsl.IntegrationConfiguration @@ -38,11 +38,11 @@ import kotlin.script.experimental.jvmhost.createJvmCompilationConfigurationFromT @Experimental class KotlinSourceLoader : SourceLoader { - override fun getSupportedLanguages(): List<String> { + override fun getSupportedLanguages(): Collection<String>? { return listOf("kts") } - override fun load(runtime: Runtime, source: Source): RoutesBuilder { + override fun load(camelContext: CamelContext, source: Source): RoutesBuilder? { return RouteBuilders.endpoint(source) { reader, builder -> doLoad(reader, builder) } diff --git a/camel-k-loader-xml/impl/src/main/java/org/apache/camel/k/loader/xml/XmlSourceLoader.java b/camel-k-loader-xml/impl/src/main/java/org/apache/camel/k/loader/xml/XmlSourceLoader.java index eb601f9..18c6479 100644 --- a/camel-k-loader-xml/impl/src/main/java/org/apache/camel/k/loader/xml/XmlSourceLoader.java +++ b/camel-k-loader-xml/impl/src/main/java/org/apache/camel/k/loader/xml/XmlSourceLoader.java @@ -17,13 +17,13 @@ package org.apache.camel.k.loader.xml; import java.io.InputStream; +import java.util.Collection; import java.util.Collections; -import java.util.List; +import org.apache.camel.CamelContext; 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; import org.apache.camel.k.SourceLoader; import org.apache.camel.k.annotation.Loader; @@ -39,18 +39,18 @@ public class XmlSourceLoader implements SourceLoader { private static final Logger LOGGER = LoggerFactory.getLogger(XmlSourceLoader.class); @Override - public List<String> getSupportedLanguages() { + public Collection<String> getSupportedLanguages() { return Collections.singletonList("xml"); } @Override - public RoutesBuilder load(Runtime runtime, Source source) { + public RoutesBuilder load(CamelContext camelContext, Source source) { + final ExtendedCamelContext context = camelContext.adapt(ExtendedCamelContext.class); + final XMLRoutesDefinitionLoader loader = context.getXMLRoutesDefinitionLoader(); + return new RouteBuilder() { @Override public void configure() throws Exception { - final ExtendedCamelContext context = getContext().adapt(ExtendedCamelContext.class); - final XMLRoutesDefinitionLoader loader = context.getXMLRoutesDefinitionLoader(); - try (InputStream is = source.resolveAsInputStream(getContext())) { try { Object result = loader.loadRoutesDefinition(getContext(), is); diff --git a/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java index ce014b5..eae3568 100644 --- a/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java +++ b/camel-k-loader-yaml/impl/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java @@ -16,8 +16,8 @@ */ package org.apache.camel.k.loader.yaml; +import java.util.Collection; import java.util.Collections; -import java.util.List; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.DeserializationFeature; @@ -27,8 +27,8 @@ 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.CamelContext; import org.apache.camel.RoutesBuilder; -import org.apache.camel.k.Runtime; import org.apache.camel.k.Source; import org.apache.camel.k.SourceLoader; import org.apache.camel.k.annotation.Loader; @@ -59,12 +59,12 @@ public class YamlSourceLoader implements SourceLoader { } @Override - public List<String> getSupportedLanguages() { + public Collection<String> getSupportedLanguages() { return Collections.singletonList("yaml"); } @Override - public RoutesBuilder load(Runtime runtime, Source source) { + public RoutesBuilder load(CamelContext camelContext, Source source) { return RouteBuilders.route(source, (reader, builder) -> { final StepParser.Resolver resolver = StepParser.Resolver.caching(new YamlStepResolver()); diff --git a/camel-k-loader-yaml/impl/src/test/groovy/org/apache/camel/k/loader/yaml/support/TestSupport.groovy b/camel-k-loader-yaml/impl/src/test/groovy/org/apache/camel/k/loader/yaml/support/TestSupport.groovy index 5612a6e..0a19076 100644 --- a/camel-k-loader-yaml/impl/src/test/groovy/org/apache/camel/k/loader/yaml/support/TestSupport.groovy +++ b/camel-k-loader-yaml/impl/src/test/groovy/org/apache/camel/k/loader/yaml/support/TestSupport.groovy @@ -23,7 +23,6 @@ import org.apache.camel.FluentProducerTemplate import org.apache.camel.builder.RouteBuilder import org.apache.camel.component.mock.MockEndpoint import org.apache.camel.impl.DefaultCamelContext -import org.apache.camel.k.Runtime import org.apache.camel.k.Source import org.apache.camel.k.loader.yaml.YamlSourceLoader import org.apache.camel.k.loader.yaml.YamlStepResolver @@ -76,7 +75,7 @@ class TestSupport extends Specification { Source source, @DelegatesTo(CamelContext) Closure closure) { def context = new DefaultCamelContext() - def builder = new YamlSourceLoader().load(Runtime.on(context), source) + def builder = new YamlSourceLoader().load(context, source) assert builder != null @@ -138,7 +137,7 @@ 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) + def builder = new YamlSourceLoader().load(context, source) assert builder != null diff --git a/itests/camel-k-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java b/itests/camel-k-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java index 874b320..35ddba3 100644 --- a/itests/camel-k-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java +++ b/itests/camel-k-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java @@ -86,7 +86,7 @@ public class Application { RoutesBuilder builder = interceptor.afterLoad( loader, source, - loader.load(rt, source)); + loader.load(rt.getCamelContext(), source)); try { context.addRoutes(builder); diff --git a/itests/camel-k-itests-webhook/src/main/java/org/apache/camel/k/quarkus/it/webhook/Application.java b/itests/camel-k-itests-webhook/src/main/java/org/apache/camel/k/quarkus/it/webhook/Application.java index 0ca8d24..fa23348 100644 --- a/itests/camel-k-itests-webhook/src/main/java/org/apache/camel/k/quarkus/it/webhook/Application.java +++ b/itests/camel-k-itests-webhook/src/main/java/org/apache/camel/k/quarkus/it/webhook/Application.java @@ -68,7 +68,7 @@ public class Application { try { runtime.getCamelContext().addRoutes( - loader.load(org.apache.camel.k.Runtime.on(runtime), source) + loader.load(runtime.getCamelContext(), source) ); return Response.status(Response.Status.OK).build(); diff --git a/support/camel-k-itests-support/camel-k-itests-loader-inspector/src/main/java/org/apache/camel/k/loader/support/LoaderSupport.java b/support/camel-k-itests-support/camel-k-itests-loader-inspector/src/main/java/org/apache/camel/k/loader/support/LoaderSupport.java index 9642872..6b5578b 100644 --- a/support/camel-k-itests-support/camel-k-itests-loader-inspector/src/main/java/org/apache/camel/k/loader/support/LoaderSupport.java +++ b/support/camel-k-itests-support/camel-k-itests-loader-inspector/src/main/java/org/apache/camel/k/loader/support/LoaderSupport.java @@ -37,7 +37,7 @@ 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 RoutesBuilder builder = loader.load(Runtime.on(context), source); + final RoutesBuilder builder = loader.load(context, source); runtime.addRoutes(builder);