You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/03/31 15:25:24 UTC
[camel] branch main updated: CAMEL-15105: make the PackageScanResourceResolver a plugin of the context (#9738)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new f8bc38abb97 CAMEL-15105: make the PackageScanResourceResolver a plugin of the context (#9738)
f8bc38abb97 is described below
commit f8bc38abb97dbafd7ae3da6f621e399f686046af
Author: Otavio Rodolfo Piske <or...@users.noreply.github.com>
AuthorDate: Fri Mar 31 12:25:16 2023 -0300
CAMEL-15105: make the PackageScanResourceResolver a plugin of the context (#9738)
---
.../java/org/apache/camel/ExtendedCamelContext.java | 15 ---------------
.../camel/impl/engine/AbstractCamelContext.java | 2 +-
.../impl/engine/DefaultCamelContextExtension.java | 19 -------------------
.../impl/engine/DefaultComponentNameResolver.java | 4 ++--
.../camel/impl/console/DefaultDevConsolesLoader.java | 3 ++-
.../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------
.../impl/lw/LightweightCamelContextExtension.java | 11 -----------
.../DefaultPackageScanResourceResolverTest.java | 3 ++-
.../camel/impl/health/DefaultHealthChecksLoader.java | 3 ++-
.../org/apache/camel/main/DefaultRoutesCollector.java | 4 ++--
.../java/org/apache/camel/support/PluginHelper.java | 19 +++++++++++++++++++
.../main/java/org/apache/camel/main/KameletMain.java | 2 +-
12 files changed, 31 insertions(+), 60 deletions(-)
diff --git a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
index 2ff49911d8f..d52b281ef58 100644
--- a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
@@ -47,7 +47,6 @@ import org.apache.camel.spi.ModelJAXBContextFactory;
import org.apache.camel.spi.ModelToXMLDumper;
import org.apache.camel.spi.ModelineFactory;
import org.apache.camel.spi.NormalizedEndpointUri;
-import org.apache.camel.spi.PackageScanResourceResolver;
import org.apache.camel.spi.PeriodTaskResolver;
import org.apache.camel.spi.PeriodTaskScheduler;
import org.apache.camel.spi.PluginManager;
@@ -323,20 +322,6 @@ public interface ExtendedCamelContext {
*/
void setDevConsoleResolver(DevConsoleResolver devConsoleResolver);
- /**
- * Returns the package scanning resource resolver
- *
- * @return the resolver
- */
- PackageScanResourceResolver getPackageScanResourceResolver();
-
- /**
- * Sets the package scanning resource resolver to use
- *
- * @param resolver the resolver
- */
- void setPackageScanResourceResolver(PackageScanResourceResolver resolver);
-
/**
* Gets the default FactoryFinder which will be used for the loading the factory class from META-INF
*
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index c8b8351f60a..2c54e962502 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -224,7 +224,6 @@ public abstract class AbstractCamelContext extends BaseService
volatile ModelToXMLDumper modelToXMLDumper;
volatile RestBindingJaxbDataFormatFactory restBindingJaxbDataFormatFactory;
volatile RuntimeCamelCatalog runtimeCamelCatalog;
- volatile PackageScanResourceResolver packageScanResourceResolver;
volatile ModelineFactory modelineFactory;
volatile ProcessorFactory processorFactory;
volatile PeriodTaskResolver periodTaskResolver;
@@ -380,6 +379,7 @@ public abstract class AbstractCamelContext extends BaseService
camelContextExtension.addContextPlugin(UriFactoryResolver.class, createUriFactoryResolver());
camelContextExtension.addContextPlugin(FactoryFinderResolver.class, createFactoryFinderResolver());
camelContextExtension.addContextPlugin(PackageScanClassResolver.class, createPackageScanClassResolver());
+ camelContextExtension.addContextPlugin(PackageScanResourceResolver.class, createPackageScanResourceResolver());
if (build) {
try {
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
index b75cd99cb41..64e2e66d19e 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
@@ -66,7 +66,6 @@ import org.apache.camel.spi.ModelJAXBContextFactory;
import org.apache.camel.spi.ModelToXMLDumper;
import org.apache.camel.spi.ModelineFactory;
import org.apache.camel.spi.NormalizedEndpointUri;
-import org.apache.camel.spi.PackageScanResourceResolver;
import org.apache.camel.spi.PeriodTaskResolver;
import org.apache.camel.spi.PeriodTaskScheduler;
import org.apache.camel.spi.PluginManager;
@@ -369,24 +368,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
return factories.computeIfAbsent(path, camelContext::createFactoryFinder);
}
- @Override
- public PackageScanResourceResolver getPackageScanResourceResolver() {
- if (camelContext.packageScanResourceResolver == null) {
- synchronized (camelContext.lock) {
- if (camelContext.packageScanResourceResolver == null) {
- setPackageScanResourceResolver(camelContext.createPackageScanResourceResolver());
- }
- }
- }
- return camelContext.packageScanResourceResolver;
- }
-
- @Override
- public void setPackageScanResourceResolver(PackageScanResourceResolver packageScanResourceResolver) {
- camelContext.packageScanResourceResolver
- = camelContext.getInternalServiceManager().addService(packageScanResourceResolver);
- }
-
@Override
public ModelJAXBContextFactory getModelJAXBContextFactory() {
if (camelContext.modelJAXBContextFactory == null) {
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultComponentNameResolver.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultComponentNameResolver.java
index 2577f4a46fd..d0d8deaee67 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultComponentNameResolver.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultComponentNameResolver.java
@@ -24,6 +24,7 @@ import org.apache.camel.CamelContext;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.spi.ComponentNameResolver;
import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
public class DefaultComponentNameResolver implements ComponentNameResolver {
@@ -32,8 +33,7 @@ public class DefaultComponentNameResolver implements ComponentNameResolver {
@Override
public Set<String> resolveNames(CamelContext camelContext) {
try {
- return camelContext.getCamelContextExtension()
- .getPackageScanResourceResolver()
+ return PluginHelper.getPackageScanResourceResolver(camelContext)
.findResources(RESOURCE_PATH)
.stream()
.map(Resource::getLocation)
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsolesLoader.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsolesLoader.java
index dcec3304a23..6f60960ddbc 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsolesLoader.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsolesLoader.java
@@ -24,6 +24,7 @@ import org.apache.camel.console.DevConsole;
import org.apache.camel.console.DevConsoleResolver;
import org.apache.camel.spi.PackageScanResourceResolver;
import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.util.StringHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,7 +43,7 @@ public class DefaultDevConsolesLoader {
public DefaultDevConsolesLoader(CamelContext camelContext) {
this.camelContext = camelContext;
- this.resolver = camelContext.getCamelContextExtension().getPackageScanResourceResolver();
+ this.resolver = PluginHelper.getPackageScanResourceResolver(camelContext);
this.devConsoleResolver = camelContext.getCamelContextExtension().getDevConsoleResolver();
}
diff --git a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
index 3bbdbaa8bd5..8665c5c89e2 100644
--- a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
+++ b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
@@ -65,8 +65,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "ModelineFactory": target.setModelineFactory(property(camelContext, org.apache.camel.spi.ModelineFactory.class, value)); return true;
case "name":
case "Name": target.setName(property(camelContext, java.lang.String.class, value)); return true;
- case "packagescanresourceresolver":
- case "PackageScanResourceResolver": target.setPackageScanResourceResolver(property(camelContext, org.apache.camel.spi.PackageScanResourceResolver.class, value)); return true;
case "periodtaskresolver":
case "PeriodTaskResolver": target.setPeriodTaskResolver(property(camelContext, org.apache.camel.spi.PeriodTaskResolver.class, value)); return true;
case "periodtaskscheduler":
@@ -144,8 +142,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "ModelineFactory": return org.apache.camel.spi.ModelineFactory.class;
case "name":
case "Name": return java.lang.String.class;
- case "packagescanresourceresolver":
- case "PackageScanResourceResolver": return org.apache.camel.spi.PackageScanResourceResolver.class;
case "periodtaskresolver":
case "PeriodTaskResolver": return org.apache.camel.spi.PeriodTaskResolver.class;
case "periodtaskscheduler":
@@ -224,8 +220,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "ModelineFactory": return target.getModelineFactory();
case "name":
case "Name": return target.getName();
- case "packagescanresourceresolver":
- case "PackageScanResourceResolver": return target.getPackageScanResourceResolver();
case "periodtaskresolver":
case "PeriodTaskResolver": return target.getPeriodTaskResolver();
case "periodtaskscheduler":
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
index 0d159be27f3..fed1fa2282f 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
@@ -61,7 +61,6 @@ import org.apache.camel.spi.ModelJAXBContextFactory;
import org.apache.camel.spi.ModelToXMLDumper;
import org.apache.camel.spi.ModelineFactory;
import org.apache.camel.spi.NormalizedEndpointUri;
-import org.apache.camel.spi.PackageScanResourceResolver;
import org.apache.camel.spi.PeriodTaskResolver;
import org.apache.camel.spi.PeriodTaskScheduler;
import org.apache.camel.spi.PluginManager;
@@ -265,16 +264,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
throw new UnsupportedOperationException();
}
- @Override
- public PackageScanResourceResolver getPackageScanResourceResolver() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setPackageScanResourceResolver(PackageScanResourceResolver resolver) {
- throw new UnsupportedOperationException();
- }
-
@Override
public FactoryFinder getDefaultFactoryFinder() {
throw new UnsupportedOperationException();
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultPackageScanResourceResolverTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultPackageScanResourceResolverTest.java
index 298b67f4df5..e54d8524858 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultPackageScanResourceResolverTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultPackageScanResourceResolverTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.impl.engine;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.spi.PackageScanResourceResolver;
+import org.apache.camel.support.PluginHelper;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
@@ -26,7 +27,7 @@ public class DefaultPackageScanResourceResolverTest {
@Test
public void testFileResourcesScan() throws Exception {
final DefaultCamelContext ctx = new DefaultCamelContext();
- final PackageScanResourceResolver resolver = ctx.getCamelContextExtension().getPackageScanResourceResolver();
+ final PackageScanResourceResolver resolver = PluginHelper.getPackageScanResourceResolver(ctx);
assertThat(resolver.findResources("file:src/test/resources/org/apache/camel/impl/engine/**/*.xml"))
.hasSize(4)
diff --git a/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthChecksLoader.java b/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthChecksLoader.java
index 780e1e23e26..d9f6eb684f6 100644
--- a/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthChecksLoader.java
+++ b/core/camel-health/src/main/java/org/apache/camel/impl/health/DefaultHealthChecksLoader.java
@@ -24,6 +24,7 @@ import org.apache.camel.health.HealthCheck;
import org.apache.camel.health.HealthCheckResolver;
import org.apache.camel.spi.PackageScanResourceResolver;
import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.util.StringHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,7 +43,7 @@ public class DefaultHealthChecksLoader {
public DefaultHealthChecksLoader(CamelContext camelContext) {
this.camelContext = camelContext;
- this.resolver = camelContext.getCamelContextExtension().getPackageScanResourceResolver();
+ this.resolver = PluginHelper.getPackageScanResourceResolver(camelContext);
this.healthCheckResolver = camelContext.getCamelContextExtension().getHealthCheckResolver();
}
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/DefaultRoutesCollector.java b/core/camel-main/src/main/java/org/apache/camel/main/DefaultRoutesCollector.java
index f93fdead26c..a7e2d6df380 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/DefaultRoutesCollector.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/DefaultRoutesCollector.java
@@ -29,6 +29,7 @@ import org.apache.camel.builder.LambdaRouteBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.spi.PackageScanResourceResolver;
import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.util.AntPathMatcher;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.StopWatch;
@@ -169,8 +170,7 @@ public class DefaultRoutesCollector implements RoutesCollector {
CamelContext camelContext,
String excludePattern,
String includePattern) {
- final ExtendedCamelContext ecc = camelContext.getCamelContextExtension();
- final PackageScanResourceResolver resolver = ecc.getPackageScanResourceResolver();
+ final PackageScanResourceResolver resolver = PluginHelper.getPackageScanResourceResolver(camelContext);
final String[] includes = includePattern != null ? includePattern.split(",") : null;
final String[] excludes = excludePattern != null ? excludePattern.split(",") : null;
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
index e8291f23521..12655450c28 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
@@ -29,6 +29,7 @@ import org.apache.camel.spi.ConfigurerResolver;
import org.apache.camel.spi.FactoryFinderResolver;
import org.apache.camel.spi.LanguageResolver;
import org.apache.camel.spi.PackageScanClassResolver;
+import org.apache.camel.spi.PackageScanResourceResolver;
import org.apache.camel.spi.UriFactoryResolver;
public final class PluginHelper {
@@ -205,4 +206,22 @@ public final class PluginHelper {
public static PackageScanClassResolver getPackageScanClassResolver(ExtendedCamelContext extendedCamelContext) {
return extendedCamelContext.getContextPlugin(PackageScanClassResolver.class);
}
+
+ /**
+ * Returns the package scanning resource resolver
+ *
+ * @return the resolver
+ */
+ public static PackageScanResourceResolver getPackageScanResourceResolver(CamelContext camelContext) {
+ return getPackageScanResourceResolver(camelContext.getCamelContextExtension());
+ }
+
+ /**
+ * Returns the package scanning resource resolver
+ *
+ * @return the resolver
+ */
+ public static PackageScanResourceResolver getPackageScanResourceResolver(ExtendedCamelContext extendedCamelContext) {
+ return extendedCamelContext.getContextPlugin(PackageScanResourceResolver.class);
+ }
}
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
index 71cac713ec8..0dc8f84c024 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
@@ -310,7 +310,7 @@ public class KameletMain extends MainCommandLineSupport {
ClassLoader dynamicCL = createApplicationContextClassLoader();
answer.setApplicationContextClassLoader(dynamicCL);
PluginHelper.getPackageScanClassResolver(answer).addClassLoader(dynamicCL);
- answer.getCamelContextExtension().getPackageScanResourceResolver().addClassLoader(dynamicCL);
+ PluginHelper.getPackageScanResourceResolver(answer).addClassLoader(dynamicCL);
KnownReposResolver known = new KnownReposResolver(camelContext);
known.loadKnownDependencies();