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 2011/01/13 15:22:40 UTC
svn commit: r1058578 - in /camel/trunk:
components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/
tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/dozer/
tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi...
Author: ningjiang
Date: Thu Jan 13 14:22:39 2011
New Revision: 1058578
URL: http://svn.apache.org/viewvc?rev=1058578&view=rev
Log:
CAMEL-3228 Fix the camel-dozer OSGi test error
Modified:
camel/trunk/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java
camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/dozer/DozerTest.java
camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/dozer/CamelContext.xml
Modified: camel/trunk/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java?rev=1058578&r1=1058577&r2=1058578&view=diff
==============================================================================
--- camel/trunk/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java (original)
+++ camel/trunk/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java Thu Jan 13 14:22:39 2011
@@ -26,6 +26,7 @@ import java.util.Map;
import org.apache.camel.CamelContext;
import org.apache.camel.CamelContextAware;
import org.apache.camel.TypeConverter;
+import org.apache.camel.spi.ClassResolver;
import org.apache.camel.spi.TypeConverterRegistry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -33,9 +34,11 @@ import org.dozer.DozerBeanMapper;
import org.dozer.Mapper;
import org.dozer.classmap.ClassMap;
import org.dozer.classmap.MappingFileData;
+import org.dozer.config.BeanContainer;
import org.dozer.loader.api.BeanMappingBuilder;
import org.dozer.loader.xml.MappingFileReader;
import org.dozer.loader.xml.XMLParserFactory;
+import org.dozer.util.DozerClassLoader;
/**
* <code>DozerTypeConverterLoader</code> provides the mechanism for registering
@@ -99,6 +102,9 @@ public class DozerTypeConverterLoader im
this.camelContext = camelContext;
this.mapper = mapper;
+ CamelToDozerClassResolverAdapter adapter = new CamelToDozerClassResolverAdapter(camelContext);
+ BeanContainer.getInstance().setClassLoader(adapter);
+
Map<String, DozerBeanMapper> mappers = new HashMap<String, DozerBeanMapper>(camelContext.getRegistry().lookupByType(DozerBeanMapper.class));
if (mapper != null) {
mappers.put("parameter", mapper);
@@ -178,4 +184,26 @@ public class DozerTypeConverterLoader im
init(camelContext, null);
}
+ private static final class CamelToDozerClassResolverAdapter implements DozerClassLoader {
+
+ private final ClassResolver classResolver;
+
+ private CamelToDozerClassResolverAdapter(CamelContext camelContext) {
+ classResolver = camelContext.getClassResolver();
+ }
+
+ public Class<?> loadClass(String s) {
+ return classResolver.resolveClass(s);
+ }
+
+ public URL loadResource(String s) {
+ URL url = classResolver.loadResourceAsURL(s);
+ if (url == null) {
+ // DozerClassLoader as a fallback
+ url = DozerClassLoader.class.getClassLoader().getResource(s);
+ }
+ return url;
+ }
+ }
+
}
Modified: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/dozer/DozerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/dozer/DozerTest.java?rev=1058578&r1=1058577&r2=1058578&view=diff
==============================================================================
--- camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/dozer/DozerTest.java (original)
+++ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/dozer/DozerTest.java Thu Jan 13 14:22:39 2011
@@ -19,7 +19,6 @@ package org.apache.camel.itest.osgi.doze
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.itest.osgi.OSGiIntegrationSpringTestSupport;
import org.apache.camel.itest.osgi.dozer.service.Customer;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.ops4j.pax.exam.Option;
@@ -38,7 +37,6 @@ import static org.ops4j.pax.exam.contain
* @version $Revision$
*/
@RunWith(JUnit4TestRunner.class)
-@Ignore("DozerBeanMapper can't load the configure from OSGi in Dozer 5.3.1")
public class DozerTest extends OSGiIntegrationSpringTestSupport {
@Override
Modified: camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/dozer/CamelContext.xml
URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/dozer/CamelContext.xml?rev=1058578&r1=1058577&r2=1058578&view=diff
==============================================================================
--- camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/dozer/CamelContext.xml (original)
+++ camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/dozer/CamelContext.xml Thu Jan 13 14:22:39 2011
@@ -23,7 +23,7 @@
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
- <camelContext xmlns="http://camel.apache.org/schema/spring">
+ <camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring">
<camel:route>
<camel:from uri="direct:start"/>
<!-- convert the body to the model which should involve Dozer -->
@@ -32,7 +32,10 @@
</camel:route>
</camelContext>
- <bean id="dozerConverterLoader" class="org.apache.camel.converter.dozer.DozerTypeConverterLoader"/>
+ <bean id="dozerConverterLoader" class="org.apache.camel.converter.dozer.DozerTypeConverterLoader">
+ <constructor-arg ref="camelContext"/>
+ <constructor-arg ref="mapper"/>
+ </bean>
<bean id="mapper" class="org.dozer.DozerBeanMapper">
<property name="mappingFiles">