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/04/02 12:50:09 UTC
[camel] 05/09: CAMEL-15105: make the RuntimeCatalog 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 59af054339b35ad81edbacae0c3d72efab1a5b7f
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Sat Apr 1 17:03:23 2023 +0200
CAMEL-15105: make the RuntimeCatalog a plugin of the context
---
.../component/rest/RestComponentVerifierExtension.java | 3 ++-
.../java/org/apache/camel/ExtendedCamelContext.java | 18 ++++++++----------
.../apache/camel/impl/engine/AbstractCamelContext.java | 2 +-
.../impl/engine/DefaultCamelContextExtension.java | 17 -----------------
.../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------
.../impl/lw/LightweightCamelContextExtension.java | 10 ----------
.../verifier/DefaultComponentVerifierExtension.java | 3 ++-
.../java/org/apache/camel/support/PluginHelper.java | 15 +++++++++++++++
8 files changed, 28 insertions(+), 46 deletions(-)
diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestComponentVerifierExtension.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestComponentVerifierExtension.java
index 6ac8d2c95db..2d41560c904 100644
--- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestComponentVerifierExtension.java
+++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestComponentVerifierExtension.java
@@ -30,6 +30,7 @@ import org.apache.camel.component.extension.verifier.ResultBuilder;
import org.apache.camel.component.extension.verifier.ResultErrorBuilder;
import org.apache.camel.spi.RestConsumerFactory;
import org.apache.camel.spi.RestProducerFactory;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.tooling.model.ComponentModel;
import org.apache.camel.tooling.model.JsonMapper;
import org.apache.camel.util.ObjectHelper;
@@ -93,7 +94,7 @@ public class RestComponentVerifierExtension extends DefaultComponentVerifierExte
if (extension.isPresent()) {
final ComponentVerifierExtension verifier = extension.get();
final RuntimeCamelCatalog catalog
- = getCamelContext().getCamelContextExtension().getRuntimeCamelCatalog();
+ = PluginHelper.getRuntimeCamelCatalog(getCamelContext());
final String json = catalog.componentJSonSchema("rest");
final ComponentModel model = JsonMapper.generateComponentModel(json);
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 16dbcc3c229..85d871635e3 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
@@ -459,16 +459,6 @@ public interface ExtendedCamelContext {
*/
void setRestBindingJaxbDataFormatFactory(RestBindingJaxbDataFormatFactory restBindingJaxbDataFormatFactory);
- /**
- * Gets the {@link RuntimeCamelCatalog} if available on the classpath.
- */
- RuntimeCamelCatalog getRuntimeCamelCatalog();
-
- /**
- * Sets the {@link RuntimeCamelCatalog} to use.
- */
- void setRuntimeCamelCatalog(RuntimeCamelCatalog runtimeCamelCatalog);
-
/**
* Internal {@link RouteController} that are only used internally by Camel to perform basic route operations. Do not
* use this as end user.
@@ -480,6 +470,14 @@ public interface ExtendedCamelContext {
*/
EndpointUriFactory getEndpointUriFactory(String scheme);
+
+ /**
+ * Gets the {@link RuntimeCamelCatalog} if available on the classpath.
+ */
+ @Deprecated
+ default RuntimeCamelCatalog getRuntimeCamelCatalog() {
+ return getContextPlugin(RuntimeCamelCatalog.class);
+ }
/**
* Gets the {@link StartupStepRecorder} to use.
*/
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 a9540eceb28..18de2cc7150 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
@@ -219,7 +219,6 @@ public abstract class AbstractCamelContext extends BaseService
volatile ResourceLoader resourceLoader;
volatile ModelToXMLDumper modelToXMLDumper;
volatile RestBindingJaxbDataFormatFactory restBindingJaxbDataFormatFactory;
- volatile RuntimeCamelCatalog runtimeCamelCatalog;
volatile UnitOfWorkFactory unitOfWorkFactory;
volatile BeanIntrospection beanIntrospection;
volatile boolean eventNotificationApplicable;
@@ -380,6 +379,7 @@ public abstract class AbstractCamelContext extends BaseService
camelContextExtension.lazyAddContextPlugin(RouteFactory.class, this::createRouteFactory);
camelContextExtension.lazyAddContextPlugin(RoutesLoader.class, this::createRoutesLoader);
camelContextExtension.lazyAddContextPlugin(AsyncProcessorAwaitManager.class, this::createAsyncProcessorAwaitManager);
+ camelContextExtension.lazyAddContextPlugin(RuntimeCamelCatalog.class, this::createRuntimeCamelCatalog);
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 dc0532c2898..f0bad898c5b 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
@@ -500,23 +500,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
camelContext.restBindingJaxbDataFormatFactory = restBindingJaxbDataFormatFactory;
}
- @Override
- public RuntimeCamelCatalog getRuntimeCamelCatalog() {
- if (camelContext.runtimeCamelCatalog == null) {
- synchronized (camelContext.lock) {
- if (camelContext.runtimeCamelCatalog == null) {
- setRuntimeCamelCatalog(camelContext.createRuntimeCamelCatalog());
- }
- }
- }
- return camelContext.runtimeCamelCatalog;
- }
-
- @Override
- public void setRuntimeCamelCatalog(RuntimeCamelCatalog runtimeCamelCatalog) {
- camelContext.runtimeCamelCatalog = camelContext.getInternalServiceManager().addService(runtimeCamelCatalog);
- }
-
@Override
public ExchangeFactory getExchangeFactory() {
if (camelContext.exchangeFactory == null) {
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 5866067408b..d7ec3d7c9a2 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
@@ -59,8 +59,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "ResourceLoader": target.setResourceLoader(property(camelContext, org.apache.camel.spi.ResourceLoader.class, value)); return true;
case "restbindingjaxbdataformatfactory":
case "RestBindingJaxbDataFormatFactory": target.setRestBindingJaxbDataFormatFactory(property(camelContext, org.apache.camel.spi.RestBindingJaxbDataFormatFactory.class, value)); return true;
- case "runtimecamelcatalog":
- case "RuntimeCamelCatalog": target.setRuntimeCamelCatalog(property(camelContext, org.apache.camel.catalog.RuntimeCamelCatalog.class, value)); return true;
case "startupsteprecorder":
case "StartupStepRecorder": target.setStartupStepRecorder(property(camelContext, org.apache.camel.spi.StartupStepRecorder.class, value)); return true;
case "unitofworkfactory":
@@ -110,8 +108,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "ResourceLoader": return org.apache.camel.spi.ResourceLoader.class;
case "restbindingjaxbdataformatfactory":
case "RestBindingJaxbDataFormatFactory": return org.apache.camel.spi.RestBindingJaxbDataFormatFactory.class;
- case "runtimecamelcatalog":
- case "RuntimeCamelCatalog": return org.apache.camel.catalog.RuntimeCamelCatalog.class;
case "startupsteprecorder":
case "StartupStepRecorder": return org.apache.camel.spi.StartupStepRecorder.class;
case "unitofworkfactory":
@@ -162,8 +158,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "ResourceLoader": return target.getResourceLoader();
case "restbindingjaxbdataformatfactory":
case "RestBindingJaxbDataFormatFactory": return target.getRestBindingJaxbDataFormatFactory();
- case "runtimecamelcatalog":
- case "RuntimeCamelCatalog": return target.getRuntimeCamelCatalog();
case "startupsteprecorder":
case "StartupStepRecorder": return target.getStartupStepRecorder();
case "unitofworkfactory":
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 1878d61c495..0185cc309ce 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
@@ -367,16 +367,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
throw new UnsupportedOperationException();
}
- @Override
- public RuntimeCamelCatalog getRuntimeCamelCatalog() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setRuntimeCamelCatalog(RuntimeCamelCatalog runtimeCamelCatalog) {
- throw new UnsupportedOperationException();
- }
-
@Override
public void addRoute(Route route) {
throw new UnsupportedOperationException();
diff --git a/core/camel-support/src/main/java/org/apache/camel/component/extension/verifier/DefaultComponentVerifierExtension.java b/core/camel-support/src/main/java/org/apache/camel/component/extension/verifier/DefaultComponentVerifierExtension.java
index d1429eac355..c44fb3a06ee 100644
--- a/core/camel-support/src/main/java/org/apache/camel/component/extension/verifier/DefaultComponentVerifierExtension.java
+++ b/core/camel-support/src/main/java/org/apache/camel/component/extension/verifier/DefaultComponentVerifierExtension.java
@@ -29,6 +29,7 @@ import org.apache.camel.catalog.EndpointValidationResult;
import org.apache.camel.catalog.RuntimeCamelCatalog;
import org.apache.camel.component.extension.ComponentVerifierExtension;
import org.apache.camel.support.CamelContextHelper;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.support.PropertyBindingSupport;
import org.apache.camel.util.PropertiesHelper;
@@ -126,7 +127,7 @@ public class DefaultComponentVerifierExtension implements ComponentVerifierExten
}
// Grab the runtime catalog to check parameters
- RuntimeCamelCatalog catalog = camelContext.getCamelContextExtension().getRuntimeCamelCatalog();
+ RuntimeCamelCatalog catalog = PluginHelper.getRuntimeCamelCatalog(camelContext);
// Convert from Map<String, Object> to Map<String, String> as required
// by the Camel Catalog
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 4870a9e22f5..f3bf2e0a77a 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
@@ -21,6 +21,7 @@ import java.util.concurrent.ScheduledExecutorService;
import org.apache.camel.CamelContext;
import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.catalog.RuntimeCamelCatalog;
import org.apache.camel.console.DevConsoleResolver;
import org.apache.camel.health.HealthCheckResolver;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
@@ -455,4 +456,18 @@ public final class PluginHelper {
public static AsyncProcessorAwaitManager getAsyncProcessorAwaitManager(ExtendedCamelContext extendedCamelContext) {
return extendedCamelContext.getContextPlugin(AsyncProcessorAwaitManager.class);
}
+
+ /**
+ * Gets the {@link RuntimeCamelCatalog} if available on the classpath.
+ */
+ public static RuntimeCamelCatalog getRuntimeCamelCatalog(CamelContext camelContext) {
+ return getRuntimeCamelCatalog(camelContext.getCamelContextExtension());
+ }
+
+ /**
+ * Gets the {@link RuntimeCamelCatalog} if available on the classpath.
+ */
+ public static RuntimeCamelCatalog getRuntimeCamelCatalog(ExtendedCamelContext extendedCamelContext) {
+ return extendedCamelContext.getContextPlugin(RuntimeCamelCatalog.class);
+ }
}