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 7439d9fd063315c895dd1391b5abbb4e1fc698ec Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Mon Jun 12 13:57:08 2023 +0200 (chores) camel-base-engine: cleanup duplicated code in LifecycleStrategySupport --- .../engine/DefaultAutowiredLifecycleStrategy.java | 37 ++------------------- .../camel/main/MainAutowiredLifecycleStrategy.java | 34 +------------------ .../camel/support/LifecycleStrategySupport.java | 38 ++++++++++++++++++++++ 3 files changed, 42 insertions(+), 67 deletions(-) diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultAutowiredLifecycleStrategy.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultAutowiredLifecycleStrategy.java index df01623e0e9..157c3c89926 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultAutowiredLifecycleStrategy.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultAutowiredLifecycleStrategy.java @@ -16,18 +16,13 @@ */ package org.apache.camel.impl.engine; -import java.util.Set; - import org.apache.camel.CamelContext; import org.apache.camel.Component; import org.apache.camel.Ordered; import org.apache.camel.spi.AutowiredLifecycleStrategy; import org.apache.camel.spi.DataFormat; import org.apache.camel.spi.Language; -import org.apache.camel.spi.PropertyConfigurer; -import org.apache.camel.spi.PropertyConfigurerGetter; import org.apache.camel.support.LifecycleStrategySupport; -import org.apache.camel.support.PluginHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -87,35 +82,9 @@ class DefaultAutowiredLifecycleStrategy extends LifecycleStrategySupport impleme } private void autwire(String name, String kind, Object target) { - PropertyConfigurer pc = PluginHelper.getConfigurerResolver(camelContext) - .resolvePropertyConfigurer(name + "-" + kind, camelContext); - if (pc instanceof PropertyConfigurerGetter) { - PropertyConfigurerGetter getter = (PropertyConfigurerGetter) pc; - String[] names = getter.getAutowiredNames(); - if (names != null) { - for (String option : names) { - // is there already a configured value? - Object value = getter.getOptionValue(target, option, true); - if (value == null) { - Class<?> type = getter.getOptionType(option, true); - if (type != null) { - Set<?> set = camelContext.getRegistry().findByType(type); - if (set.size() == 1) { - value = set.iterator().next(); - } - } - if (value != null) { - boolean hit = pc.configure(camelContext, target, option, value, true); - if (hit) { - LOG.info( - "Autowired property: {} on {}: {} as exactly one instance of type: {} ({}) found in the registry", - option, kind, name, type.getName(), value.getClass().getName()); - } - } - } - } - } - } + doAutoWire(name, kind, target, camelContext); } + + } diff --git a/core/camel-main/src/main/java/org/apache/camel/main/MainAutowiredLifecycleStrategy.java b/core/camel-main/src/main/java/org/apache/camel/main/MainAutowiredLifecycleStrategy.java index 0c83365531e..1c969910bb5 100644 --- a/core/camel-main/src/main/java/org/apache/camel/main/MainAutowiredLifecycleStrategy.java +++ b/core/camel-main/src/main/java/org/apache/camel/main/MainAutowiredLifecycleStrategy.java @@ -18,7 +18,6 @@ package org.apache.camel.main; import java.util.HashMap; import java.util.Map; -import java.util.Set; import org.apache.camel.CamelContext; import org.apache.camel.Component; @@ -27,10 +26,7 @@ import org.apache.camel.VetoCamelContextStartException; import org.apache.camel.spi.AutowiredLifecycleStrategy; import org.apache.camel.spi.DataFormat; import org.apache.camel.spi.Language; -import org.apache.camel.spi.PropertyConfigurer; -import org.apache.camel.spi.PropertyConfigurerGetter; import org.apache.camel.support.LifecycleStrategySupport; -import org.apache.camel.support.PluginHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -129,35 +125,7 @@ public class MainAutowiredLifecycleStrategy extends LifecycleStrategySupport imp } private void autwire(String name, String kind, Object target) { - PropertyConfigurer pc = PluginHelper.getConfigurerResolver(camelContext) - .resolvePropertyConfigurer(name + "-" + kind, camelContext); - if (pc instanceof PropertyConfigurerGetter) { - PropertyConfigurerGetter getter = (PropertyConfigurerGetter) pc; - String[] names = getter.getAutowiredNames(); - if (names != null) { - for (String option : names) { - // is there already a configured value? - Object value = getter.getOptionValue(target, option, true); - if (value == null) { - Class<?> type = getter.getOptionType(option, true); - if (type != null) { - Set<?> set = camelContext.getRegistry().findByType(type); - if (set.size() == 1) { - value = set.iterator().next(); - } - } - if (value != null) { - boolean hit = pc.configure(camelContext, target, option, value, true); - if (hit) { - LOG.info( - "Autowired property: {} on {}: {} as exactly one instance of type: {} ({}) found in the registry", - option, kind, name, type.getName(), value.getClass().getName()); - } - } - } - } - } - } + doAutoWire(name, kind, target, camelContext); } } diff --git a/core/camel-support/src/main/java/org/apache/camel/support/LifecycleStrategySupport.java b/core/camel-support/src/main/java/org/apache/camel/support/LifecycleStrategySupport.java index 7c085e26bd6..e43ed8318a1 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/LifecycleStrategySupport.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/LifecycleStrategySupport.java @@ -17,6 +17,7 @@ package org.apache.camel.support; import java.util.Collection; +import java.util.Set; import java.util.concurrent.ThreadPoolExecutor; import java.util.function.Consumer; @@ -34,11 +35,16 @@ import org.apache.camel.spi.OnCamelContextStarted; import org.apache.camel.spi.OnCamelContextStarting; import org.apache.camel.spi.OnCamelContextStopped; import org.apache.camel.spi.OnCamelContextStopping; +import org.apache.camel.spi.PropertyConfigurer; +import org.apache.camel.spi.PropertyConfigurerGetter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * A useful base class for {@link LifecycleStrategy} implementations. */ public abstract class LifecycleStrategySupport implements LifecycleStrategy { + private static final Logger LOG = LoggerFactory.getLogger(LifecycleStrategySupport.class); // ******************************* // @@ -238,4 +244,36 @@ public abstract class LifecycleStrategySupport implements LifecycleStrategy { public void onThreadPoolRemove(CamelContext camelContext, ThreadPoolExecutor threadPool) { // noop } + + protected static void doAutoWire(String name, String kind, Object target, CamelContext camelContext) { + PropertyConfigurer pc = PluginHelper.getConfigurerResolver(camelContext) + .resolvePropertyConfigurer(name + "-" + kind, camelContext); + if (pc instanceof PropertyConfigurerGetter) { + PropertyConfigurerGetter getter = (PropertyConfigurerGetter) pc; + String[] names = getter.getAutowiredNames(); + if (names != null) { + for (String option : names) { + // is there already a configured value? + Object value = getter.getOptionValue(target, option, true); + if (value == null) { + Class<?> type = getter.getOptionType(option, true); + if (type != null) { + Set<?> set = camelContext.getRegistry().findByType(type); + if (set.size() == 1) { + value = set.iterator().next(); + } + } + if (value != null) { + boolean hit = pc.configure(camelContext, target, option, value, true); + if (hit) { + LOG.info( + "Autowired property: {} on {}: {} as exactly one instance of type: {} ({}) found in the registry", + option, kind, name, type.getName(), value.getClass().getName()); + } + } + } + } + } + } + } }