This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 0c74f41  camel-core - Optimize to remove last bits of reifiers when no 
longer needed. And only register cleaner when really needed such as when using 
custom reifiers.
0c74f41 is described below

commit 0c74f4110c6504295ba130bc69673e18c2443fe7
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sat Nov 7 10:43:06 2020 +0100

    camel-core - Optimize to remove last bits of reifiers when no longer 
needed. And only register cleaner when really needed such as when using custom 
reifiers.
---
 .../org/apache/camel/reifier/ProcessorReifier.java    | 12 ++++++------
 .../camel/reifier/dataformat/DataFormatReifier.java   | 12 ++++++------
 .../camel/reifier/language/ExpressionReifier.java     | 19 ++++++++++++-------
 .../reifier/loadbalancer/LoadBalancerReifier.java     | 18 ++++++++++++------
 .../camel/reifier/transformer/TransformerReifier.java | 18 ++++++++++++------
 .../camel/reifier/validator/ValidatorReifier.java     | 12 ++++++------
 6 files changed, 54 insertions(+), 37 deletions(-)

diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
index 8178b0b..68b5ac1 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
@@ -118,12 +118,9 @@ public abstract class ProcessorReifier<T extends 
ProcessorDefinition<?>> extends
 
     private static final Logger LOG = 
LoggerFactory.getLogger(ProcessorReifier.class);
 
-    private static final Map<Class<?>, BiFunction<Route, 
ProcessorDefinition<?>, ProcessorReifier<? extends ProcessorDefinition<?>>>> 
PROCESSORS;
-    static {
-        // for custom reifiers
-        PROCESSORS = new HashMap<>(0);
-        ReifierStrategy.addReifierClearer(ProcessorReifier::clearReifiers);
-    }
+    // for custom reifiers
+    private static final Map<Class<?>, BiFunction<Route, 
ProcessorDefinition<?>, ProcessorReifier<? extends ProcessorDefinition<?>>>> 
PROCESSORS
+            = new HashMap<>(0);
 
     protected final T definition;
 
@@ -140,6 +137,9 @@ public abstract class ProcessorReifier<T extends 
ProcessorDefinition<?>> extends
     public static void registerReifier(
             Class<?> processorClass,
             BiFunction<Route, ProcessorDefinition<?>, ProcessorReifier<? 
extends ProcessorDefinition<?>>> creator) {
+        if (PROCESSORS.isEmpty()) {
+            ReifierStrategy.addReifierClearer(ProcessorReifier::clearReifiers);
+        }
         PROCESSORS.put(processorClass, creator);
     }
 
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java
index 34a4874..e51fe35 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java
@@ -83,12 +83,9 @@ public abstract class DataFormatReifier<T extends 
DataFormatDefinition> extends
 
     private static final Logger LOG = 
LoggerFactory.getLogger(DataFormatReifier.class);
 
-    private static final Map<Class<? extends DataFormatDefinition>, 
BiFunction<CamelContext, DataFormatDefinition, DataFormatReifier<? extends 
DataFormatDefinition>>> DATAFORMATS;
-    static {
-        // for custom reifiers
-        DATAFORMATS = new HashMap<>(0);
-        ReifierStrategy.addReifierClearer(DataFormatReifier::clearReifiers);
-    }
+    // for custom reifiers
+    private static final Map<Class<? extends DataFormatDefinition>, 
BiFunction<CamelContext, DataFormatDefinition, DataFormatReifier<? extends 
DataFormatDefinition>>> DATAFORMATS
+            = new HashMap<>(0);
 
     protected final T definition;
 
@@ -100,6 +97,9 @@ public abstract class DataFormatReifier<T extends 
DataFormatDefinition> extends
     public static void registerReifier(
             Class<? extends DataFormatDefinition> dataFormatClass,
             BiFunction<CamelContext, DataFormatDefinition, DataFormatReifier<? 
extends DataFormatDefinition>> creator) {
+        if (DATAFORMATS.isEmpty()) {
+            
ReifierStrategy.addReifierClearer(DataFormatReifier::clearReifiers);
+        }
         DATAFORMATS.put(dataFormatClass, creator);
     }
 
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java
index 3cec62c..d4c6411 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/language/ExpressionReifier.java
@@ -58,13 +58,9 @@ import org.apache.camel.util.ObjectHelper;
 
 public class ExpressionReifier<T extends ExpressionDefinition> extends 
AbstractReifier {
 
-    private static final Map<Class<?>, BiFunction<CamelContext, 
ExpressionDefinition, ExpressionReifier<? extends ExpressionDefinition>>> 
EXPRESSIONS;
-
-    static {
-        // for custom reifiers
-        EXPRESSIONS = new HashMap<>(0);
-        ReifierStrategy.addReifierClearer(ExpressionReifier::clearReifiers);
-    }
+    // for custom reifiers
+    private static final Map<Class<?>, BiFunction<CamelContext, 
ExpressionDefinition, ExpressionReifier<? extends ExpressionDefinition>>> 
EXPRESSIONS
+            = new HashMap<>(0);
 
     protected final T definition;
 
@@ -73,6 +69,15 @@ public class ExpressionReifier<T extends 
ExpressionDefinition> extends AbstractR
         this.definition = definition;
     }
 
+    public static void registerReifier(
+            Class<?> processorClass,
+            BiFunction<CamelContext, ExpressionDefinition, ExpressionReifier<? 
extends ExpressionDefinition>> creator) {
+        if (EXPRESSIONS.isEmpty()) {
+            
ReifierStrategy.addReifierClearer(ExpressionReifier::clearReifiers);
+        }
+        EXPRESSIONS.put(processorClass, creator);
+    }
+
     public static ExpressionReifier<? extends ExpressionDefinition> reifier(
             CamelContext camelContext, ExpressionSubElementDefinition 
definition) {
         return reifier(camelContext, definition.getExpressionType());
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/loadbalancer/LoadBalancerReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/loadbalancer/LoadBalancerReifier.java
index a6df7bf..5851287 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/loadbalancer/LoadBalancerReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/loadbalancer/LoadBalancerReifier.java
@@ -36,12 +36,9 @@ import org.apache.camel.util.StringHelper;
 
 public class LoadBalancerReifier<T extends LoadBalancerDefinition> extends 
AbstractReifier {
 
-    private static final Map<Class<?>, BiFunction<Route, 
LoadBalancerDefinition, LoadBalancerReifier<? extends LoadBalancerDefinition>>> 
LOAD_BALANCERS;
-    static {
-        // for custom reifiers
-        LOAD_BALANCERS = new HashMap<>(0);
-        ReifierStrategy.addReifierClearer(LoadBalancerReifier::clearReifiers);
-    }
+    // for custom reifiers
+    private static final Map<Class<?>, BiFunction<Route, 
LoadBalancerDefinition, LoadBalancerReifier<? extends LoadBalancerDefinition>>> 
LOAD_BALANCERS
+            = new HashMap<>(0);
 
     protected final T definition;
 
@@ -50,6 +47,15 @@ public class LoadBalancerReifier<T extends 
LoadBalancerDefinition> extends Abstr
         this.definition = definition;
     }
 
+    public static void registerReifier(
+            Class<?> processorClass,
+            BiFunction<Route, LoadBalancerDefinition, LoadBalancerReifier<? 
extends LoadBalancerDefinition>> creator) {
+        if (LOAD_BALANCERS.isEmpty()) {
+            
ReifierStrategy.addReifierClearer(LoadBalancerReifier::clearReifiers);
+        }
+        LOAD_BALANCERS.put(processorClass, creator);
+    }
+
     public static LoadBalancerReifier<? extends LoadBalancerDefinition> 
reifier(
             Route route, LoadBalancerDefinition definition) {
 
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/transformer/TransformerReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/transformer/TransformerReifier.java
index af4908b..a0e3d1d 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/transformer/TransformerReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/transformer/TransformerReifier.java
@@ -31,12 +31,9 @@ import org.apache.camel.spi.Transformer;
 
 public abstract class TransformerReifier<T> extends AbstractReifier {
 
-    private static final Map<Class<?>, BiFunction<CamelContext, 
TransformerDefinition, TransformerReifier<? extends TransformerDefinition>>> 
TRANSFORMERS;
-    static {
-        // for custom reifiers
-        TRANSFORMERS = new HashMap<>(0);
-        ReifierStrategy.addReifierClearer(TransformerReifier::clearReifiers);
-    }
+    // for custom reifiers
+    private static final Map<Class<?>, BiFunction<CamelContext, 
TransformerDefinition, TransformerReifier<? extends TransformerDefinition>>> 
TRANSFORMERS
+            = new HashMap<>(0);
 
     protected final T definition;
 
@@ -45,6 +42,15 @@ public abstract class TransformerReifier<T> extends 
AbstractReifier {
         this.definition = definition;
     }
 
+    public static void registerReifier(
+            Class<?> processorClass,
+            BiFunction<CamelContext, TransformerDefinition, 
TransformerReifier<? extends TransformerDefinition>> creator) {
+        if (TRANSFORMERS.isEmpty()) {
+            
ReifierStrategy.addReifierClearer(TransformerReifier::clearReifiers);
+        }
+        TRANSFORMERS.put(processorClass, creator);
+    }
+
     public static TransformerReifier<? extends TransformerDefinition> reifier(
             CamelContext camelContext, TransformerDefinition definition) {
 
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/validator/ValidatorReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/validator/ValidatorReifier.java
index 4408da8..cc3a89a 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/validator/ValidatorReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/validator/ValidatorReifier.java
@@ -31,12 +31,9 @@ import org.apache.camel.spi.Validator;
 
 public abstract class ValidatorReifier<T> extends AbstractReifier {
 
-    private static final Map<Class<?>, BiFunction<CamelContext, 
ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>>> 
VALIDATORS;
-    static {
-        // for custom reifiers
-        VALIDATORS = new HashMap<>(0);
-        ReifierStrategy.addReifierClearer(ValidatorReifier::clearReifiers);
-    }
+    // for custom reifiers
+    private static final Map<Class<?>, BiFunction<CamelContext, 
ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>>> 
VALIDATORS
+            = new HashMap<>(0);
 
     protected final T definition;
 
@@ -48,6 +45,9 @@ public abstract class ValidatorReifier<T> extends 
AbstractReifier {
     public static void registerReifier(
             Class<?> processorClass,
             BiFunction<CamelContext, ValidatorDefinition, ValidatorReifier<? 
extends ValidatorDefinition>> creator) {
+        if (VALIDATORS.isEmpty()) {
+            ReifierStrategy.addReifierClearer(ValidatorReifier::clearReifiers);
+        }
         VALIDATORS.put(processorClass, creator);
     }
 

Reply via email to