You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/03/01 15:20:20 UTC

svn commit: r1295579 - in /camel/trunk/camel-core/src/main/java/org/apache/camel/model: BeanDefinition.java ProcessorDefinition.java

Author: davsclaus
Date: Thu Mar  1 14:20:19 2012
New Revision: 1295579

URL: http://svn.apache.org/viewvc?rev=1295579&view=rev
Log:
CAMEL-5056: @deprecated not used fluent builders on bean def. Allow to set bean type by class.

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/BeanDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/BeanDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/BeanDefinition.java?rev=1295579&r1=1295578&r2=1295579&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/BeanDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/BeanDefinition.java Thu Mar  1 14:20:19 2012
@@ -30,7 +30,6 @@ import org.apache.camel.component.bean.C
 import org.apache.camel.component.bean.ConstantTypeBeanHolder;
 import org.apache.camel.component.bean.MethodNotFoundException;
 import org.apache.camel.component.bean.RegistryBean;
-import org.apache.camel.spi.Required;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.ObjectHelper;
@@ -50,6 +49,8 @@ public class BeanDefinition extends NoOu
     @XmlAttribute
     private String beanType;
     @XmlTransient
+    private Class<?> beanClass;
+    @XmlTransient
     private Object bean;
 
     public BeanDefinition() {
@@ -78,6 +79,8 @@ public class BeanDefinition extends NoOu
             return "ref:" + ref + methodText;
         } else if (bean != null) {
             return bean.toString();
+        } else if (beanClass != null) {
+            return beanClass.getName();
         } else if (beanType != null) {
             return beanType;
         } else {
@@ -99,7 +102,6 @@ public class BeanDefinition extends NoOu
         return ref;
     }
 
-    @Required
     public void setRef(String ref) {
         this.ref = ref;
     }
@@ -124,6 +126,10 @@ public class BeanDefinition extends NoOu
         this.beanType = beanType;
     }
 
+    public void setBeanType(Class<?> beanType) {
+        this.beanClass = beanType;
+    }
+
     // Fluent API
     //-------------------------------------------------------------------------
     /**
@@ -131,7 +137,9 @@ public class BeanDefinition extends NoOu
      *
      * @param ref  the bean's id in the registry
      * @return the builder
+     * @deprecated not in use, will be removed in next Camel release
      */
+    @Deprecated
     public BeanDefinition ref(String ref) {
         setRef(ref);
         return this;
@@ -142,7 +150,9 @@ public class BeanDefinition extends NoOu
      *
      * @param method  the bean's method name which wants camel to call
      * @return the builder
+     * @deprecated not in use, will be removed in next Camel release
      */
+    @Deprecated
     public BeanDefinition method(String method) {
         setMethod(method);
         return this;
@@ -153,7 +163,9 @@ public class BeanDefinition extends NoOu
      *
      * @param bean the instance of the bean
      * @return the builder
+     * @deprecated not in use, will be removed in next Camel release
      */
+    @Deprecated
     public BeanDefinition bean(Object bean) {
         setBean(bean);
         return this;
@@ -164,9 +176,11 @@ public class BeanDefinition extends NoOu
      *
      * @param beanType the Class of the bean
      * @return the builder
+     * @deprecated not in use, will be removed in next Camel release
      */
+    @Deprecated
     public BeanDefinition beanType(Class<?> beanType) {
-        setBean(beanType);
+        setBeanType(beanType);
         return this;
     }
 
@@ -183,12 +197,22 @@ public class BeanDefinition extends NoOu
             answer = new BeanProcessor(beanHolder);
         } else {
             if (bean == null) {
-                ObjectHelper.notNull(beanType, "bean, ref or beanType", this);
-                try {
-                    clazz = routeContext.getCamelContext().getClassResolver().resolveMandatoryClass(beanType);
-                } catch (ClassNotFoundException e) {
-                    throw ObjectHelper.wrapRuntimeCamelException(e);
+                
+                if (beanType == null && beanClass == null) {
+                    throw new IllegalArgumentException("bean, ref or beanType must be provided");
                 }
+
+                // the clazz is either from beanType or beanClass
+                if (beanType != null) {
+                    try {
+                        clazz = routeContext.getCamelContext().getClassResolver().resolveMandatoryClass(beanType);
+                    } catch (ClassNotFoundException e) {
+                        throw ObjectHelper.wrapRuntimeCamelException(e);
+                    }
+                } else {
+                    clazz = beanClass;
+                }
+
                 // create a bean if there is a default public no-arg constructor
                 if (ObjectHelper.hasDefaultPublicNoArgConstructor(clazz)) {
                     bean = CamelContextHelper.newInstance(routeContext.getCamelContext(), clazz);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java?rev=1295579&r1=1295578&r2=1295579&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java Thu Mar  1 14:20:19 2012
@@ -2411,7 +2411,7 @@ public abstract class ProcessorDefinitio
     @SuppressWarnings("unchecked")
     public Type bean(Class<?> beanType) {
         BeanDefinition answer = new BeanDefinition();
-        answer.setBeanType(beanType.getName());
+        answer.setBeanType(beanType);
         addOutput(answer);
         return (Type) this;
     }
@@ -2427,7 +2427,7 @@ public abstract class ProcessorDefinitio
     @SuppressWarnings("unchecked")
     public Type bean(Class<?> beanType, String method) {
         BeanDefinition answer = new BeanDefinition();
-        answer.setBeanType(beanType.getName());
+        answer.setBeanType(beanType);
         answer.setMethod(method);
         addOutput(answer);
         return (Type) this;