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/10/17 05:59:29 UTC
[camel] branch main updated: CAMEL-19998: move several internal APIs to the CamelContext extension
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
The following commit(s) were added to refs/heads/main by this push:
new 2e246758916 CAMEL-19998: move several internal APIs to the CamelContext extension
2e246758916 is described below
commit 2e2467589168413cefb085f90dd52aba948fe2c4
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Mon Oct 16 17:46:50 2023 +0200
CAMEL-19998: move several internal APIs to the CamelContext extension
---
.../camel/impl/engine/AbstractCamelContext.java | 170 +++------------
.../impl/engine/DefaultCamelContextExtension.java | 238 +++++++++++++++++++++
2 files changed, 268 insertions(+), 140 deletions(-)
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 36b2f98a0b0..b7f6ac58ab1 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
private String managementName;
private ClassLoader applicationContextClassLoader;
private boolean autoCreateComponents = true;
- private volatile RestConfiguration restConfiguration;
private volatile VaultConfiguration vaultConfiguration = new VaultConfiguration();
private final List<RoutePolicyFactory> routePolicyFactories = new ArrayList<>();
@@ -262,25 +261,12 @@ public abstract class AbstractCamelContext extends BaseService
private Boolean autowiredEnabled = Boolean.TRUE;
private Long delay;
private Map<String, String> globalOptions = new HashMap<>();
- private volatile PropertiesComponent propertiesComponent;
- private volatile CamelContextNameStrategy nameStrategy;
- private volatile ManagementNameStrategy managementNameStrategy;
private volatile TypeConverter typeConverter;
private volatile TypeConverterRegistry typeConverterRegistry;
private volatile Injector injector;
- private volatile RestRegistryFactory restRegistryFactory;
- private volatile RestRegistry restRegistry;
- private volatile ClassResolver classResolver;
- private volatile MessageHistoryFactory messageHistoryFactory;
- private volatile StreamCachingStrategy streamCachingStrategy;
- private volatile InflightRepository inflightRepository;
private volatile ShutdownStrategy shutdownStrategy;
private volatile ExecutorServiceManager executorServiceManager;
- private volatile UuidGenerator uuidGenerator;
private volatile RouteController routeController;
- private volatile Tracer tracer;
- private volatile TransformerRegistry<TransformerKey> transformerRegistry;
- private volatile ValidatorRegistry<ValidatorKey> validatorRegistry;
private EndpointRegistry<NormalizedUri> endpoints;
private RuntimeEndpointRegistry runtimeEndpointRegistry;
private ShutdownRoute shutdownRoute = ShutdownRoute.Default;
@@ -435,36 +421,22 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public CamelContextNameStrategy getNameStrategy() {
- if (nameStrategy == null) {
- synchronized (lock) {
- if (nameStrategy == null) {
- setNameStrategy(createCamelContextNameStrategy());
- }
- }
- }
- return nameStrategy;
+ return camelContextExtension.getNameStrategy();
}
@Override
public void setNameStrategy(CamelContextNameStrategy nameStrategy) {
- this.nameStrategy = internalServiceManager.addService(nameStrategy);
+ camelContextExtension.setNameStrategy(nameStrategy);
}
@Override
public ManagementNameStrategy getManagementNameStrategy() {
- if (managementNameStrategy == null) {
- synchronized (lock) {
- if (managementNameStrategy == null) {
- setManagementNameStrategy(createManagementNameStrategy());
- }
- }
- }
- return managementNameStrategy;
+ return camelContextExtension.getManagementNameStrategy();
}
@Override
public void setManagementNameStrategy(ManagementNameStrategy managementNameStrategy) {
- this.managementNameStrategy = internalServiceManager.addService(managementNameStrategy);
+ camelContextExtension.setManagementNameStrategy(managementNameStrategy);
}
@Override
@@ -1641,19 +1613,12 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public PropertiesComponent getPropertiesComponent() {
- if (propertiesComponent == null) {
- synchronized (lock) {
- if (propertiesComponent == null) {
- setPropertiesComponent(createPropertiesComponent());
- }
- }
- }
- return propertiesComponent;
+ return camelContextExtension.getPropertiesComponent();
}
@Override
public void setPropertiesComponent(PropertiesComponent propertiesComponent) {
- this.propertiesComponent = internalServiceManager.addService(propertiesComponent);
+ camelContextExtension.setPropertiesComponent(propertiesComponent);
}
protected void setManagementMBeanAssembler(ManagementMBeanAssembler managementMBeanAssembler) {
@@ -1689,19 +1654,12 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public RestConfiguration getRestConfiguration() {
- if (restConfiguration == null) {
- synchronized (lock) {
- if (restConfiguration == null) {
- setRestConfiguration(createRestConfiguration());
- }
- }
- }
- return restConfiguration;
+ return camelContextExtension.getRestConfiguration();
}
@Override
public void setRestConfiguration(RestConfiguration restConfiguration) {
- this.restConfiguration = restConfiguration;
+ camelContextExtension.setRestConfiguration(restConfiguration);
}
@Override
@@ -3285,19 +3243,12 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public ClassResolver getClassResolver() {
- if (classResolver == null) {
- synchronized (lock) {
- if (classResolver == null) {
- setClassResolver(createClassResolver());
- }
- }
- }
- return classResolver;
+ return camelContextExtension.getClassResolver();
}
@Override
public void setClassResolver(ClassResolver classResolver) {
- this.classResolver = internalServiceManager.addService(classResolver);
+ camelContextExtension.setClassResolver(classResolver);
}
@Override
@@ -3362,19 +3313,12 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public InflightRepository getInflightRepository() {
- if (inflightRepository == null) {
- synchronized (lock) {
- if (inflightRepository == null) {
- setInflightRepository(createInflightRepository());
- }
- }
- }
- return inflightRepository;
+ return camelContextExtension.getInflightRepository();
}
@Override
public void setInflightRepository(InflightRepository repository) {
- this.inflightRepository = internalServiceManager.addService(repository);
+ camelContextExtension.setInflightRepository(repository);
}
@Override
@@ -3657,19 +3601,13 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public MessageHistoryFactory getMessageHistoryFactory() {
- if (messageHistoryFactory == null) {
- synchronized (lock) {
- if (messageHistoryFactory == null) {
- setMessageHistoryFactory(createMessageHistoryFactory());
- }
- }
- }
- return messageHistoryFactory;
+ return camelContextExtension.getMessageHistoryFactory();
}
@Override
public void setMessageHistoryFactory(MessageHistoryFactory messageHistoryFactory) {
- this.messageHistoryFactory = internalServiceManager.addService(messageHistoryFactory);
+ camelContextExtension.setMessageHistoryFactory(messageHistoryFactory);
+
// enable message history if we set a custom factory
setMessageHistory(true);
}
@@ -3691,14 +3629,7 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public Tracer getTracer() {
- if (tracer == null) {
- synchronized (lock) {
- if (tracer == null) {
- setTracer(createTracer());
- }
- }
- }
- return tracer;
+ return camelContextExtension.getTracer();
}
@Override
@@ -3707,7 +3638,8 @@ public abstract class AbstractCamelContext extends BaseService
if (!isTracingStandby() && isStartingOrStarted()) {
throw new IllegalStateException("Cannot set tracer on a started CamelContext");
}
- this.tracer = internalServiceManager.addService(tracer, true, false, true);
+
+ camelContextExtension.setTracer(tracer);
}
@Override
@@ -3752,53 +3684,32 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public UuidGenerator getUuidGenerator() {
- if (uuidGenerator == null) {
- synchronized (lock) {
- if (uuidGenerator == null) {
- setUuidGenerator(createUuidGenerator());
- }
- }
- }
- return uuidGenerator;
+ return camelContextExtension.getUuidGenerator();
}
@Override
public void setUuidGenerator(UuidGenerator uuidGenerator) {
- this.uuidGenerator = internalServiceManager.addService(uuidGenerator);
+ camelContextExtension.setUuidGenerator(uuidGenerator);
}
@Override
public StreamCachingStrategy getStreamCachingStrategy() {
- if (streamCachingStrategy == null) {
- synchronized (lock) {
- if (streamCachingStrategy == null) {
- setStreamCachingStrategy(createStreamCachingStrategy());
- }
- }
- }
- return streamCachingStrategy;
+ return camelContextExtension.getStreamCachingStrategy();
}
@Override
public void setStreamCachingStrategy(StreamCachingStrategy streamCachingStrategy) {
- this.streamCachingStrategy = internalServiceManager.addService(streamCachingStrategy, true, false, true);
+ camelContextExtension.setStreamCachingStrategy(streamCachingStrategy);
}
@Override
public RestRegistry getRestRegistry() {
- if (restRegistry == null) {
- synchronized (lock) {
- if (restRegistry == null) {
- setRestRegistry(createRestRegistry());
- }
- }
- }
- return restRegistry;
+ return camelContextExtension.getRestRegistry();
}
@Override
public void setRestRegistry(RestRegistry restRegistry) {
- this.restRegistry = internalServiceManager.addService(restRegistry);
+ camelContextExtension.setRestRegistry(restRegistry);
}
protected RestRegistry createRestRegistry() {
@@ -3807,18 +3718,11 @@ public abstract class AbstractCamelContext extends BaseService
}
public RestRegistryFactory getRestRegistryFactory() {
- if (restRegistryFactory == null) {
- synchronized (lock) {
- if (restRegistryFactory == null) {
- setRestRegistryFactory(createRestRegistryFactory());
- }
- }
- }
- return restRegistryFactory;
+ return camelContextExtension.getRestRegistryFactory();
}
public void setRestRegistryFactory(RestRegistryFactory restRegistryFactory) {
- this.restRegistryFactory = internalServiceManager.addService(restRegistryFactory);
+ camelContextExtension.setRestRegistryFactory(restRegistryFactory);
}
@Override
@@ -3846,18 +3750,11 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public TransformerRegistry getTransformerRegistry() {
- if (transformerRegistry == null) {
- synchronized (lock) {
- if (transformerRegistry == null) {
- setTransformerRegistry(createTransformerRegistry());
- }
- }
- }
- return transformerRegistry;
+ return camelContextExtension.getTransformerRegistry();
}
public void setTransformerRegistry(TransformerRegistry transformerRegistry) {
- this.transformerRegistry = internalServiceManager.addService(transformerRegistry);
+ camelContextExtension.setTransformerRegistry(transformerRegistry);
}
@Override
@@ -3867,18 +3764,11 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public ValidatorRegistry getValidatorRegistry() {
- if (validatorRegistry == null) {
- synchronized (lock) {
- if (validatorRegistry == null) {
- setValidatorRegistry(createValidatorRegistry());
- }
- }
- }
- return validatorRegistry;
+ return camelContextExtension.getValidatorRegistry();
}
public void setValidatorRegistry(ValidatorRegistry validatorRegistry) {
- this.validatorRegistry = internalServiceManager.addService(validatorRegistry);
+ camelContextExtension.setValidatorRegistry(validatorRegistry);
}
@Override
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 bec6379660a..e01231b5f12 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
@@ -37,6 +37,8 @@ import org.apache.camel.Route;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.Service;
import org.apache.camel.spi.BootstrapCloseable;
+import org.apache.camel.spi.CamelContextNameStrategy;
+import org.apache.camel.spi.ClassResolver;
import org.apache.camel.spi.Debugger;
import org.apache.camel.spi.DebuggerFactory;
import org.apache.camel.spi.EndpointStrategy;
@@ -46,21 +48,32 @@ import org.apache.camel.spi.ExchangeFactory;
import org.apache.camel.spi.ExchangeFactoryManager;
import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.spi.HeadersMapFactory;
+import org.apache.camel.spi.InflightRepository;
import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.LifecycleStrategy;
import org.apache.camel.spi.LogListener;
import org.apache.camel.spi.ManagementMBeanAssembler;
+import org.apache.camel.spi.ManagementNameStrategy;
import org.apache.camel.spi.ManagementStrategy;
import org.apache.camel.spi.ManagementStrategyFactory;
+import org.apache.camel.spi.MessageHistoryFactory;
import org.apache.camel.spi.NormalizedEndpointUri;
import org.apache.camel.spi.PluginManager;
import org.apache.camel.spi.ProcessorExchangeFactory;
import org.apache.camel.spi.PropertiesComponent;
import org.apache.camel.spi.ReactiveExecutor;
import org.apache.camel.spi.Registry;
+import org.apache.camel.spi.RestConfiguration;
+import org.apache.camel.spi.RestRegistry;
+import org.apache.camel.spi.RestRegistryFactory;
import org.apache.camel.spi.RouteController;
import org.apache.camel.spi.RouteStartupOrder;
import org.apache.camel.spi.StartupStepRecorder;
+import org.apache.camel.spi.StreamCachingStrategy;
+import org.apache.camel.spi.Tracer;
+import org.apache.camel.spi.TransformerRegistry;
+import org.apache.camel.spi.UuidGenerator;
+import org.apache.camel.spi.ValidatorRegistry;
import org.apache.camel.support.EndpointHelper;
import org.apache.camel.support.NormalizedUri;
import org.apache.camel.support.PluginHelper;
@@ -91,6 +104,20 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
private volatile ManagementMBeanAssembler managementMBeanAssembler;
private volatile HeadersMapFactory headersMapFactory;
private volatile boolean eventNotificationApplicable;
+ private volatile CamelContextNameStrategy nameStrategy;
+ private volatile ManagementNameStrategy managementNameStrategy;
+ private volatile PropertiesComponent propertiesComponent;
+ private volatile RestRegistryFactory restRegistryFactory;
+ private volatile RestConfiguration restConfiguration;
+ private volatile RestRegistry restRegistry;
+ private volatile ClassResolver classResolver;
+ private volatile MessageHistoryFactory messageHistoryFactory;
+ private volatile StreamCachingStrategy streamCachingStrategy;
+ private volatile InflightRepository inflightRepository;
+ private volatile UuidGenerator uuidGenerator;
+ private volatile Tracer tracer;
+ private volatile TransformerRegistry<TransformerKey> transformerRegistry;
+ private volatile ValidatorRegistry<ValidatorKey> validatorRegistry;
@Deprecated
private ErrorHandlerFactory errorHandlerFactory;
@@ -115,6 +142,51 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
return camelContext.getNameStrategy().getName();
}
+ CamelContextNameStrategy getNameStrategy() {
+ if (nameStrategy == null) {
+ synchronized (lock) {
+ if (nameStrategy == null) {
+ setNameStrategy(camelContext.createCamelContextNameStrategy());
+ }
+ }
+ }
+ return nameStrategy;
+ }
+
+ void setNameStrategy(CamelContextNameStrategy nameStrategy) {
+ this.nameStrategy = camelContext.getInternalServiceManager().addService(nameStrategy);
+ }
+
+ ManagementNameStrategy getManagementNameStrategy() {
+ if (managementNameStrategy == null) {
+ synchronized (lock) {
+ if (managementNameStrategy == null) {
+ setManagementNameStrategy(camelContext.createManagementNameStrategy());
+ }
+ }
+ }
+ return managementNameStrategy;
+ }
+
+ void setManagementNameStrategy(ManagementNameStrategy managementNameStrategy) {
+ this.managementNameStrategy = camelContext.getInternalServiceManager().addService(managementNameStrategy);
+ }
+
+ PropertiesComponent getPropertiesComponent() {
+ if (propertiesComponent == null) {
+ synchronized (lock) {
+ if (propertiesComponent == null) {
+ setPropertiesComponent(camelContext.createPropertiesComponent());
+ }
+ }
+ }
+ return propertiesComponent;
+ }
+
+ void setPropertiesComponent(PropertiesComponent propertiesComponent) {
+ this.propertiesComponent = camelContext.getInternalServiceManager().addService(propertiesComponent);
+ }
+
@Override
public void setName(String name) {
// use an explicit name strategy since an explicit name was provided to be used
@@ -528,6 +600,172 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
this.reactiveExecutor = camelContext.getInternalServiceManager().addService(reactiveExecutor, false);
}
+ RestRegistryFactory getRestRegistryFactory() {
+ if (restRegistryFactory == null) {
+ synchronized (lock) {
+ if (restRegistryFactory == null) {
+ setRestRegistryFactory(camelContext.createRestRegistryFactory());
+ }
+ }
+ }
+ return restRegistryFactory;
+ }
+
+ void setRestRegistryFactory(RestRegistryFactory restRegistryFactory) {
+ this.restRegistryFactory = camelContext.getInternalServiceManager().addService(restRegistryFactory);
+ }
+
+ RestRegistry getRestRegistry() {
+ if (restRegistry == null) {
+ synchronized (lock) {
+ if (restRegistry == null) {
+ setRestRegistry(camelContext.createRestRegistry());
+ }
+ }
+ }
+ return restRegistry;
+ }
+
+ void setRestRegistry(RestRegistry restRegistry) {
+ this.restRegistry = camelContext.getInternalServiceManager().addService(restRegistry);
+ }
+
+ RestConfiguration getRestConfiguration() {
+ if (restConfiguration == null) {
+ synchronized (lock) {
+ if (restConfiguration == null) {
+ setRestConfiguration(camelContext.createRestConfiguration());
+ }
+ }
+ }
+ return restConfiguration;
+ }
+
+ void setRestConfiguration(RestConfiguration restConfiguration) {
+ this.restConfiguration = restConfiguration;
+ }
+
+ ClassResolver getClassResolver() {
+ if (classResolver == null) {
+ synchronized (lock) {
+ if (classResolver == null) {
+ setClassResolver(camelContext.createClassResolver());
+ }
+ }
+ }
+ return classResolver;
+ }
+
+ void setClassResolver(ClassResolver classResolver) {
+ this.classResolver = camelContext.getInternalServiceManager().addService(classResolver);
+ }
+
+ MessageHistoryFactory getMessageHistoryFactory() {
+ if (messageHistoryFactory == null) {
+ synchronized (lock) {
+ if (messageHistoryFactory == null) {
+ setMessageHistoryFactory(camelContext.createMessageHistoryFactory());
+ }
+ }
+ }
+ return messageHistoryFactory;
+ }
+
+ void setMessageHistoryFactory(MessageHistoryFactory messageHistoryFactory) {
+ this.messageHistoryFactory = camelContext.getInternalServiceManager().addService(messageHistoryFactory);
+ }
+
+ StreamCachingStrategy getStreamCachingStrategy() {
+ if (streamCachingStrategy == null) {
+ synchronized (lock) {
+ if (streamCachingStrategy == null) {
+ setStreamCachingStrategy(camelContext.createStreamCachingStrategy());
+ }
+ }
+ }
+ return streamCachingStrategy;
+ }
+
+ void setStreamCachingStrategy(StreamCachingStrategy streamCachingStrategy) {
+ this.streamCachingStrategy
+ = camelContext.getInternalServiceManager().addService(streamCachingStrategy, true, false, true);
+ }
+
+ InflightRepository getInflightRepository() {
+ if (inflightRepository == null) {
+ synchronized (lock) {
+ if (inflightRepository == null) {
+ setInflightRepository(camelContext.createInflightRepository());
+ }
+ }
+ }
+ return inflightRepository;
+ }
+
+ void setInflightRepository(InflightRepository repository) {
+ this.inflightRepository = camelContext.getInternalServiceManager().addService(repository);
+ }
+
+ UuidGenerator getUuidGenerator() {
+ if (uuidGenerator == null) {
+ synchronized (lock) {
+ if (uuidGenerator == null) {
+ setUuidGenerator(camelContext.createUuidGenerator());
+ }
+ }
+ }
+ return uuidGenerator;
+ }
+
+ void setUuidGenerator(UuidGenerator uuidGenerator) {
+ this.uuidGenerator = camelContext.getInternalServiceManager().addService(uuidGenerator);
+ }
+
+ Tracer getTracer() {
+ if (tracer == null) {
+ synchronized (lock) {
+ if (tracer == null) {
+ setTracer(camelContext.createTracer());
+ }
+ }
+ }
+ return tracer;
+ }
+
+ void setTracer(Tracer tracer) {
+ this.tracer = camelContext.getInternalServiceManager().addService(tracer, true, false, true);
+ }
+
+ TransformerRegistry getTransformerRegistry() {
+ if (transformerRegistry == null) {
+ synchronized (lock) {
+ if (transformerRegistry == null) {
+ setTransformerRegistry(camelContext.createTransformerRegistry());
+ }
+ }
+ }
+ return transformerRegistry;
+ }
+
+ void setTransformerRegistry(TransformerRegistry transformerRegistry) {
+ this.transformerRegistry = camelContext.getInternalServiceManager().addService(transformerRegistry);
+ }
+
+ ValidatorRegistry getValidatorRegistry() {
+ if (validatorRegistry == null) {
+ synchronized (lock) {
+ if (validatorRegistry == null) {
+ setValidatorRegistry(camelContext.createValidatorRegistry());
+ }
+ }
+ }
+ return validatorRegistry;
+ }
+
+ public void setValidatorRegistry(ValidatorRegistry validatorRegistry) {
+ this.validatorRegistry = camelContext.getInternalServiceManager().addService(validatorRegistry);
+ }
+
@Override
public RouteController getInternalRouteController() {
return internalRouteController;