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$