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); }