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/25 14:40:48 UTC

svn commit: r893852 - in /camel/trunk/components/camel-spring-javaconfig: ./ src/main/java/org/apache/camel/spring/javaconfig/ src/test/java/org/apache/camel/spring/javaconfig/ src/test/java/org/apache/camel/spring/javaconfig/patterns/ src/test/java/or...

Author: ningjiang
Date: Fri Dec 25 13:40:47 2009
New Revision: 893852

URL: http://svn.apache.org/viewvc?rev=893852&view=rev
Log:
CAMEL-2312 Upgrade the camel-spring-configure to spring3.0.0

Modified:
    camel/trunk/components/camel-spring-javaconfig/pom.xml
    camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/CamelConfiguration.java
    camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/Main.java
    camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/SingleRouteCamelConfiguration.java
    camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/BeanJavaConfigTest.java
    camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/ContextConfig.java
    camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/patterns/FilterTest.java
    camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/JavaConfigWithNestedConfigClassTest.java
    camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/JavaConfigWithPostProcessorTest.java
    camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/MyConfig.java

Modified: camel/trunk/components/camel-spring-javaconfig/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-javaconfig/pom.xml?rev=893852&r1=893851&r2=893852&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-javaconfig/pom.xml (original)
+++ camel/trunk/components/camel-spring-javaconfig/pom.xml Fri Dec 25 13:40:47 2009
@@ -34,38 +34,13 @@
   <properties>
     <camel.osgi.export.pkg>org.apache.camel.spring.javaconfig.*</camel.osgi.export.pkg>
   </properties>
-
-
-  <repositories>
-    <repository>
-      <id>camel.internal.maven.repository</id>
-      <name>Camel internal Maven Repo</name>
-      <url>http://svn.apache.org/repos/asf/camel/m2-repo</url>
-    </repository>
   
-    <repository>
-      <id>spring.maven.milestone</id>
-      <name>Spring Milestone Maven Repo</name>
-      <url>http://repository.springsource.com/maven/bundles/milestone</url>
-    </repository>
-
-    <repository>
-      <id>spring.maven.release</id>
-      <name>Spring Release Maven Repo</name>
-      <url>http://repository.springsource.com/maven/bundles/release</url>
-    </repository>
-
+  <repositories>
     <repository>
       <id>com.springsource.repository.bundles.external</id>
       <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
       <url>http://repository.springsource.com/maven/bundles/external</url>
     </repository>
-
-    <repository>
-      <id>com.springsource.repository.bundles.snapshot</id>
-      <name>SpringSource Enterprise Bundle Repository - SpringSource Snapshot Builds</name>
-      <url>http://repository.springsource.com/maven/bundles/snapshot</url>
-    </repository>
   </repositories>
 
   <dependencies>
@@ -78,11 +53,10 @@
       <artifactId>camel-spring</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.springframework.javaconfig</groupId>
-      <artifactId>org.springframework.config.java</artifactId>
-      <version>${spring-javaconfig-version}</version>
+      <groupId>net.sourceforge.cglib</groupId>
+      <artifactId>com.springsource.net.sf.cglib</artifactId>
+      <version>2.1.3</version>
     </dependency>
-
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
@@ -91,7 +65,6 @@
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-test</artifactId>
-      <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>javax.annotation</groupId>

Modified: camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/CamelConfiguration.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/CamelConfiguration.java?rev=893852&r1=893851&r2=893852&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/CamelConfiguration.java (original)
+++ camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/CamelConfiguration.java Fri Dec 25 13:40:47 2009
@@ -23,9 +23,20 @@
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.spring.CamelBeanPostProcessor;
 import org.apache.camel.spring.SpringCamelContext;
-import org.springframework.config.java.annotation.Bean;
-import org.springframework.config.java.annotation.Configuration;
-import org.springframework.config.java.support.ConfigurationSupport;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.BeanFactoryAware;
+import org.springframework.beans.factory.FactoryBean;
+import org.springframework.beans.factory.ListableBeanFactory;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.context.ApplicationEventPublisherAware;
+import org.springframework.context.MessageSourceAware;
+import org.springframework.context.ResourceLoaderAware;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
 
 /**
  * A useful base class for writing
@@ -35,7 +46,85 @@
  * @version $Revision$
  */
 @Configuration
-public abstract class CamelConfiguration extends ConfigurationSupport {
+public abstract class CamelConfiguration implements BeanFactoryAware, ApplicationContextAware {
+    
+    private BeanFactory beanFactory;
+
+    private AutowireCapableBeanFactory autowireCapableBeanFactory;
+
+    private ApplicationContext applicationContext;
+
+    public void setBeanFactory(BeanFactory beanFactory) {
+        this.beanFactory = beanFactory;
+        if (beanFactory instanceof AutowireCapableBeanFactory) {
+            autowireCapableBeanFactory = (AutowireCapableBeanFactory) beanFactory;
+        }
+    }
+
+    protected BeanFactory getBeanFactory() {
+        return this.beanFactory;
+    }
+
+    public void setApplicationContext(ApplicationContext ac) {
+        this.applicationContext = ac;
+    }
+
+    protected ApplicationContext getApplicationContext() {
+        return this.applicationContext;
+    }
+
+    public Object getBean(String beanName) {
+        return beanFactory.getBean(beanName);
+    }
+
+    public <T> T getBean(Class<T> type) {
+        return beanFactory.getBean(type);
+    }
+
+    public <T> T getBean(String beanName, Class<T> type) {
+        return beanFactory.getBean(beanName, type);
+    }
+   
+
+    /**
+     * Invoke callbacks on the object, as though it were configured in the factory. If appropriate,
+     * the object may be wrapped before being returned. For this reason, it is recommended to always
+     * respect the return value when using this method.
+     *
+     * @param   object  object to configure
+     *
+     * @return  either the original object or a wrapped one after callbacks called on it.
+     */
+    protected <T> T getConfigured(T object) {
+        if (this.autowireCapableBeanFactory == null) {
+            throw new UnsupportedOperationException(
+                "Cannot configure object - not running in an AutowireCapableBeanFactory");
+        }
+
+        @SuppressWarnings("unchecked") // See SPR-4955
+        T configuredObject = (T) autowireCapableBeanFactory.initializeBean(object, null);
+
+        // this block copied from ApplicationContextAwareProcessor.  See SJC-149.
+        if (this.applicationContext != null) {
+            if (configuredObject instanceof ResourceLoaderAware) {
+                ((ResourceLoaderAware) configuredObject).setResourceLoader(this.applicationContext);
+            }
+
+            if (configuredObject instanceof ApplicationEventPublisherAware) {
+                ((ApplicationEventPublisherAware) configuredObject).setApplicationEventPublisher(this.applicationContext);
+            }
+
+            if (configuredObject instanceof MessageSourceAware) {
+                ((MessageSourceAware) configuredObject).setMessageSource(this.applicationContext);
+            }
+
+            if (configuredObject instanceof ApplicationContextAware) {
+                ((ApplicationContextAware) configuredObject).setApplicationContext(this.applicationContext);
+            }
+        }
+
+        return configuredObject;
+    }
 
     @Bean
     public CamelBeanPostProcessor camelBeanPostProcessor() throws Exception {

Modified: camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/Main.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/Main.java?rev=893852&r1=893851&r2=893852&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/Main.java (original)
+++ camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/Main.java Fri Dec 25 13:40:47 2009
@@ -20,10 +20,13 @@
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
+import org.apache.camel.CamelContext;
+import org.apache.camel.spring.SpringCamelContext;
 import org.apache.camel.util.ObjectHelper;
-import org.springframework.config.java.context.JavaConfigApplicationContext;
 import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 import org.springframework.context.support.AbstractApplicationContext;
 
 /**
@@ -89,24 +92,24 @@
         
     protected AbstractApplicationContext createDefaultApplicationContext() {
         ApplicationContext parentContext = getParentApplicationContext();
-        JavaConfigApplicationContext jcApplicationContext = new JavaConfigApplicationContext();
+        AnnotationConfigApplicationContext acApplicationContext = new AnnotationConfigApplicationContext();
         if (parentContext != null) {
-            jcApplicationContext.setParent(parentContext);
+            acApplicationContext.setParent(parentContext);
         }
         if (getConfigClassesString() != null) {
             Class<?>[] configClasses = getConfigClasses(getConfigClassesString());
             for (Class<?> cls : configClasses) {
-                jcApplicationContext.addConfigClass(cls);
+                acApplicationContext.register(cls);
             }
         }
         if (getBasedPackages() != null) {
             String[] basePackages = getBasedPackages().split(";");
             for (String basePackage : basePackages) {
-                jcApplicationContext.addBasePackage(basePackage);
+                acApplicationContext.scan(basePackage);
             }
         }
-        jcApplicationContext.refresh();
-        return jcApplicationContext;
+        acApplicationContext.refresh();
+        return acApplicationContext;
         
     }
 

Modified: camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/SingleRouteCamelConfiguration.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/SingleRouteCamelConfiguration.java?rev=893852&r1=893851&r2=893852&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/SingleRouteCamelConfiguration.java (original)
+++ camel/trunk/components/camel-spring-javaconfig/src/main/java/org/apache/camel/spring/javaconfig/SingleRouteCamelConfiguration.java Fri Dec 25 13:40:47 2009
@@ -20,7 +20,7 @@
 import java.util.List;
 
 import org.apache.camel.builder.RouteBuilder;
-import org.springframework.config.java.annotation.Bean;
+import org.springframework.context.annotation.Bean;
 
 /**
  * A useful base class for writing

Modified: camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/BeanJavaConfigTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/BeanJavaConfigTest.java?rev=893852&r1=893851&r2=893852&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/BeanJavaConfigTest.java (original)
+++ camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/BeanJavaConfigTest.java Fri Dec 25 13:40:47 2009
@@ -22,10 +22,10 @@
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.spring.javaconfig.test.JavaConfigContextLoader;
 import org.junit.Test;
-import org.springframework.config.java.annotation.Bean;
-import org.springframework.config.java.annotation.Configuration;
-import org.springframework.config.java.test.JavaConfigContextLoader;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
@@ -33,10 +33,7 @@
 /**
  * @version $Revision$
  */
-@ContextConfiguration(
-        locations = "org.apache.camel.spring.javaconfig.BeanJavaConfigTest$ContextConfig",
-        loader = JavaConfigContextLoader.class
-)
+@ContextConfiguration(locations = "org.apache.camel.spring.javaconfig.BeanJavaConfigTest$ContextConfig", loader = JavaConfigContextLoader.class)
 public class BeanJavaConfigTest extends AbstractJUnit4SpringContextTests {
 
     @EndpointInject(uri = "mock:end")

Modified: camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/ContextConfig.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/ContextConfig.java?rev=893852&r1=893851&r2=893852&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/ContextConfig.java (original)
+++ camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/ContextConfig.java Fri Dec 25 13:40:47 2009
@@ -17,8 +17,8 @@
 package org.apache.camel.spring.javaconfig;
 
 import org.apache.camel.builder.RouteBuilder;
-import org.springframework.config.java.annotation.Bean;
-import org.springframework.config.java.annotation.Configuration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 
 @Configuration
 public class ContextConfig extends SingleRouteCamelConfiguration {

Modified: camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/patterns/FilterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/patterns/FilterTest.java?rev=893852&r1=893851&r2=893852&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/patterns/FilterTest.java (original)
+++ camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/patterns/FilterTest.java Fri Dec 25 13:40:47 2009
@@ -22,10 +22,11 @@
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spring.javaconfig.SingleRouteCamelConfiguration;
+import org.apache.camel.spring.javaconfig.test.JavaConfigContextLoader;
 import org.junit.Test;
-import org.springframework.config.java.annotation.Bean;
-import org.springframework.config.java.annotation.Configuration;
-import org.springframework.config.java.test.JavaConfigContextLoader;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;

Modified: camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/JavaConfigWithNestedConfigClassTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/JavaConfigWithNestedConfigClassTest.java?rev=893852&r1=893851&r2=893852&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/JavaConfigWithNestedConfigClassTest.java (original)
+++ camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/JavaConfigWithNestedConfigClassTest.java Fri Dec 25 13:40:47 2009
@@ -17,10 +17,8 @@
 package org.apache.camel.spring.javaconfig.test;
 
 import org.junit.Test;
-import org.springframework.config.java.annotation.Bean;
-import org.springframework.config.java.annotation.Configuration;
-import org.springframework.config.java.plugin.context.AnnotationDrivenConfig;
-import org.springframework.config.java.test.JavaConfigContextLoader;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.stereotype.Component;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
@@ -31,7 +29,7 @@
  * @version $Revision$
  */
 @ContextConfiguration(locations = "org.apache.camel.spring.javaconfig.test.JavaConfigWithNestedConfigClassTest$ContextConfig", loader = JavaConfigContextLoader.class)
-@AnnotationDrivenConfig
+
 @Component
 public class JavaConfigWithNestedConfigClassTest extends AbstractJUnit4SpringContextTests implements Cheese {
     private boolean doCheeseCalled;

Modified: camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/JavaConfigWithPostProcessorTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/JavaConfigWithPostProcessorTest.java?rev=893852&r1=893851&r2=893852&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/JavaConfigWithPostProcessorTest.java (original)
+++ camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/JavaConfigWithPostProcessorTest.java Fri Dec 25 13:40:47 2009
@@ -17,8 +17,7 @@
 package org.apache.camel.spring.javaconfig.test;
 
 import org.junit.Test;
-import org.springframework.config.java.plugin.context.AnnotationDrivenConfig;
-import org.springframework.config.java.test.JavaConfigContextLoader;
+
 import org.springframework.stereotype.Component;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
@@ -29,7 +28,7 @@
  * @version $Revision$
  */
 @ContextConfiguration(locations = "org.apache.camel.spring.javaconfig.test.MyConfig", loader = JavaConfigContextLoader.class)
-@AnnotationDrivenConfig
+
 @Component
 public class JavaConfigWithPostProcessorTest extends AbstractJUnit4SpringContextTests implements Cheese {
     private boolean doCheeseCalled;

Modified: camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/MyConfig.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/MyConfig.java?rev=893852&r1=893851&r2=893852&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/MyConfig.java (original)
+++ camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/MyConfig.java Fri Dec 25 13:40:47 2009
@@ -16,8 +16,8 @@
  */
 package org.apache.camel.spring.javaconfig.test;
 
-import org.springframework.config.java.annotation.Bean;
-import org.springframework.config.java.annotation.Configuration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 
 /**
  * @version $Revision$