You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/03/04 09:10:32 UTC
svn commit: r749939 - in /camel/trunk: camel-core/
camel-core/src/main/java/org/apache/camel/impl/
camel-core/src/main/java/org/apache/camel/util/
components/camel-jms/src/main/java/org/apache/camel/component/jms/
components/camel-jpa/src/main/java/org...
Author: davsclaus
Date: Wed Mar 4 08:10:31 2009
New Revision: 749939
URL: http://svn.apache.org/viewvc?rev=749939&view=rev
Log:
CAMEL-1411: Use CacheResolver where possible, and let ObjectHelper be backup.
Modified:
camel/trunk/camel-core/pom.xml
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultClassResolver.java
camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java
camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/xslt/XsltComponent.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/util/SimpleRouteBuilder.java
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/ConvertersResource.java
Modified: camel/trunk/camel-core/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/pom.xml?rev=749939&r1=749938&r2=749939&view=diff
==============================================================================
--- camel/trunk/camel-core/pom.xml (original)
+++ camel/trunk/camel-core/pom.xml Wed Mar 4 08:10:31 2009
@@ -42,6 +42,7 @@
<camel.osgi.import>
!javax.xml.bind.annotation.adapters,
org.apache.xalan.xsltc.trax;resolution:=optional,
+ org.apache.camel.spring.util;resolution:=optional,
*
</camel.osgi.import>
</properties>
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultClassResolver.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultClassResolver.java?rev=749939&r1=749938&r2=749939&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultClassResolver.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultClassResolver.java Wed Mar 4 08:10:31 2009
@@ -18,14 +18,11 @@
import org.apache.camel.spi.ClassResolver;
import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
/**
- * Default class resolver that uses regular classloaders, and does NOT work in OSGi platforms.
+ * Default class resolver that uses regular class loader to load classes.
*/
public class DefaultClassResolver implements ClassResolver {
- private static final transient Log LOG = LogFactory.getLog(DefaultClassResolver.class);
public Class resolveClass(String name) {
return loadClass(name, DefaultClassResolver.class.getClassLoader());
@@ -80,35 +77,8 @@
}
protected Class loadClass(String name, ClassLoader loader) {
- // try context class loader first
- Class clazz = doLoadClass(name, Thread.currentThread().getContextClassLoader());
- if (clazz == null) {
- // then the provided loader
- clazz = doLoadClass(name, loader);
- }
- if (clazz == null) {
- // and fallback to the loader the loaded the ObjectHelper class
- clazz = doLoadClass(name, ObjectHelper.class.getClassLoader());
- }
-
- return clazz;
- }
-
- private static Class<?> doLoadClass(String name, ClassLoader loader) {
ObjectHelper.notEmpty(name, "name");
- if (loader == null) {
- return null;
- }
- try {
- return loader.loadClass(name);
- } catch (ClassNotFoundException e) {
- if (LOG.isTraceEnabled()) {
- LOG.trace("Cannot load class: " + name + " using classloader: " + loader, e);
- }
-
- }
- return null;
+ return ObjectHelper.loadClass(name, loader);
}
-
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java?rev=749939&r1=749938&r2=749939&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java Wed Mar 4 08:10:31 2009
@@ -490,7 +490,6 @@
*
* @param name the name of the class to load
* @return the class or null if it could not be loaded
- * @deprecated use ClassResolver instead
*/
public static Class<?> loadClass(String name) {
return loadClass(name, ObjectHelper.class.getClassLoader());
@@ -504,7 +503,6 @@
* @param loader the class loader to use after the thread context class
* loader
* @return the class or null if it could not be loaded
- * @deprecated use ClassResolver instead
*/
public static Class<?> loadClass(String name, ClassLoader loader) {
// try context class loader first
@@ -532,7 +530,6 @@
* @param name the name of the class to load
* @param loader a provided loader (may be null)
* @return the class, or null if it could not be loaded
- * @deprecated use ClassResolver instead
*/
private static Class<?> doLoadClass(String name, ClassLoader loader) {
ObjectHelper.notEmpty(name, "name");
Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java?rev=749939&r1=749938&r2=749939&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java Wed Mar 4 08:10:31 2009
@@ -49,8 +49,7 @@
*
* @version $Revision:520964 $
*/
-public class JmsComponent extends DefaultComponent implements ApplicationContextAware,
- HeaderFilterStrategyAware {
+public class JmsComponent extends DefaultComponent implements ApplicationContextAware, HeaderFilterStrategyAware {
private static final transient Log LOG = LogFactory.getLog(JmsComponent.class);
private static final String DEFAULT_QUEUE_BROWSE_STRATEGY = "org.apache.camel.component.jms.DefaultQueueBrowseStrategy";
@@ -329,7 +328,7 @@
if (!attemptedToCreateQueueBrowserStrategy) {
attemptedToCreateQueueBrowserStrategy = true;
try {
- queueBrowseStrategy = tryCreateDefaultQueueBrowseStrategy();
+ queueBrowseStrategy = tryCreateDefaultQueueBrowseStrategy(getCamelContext());
} catch (Throwable e) {
LOG.warn("Could not instantiate the QueueBrowseStrategy are you using Spring 2.0.x"
+ " by any chance? Error: " + e, e);
@@ -458,15 +457,16 @@
*
* @return the queue browse strategy or null if it cannot be supported
*/
- protected static QueueBrowseStrategy tryCreateDefaultQueueBrowseStrategy() {
+ protected static QueueBrowseStrategy tryCreateDefaultQueueBrowseStrategy(CamelContext context) {
// lets try instantiate the default implementation
- Class<?> type = ObjectHelper.loadClass(DEFAULT_QUEUE_BROWSE_STRATEGY, JmsComponent.class.getClassLoader());
+ // use the class loading this class from camel-jms to work in OSGi environments as the camel-jms
+ // should import the spring-jms jars.
+ Class<?> type = context.getClassResolver().resolveClass(DEFAULT_QUEUE_BROWSE_STRATEGY, JmsComponent.class.getClassLoader());
if (type == null) {
- LOG.warn("Could not load class: " + DEFAULT_QUEUE_BROWSE_STRATEGY
- + " maybe you are on Spring 2.0.x?");
+ LOG.warn("Could not load class: " + DEFAULT_QUEUE_BROWSE_STRATEGY + " maybe you are on Spring 2.0.x?");
return null;
} else {
- return (QueueBrowseStrategy)ObjectHelper.newInstance(type);
+ return ObjectHelper.newInstance(type, QueueBrowseStrategy.class);
}
}
Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java?rev=749939&r1=749938&r2=749939&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java Wed Mar 4 08:10:31 2009
@@ -93,10 +93,10 @@
return queueBrowseStrategy.browse(template, queue, this);
}
- protected static QueueBrowseStrategy createQueueBrowseStrategy() {
+ protected QueueBrowseStrategy createQueueBrowseStrategy() {
QueueBrowseStrategy answer = null;
try {
- answer = JmsComponent.tryCreateDefaultQueueBrowseStrategy();
+ answer = JmsComponent.tryCreateDefaultQueueBrowseStrategy(getCamelContext());
} catch (Throwable e) {
LOG.debug("Caught exception trying to create default QueueBrowseStrategy. "
+ "This could be due to spring 2.0.x on classpath? Cause: " + e, e);
Modified: camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java?rev=749939&r1=749938&r2=749939&view=diff
==============================================================================
--- camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java (original)
+++ camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java Wed Mar 4 08:10:31 2009
@@ -17,14 +17,12 @@
package org.apache.camel.component.jpa;
import java.util.Map;
-
import javax.persistence.EntityManagerFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.Component;
import org.apache.camel.Endpoint;
import org.apache.camel.impl.DefaultComponent;
-import org.apache.camel.util.ObjectHelper;
/**
* A JPA Component
@@ -57,11 +55,14 @@
// lets interpret the next string as a class
if (path != null) {
- Class<?> type = ObjectHelper.loadClass(path);
+ // provide the class loader of this component to work in OSGi environments as camel-jpa must be able
+ // to resolve the entity classes
+ Class<?> type = getCamelContext().getClassResolver().resolveClass(path, JpaComponent.class.getClassLoader());
if (type != null) {
endpoint.setEntityType(type);
}
}
+
return endpoint;
}
}
Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/xslt/XsltComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/xslt/XsltComponent.java?rev=749939&r1=749938&r2=749939&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/xslt/XsltComponent.java (original)
+++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/xslt/XsltComponent.java Wed Mar 4 08:10:31 2009
@@ -25,7 +25,6 @@
import org.apache.camel.component.ResourceBasedComponent;
import org.apache.camel.converter.jaxp.XmlConverter;
import org.apache.camel.impl.ProcessorEndpoint;
-import org.apache.camel.util.ObjectHelper;
import org.springframework.core.io.Resource;
/**
@@ -69,11 +68,12 @@
String transformerFactoryClassName = getAndRemoveParameter(parameters, "transformerFactoryClass", String.class);
TransformerFactory factory = null;
if (transformerFactoryClassName != null) {
- Class factoryClass = ObjectHelper.loadClass(transformerFactoryClassName);
+ // provide the class loader of this component to work in OSGi environments
+ Class factoryClass = getCamelContext().getClassResolver().resolveClass(transformerFactoryClassName, XsltComponent.class.getClassLoader());
if (factoryClass != null) {
factory = (TransformerFactory) newInstance(factoryClass);
} else {
- log.warn("Cannot find the TransformerFactoryClass with the class name " + transformerFactoryClassName);
+ log.warn("Cannot find the TransformerFactoryClass with the class name: " + transformerFactoryClassName);
}
}
Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/util/SimpleRouteBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/util/SimpleRouteBuilder.java?rev=749939&r1=749938&r2=749939&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/util/SimpleRouteBuilder.java (original)
+++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/util/SimpleRouteBuilder.java Wed Mar 4 08:10:31 2009
@@ -21,7 +21,6 @@
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.model.ProcessorType;
-import org.apache.camel.util.ObjectHelper;
/**
* A simple {@link RouteBuilder} which can be configured directly with one or more from URIs, zero or more to URIs
@@ -96,7 +95,7 @@
public Class getBeanType() {
if (beanType == null) {
if (beanClass != null) {
- beanType = ObjectHelper.loadClass(beanClass, getClass().getClassLoader());
+ beanType = getContext().getClassResolver().resolveClass(beanClass, getClass().getClassLoader());
}
}
return beanType;
Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/ConvertersResource.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/ConvertersResource.java?rev=749939&r1=749938&r2=749939&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/ConvertersResource.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/ConvertersResource.java Wed Mar 4 08:10:31 2009
@@ -24,7 +24,6 @@
import javax.ws.rs.PathParam;
import org.apache.camel.impl.converter.DefaultTypeConverter;
-import org.apache.camel.util.ObjectHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -63,7 +62,7 @@
*/
public ConvertersFromResource getConvertersFrom(@PathParam("type") String typeName) {
- Class type = ObjectHelper.loadClass(typeName, getClass().getClassLoader());
+ Class type = getCamelContext().getClassResolver().resolveClass(typeName, getClass().getClassLoader());
if (type == null) {
return null;
}