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 06:26:29 UTC
[camel] 01/04: CAMEL-15105: make the DevConsoleResolver 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 59c57596808c8d822a993d027aed2b6c378693e5
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Sat Apr 1 13:04:27 2023 +0200
CAMEL-15105: make the DevConsoleResolver a plugin of the context
---
.../org/apache/camel/ExtendedCamelContext.java | 15 ---------------
.../camel/impl/engine/AbstractCamelContext.java | 2 +-
.../impl/engine/DefaultCamelContextExtension.java | 15 ---------------
.../impl/console/DefaultDevConsoleRegistry.java | 3 ++-
.../impl/console/DefaultDevConsolesLoader.java | 2 +-
.../camel/impl/console/ContextDevConsoleTest.java | 5 +++--
.../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------
.../impl/lw/LightweightCamelContextExtension.java | 10 ----------
.../org/apache/camel/support/PluginHelper.java | 19 +++++++++++++++++++
.../camel/cli/connector/LocalCliConnector.java | 22 ++++++++--------------
10 files changed, 34 insertions(+), 65 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 e1f660b45f6..d365aceda38 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
@@ -22,7 +22,6 @@ import java.util.Set;
import java.util.function.Supplier;
import org.apache.camel.catalog.RuntimeCamelCatalog;
-import org.apache.camel.console.DevConsoleResolver;
import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
import org.apache.camel.spi.BeanIntrospection;
@@ -275,20 +274,6 @@ public interface ExtendedCamelContext {
*/
void setErrorHandlerFactory(ErrorHandlerFactory errorHandlerFactory);
- /**
- * Gets the current dev console resolver
- *
- * @return the resolver
- */
- DevConsoleResolver getDevConsoleResolver();
-
- /**
- * Sets a custom dev console resolver
- *
- * @param devConsoleResolver the resolver
- */
- void setDevConsoleResolver(DevConsoleResolver devConsoleResolver);
-
/**
* 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 e757fe2ce8b..36c172cfab7 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
@@ -211,7 +211,6 @@ public abstract class AbstractCamelContext extends BaseService
volatile ProcessorExchangeFactory processorExchangeFactory;
volatile ReactiveExecutor reactiveExecutor;
volatile Registry registry;
- volatile DevConsoleResolver devConsoleResolver;
volatile ManagementStrategy managementStrategy;
volatile ManagementMBeanAssembler managementMBeanAssembler;
volatile HeadersMapFactory headersMapFactory;
@@ -380,6 +379,7 @@ public abstract class AbstractCamelContext extends BaseService
camelContextExtension.lazyAddContextPlugin(PeriodTaskResolver.class, this::createPeriodTaskResolver);
camelContextExtension.lazyAddContextPlugin(PeriodTaskScheduler.class, this::createPeriodTaskScheduler);
camelContextExtension.lazyAddContextPlugin(HealthCheckResolver.class, this::createHealthCheckResolver);
+ camelContextExtension.lazyAddContextPlugin(DevConsoleResolver.class, this::createDevConsoleResolver);
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 620cc38228c..8423dba0a54 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
@@ -458,21 +458,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
this.basePackageScan = basePackageScan;
}
- public DevConsoleResolver getDevConsoleResolver() {
- if (camelContext.devConsoleResolver == null) {
- synchronized (camelContext.lock) {
- if (camelContext.devConsoleResolver == null) {
- setDevConsoleResolver(camelContext.createDevConsoleResolver());
- }
- }
- }
- return camelContext.devConsoleResolver;
- }
-
- public void setDevConsoleResolver(DevConsoleResolver devConsoleResolver) {
- camelContext.devConsoleResolver = camelContext.getInternalServiceManager().addService(devConsoleResolver);
- }
-
@Override
public boolean isLightweight() {
return lightweight;
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java
index b352c16269c..ad59c206b3f 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java
@@ -28,6 +28,7 @@ import org.apache.camel.DeferredContextBinding;
import org.apache.camel.console.DevConsole;
import org.apache.camel.console.DevConsoleRegistry;
import org.apache.camel.console.DevConsoleResolver;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.support.service.ServiceSupport;
import org.apache.camel.util.StopWatch;
@@ -117,7 +118,7 @@ public class DefaultDevConsoleRegistry extends ServiceSupport implements DevCons
DevConsole answer = consoles.stream().filter(h -> h.getId().equals(id)).findFirst()
.orElse(camelContext.getRegistry().findByTypeWithName(DevConsole.class).get(id));
if (answer == null) {
- DevConsoleResolver resolver = camelContext.getCamelContextExtension().getDevConsoleResolver();
+ DevConsoleResolver resolver = PluginHelper.getDevConsoleResolver(camelContext);
answer = resolver.resolveDevConsole(id);
if (answer != null) {
register(answer);
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 6f60960ddbc..7c640a59894 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
@@ -44,7 +44,7 @@ public class DefaultDevConsolesLoader {
public DefaultDevConsolesLoader(CamelContext camelContext) {
this.camelContext = camelContext;
this.resolver = PluginHelper.getPackageScanResourceResolver(camelContext);
- this.devConsoleResolver = camelContext.getCamelContextExtension().getDevConsoleResolver();
+ this.devConsoleResolver = PluginHelper.getDevConsoleResolver(camelContext);
}
public Collection<DevConsole> loadDevConsoles() {
diff --git a/core/camel-console/src/test/java/org/apache/camel/impl/console/ContextDevConsoleTest.java b/core/camel-console/src/test/java/org/apache/camel/impl/console/ContextDevConsoleTest.java
index cc8c9379440..79004b13da0 100644
--- a/core/camel-console/src/test/java/org/apache/camel/impl/console/ContextDevConsoleTest.java
+++ b/core/camel-console/src/test/java/org/apache/camel/impl/console/ContextDevConsoleTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.impl.console;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.console.DevConsole;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.util.json.JsonObject;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -26,7 +27,7 @@ public class ContextDevConsoleTest extends ContextTestSupport {
@Test
public void testContextTest() throws Exception {
- DevConsole con = context.getCamelContextExtension().getDevConsoleResolver().resolveDevConsole("context");
+ DevConsole con = PluginHelper.getDevConsoleResolver(context).resolveDevConsole("context");
Assertions.assertNotNull(con);
Assertions.assertEquals("camel", con.getGroup());
Assertions.assertEquals("context", con.getId());
@@ -39,7 +40,7 @@ public class ContextDevConsoleTest extends ContextTestSupport {
@Test
public void testContextJson() throws Exception {
- DevConsole con = context.getCamelContextExtension().getDevConsoleResolver().resolveDevConsole("context");
+ DevConsole con = PluginHelper.getDevConsoleResolver(context).resolveDevConsole("context");
Assertions.assertNotNull(con);
Assertions.assertEquals("camel", con.getGroup());
Assertions.assertEquals("context", con.getId());
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 982cebd9d75..7c3ea5cc9c2 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
@@ -35,8 +35,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "DeferServiceFactory": target.setDeferServiceFactory(property(camelContext, org.apache.camel.spi.DeferServiceFactory.class, value)); return true;
case "description":
case "Description": target.setDescription(property(camelContext, java.lang.String.class, value)); return true;
- case "devconsoleresolver":
- case "DevConsoleResolver": target.setDevConsoleResolver(property(camelContext, org.apache.camel.console.DevConsoleResolver.class, value)); return true;
case "errorhandlerfactory":
case "ErrorHandlerFactory": target.setErrorHandlerFactory(property(camelContext, org.apache.camel.ErrorHandlerFactory.class, value)); return true;
case "eventnotificationapplicable":
@@ -100,8 +98,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "DeferServiceFactory": return org.apache.camel.spi.DeferServiceFactory.class;
case "description":
case "Description": return java.lang.String.class;
- case "devconsoleresolver":
- case "DevConsoleResolver": return org.apache.camel.console.DevConsoleResolver.class;
case "errorhandlerfactory":
case "ErrorHandlerFactory": return org.apache.camel.ErrorHandlerFactory.class;
case "eventnotificationapplicable":
@@ -166,8 +162,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
case "DeferServiceFactory": return target.getDeferServiceFactory();
case "description":
case "Description": return target.getDescription();
- case "devconsoleresolver":
- case "DevConsoleResolver": return target.getDevConsoleResolver();
case "errorhandlerfactory":
case "ErrorHandlerFactory": return target.getErrorHandlerFactory();
case "eventnotificationapplicable":
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 35da047b4ee..f38d25c1c73 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
@@ -104,16 +104,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
throw new UnsupportedOperationException();
}
- @Override
- public DevConsoleResolver getDevConsoleResolver() {
- return camelContext.getCamelContextExtension().getDevConsoleResolver();
- }
-
- @Override
- public void setDevConsoleResolver(DevConsoleResolver devConsoleResolver) {
- throw new UnsupportedOperationException();
- }
-
@Override
public String getName() {
return camelContext.getCamelContextExtension().getName();
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 9e2c84da612..ebd084d0b00 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.console.DevConsoleResolver;
import org.apache.camel.health.HealthCheckResolver;
import org.apache.camel.spi.CamelBeanPostProcessor;
import org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory;
@@ -326,4 +327,22 @@ public final class PluginHelper {
public static HealthCheckResolver getHealthCheckResolver(ExtendedCamelContext extendedCamelContext) {
return extendedCamelContext.getContextPlugin(HealthCheckResolver.class);
}
+
+ /**
+ * Gets the current dev console resolver
+ *
+ * @return the resolver
+ */
+ public static DevConsoleResolver getDevConsoleResolver(CamelContext camelContext) {
+ return getDevConsoleResolver(camelContext.getCamelContextExtension());
+ }
+
+ /**
+ * Gets the current dev console resolver
+ *
+ * @return the resolver
+ */
+ public static DevConsoleResolver getDevConsoleResolver(ExtendedCamelContext extendedCamelContext) {
+ return extendedCamelContext.getContextPlugin(DevConsoleResolver.class);
+ }
}
diff --git a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
index 580d704d625..b63e17482d9 100644
--- a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
+++ b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
@@ -47,6 +47,7 @@ import org.apache.camel.spi.CliConnectorFactory;
import org.apache.camel.spi.ContextReloadStrategy;
import org.apache.camel.support.DefaultContextReloadStrategy;
import org.apache.camel.support.PatternHelper;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.support.service.ServiceSupport;
import org.apache.camel.util.FileUtil;
@@ -539,8 +540,7 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
private JsonObject collectVaults() {
JsonObject root = new JsonObject();
// aws-secrets is optional
- Optional<DevConsole> dcAws = camelContext.getCamelContextExtension()
- .getDevConsoleResolver().lookupDevConsole("aws-secrets");
+ Optional<DevConsole> dcAws = PluginHelper.getDevConsoleResolver(camelContext).lookupDevConsole("aws-secrets");
if (dcAws.isPresent()) {
JsonObject json = (JsonObject) dcAws.get().call(DevConsole.MediaType.JSON);
if (json != null) {
@@ -548,8 +548,7 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
}
}
// gcp-secrets is optional
- Optional<DevConsole> dcGcp = camelContext.getCamelContextExtension()
- .getDevConsoleResolver().lookupDevConsole("gcp-secrets");
+ Optional<DevConsole> dcGcp = PluginHelper.getDevConsoleResolver(camelContext).lookupDevConsole("gcp-secrets");
if (dcGcp.isPresent()) {
JsonObject json = (JsonObject) dcGcp.get().call(DevConsole.MediaType.JSON);
if (json != null) {
@@ -557,8 +556,7 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
}
}
// azure-secrets is optional
- Optional<DevConsole> dcAzure = camelContext.getCamelContextExtension()
- .getDevConsoleResolver().lookupDevConsole("azure-secrets");
+ Optional<DevConsole> dcAzure = PluginHelper.getDevConsoleResolver(camelContext).lookupDevConsole("azure-secrets");
if (dcAzure.isPresent()) {
JsonObject json = (JsonObject) dcAzure.get().call(DevConsole.MediaType.JSON);
if (json != null) {
@@ -573,8 +571,7 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
// platform-http is optional
if (camelContext.hasComponent("platform-http") != null) {
- Optional<DevConsole> dc = camelContext.getCamelContextExtension()
- .getDevConsoleResolver().lookupDevConsole("platform-http");
+ Optional<DevConsole> dc = PluginHelper.getDevConsoleResolver(camelContext).lookupDevConsole("platform-http");
if (dc.isPresent()) {
JsonObject json = (JsonObject) dc.get().call(DevConsole.MediaType.JSON);
if (json != null) {
@@ -583,8 +580,7 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
}
}
// netty is optional
- Optional<DevConsole> dc = camelContext.getCamelContextExtension()
- .getDevConsoleResolver().lookupDevConsole("netty");
+ Optional<DevConsole> dc = PluginHelper.getDevConsoleResolver(camelContext).lookupDevConsole("netty");
if (dc.isPresent()) {
JsonObject json = (JsonObject) dc.get().call(DevConsole.MediaType.JSON);
if (json != null) {
@@ -592,8 +588,7 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
}
}
// mina is optional
- dc = camelContext.getCamelContextExtension()
- .getDevConsoleResolver().lookupDevConsole("mina");
+ dc = PluginHelper.getDevConsoleResolver(camelContext).lookupDevConsole("mina");
if (dc.isPresent()) {
JsonObject json = (JsonObject) dc.get().call(DevConsole.MediaType.JSON);
if (json != null) {
@@ -601,8 +596,7 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
}
}
// mllp is optional
- dc = camelContext.getCamelContextExtension()
- .getDevConsoleResolver().lookupDevConsole("mllp");
+ dc = PluginHelper.getDevConsoleResolver(camelContext).lookupDevConsole("mllp");
if (dc.isPresent()) {
JsonObject json = (JsonObject) dc.get().call(DevConsole.MediaType.JSON);
if (json != null) {