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:11 UTC
[camel] 07/09: CAMEL-15105: make the BeanProxyFactory 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 a0bfe1d27aaddfbfcf5210b731abbb391d3cdecb
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Sat Apr 1 17:06:52 2023 +0200
CAMEL-15105: make the BeanProxyFactory a plugin of the context
---
.../main/java/org/apache/camel/ExtendedCamelContext.java | 8 +-------
.../org/apache/camel/impl/engine/AbstractCamelContext.java | 6 +-----
.../apache/camel/impl/engine/CamelPostProcessorHelper.java | 3 +--
.../camel/impl/engine/DefaultCamelContextExtension.java | 13 -------------
.../camel/impl/lw/LightweightCamelContextExtension.java | 6 ------
.../main/java/org/apache/camel/builder/ProxyBuilder.java | 3 ++-
.../main/java/org/apache/camel/support/PluginHelper.java | 14 ++++++++++++++
7 files changed, 19 insertions(+), 34 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 56407a31044..2f4885dbd1f 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
@@ -25,7 +25,6 @@ import org.apache.camel.catalog.RuntimeCamelCatalog;
import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.BeanIntrospection;
import org.apache.camel.spi.BeanProcessorFactory;
-import org.apache.camel.spi.BeanProxyFactory;
import org.apache.camel.spi.BootstrapCloseable;
import org.apache.camel.spi.DeferServiceFactory;
import org.apache.camel.spi.EndpointStrategy;
@@ -340,11 +339,6 @@ public interface ExtendedCamelContext {
*/
void setAnnotationBasedProcessorFactory(AnnotationBasedProcessorFactory annotationBasedProcessorFactory);
- /**
- * Gets the {@link BeanProxyFactory} to use.
- */
- BeanProxyFactory getBeanProxyFactory();
-
/**
* Gets the {@link BeanProcessorFactory} to use.
*/
@@ -459,7 +453,6 @@ public interface ExtendedCamelContext {
*/
EndpointUriFactory getEndpointUriFactory(String scheme);
-
/**
* Gets the {@link RuntimeCamelCatalog} if available on the classpath.
*/
@@ -467,6 +460,7 @@ public interface ExtendedCamelContext {
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 61c202c8e9d..b63c7d32501 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
@@ -214,7 +214,6 @@ public abstract class AbstractCamelContext extends BaseService
volatile ManagementStrategy managementStrategy;
volatile ManagementMBeanAssembler managementMBeanAssembler;
volatile HeadersMapFactory headersMapFactory;
- volatile BeanProxyFactory beanProxyFactory;
volatile BeanProcessorFactory beanProcessorFactory;
volatile ResourceLoader resourceLoader;
volatile ModelToXMLDumper modelToXMLDumper;
@@ -379,6 +378,7 @@ public abstract class AbstractCamelContext extends BaseService
camelContextExtension.lazyAddContextPlugin(RoutesLoader.class, this::createRoutesLoader);
camelContextExtension.lazyAddContextPlugin(AsyncProcessorAwaitManager.class, this::createAsyncProcessorAwaitManager);
camelContextExtension.lazyAddContextPlugin(RuntimeCamelCatalog.class, this::createRuntimeCamelCatalog);
+ camelContextExtension.lazyAddContextPlugin(BeanProxyFactory.class, this::createBeanProxyFactory);
if (build) {
try {
@@ -3945,10 +3945,6 @@ public abstract class AbstractCamelContext extends BaseService
this.startupSummaryLevel = startupSummaryLevel;
}
- public void setBeanProxyFactory(BeanProxyFactory beanProxyFactory) {
- this.beanProxyFactory = internalServiceManager.addService(beanProxyFactory);
- }
-
public void setBeanProcessorFactory(BeanProcessorFactory beanProcessorFactory) {
this.beanProcessorFactory = internalServiceManager.addService(beanProcessorFactory);
}
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelPostProcessorHelper.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelPostProcessorHelper.java
index 34bd21840ad..dc951d3a011 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelPostProcessorHelper.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelPostProcessorHelper.java
@@ -254,8 +254,7 @@ public class CamelPostProcessorHelper implements CamelContextAware {
// lets create a proxy
try {
// use proxy service
- BeanProxyFactory factory
- = endpoint.getCamelContext().getCamelContextExtension().getBeanProxyFactory();
+ BeanProxyFactory factory = PluginHelper.getBeanProxyFactory(endpoint.getCamelContext());
return factory.createProxy(endpoint, binding, type);
} catch (Exception e) {
throw createProxyInstantiationRuntimeException(type, endpoint, e);
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 29a7a12f9ad..d0931843446 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
@@ -38,7 +38,6 @@ import org.apache.camel.Service;
import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.BeanIntrospection;
import org.apache.camel.spi.BeanProcessorFactory;
-import org.apache.camel.spi.BeanProxyFactory;
import org.apache.camel.spi.BootstrapCloseable;
import org.apache.camel.spi.Debugger;
import org.apache.camel.spi.DebuggerFactory;
@@ -589,18 +588,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
camelContext.annotationBasedProcessorFactory = annotationBasedProcessorFactory;
}
- @Override
- public BeanProxyFactory getBeanProxyFactory() {
- if (camelContext.beanProxyFactory == null) {
- synchronized (camelContext.lock) {
- if (camelContext.beanProxyFactory == null) {
- camelContext.setBeanProxyFactory(camelContext.createBeanProxyFactory());
- }
- }
- }
- return camelContext.beanProxyFactory;
- }
-
@Override
public BeanProcessorFactory getBeanProcessorFactory() {
if (camelContext.beanProcessorFactory == 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 ac1a2a935f4..b31188177b0 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
@@ -39,7 +39,6 @@ import org.apache.camel.ServiceStatus;
import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.BeanIntrospection;
import org.apache.camel.spi.BeanProcessorFactory;
-import org.apache.camel.spi.BeanProxyFactory;
import org.apache.camel.spi.BootstrapCloseable;
import org.apache.camel.spi.DeferServiceFactory;
import org.apache.camel.spi.EndpointStrategy;
@@ -265,11 +264,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
throw new UnsupportedOperationException();
}
- @Override
- public BeanProxyFactory getBeanProxyFactory() {
- throw new UnsupportedOperationException();
- }
-
@Override
public BeanProcessorFactory getBeanProcessorFactory() {
throw new UnsupportedOperationException();
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/ProxyBuilder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/ProxyBuilder.java
index caa183f7708..cea91778dfb 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/builder/ProxyBuilder.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/ProxyBuilder.java
@@ -19,6 +19,7 @@ package org.apache.camel.builder;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.spi.BeanProxyFactory;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.util.ObjectHelper;
/**
@@ -81,7 +82,7 @@ public final class ProxyBuilder {
public <T> T build(Class<T>... interfaceClasses) throws Exception {
ObjectHelper.notNull(endpoint, "endpoint");
// use proxy service
- BeanProxyFactory factory = camelContext.getCamelContextExtension().getBeanProxyFactory();
+ BeanProxyFactory factory = PluginHelper.getBeanProxyFactory(camelContext);
return factory.createProxy(endpoint, binding, interfaceClasses);
}
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 0f95f511c41..a50bff03a3f 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.catalog.RuntimeCamelCatalog;
import org.apache.camel.console.DevConsoleResolver;
import org.apache.camel.health.HealthCheckResolver;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
+import org.apache.camel.spi.BeanProxyFactory;
import org.apache.camel.spi.CamelBeanPostProcessor;
import org.apache.camel.spi.CamelDependencyInjectionAnnotationFactory;
import org.apache.camel.spi.ComponentNameResolver;
@@ -485,6 +486,19 @@ public final class PluginHelper {
public static RestBindingJaxbDataFormatFactory getRestBindingJaxbDataFormatFactory(
ExtendedCamelContext extendedCamelContext) {
return extendedCamelContext.getContextPlugin(RestBindingJaxbDataFormatFactory.class);
+ }
+ /**
+ * Gets the {@link BeanProxyFactory} to use.
+ */
+ public static BeanProxyFactory getBeanProxyFactory(CamelContext camelContext) {
+ return getBeanProxyFactory(camelContext.getCamelContextExtension());
+ }
+
+ /**
+ * Gets the {@link BeanProxyFactory} to use.
+ */
+ public static BeanProxyFactory getBeanProxyFactory(ExtendedCamelContext extendedCamelContext) {
+ return extendedCamelContext.getContextPlugin(BeanProxyFactory.class);
}
}