You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2009/12/24 03:51:58 UTC

svn commit: r893688 - in /camel/trunk: camel-core/src/test/java/org/apache/camel/component/file/ components/ components/camel-jms/src/main/java/org/apache/camel/component/jms/requestor/ components/camel-spring/src/main/java/org/apache/camel/spring/ com...

Author: ningjiang
Date: Thu Dec 24 02:51:57 2009
New Revision: 893688

URL: http://svn.apache.org/viewvc?rev=893688&view=rev
Log:
CAMEL-2315,CAMEL-2316 supporting Spring 3.0.0 in Camel trunk

Modified:
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveTest.java
    camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/requestor/Requestor.java
    camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java
    camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ConsumerTemplateAutoRegisterTest.java
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.java
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/MisspelledRouteRefTest.java
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/DualCamelContextManagedTest.java
    camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/dualCamelContextManagedTest.xml
    camel/trunk/components/pom.xml
    camel/trunk/examples/pom.xml

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveTest.java?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveTest.java Thu Dec 24 02:51:57 2009
@@ -37,6 +37,7 @@
 
     public void testPreMove() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedBodiesReceived("Hello World");
         mock.expectedMessageCount(1);
 
         template.sendBodyAndHeader("file://target/premove", "Hello World", Exchange.FILE_NAME, "hello.txt");
@@ -52,7 +53,7 @@
         // give time for consumer to process this file before we drop the next file
         Thread.sleep(2000);
         template.sendBodyAndHeader("file://target/premove", "Hello Again World", Exchange.FILE_NAME, "hello.txt");
-
+        // give time for consumer to process this file before we drop the next file
         assertMockEndpointsSatisfied();
     }
 

Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/requestor/Requestor.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/requestor/Requestor.java?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/requestor/Requestor.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/requestor/Requestor.java Thu Dec 24 02:51:57 2009
@@ -203,6 +203,8 @@
     protected void doStart() throws Exception {
         AbstractMessageListenerContainer container = getListenerContainer();
         container.afterPropertiesSet();
+        // Need to call the container start in Spring 3.x
+        container.start();
     }
 
     @Override

Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java (original)
+++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelEndpointFactoryBean.java Thu Dec 24 02:51:57 2009
@@ -26,6 +26,7 @@
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.Endpoint;
 import org.apache.camel.NoSuchEndpointException;
+import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.model.IdentifiedType;
 import org.springframework.beans.factory.FactoryBean;
 
@@ -39,12 +40,15 @@
 @XmlRootElement(name = "endpoint")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class CamelEndpointFactoryBean extends IdentifiedType implements FactoryBean, CamelContextAware {
+    @XmlAttribute    
+    private Boolean singleton = Boolean.FALSE;
     @XmlAttribute
     private String uri;
     @XmlTransient
     private CamelContext context;
     @XmlTransient
     private Endpoint endpoint;
+   
 
     public Object getObject() throws Exception {
         if (endpoint == null) {
@@ -56,17 +60,19 @@
     public Class getObjectType() {
         return Endpoint.class;
     }
-
+    
     public boolean isSingleton() {
-        if (endpoint == null) {
-            this.endpoint = createEndpoint();
-        }
-        return endpoint.isSingleton();
+        return singleton;
+    }
+    
+    public void setSingleton(boolean singleton) {
+        this.singleton = singleton;
     }
 
     public CamelContext getCamelContext() {
         return context;
     }
+    
 
     /**
      * Sets the context to use to resolve endpoints
@@ -93,6 +99,7 @@
     protected Endpoint createEndpoint() {
         notNull(context, "context");
         notNull(uri, "uri");
+        
         Endpoint endpoint = context.getEndpoint(uri);
         if (endpoint == null) {
             throw new NoSuchEndpointException(uri);

Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java (original)
+++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java Thu Dec 24 02:51:57 2009
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.spring.handler;
 
+import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -418,7 +419,14 @@
         if (ObjectHelper.isNotEmpty(id)) {
             BeanDefinition definition = endpointParser.parse(childElement, parserContext);
             definition.getPropertyValues().addPropertyValue("camelContext", new RuntimeBeanReference(contextId));
-            parserContext.registerComponent(new BeanComponentDefinition(definition, id));
+            // Need to add this dependency of CamelContext for Spring 3.0
+            try {
+                Method method = definition.getClass().getMethod("setDependsOn", String[].class);
+                method.invoke(definition, (Object)new String[]{contextId});
+            } catch (Exception e) {
+                // Do nothing here
+            }
+            parserContext.registerBeanComponent(new BeanComponentDefinition(definition, id));
         }
     }
     

Modified: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ConsumerTemplateAutoRegisterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ConsumerTemplateAutoRegisterTest.java?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ConsumerTemplateAutoRegisterTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ConsumerTemplateAutoRegisterTest.java Thu Dec 24 02:51:57 2009
@@ -18,6 +18,7 @@
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
+import org.apache.camel.impl.DefaultConsumerTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit38.AbstractJUnit38SpringContextTests;
@@ -36,6 +37,7 @@
 
     public void testHasTemplate() {
         assertNotNull("Should have injected a consumer template", template);
+        assertNotNull("The template context should not be null", ((DefaultConsumerTemplate)template).getCamelContext());
 
         ConsumerTemplate lookup = context.getRegistry().lookup("consumerTemplate", ConsumerTemplate.class);
         assertNotNull("Should lookup consumer template", lookup);

Modified: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.java?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.java Thu Dec 24 02:51:57 2009
@@ -16,8 +16,11 @@
  */
 package org.apache.camel.spring.file;
 
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.file.FileConsumerPreMoveTest;
+import org.apache.camel.spring.SpringCamelContext;
 
 import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
 
@@ -25,9 +28,20 @@
  * @version $Revision$
  */
 public class SpringFileConsumerPreMoveTest extends FileConsumerPreMoveTest {
+    private AbstractXmlApplicationContext applicationContext;
 
     protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.xml");
+        applicationContext =  new ClassPathXmlApplicationContext("org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.xml");
+        return SpringCamelContext.springCamelContext(applicationContext);
     }
+    
+    @Override
+    protected void tearDown() throws Exception {
+        if (applicationContext != null) {
+            applicationContext.stop();
+        }
+        super.tearDown();
+    }
+    
 
 }

Modified: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/MisspelledRouteRefTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/MisspelledRouteRefTest.java?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/MisspelledRouteRefTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/MisspelledRouteRefTest.java Thu Dec 24 02:51:57 2009
@@ -37,9 +37,8 @@
         } catch (Exception e) {
             //expected but want to see what it looks like...
             LOG.debug("Exception message : " + e.getMessage());
-            assertEquals("Error creating bean with name 'camel': Invocation of init method failed;"
-                         + " nested exception is org.apache.camel.CamelException: "
-                         + "Cannot find any routes with this RouteBuilder reference: RouteBuilderRef[xxxroute]", e.getMessage());
+            assertTrue("Get a wrong exception name", e.getMessage().indexOf("nested exception is org.apache.camel.CamelException: "
+                         + "Cannot find any routes with this RouteBuilder reference: RouteBuilderRef[xxxroute]") > 0);
         }
     }
 }

Modified: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/DualCamelContextManagedTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/DualCamelContextManagedTest.java?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/DualCamelContextManagedTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/DualCamelContextManagedTest.java Thu Dec 24 02:51:57 2009
@@ -16,11 +16,13 @@
  */
 package org.apache.camel.spring.management;
 
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.Set;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
+import org.apache.camel.Endpoint;
 import org.apache.camel.spring.SpringTestSupport;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -41,6 +43,7 @@
 
     @SuppressWarnings("unchecked")
     public void testDualCamelContextManaged() throws Exception {
+        
         MBeanServer mbeanServer = context.getManagementStrategy().getManagementAgent().getMBeanServer();
 
         Set<ObjectName> set = mbeanServer.queryNames(new ObjectName("*:type=routes,*"), null);
@@ -58,7 +61,7 @@
 
         for (ObjectName on : set) {
             String name = on.getCanonicalName();
-
+            
             if (name.contains("mock://mock1")) {
                 String id = (String) mbeanServer.getAttribute(on, "CamelId");
                 assertEquals("camel1", id);

Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/dualCamelContextManagedTest.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/dualCamelContextManagedTest.xml?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/dualCamelContextManagedTest.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/dualCamelContextManagedTest.xml Thu Dec 24 02:51:57 2009
@@ -23,7 +23,7 @@
     ">
 
     <camelContext id="camel1" xmlns="http://camel.apache.org/schema/spring">
-
+        
         <endpoint id="fromFile" uri="file://target/route1"/>
         <endpoint id="mock1" uri="mock:mock1"/>
 
@@ -35,7 +35,7 @@
     </camelContext>
 
     <camelContext id="camel2" xmlns="http://camel.apache.org/schema/spring">
-
+        
         <endpoint id="fromFile2" uri="file://target/route2"/>
         <endpoint id="mock2" uri="mock:mock2"/>
 

Modified: camel/trunk/components/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/pom.xml?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/components/pom.xml (original)
+++ camel/trunk/components/pom.xml Thu Dec 24 02:51:57 2009
@@ -88,7 +88,6 @@
     <module>camel-snmp</module>
     <module>camel-spring</module>
     <module>camel-spring-integration</module>
-    <module>camel-spring-javaconfig</module>
     <module>camel-spring-osgi</module>
     <module>camel-sql</module>
     <module>camel-stringtemplate</module>
@@ -103,4 +102,18 @@
     <module>camel-web</module>
     <module>camel-web-standalone</module>
   </modules>
+  <profiles>
+    <profile>
+      <id>spring-2.x</id>
+      <activation>
+        <property>
+          <name>spring-version</name>
+          <value>2.5.6</value>
+        </property>
+      </activation>
+      <modules>
+        <module>camel-spring-javaconfig</module>
+      </modules>
+    </profile>
+  </profiles> 
 </project>

Modified: camel/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/examples/pom.xml?rev=893688&r1=893687&r2=893688&view=diff
==============================================================================
--- camel/trunk/examples/pom.xml (original)
+++ camel/trunk/examples/pom.xml Thu Dec 24 02:51:57 2009
@@ -65,13 +65,25 @@
     <module>camel-example-reportincident</module>
     <module>camel-example-route-throttling</module>
     <module>camel-example-spring</module>
-    <module>camel-example-spring-javaconfig</module>
     <module>camel-example-spring-jms</module>
     <module>camel-example-spring-xquery</module>
     <module>camel-example-tracer</module>
   </modules>
 
   <profiles>
+    <profile>
+      <id>spring-2.x</id>
+      <activation>
+        <property>
+          <name>spring-version</name>
+          <value>2.5.6</value>
+        </property>
+      </activation>
+      <modules>
+        <!-- current this module just work for spring 2.x -->
+        <module>camel-example-spring-javaconfig</module>
+      </modules>
+    </profile>
     <!-- 
       This profile allows you to add a repository to the repo list so that 
       you can test the examples out against a staged version of the camel distribution