You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/03/31 09:51:48 UTC
[camel] 03/03: CAMEL-15105: make the UriFactoryResolver a plugin of the context
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 634743608380735f7b5441c332f803b1dd275483
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Fri Mar 31 09:11:14 2023 +0200
CAMEL-15105: make the UriFactoryResolver a plugin of the context
---
.../java/org/apache/camel/ExtendedCamelContext.java | 11 -----------
.../camel/impl/engine/AbstractCamelContext.java | 2 +-
.../impl/engine/DefaultCamelContextExtension.java | 19 ++-----------------
.../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------
.../impl/lw/LightweightCamelContextExtension.java | 11 -----------
.../java/org/apache/camel/support/PluginHelper.java | 15 +++++++++++++++
.../main/java/org/apache/camel/main/KameletMain.java | 4 +++-
7 files changed, 21 insertions(+), 47 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 c7c35bfd467..d6082ef3222 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
@@ -67,7 +67,6 @@ import org.apache.camel.spi.RouteStartupOrder;
import org.apache.camel.spi.RoutesLoader;
import org.apache.camel.spi.StartupStepRecorder;
import org.apache.camel.spi.UnitOfWorkFactory;
-import org.apache.camel.spi.UriFactoryResolver;
/**
* Extended {@link CamelContext} which contains the methods and APIs that are not primary intended for Camel end users
@@ -682,16 +681,6 @@ public interface ExtendedCamelContext {
*/
void setRuntimeCamelCatalog(RuntimeCamelCatalog runtimeCamelCatalog);
- /**
- * Gets the {@link UriFactoryResolver} to use.
- */
- UriFactoryResolver getUriFactoryResolver();
-
- /**
- * Sets the {@link UriFactoryResolver} to use.
- */
- void setUriFactoryResolver(UriFactoryResolver uriFactoryResolver);
-
/**
* Internal {@link RouteController} that are only used internally by Camel to perform basic route operations. Do not
* use this as end user.
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 fe8b3dfd9b3..876f8eb565a 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
@@ -213,7 +213,6 @@ public abstract class AbstractCamelContext extends BaseService
volatile ProcessorExchangeFactory processorExchangeFactory;
volatile ReactiveExecutor reactiveExecutor;
volatile Registry registry;
- volatile UriFactoryResolver uriFactoryResolver;
volatile DataFormatResolver dataFormatResolver;
volatile HealthCheckResolver healthCheckResolver;
volatile DevConsoleResolver devConsoleResolver;
@@ -386,6 +385,7 @@ public abstract class AbstractCamelContext extends BaseService
camelContextExtension.addContextPlugin(ComponentNameResolver.class, createComponentNameResolver());
camelContextExtension.addContextPlugin(LanguageResolver.class, createLanguageResolver());
camelContextExtension.addContextPlugin(ConfigurerResolver.class, createConfigurerResolver());
+ camelContextExtension.addContextPlugin(UriFactoryResolver.class, createUriFactoryResolver());
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 98cacd1ec9c..f2505551171 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
@@ -87,9 +87,9 @@ import org.apache.camel.spi.RouteStartupOrder;
import org.apache.camel.spi.RoutesLoader;
import org.apache.camel.spi.StartupStepRecorder;
import org.apache.camel.spi.UnitOfWorkFactory;
-import org.apache.camel.spi.UriFactoryResolver;
import org.apache.camel.support.EndpointHelper;
import org.apache.camel.support.NormalizedUri;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.util.StringHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -246,21 +246,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
return camelContext.managementMBeanAssembler;
}
- public UriFactoryResolver getUriFactoryResolver() {
- if (camelContext.uriFactoryResolver == null) {
- synchronized (camelContext.lock) {
- if (camelContext.uriFactoryResolver == null) {
- setUriFactoryResolver(camelContext.createUriFactoryResolver());
- }
- }
- }
- return camelContext.uriFactoryResolver;
- }
-
- public void setUriFactoryResolver(UriFactoryResolver uriFactoryResolver) {
- camelContext.uriFactoryResolver = camelContext.getInternalServiceManager().addService(uriFactoryResolver);
- }
-
@Override
public Registry getRegistry() {
if (camelContext.registry == null) {
@@ -982,7 +967,7 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
@Override
public EndpointUriFactory getEndpointUriFactory(String scheme) {
- return getUriFactoryResolver().resolveFactory(scheme, camelContext);
+ return PluginHelper.getUriFactoryResolver(this).resolveFactory(scheme, camelContext);
}
@Override
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 42a64c69223..e335485b22b 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
@@ -99,8 +99,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "StartupStepRecorder": target.setStartupStepRecorder(property(camelContext, org.apache.camel.spi.StartupStepRecorder.class, value)); return true;
case "unitofworkfactory":
case "UnitOfWorkFactory": target.setUnitOfWorkFactory(property(camelContext, org.apache.camel.spi.UnitOfWorkFactory.class, value)); return true;
- case "urifactoryresolver":
- case "UriFactoryResolver": target.setUriFactoryResolver(property(camelContext, org.apache.camel.spi.UriFactoryResolver.class, value)); return true;
default: return false;
}
}
@@ -186,8 +184,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "StartupStepRecorder": return org.apache.camel.spi.StartupStepRecorder.class;
case "unitofworkfactory":
case "UnitOfWorkFactory": return org.apache.camel.spi.UnitOfWorkFactory.class;
- case "urifactoryresolver":
- case "UriFactoryResolver": return org.apache.camel.spi.UriFactoryResolver.class;
default: return null;
}
}
@@ -274,8 +270,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "StartupStepRecorder": return target.getStartupStepRecorder();
case "unitofworkfactory":
case "UnitOfWorkFactory": return target.getUnitOfWorkFactory();
- case "urifactoryresolver":
- case "UriFactoryResolver": return target.getUriFactoryResolver();
default: return null;
}
}
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 0b27fc59350..da2443a87a8 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
@@ -83,7 +83,6 @@ import org.apache.camel.spi.RoutesLoader;
import org.apache.camel.spi.StartupStepRecorder;
import org.apache.camel.spi.SupervisingRouteController;
import org.apache.camel.spi.UnitOfWorkFactory;
-import org.apache.camel.spi.UriFactoryResolver;
import org.apache.camel.support.NormalizedUri;
import org.apache.camel.util.StringHelper;
import org.apache.camel.util.URISupport;
@@ -762,16 +761,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
};
}
- @Override
- public UriFactoryResolver getUriFactoryResolver() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setUriFactoryResolver(UriFactoryResolver uriFactoryResolver) {
- throw new UnsupportedOperationException();
- }
-
@Override
public EndpointUriFactory getEndpointUriFactory(String scheme) {
throw new UnsupportedOperationException();
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 589cd220241..5439f21a401 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
@@ -25,6 +25,7 @@ import org.apache.camel.spi.ComponentNameResolver;
import org.apache.camel.spi.ComponentResolver;
import org.apache.camel.spi.ConfigurerResolver;
import org.apache.camel.spi.LanguageResolver;
+import org.apache.camel.spi.UriFactoryResolver;
public final class PluginHelper {
private PluginHelper() {
@@ -120,4 +121,18 @@ public final class PluginHelper {
public static ConfigurerResolver getConfigurerResolver(ExtendedCamelContext extendedCamelContext) {
return extendedCamelContext.getContextPlugin(ConfigurerResolver.class);
}
+
+ /**
+ * Gets the {@link UriFactoryResolver} to use.
+ */
+ public static UriFactoryResolver getUriFactoryResolver(CamelContext camelContext) {
+ return getUriFactoryResolver(camelContext.getCamelContextExtension());
+ }
+
+ /**
+ * Gets the {@link UriFactoryResolver} to use.
+ */
+ public static UriFactoryResolver getUriFactoryResolver(ExtendedCamelContext extendedCamelContext) {
+ return extendedCamelContext.getContextPlugin(UriFactoryResolver.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 1730a72458d..bdfcfcbf283 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
@@ -59,6 +59,7 @@ import org.apache.camel.spi.CliConnectorFactory;
import org.apache.camel.spi.ComponentResolver;
import org.apache.camel.spi.LanguageResolver;
import org.apache.camel.spi.Registry;
+import org.apache.camel.spi.UriFactoryResolver;
import org.apache.camel.startup.jfr.FlightRecorderStartupStepRecorder;
import org.apache.camel.support.service.ServiceHelper;
@@ -445,7 +446,8 @@ public class KameletMain extends MainCommandLineSupport {
answer.setClassResolver(new DependencyDownloaderClassResolver(answer, known));
answer.getCamelContextExtension().addContextPlugin(ComponentResolver.class,
new DependencyDownloaderComponentResolver(answer, stub));
- answer.getCamelContextExtension().setUriFactoryResolver(new DependencyDownloaderUriFactoryResolver(answer));
+ answer.getCamelContextExtension().addContextPlugin(UriFactoryResolver.class,
+ new DependencyDownloaderUriFactoryResolver(answer));
answer.setDataFormatResolver(new DependencyDownloaderDataFormatResolver(answer));
answer.getCamelContextExtension().addContextPlugin(LanguageResolver.class, new DependencyDownloaderLanguageResolver(answer));
answer.setResourceLoader(new DependencyDownloaderResourceLoader(answer));