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 2010/04/05 18:13:12 UTC

svn commit: r930893 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/builder/ main/java/org/apache/camel/impl/ main/java/org/apache/camel/util/ test/java/org/apache/camel/impl/

Author: davsclaus
Date: Mon Apr  5 16:13:12 2010
New Revision: 930893

URL: http://svn.apache.org/viewvc?rev=930893&view=rev
Log:
CAMEL-2550: @EndpointInject validates only one of uri or ref attribute has been set. Removed @deprecated class.

Removed:
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/FileExpressionBuilder.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CamelPostProcessorHelperTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=930893&r1=930892&r2=930893&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Mon Apr  5 16:13:12 2010
@@ -948,9 +948,6 @@ public class DefaultCamelContext extends
         return errorHandlerBuilder;
     }
 
-    /**
-     * Sets the default error handler builder which is inherited by the routes
-     */
     public void setErrorHandlerBuilder(ErrorHandlerBuilder errorHandlerBuilder) {
         this.errorHandlerBuilder = errorHandlerBuilder;
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java?rev=930893&r1=930892&r2=930893&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java Mon Apr  5 16:13:12 2010
@@ -127,23 +127,27 @@ public final class CamelContextHelper {
     /**
      * Evaluates the @EndpointInject annotation using the given context
      */
-    public static Endpoint getEndpointInjection(CamelContext camelContext, String uri, String name, String injectionPointName, boolean mandatory) {
+    public static Endpoint getEndpointInjection(CamelContext camelContext, String uri, String ref, String injectionPointName, boolean mandatory) {
+        if (ObjectHelper.isNotEmpty(uri) && ObjectHelper.isNotEmpty(ref)) {
+            throw new IllegalArgumentException("Both uri and name is provided, only either one is allowed: uri=" + uri + ", ref=" + ref);
+        }
+
         Endpoint endpoint;
         if (isNotEmpty(uri)) {
             endpoint = camelContext.getEndpoint(uri);
         } else {
-            // if a name is given then it should be possible to lookup
+            // if a ref is given then it should be possible to lookup
             // otherwise we do not catch situations where there is a typo etc
-            if (isNotEmpty(name)) {
-                endpoint = mandatoryLookup(camelContext, name, Endpoint.class);
+            if (isNotEmpty(ref)) {
+                endpoint = mandatoryLookup(camelContext, ref, Endpoint.class);
             } else {
-                if (isEmpty(name)) {
-                    name = injectionPointName;
+                if (isEmpty(ref)) {
+                    ref = injectionPointName;
                 }
                 if (mandatory) {
-                    endpoint = mandatoryLookup(camelContext, name, Endpoint.class);
+                    endpoint = mandatoryLookup(camelContext, ref, Endpoint.class);
                 } else {
-                    endpoint = lookup(camelContext, name, Endpoint.class);
+                    endpoint = lookup(camelContext, ref, Endpoint.class);
                 }
             }
         }

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CamelPostProcessorHelperTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CamelPostProcessorHelperTest.java?rev=930893&r1=930892&r2=930893&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CamelPostProcessorHelperTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CamelPostProcessorHelperTest.java Mon Apr  5 16:13:12 2010
@@ -74,7 +74,7 @@ public class CamelPostProcessorHelperTes
 
         MyEndpointInjectBeanProducerTemplate bean = new MyEndpointInjectBeanProducerTemplate();
         Method method = bean.getClass().getMethod("setProducer", ProducerTemplate.class);
-        
+
         EndpointInject endpointInject = method.getAnnotation(EndpointInject.class);
         Class<?>[] parameterTypes = method.getParameterTypes();
         for (Class type : parameterTypes) {
@@ -97,7 +97,7 @@ public class CamelPostProcessorHelperTes
 
         MyEndpointBeanProducer bean = new MyEndpointBeanProducer();
         Method method = bean.getClass().getMethod("setProducer", Producer.class);
-        
+
         EndpointInject endpointInject = method.getAnnotation(EndpointInject.class);
         Class<?>[] parameterTypes = method.getParameterTypes();
         for (Class type : parameterTypes) {
@@ -230,6 +230,24 @@ public class CamelPostProcessorHelperTes
         }
     }
 
+    public void testEndpointInjectBothUriAndRef() throws Exception {
+        CamelPostProcessorHelper helper = new CamelPostProcessorHelper(context);
+
+        MyEndpointBothUriAndRef bean = new MyEndpointBothUriAndRef();
+        Field field = bean.getClass().getField("producer");
+
+        EndpointInject endpointInject = field.getAnnotation(EndpointInject.class);
+        Class<?> type = field.getType();
+        String propertyName = "producer";
+
+        try {
+            Object value = helper.getInjectionValue(type, endpointInject.uri(), endpointInject.ref(), propertyName);
+            fail("Should throw exception");
+        } catch (IllegalArgumentException e) {
+            assertEquals("Both uri and name is provided, only either one is allowed: uri=seda:foo, ref=myEndpoint", e.getMessage());
+        }
+    }
+
     public class MyConsumeBean {
 
         @Consume(uri = "seda:foo")
@@ -339,4 +357,15 @@ public class CamelPostProcessorHelperTes
 
     }
 
+    public class MyEndpointBothUriAndRef {
+
+        @EndpointInject(uri = "seda:foo", ref = "myEndpoint")
+        public ProducerTemplate producer;
+
+        public void send(Exchange exchange) throws Exception {
+            producer.send(exchange);
+        }
+
+    }
+
 }

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java?rev=930893&r1=930892&r2=930893&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java Mon Apr  5 16:13:12 2010
@@ -71,6 +71,14 @@ public class CustomProducerServicePoolTe
 
         private Producer producer;
 
+        public void setCapacity(int capacity) {
+            // noop
+        }
+
+        public int getCapacity() {
+            return 0;
+        }
+
         public Producer addAndAcquire(Endpoint endpoint, Producer producer) {
             if (endpoint instanceof MyEndpoint) {
                 return producer;