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 11:20:51 UTC
[camel] 03/06: CAMEL-19998: cleanup injector API
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 194c7f6ae8707b8094eb16ad7e7252a17f1abb03
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Oct 17 09:01:11 2023 +0200
CAMEL-19998: cleanup injector API
---
.../camel/impl/engine/AbstractCamelContext.java | 14 +++-----------
.../impl/engine/DefaultCamelContextExtension.java | 22 ++++++++++++++++++++++
2 files changed, 25 insertions(+), 11 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 2ab1485665c..db0c9e47f0a 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
@@ -261,7 +261,6 @@ public abstract class AbstractCamelContext extends BaseService
private Boolean autowiredEnabled = Boolean.TRUE;
private Long delay;
private Map<String, String> globalOptions = new HashMap<>();
- private volatile Injector injector;
private volatile ShutdownStrategy shutdownStrategy;
private volatile ExecutorServiceManager executorServiceManager;
private volatile RouteController routeController;
@@ -1583,19 +1582,12 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public Injector getInjector() {
- if (injector == null) {
- synchronized (lock) {
- if (injector == null) {
- setInjector(createInjector());
- }
- }
- }
- return injector;
+ return camelContextExtension.getInjector();
}
@Override
public void setInjector(Injector injector) {
- this.injector = internalServiceManager.addService(injector);
+ camelContextExtension.setInjector(injector);
}
@Override
@@ -3167,7 +3159,7 @@ public abstract class AbstractCamelContext extends BaseService
* Force clear lazy initialization so they can be re-created on restart
*/
protected void forceStopLazyInitialization() {
- injector = null;
+ camelContextExtension.resetInjector();
camelContextExtension.resetTypeConverterRegistry();
camelContextExtension.resetTypeConverter();
}
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 d3a0bc2cfc0..f7ff8da84d4 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
@@ -50,6 +50,7 @@ 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.Injector;
import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.LifecycleStrategy;
import org.apache.camel.spi.LogListener;
@@ -124,6 +125,8 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
private volatile TypeConverterRegistry typeConverterRegistry;
private volatile TypeConverter typeConverter;
+ private volatile Injector injector;
+
@Deprecated
private ErrorHandlerFactory errorHandlerFactory;
private String basePackageScan;
@@ -830,6 +833,25 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
return typeConverter;
}
+ void resetInjector() {
+ injector = null;
+ }
+
+ Injector getInjector() {
+ if (injector == null) {
+ synchronized (lock) {
+ if (injector == null) {
+ setInjector(camelContext.createInjector());
+ }
+ }
+ }
+ return injector;
+ }
+
+ void setInjector(Injector injector) {
+ this.injector = camelContext.getInternalServiceManager().addService(injector);
+ }
+
@Override
public RouteController getInternalRouteController() {
return internalRouteController;