Author: ningjiang
Date: Tue Aug  4 06:43:25 2009
New Revision: 800683

URL: http://svn.apache.org/viewvc?rev=800683&view=rev
Log:
CAMEL-1874 Added getCamelContext method in CamelContextAware Interface

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContextAware.java
    
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanPostProcessor.java
    
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/remoting/SendBeforeInterceptor.java
    
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/routebuilder/MyOtherRoute.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContextAware.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContextAware.java?rev=800683&r1=800682&r2=800683&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContextAware.java 
(original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/CamelContextAware.java 
Tue Aug  4 06:43:25 2009
@@ -30,4 +30,12 @@
      * @param camelContext the Camel context
      */
     void setCamelContext(CamelContext camelContext);
+    
+    /**
+     * Get the {...@link CamelContext}
+     *
+     * @return camelContext the Camel context
+     */
+    CamelContext getCamelContext();
+    
 }

Modified: 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanPostProcessor.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanPostProcessor.java?rev=800683&r1=800682&r2=800683&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanPostProcessor.java
 (original)
+++ 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanPostProcessor.java
 Tue Aug  4 06:43:25 2009
@@ -173,25 +173,20 @@
     
     
     protected boolean canSetCamelContext(Object bean, String beanName) {
-        
-        try {
-            Method method = null;
-            try {
-                method = bean.getClass().getMethod("getCamelContext", new 
Class[]{});
-            } catch (NoSuchMethodException ex) {
-                method = bean.getClass().getMethod("getContext", new 
Class[]{});
-            }
-            CamelContext context = (CamelContext) method.invoke(bean, new 
Object[]{});
+        boolean answer = true;
+        if (bean instanceof CamelContextAware) {
+            CamelContextAware camelContextAware = (CamelContextAware) bean;
+            CamelContext context = camelContextAware.getCamelContext();
             if (context != null) {
                 if (LOG.isTraceEnabled()) {
                     LOG.trace("The camel context of " + beanName + " is set, 
so we skip inject the camel context of it.");
                 }
-                return false;
+                answer = false;
             }
-        } catch (Exception e) {
-            // can't check the status of camelContext , so return true by 
default
+        } else {
+            answer = false;
         }
-        return true;
+        return answer;
     }
 
     /**

Modified: 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/remoting/SendBeforeInterceptor.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/remoting/SendBeforeInterceptor.java?rev=800683&r1=800682&r2=800683&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/remoting/SendBeforeInterceptor.java
 (original)
+++ 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/remoting/SendBeforeInterceptor.java
 Tue Aug  4 06:43:25 2009
@@ -67,6 +67,10 @@
     public void setCamelContext(CamelContext camelContext) {
         this.camelContext = camelContext;
     }
+    
+    public CamelContext getCamelContext() {
+        return camelContext;
+    }
 
     // Properties
     //-----------------------------------------------------------------------

Modified: 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/routebuilder/MyOtherRoute.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/routebuilder/MyOtherRoute.java?rev=800683&r1=800682&r2=800683&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/routebuilder/MyOtherRoute.java
 (original)
+++ 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/routebuilder/MyOtherRoute.java
 Tue Aug  4 06:43:25 2009
@@ -37,4 +37,8 @@
             throw new IllegalArgumentException("Should be named foo");
         }
     }
+    
+    public CamelContext getCamelContext() {
+        return ctx;
+    }
 }


Reply via email to