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

commit 2524e7a044cf9747e9583f3f448c9b0dedfc83a4
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon May 27 11:15:27 2019 +0200

    CAMEL-13583: Camel Injector should have method for creating new instance 
without bean post processing which is not needed when loading internal Camel 
factory classes and the likes. This makes Camel startup faster and reduces the 
overhead of post processing/scanning classes/methods etc.
---
 .../main/java/org/apache/camel/cdi/CdiCamelInjector.java   |  7 ++++++-
 .../org/apache/camel/component/jcr/JcrConverterTest.java   |  5 +++++
 .../java/org/apache/camel/spring/spi/SpringInjector.java   | 12 +++++++++++-
 .../src/main/java/org/apache/camel/spi/Injector.java       | 14 ++++++++++++--
 .../camel/impl/converter/BaseTypeConverterRegistry.java    |  2 +-
 .../camel/impl/engine/BeanProcessorFactoryResolver.java    |  2 +-
 .../apache/camel/impl/engine/BeanProxyFactoryResolver.java |  2 +-
 .../apache/camel/impl/engine/DefaultComponentResolver.java |  2 +-
 .../camel/impl/engine/DefaultDataFormatResolver.java       |  2 +-
 .../org/apache/camel/impl/engine/DefaultFactoryFinder.java |  2 +-
 .../java/org/apache/camel/impl/engine/DefaultInjector.java |  9 +++++++--
 .../apache/camel/impl/engine/DefaultLanguageResolver.java  |  4 ++--
 .../camel/impl/engine/HeadersMapFactoryResolver.java       |  2 +-
 .../camel/impl/engine/RestRegistryFactoryResolver.java     |  2 +-
 .../apache/camel/processor/SendDynamicAwareResolver.java   |  2 +-
 .../camel/impl/cloud/ServiceCallProcessorFactory.java      |  2 +-
 .../java/org/apache/camel/core/osgi/impl/Activator.java    |  4 ++--
 .../core/xml/AbstractCamelContextFactoryBeanTest.java      |  6 ++++++
 .../src/main/java/org/apache/camel/model/ModelHelper.java  |  2 +-
 .../model/cloud/ServiceCallExpressionConfiguration.java    |  2 +-
 .../cloud/ServiceCallServiceChooserConfiguration.java      |  2 +-
 .../cloud/ServiceCallServiceDiscoveryConfiguration.java    |  2 +-
 .../model/cloud/ServiceCallServiceFilterConfiguration.java |  2 +-
 .../cloud/ServiceCallServiceLoadBalancerConfiguration.java |  2 +-
 .../camel/reifier/loadbalancer/LoadBalancerReifier.java    |  2 +-
 .../camel/reifier/transformer/CustomTransformeReifier.java |  2 +-
 .../camel/reifier/validator/CustomValidatorReifier.java    |  2 +-
 .../apache/camel/impl/engine/DefaultFactoryFinderTest.java |  4 ++--
 .../java/org/apache/camel/util/ReflectionInjector.java     |  9 ++++++++-
 29 files changed, 80 insertions(+), 32 deletions(-)

diff --git 
a/components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelInjector.java 
b/components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelInjector.java
index a4d8563..582b3ee 100644
--- 
a/components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelInjector.java
+++ 
b/components/camel-cdi/src/main/java/org/apache/camel/cdi/CdiCamelInjector.java
@@ -35,8 +35,13 @@ final class CdiCamelInjector implements Injector {
 
     @Override
     public <T> T newInstance(Class<T> type) {
+        return newInstance(type, true);
+    }
+
+    @Override
+    public <T> T newInstance(Class<T> type, boolean postProcessBean) {
         return getReferenceByType(manager, type)
-            .orElseGet(() -> injector.newInstance(type));
+                .orElseGet(() -> injector.newInstance(type, postProcessBean));
     }
 
     @Override
diff --git 
a/components/camel-jcr/src/test/java/org/apache/camel/component/jcr/JcrConverterTest.java
 
b/components/camel-jcr/src/test/java/org/apache/camel/component/jcr/JcrConverterTest.java
index 8feee6b..ac1f35f 100644
--- 
a/components/camel-jcr/src/test/java/org/apache/camel/component/jcr/JcrConverterTest.java
+++ 
b/components/camel-jcr/src/test/java/org/apache/camel/component/jcr/JcrConverterTest.java
@@ -50,6 +50,11 @@ public class JcrConverterTest extends Assert {
                 new Injector() {
                     @Override
                     public <T> T newInstance(Class<T> type) {
+                        return newInstance(type, true);
+                    }
+
+                    @Override
+                    public <T> T newInstance(Class<T> type, boolean 
postProcessBean) {
                         return ObjectHelper.newInstance(type);
                     }
 
diff --git 
a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringInjector.java
 
b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringInjector.java
index d7e4471..7d50435 100644
--- 
a/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringInjector.java
+++ 
b/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringInjector.java
@@ -33,7 +33,17 @@ public class SpringInjector implements Injector {
     }
 
     public <T> T newInstance(Class<T> type) {
-        Object value = applicationContext.getBeanFactory().createBean(type, 
autowireMode, dependencyCheck);
+        return newInstance(type, true);
+    }
+
+    @Override
+    public <T> T newInstance(Class<T> type, boolean postProcessBean) {
+        Object value;
+        if (postProcessBean) {
+            value = applicationContext.getBeanFactory().createBean(type, 
autowireMode, dependencyCheck);
+        } else {
+            value = applicationContext.getBeanFactory().createBean(type, 
AutowireCapableBeanFactory.AUTOWIRE_NO, false);
+        }
         return type.cast(value);
     }
 
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/Injector.java 
b/core/camel-api/src/main/java/org/apache/camel/spi/Injector.java
index 4e39809..81c7fa1 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/Injector.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/Injector.java
@@ -24,8 +24,8 @@ package org.apache.camel.spi;
 public interface Injector {
 
     /**
-     * Instantiates a new instance of the given type possibly injecting values
-     * into the object in the process
+     * Instantiates a new instance of the given type; possibly injecting values
+     * into the object in the process (bean post processing)
      * 
      * @param type the type of object to create
      * @return a newly created instance
@@ -33,6 +33,16 @@ public interface Injector {
     <T> T newInstance(Class<T> type);
 
     /**
+     * Instantiates a new instance of the given type; possibly injecting values
+     * into the object in the process (bean post processing if enabled)
+     *
+     * @param type the type of object to create
+     * @param postProcessBean whether to post process the bean
+     * @return a newly created instance
+     */
+    <T> T newInstance(Class<T> type, boolean postProcessBean);
+
+    /**
      * Whether the injector supports creating new instances using auto-wiring.
      * If this is possible then bean instances is attempt first to be created 
this way
      * and if not, then the bean can only be created if there is a public 
no-arg constructor.
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
index 622e69c..8f45f4d 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java
@@ -536,7 +536,7 @@ public abstract class BaseTypeConverterRegistry extends 
ServiceSupport implement
                     .map(cl -> ObjectHelper.loadClass(name, cl))
                     .filter(Objects::nonNull)
                     .findAny().orElseThrow(() -> new 
ClassNotFoundException(name));
-            Object obj = getInjector().newInstance(clazz);
+            Object obj = getInjector().newInstance(clazz, false);
             if (obj instanceof TypeConverterLoader) {
                 TypeConverterLoader loader = (TypeConverterLoader) obj;
                 log.debug("TypeConverterLoader: {} loading converters", name);
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/BeanProcessorFactoryResolver.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/BeanProcessorFactoryResolver.java
index 2dcca85..cc9f375 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/BeanProcessorFactoryResolver.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/BeanProcessorFactoryResolver.java
@@ -50,7 +50,7 @@ public class BeanProcessorFactoryResolver {
                 LOG.debug("Found BeanProxyFactory: {} via: {}{}", 
type.getName(), factoryFinder.getResourcePath(), "bean-processor-factory");
             }
             if (BeanProcessorFactory.class.isAssignableFrom(type)) {
-                BeanProcessorFactory answer = (BeanProcessorFactory) 
context.getInjector().newInstance(type);
+                BeanProcessorFactory answer = (BeanProcessorFactory) 
context.getInjector().newInstance(type, false);
                 LOG.debug("Detected and using BeanProcessorFactory: {}", 
answer);
                 return answer;
             } else {
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/BeanProxyFactoryResolver.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/BeanProxyFactoryResolver.java
index cbe233c..39405f6 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/BeanProxyFactoryResolver.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/BeanProxyFactoryResolver.java
@@ -50,7 +50,7 @@ public class BeanProxyFactoryResolver {
                 LOG.debug("Found BeanProxyFactory: {} via: {}{}", 
type.getName(), factoryFinder.getResourcePath(), "bean-proxy-factory");
             }
             if (BeanProxyFactory.class.isAssignableFrom(type)) {
-                BeanProxyFactory answer = (BeanProxyFactory) 
context.getInjector().newInstance(type);
+                BeanProxyFactory answer = (BeanProxyFactory) 
context.getInjector().newInstance(type, false);
                 LOG.debug("Detected and using BeanProxyFactory: {}", answer);
                 return answer;
             } else {
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultComponentResolver.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultComponentResolver.java
index a847bd9..0e66b22 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultComponentResolver.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultComponentResolver.java
@@ -69,7 +69,7 @@ public class DefaultComponentResolver implements 
ComponentResolver {
 
         // create the component
         if (Component.class.isAssignableFrom(type)) {
-            return (Component) context.getInjector().newInstance(type);
+            return (Component) context.getInjector().newInstance(type, false);
         } else {
             throw new IllegalArgumentException("Type is not a Component 
implementation. Found: " + type.getName());
         }
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultDataFormatResolver.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultDataFormatResolver.java
index 378d428..1d7f3a9 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultDataFormatResolver.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultDataFormatResolver.java
@@ -85,7 +85,7 @@ public class DefaultDataFormatResolver implements 
DataFormatResolver {
 
         if (type != null) {
             if (DataFormat.class.isAssignableFrom(type)) {
-                dataFormat = (DataFormat) 
context.getInjector().newInstance(type);
+                dataFormat = (DataFormat) 
context.getInjector().newInstance(type, false);
             } else {
                 throw new IllegalArgumentException("Resolving dataformat: " + 
name + " detected type conflict: Not a DataFormat implementation. Found: " + 
type.getName());
             }
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultFactoryFinder.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultFactoryFinder.java
index 94b72ea..68df342 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultFactoryFinder.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultFactoryFinder.java
@@ -108,7 +108,7 @@ public class DefaultFactoryFinder implements FactoryFinder {
     private <T> T newInstance(String key, Injector injector, String 
propertyPrefix, Class<T> expectedType)
         throws IOException, ClassNotFoundException {
         Class<?> type = findClass(key, propertyPrefix);
-        Object value = injector.newInstance(type);
+        Object value = injector.newInstance(type, false);
         if (expectedType.isInstance(value)) {
             return expectedType.cast(value);
         } else {
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java
index 76f583b..eee18ed 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java
@@ -41,13 +41,18 @@ public class DefaultInjector implements Injector  {
 
     @Override
     public <T> T newInstance(Class<T> type) {
+        return newInstance(type, true);
+    }
+
+    @Override
+    public <T> T newInstance(Class<T> type, boolean postProcessBean) {
         T answer = ObjectHelper.newInstance(type);
-        if (answer != null) {
+        if (answer != null && postProcessBean) {
             try {
                 postProcessor.postProcessBeforeInitialization(answer, 
answer.getClass().getName());
                 postProcessor.postProcessAfterInitialization(answer, 
answer.getClass().getName());
             } catch (Exception e) {
-                throw new RuntimeCamelException("Error during post processing 
of bean " + answer, e);
+                throw new RuntimeCamelException("Error during post processing 
of bean: " + answer, e);
             }
         }
         return answer;
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultLanguageResolver.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultLanguageResolver.java
index 511fac9..e8d264a 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultLanguageResolver.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultLanguageResolver.java
@@ -58,7 +58,7 @@ public class DefaultLanguageResolver implements 
LanguageResolver {
 
         if (type != null) {
             if (Language.class.isAssignableFrom(type)) {
-                return (Language) context.getInjector().newInstance(type);
+                return (Language) context.getInjector().newInstance(type, 
false);
             } else {
                 throw new IllegalArgumentException("Resolving language: " + 
name + " detected type conflict: Not a Language implementation. Found: " + 
type.getName());
             }
@@ -82,7 +82,7 @@ public class DefaultLanguageResolver implements 
LanguageResolver {
         }
         if (type != null) {
             if (LanguageResolver.class.isAssignableFrom(type)) {
-                LanguageResolver resolver = (LanguageResolver) 
context.getInjector().newInstance(type);
+                LanguageResolver resolver = (LanguageResolver) 
context.getInjector().newInstance(type, false);
                 return resolver.resolveLanguage(name, context);
             } else {
                 throw new IllegalArgumentException("Resolving language: " + 
name + " detected type conflict: Not a LanguageResolver implementation. Found: 
" + type.getName());
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/HeadersMapFactoryResolver.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/HeadersMapFactoryResolver.java
index daa4825..0a8e72d 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/HeadersMapFactoryResolver.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/HeadersMapFactoryResolver.java
@@ -52,7 +52,7 @@ public class HeadersMapFactoryResolver {
                 LOG.debug("Found HeadersMapFactory: {} via: {}{}", 
type.getName(), factoryFinder.getResourcePath(), "headers-map-factory");
             }
             if (HeadersMapFactory.class.isAssignableFrom(type)) {
-                HeadersMapFactory answer = (HeadersMapFactory) 
context.getInjector().newInstance(type);
+                HeadersMapFactory answer = (HeadersMapFactory) 
context.getInjector().newInstance(type, false);
                 LOG.info("Detected and using custom HeadersMapFactory: {}", 
answer);
                 return answer;
             } else {
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/RestRegistryFactoryResolver.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/RestRegistryFactoryResolver.java
index 130ef9f..a63263b 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/RestRegistryFactoryResolver.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/RestRegistryFactoryResolver.java
@@ -52,7 +52,7 @@ public class RestRegistryFactoryResolver {
                 LOG.debug("Found RestRegistryFactory: {} via: {}{}", 
type.getName(), factoryFinder.getResourcePath(), "rest-registry-factory");
             }
             if (RestRegistryFactory.class.isAssignableFrom(type)) {
-                RestRegistryFactory answer = (RestRegistryFactory) 
context.getInjector().newInstance(type);
+                RestRegistryFactory answer = (RestRegistryFactory) 
context.getInjector().newInstance(type, false);
                 LOG.debug("Detected and using RestRegistryFactory: {}", 
answer);
                 return answer;
             } else {
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/processor/SendDynamicAwareResolver.java
 
b/core/camel-base/src/main/java/org/apache/camel/processor/SendDynamicAwareResolver.java
index 5d3222a..c221bae 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/processor/SendDynamicAwareResolver.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/processor/SendDynamicAwareResolver.java
@@ -49,7 +49,7 @@ public class SendDynamicAwareResolver {
                 LOG.debug("Found SendDynamicAware: {} via: {}{}", 
type.getName(), factoryFinder.getResourcePath(), name);
             }
             if (SendDynamicAware.class.isAssignableFrom(type)) {
-                SendDynamicAware answer = (SendDynamicAware) 
context.getInjector().newInstance(type);
+                SendDynamicAware answer = (SendDynamicAware) 
context.getInjector().newInstance(type, false);
                 answer.setScheme(scheme);
                 return answer;
             } else {
diff --git 
a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
 
b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
index 5016a03..fb4e5b4 100644
--- 
a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
+++ 
b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
@@ -390,7 +390,7 @@ public class ServiceCallProcessorFactory extends 
TypedProcessorFactory<ServiceCa
 
                 if (ObjectHelper.isNotEmpty(type)) {
                     if (ServiceExpressionFactory.class.isAssignableFrom(type)) 
{
-                        factory = 
(ServiceExpressionFactory)camelContext.getInjector().newInstance(type);
+                        factory = 
(ServiceExpressionFactory)camelContext.getInjector().newInstance(type, false);
                     } else {
                         throw new IllegalArgumentException("Resolving 
Expression: " + lookupName + " detected type conflict: Not a 
ServiceExpressionFactory implementation. Found: "
                                                            + type.getName());
diff --git 
a/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/impl/Activator.java
 
b/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/impl/Activator.java
index 5203363..dd105b0 100644
--- 
a/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/impl/Activator.java
+++ 
b/core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/impl/Activator.java
@@ -544,11 +544,11 @@ public class Activator implements BundleActivator, 
BundleTrackerCustomizer<Objec
             try {
                 Properties properties = loadProperties(url);
                 String classname = (String) properties.get("class");
-                Class<?> type = bundle.loadClass(classname);
+                Class type = bundle.loadClass(classname);
                 if (!this.type.isAssignableFrom(type)) {
                     throw new IllegalArgumentException("Type is not a " + 
this.type.getName() + " implementation. Found: " + type.getName());
                 }
-                return injector.newInstance((Class<T>) type);
+                return (T) injector.newInstance(type, false);
             } catch (ClassNotFoundException e) {
                 throw new IllegalArgumentException("Invalid URI, no " + 
this.type.getName() + " registered for scheme : " + name, e);
             }
diff --git 
a/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java
 
b/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java
index 7aed727..8bfcdf1 100644
--- 
a/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java
+++ 
b/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java
@@ -65,8 +65,14 @@ public class AbstractCamelContextFactoryBeanTest {
         new Injector() {
             @Override
             public <T> T newInstance(Class<T> type) {
+                return newInstance(type, false);
+            }
+
+            @Override
+            public <T> T newInstance(Class<T> type, boolean postProcessBean) {
                 return ObjectHelper.newInstance(type);
             }
+
             @Override
             public boolean supportsAutoWiring() {
                 return false;
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java 
b/core/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
index 1f5efd8..8885c49 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
@@ -425,7 +425,7 @@ public final class ModelHelper {
         XmlConverter xmlConverter;
         if (context != null) {
             TypeConverterRegistry registry = 
context.getTypeConverterRegistry();
-            xmlConverter = 
registry.getInjector().newInstance(XmlConverter.class);
+            xmlConverter = 
registry.getInjector().newInstance(XmlConverter.class, false);
         } else {
             xmlConverter = new XmlConverter();
         }
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java
 
b/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java
index d9f753c..0cd2d61 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java
@@ -235,7 +235,7 @@ public class ServiceCallExpressionConfiguration extends 
IdentifiedType implement
 
                 if (type != null) {
                     if (ServiceExpressionFactory.class.isAssignableFrom(type)) 
{
-                        factory = (ServiceExpressionFactory) 
camelContext.getInjector().newInstance(type);
+                        factory = (ServiceExpressionFactory) 
camelContext.getInjector().newInstance(type, false);
                     } else {
                         throw new IllegalArgumentException(
                             "Resolving Expression: " + factoryKey + " detected 
type conflict: Not a ExpressionFactory implementation. Found: " + 
type.getName());
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java
 
b/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java
index 2dc6dfc..b3ff1b6 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java
@@ -153,7 +153,7 @@ public class ServiceCallServiceChooserConfiguration extends 
IdentifiedType imple
 
             if (type != null) {
                 if (ServiceChooserFactory.class.isAssignableFrom(type)) {
-                    factory = (ServiceChooserFactory) 
camelContext.getInjector().newInstance(type);
+                    factory = (ServiceChooserFactory) 
camelContext.getInjector().newInstance(type, false);
                 } else {
                     throw new NoFactoryAvailableException(
                         "Resolving ServiceChooser: " + factoryKey + " detected 
type conflict: Not a ServiceChooserFactory implementation. Found: " + 
type.getName());
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java
 
b/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java
index d153f41..f9ad9bd 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java
@@ -160,7 +160,7 @@ public class ServiceCallServiceDiscoveryConfiguration 
extends IdentifiedType imp
 
             if (type != null) {
                 if (ServiceDiscoveryFactory.class.isAssignableFrom(type)) {
-                    factory = (ServiceDiscoveryFactory) 
camelContext.getInjector().newInstance(type);
+                    factory = (ServiceDiscoveryFactory) 
camelContext.getInjector().newInstance(type, false);
                 } else {
                     throw new IllegalArgumentException(
                         "Resolving ServiceDiscovery: " + factoryKey + " 
detected type conflict: Not a ServiceDiscoveryFactory implementation. Found: " 
+ type.getName());
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java
 
b/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java
index db7887e..7a36a9c 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java
@@ -153,7 +153,7 @@ public class ServiceCallServiceFilterConfiguration extends 
IdentifiedType implem
 
             if (type != null) {
                 if (ServiceFilterFactory.class.isAssignableFrom(type)) {
-                    factory = (ServiceFilterFactory) 
camelContext.getInjector().newInstance(type);
+                    factory = (ServiceFilterFactory) 
camelContext.getInjector().newInstance(type, false);
                 } else {
                     throw new NoFactoryAvailableException(
                         "Resolving ServiceFilter: " + factoryKey + " detected 
type conflict: Not a ServiceFilterFactory implementation. Found: " + 
type.getName());
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
 
b/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
index 6794a23..d224f1f 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
@@ -153,7 +153,7 @@ public class ServiceCallServiceLoadBalancerConfiguration 
extends IdentifiedType
 
             if (type != null) {
                 if (ServiceLoadBalancerFactory.class.isAssignableFrom(type)) {
-                    factory = (ServiceLoadBalancerFactory) 
camelContext.getInjector().newInstance(type);
+                    factory = (ServiceLoadBalancerFactory) 
camelContext.getInjector().newInstance(type, false);
                 } else {
                     throw new IllegalArgumentException(
                         "Resolving LoadBalancer: " + factoryKey + " detected 
type conflict: Not a LoadBalancerFactory implementation. Found: " + 
type.getName());
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/reifier/loadbalancer/LoadBalancerReifier.java
 
b/core/camel-core/src/main/java/org/apache/camel/reifier/loadbalancer/LoadBalancerReifier.java
index e4bc022..797ac7f 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/reifier/loadbalancer/LoadBalancerReifier.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/reifier/loadbalancer/LoadBalancerReifier.java
@@ -75,7 +75,7 @@ public class LoadBalancerReifier<T extends 
LoadBalancerDefinition> {
             if (type == null) {
                 throw new IllegalArgumentException("Cannot find class: " + 
loadBalancerTypeName + " in the classpath");
             }
-            answer = (LoadBalancer) 
routeContext.getCamelContext().getInjector().newInstance(type);
+            answer = (LoadBalancer) 
routeContext.getCamelContext().getInjector().newInstance(type, false);
             definition.configureLoadBalancer(answer);
         }
 
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/reifier/transformer/CustomTransformeReifier.java
 
b/core/camel-core/src/main/java/org/apache/camel/reifier/transformer/CustomTransformeReifier.java
index 279643b..99afa45 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/reifier/transformer/CustomTransformeReifier.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/reifier/transformer/CustomTransformeReifier.java
@@ -46,7 +46,7 @@ class CustomTransformeReifier extends 
TransformerReifier<CustomTransformerDefini
             if (transformerClass == null) {
                 throw new IllegalArgumentException("Cannot find transformer 
class: " + definition.getClassName());
             }
-            transformer = context.getInjector().newInstance(transformerClass);
+            transformer = context.getInjector().newInstance(transformerClass, 
false);
 
         }
         transformer.setCamelContext(context);
diff --git 
a/core/camel-core/src/main/java/org/apache/camel/reifier/validator/CustomValidatorReifier.java
 
b/core/camel-core/src/main/java/org/apache/camel/reifier/validator/CustomValidatorReifier.java
index 3db2b89..fb35984 100644
--- 
a/core/camel-core/src/main/java/org/apache/camel/reifier/validator/CustomValidatorReifier.java
+++ 
b/core/camel-core/src/main/java/org/apache/camel/reifier/validator/CustomValidatorReifier.java
@@ -46,7 +46,7 @@ class CustomValidatorReifier extends 
ValidatorReifier<CustomValidatorDefinition>
             if (validatorClass == null) {
                 throw new IllegalArgumentException("Cannot find validator 
class: " + definition.getClassName());
             }
-            validator = context.getInjector().newInstance(validatorClass);
+            validator = context.getInjector().newInstance(validatorClass, 
false);
 
         }
         validator.setCamelContext(context);
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultFactoryFinderTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultFactoryFinderTest.java
index 0389d2d..bdaa0c3 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultFactoryFinderTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultFactoryFinderTest.java
@@ -78,7 +78,7 @@ public class DefaultFactoryFinderTest {
         final Injector injector = mock(Injector.class);
 
         final TestImplA expected = new TestImplA();
-        when(injector.newInstance(TestImplA.class)).thenReturn(expected);
+        when(injector.newInstance(TestImplA.class, 
false)).thenReturn(expected);
 
         try {
             factoryFinder.newInstances("TestImplA", injector, TestImplB.class);
@@ -123,7 +123,7 @@ public class DefaultFactoryFinderTest {
         final Injector injector = mock(Injector.class);
 
         final TestImplA expected = new TestImplA();
-        when(injector.newInstance(TestImplA.class)).thenReturn(expected);
+        when(injector.newInstance(TestImplA.class, 
false)).thenReturn(expected);
 
         final List<TestType> instances = 
factoryFinder.newInstances("TestImplA", injector, TestType.class);
 
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/util/ReflectionInjector.java 
b/core/camel-core/src/test/java/org/apache/camel/util/ReflectionInjector.java
index 04582e0..ed081a9 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/util/ReflectionInjector.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/util/ReflectionInjector.java
@@ -22,12 +22,19 @@ import org.apache.camel.support.ObjectHelper;
 /**
  * A simple implementation of {@link Injector} which just uses reflection to
  * instantiate new objects using their zero argument constructor. For more
- * complex implementations try the Spring or Guice implementations.
+ * complex implementations try the Spring or CDI implementations.
  */
 public class ReflectionInjector implements Injector {
 
+    @Override
     public <T> T newInstance(Class<T> type) {
+        return newInstance(type, true);
+    }
+
+    @Override
+    public <T> T newInstance(Class<T> type, boolean postProcessBean) {
         return ObjectHelper.newInstance(type);
+        // does not support post processing
     }
 
     @Override

Reply via email to