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/03/12 07:32:55 UTC
svn commit: r752787 - in /camel/branches/camel-1.x: ./
camel-core/src/main/java/org/apache/camel/impl/
components/camel-osgi/src/main/java/org/apache/camel/osgi/
components/camel-osgi/src/test/java/org/apache/camel/osgi/
Author: ningjiang
Date: Thu Mar 12 06:32:55 2009
New Revision: 752787
URL: http://svn.apache.org/viewvc?rev=752787&view=rev
Log:
Merged revisions 752764,752773 via svnmerge from
https://svn.apache.org/repos/asf/camel/trunk
........
r752764 | ningjiang | 2009-03-12 11:55:38 +0800 (Thu, 12 Mar 2009) | 1 line
CAMEL-1443 a little refactoring of the LanaguageResolver
........
r752773 | ningjiang | 2009-03-12 12:47:48 +0800 (Thu, 12 Mar 2009) | 1 line
CAMEL-1425 fixed a typo error and also changed the log code
........
Modified:
camel/branches/camel-1.x/ (props changed)
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultLanguageResolver.java
camel/branches/camel-1.x/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiLanguageResolver.java
camel/branches/camel-1.x/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiLanguageResolverTest.java
Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Mar 12 06:32:55 2009
@@ -1 +1 @@
-/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755
+/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773
Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultLanguageResolver.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultLanguageResolver.java?rev=752787&r1=752786&r2=752787&view=diff
==============================================================================
--- camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultLanguageResolver.java (original)
+++ camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultLanguageResolver.java Thu Mar 12 06:32:55 2009
@@ -16,12 +16,17 @@
*/
package org.apache.camel.impl;
+import java.io.IOException;
+
import org.apache.camel.CamelContext;
import org.apache.camel.NoSuchLanguageException;
import org.apache.camel.spi.Language;
import org.apache.camel.spi.LanguageResolver;
import org.apache.camel.util.FactoryFinder;
import org.apache.camel.util.NoFactoryAvailableException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
/**
* Default language resolver that looks for language factories in <b>META-INF/services/org/apache/camel/language/</b> and
@@ -29,14 +34,33 @@
*
* @version $Revision$
*/
-public class DefaultLanguageResolver implements LanguageResolver {
+public class DefaultLanguageResolver implements LanguageResolver {
protected static final FactoryFinder LANGUAGE_FACTORY = new FactoryFinder("META-INF/services/org/apache/camel/language/");
protected static final FactoryFinder LANGUAGE_RESOLVER = new FactoryFinder("META-INF/services/org/apache/camel/language/resolver/");
-
+ private static final transient Log LOG = LogFactory.getLog(DefaultLanguageResolver.class);
+
+ protected Log getLog() {
+ return LOG;
+ }
public Language resolveLanguage(String name, CamelContext context) {
+ Object bean = null;
+ try {
+ bean = context.getRegistry().lookup(name);
+ if (bean != null && getLog().isDebugEnabled()) {
+ getLog().debug("Found language: " + name + " in registry: " + bean);
+ }
+ } catch (Exception e) {
+ getLog().debug("Ignored error looking up bean: " + name + ". Error: " + e);
+ }
+ if (bean != null) {
+ if (bean instanceof Language) {
+ return (Language)bean;
+ }
+ // we do not throw the exception here and try to auto create a Language from META-INF
+ }
Class type = null;
try {
- type = LANGUAGE_FACTORY.findClass(name);
+ type = findLanguage(name);
} catch (NoFactoryAvailableException e) {
// ignore
} catch (Throwable e) {
@@ -55,7 +79,7 @@
protected Language noSpecificLanguageFound(String name, CamelContext context) {
Class type = null;
try {
- type = LANGUAGE_RESOLVER.findClass("default");
+ type = findLanguageResolver("default");
} catch (NoFactoryAvailableException e) {
// ignore
} catch (Throwable e) {
@@ -71,4 +95,12 @@
}
throw new NoSuchLanguageException(name);
}
+
+ protected Class findLanguage(String name) throws Exception {
+ return LANGUAGE_FACTORY.findClass(name);
+ }
+
+ protected Class findLanguageResolver(String name) throws Exception {
+ return LANGUAGE_RESOLVER.findClass("default");
+ }
}
Modified: camel/branches/camel-1.x/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiLanguageResolver.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiLanguageResolver.java?rev=752787&r1=752786&r2=752787&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiLanguageResolver.java (original)
+++ camel/branches/camel-1.x/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiLanguageResolver.java Thu Mar 12 06:32:55 2009
@@ -18,75 +18,27 @@
import org.apache.camel.CamelContext;
import org.apache.camel.NoSuchLanguageException;
+import org.apache.camel.impl.DefaultLanguageResolver;
import org.apache.camel.spi.Language;
import org.apache.camel.spi.LanguageResolver;
import org.apache.camel.util.NoFactoryAvailableException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-public class OsgiLanguageResolver implements LanguageResolver {
+public class OsgiLanguageResolver extends DefaultLanguageResolver {
private static final transient Log LOG = LogFactory.getLog(OsgiLanguageResolver.class);
+ @Override
+ protected Log getLog() {
+ return LOG;
+ }
- public Language resolveLanguage(String name, CamelContext context) {
- Object bean = null;
- try {
- bean = context.getRegistry().lookup(name);
- if (bean != null && LOG.isDebugEnabled()) {
- LOG.debug("Found language: " + name + " in registry: " + bean);
- }
- } catch (Exception e) {
- LOG.debug("Ignored error looking up bean: " + name + ". Error: " + e);
- }
- if (bean != null) {
- if (bean instanceof Language) {
- return (Language)bean;
- }
- // we do not throw the exception here and try to auto create a Language from OSGI bundle
- }
- // Check in OSGi bundles
- Class type = null;
- try {
- type = getLanaguage(name);
- } catch (Throwable e) {
- throw new IllegalArgumentException("Invalid URI, no Language registered for scheme : " + name, e);
- }
- if (type != null) {
- if (Language.class.isAssignableFrom(type)) {
- return (Language)context.getInjector().newInstance(type);
- } else {
- throw new IllegalArgumentException("Type is not a Lanaguage implementation. Found: "
- + type.getName());
- }
- } else {
- return noSpecificLanguageFound(name, context);
- }
- }
-
- protected Language noSpecificLanguageFound(String name, CamelContext context) {
- Class type = null;
- try {
- type = getLanaguageResolver("default");
- } catch (NoFactoryAvailableException e) {
- // ignore
- } catch (Throwable e) {
- throw new IllegalArgumentException("Invalid URI, no Language registered for scheme: " + name, e);
- }
- if (type != null) {
- if (LanguageResolver.class.isAssignableFrom(type)) {
- LanguageResolver resolver = (LanguageResolver)context.getInjector().newInstance(type);
- return resolver.resolveLanguage(name, context);
- } else {
- throw new IllegalArgumentException("Type is not a LanguageResolver implementation. Found: " + type.getName());
- }
- }
- throw new NoSuchLanguageException(name);
- }
-
- protected Class getLanaguage(String name) throws Exception {
+ @Override
+ protected Class findLanguage(String name) throws Exception {
return Activator.getLanguage(name);
}
- protected Class getLanaguageResolver(String name) throws Exception {
+ @Override
+ protected Class findLanguageResolver(String name) throws Exception {
return Activator.getLanguageResolver(name);
}
Modified: camel/branches/camel-1.x/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiLanguageResolverTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiLanguageResolverTest.java?rev=752787&r1=752786&r2=752787&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiLanguageResolverTest.java (original)
+++ camel/branches/camel-1.x/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiLanguageResolverTest.java Thu Mar 12 06:32:55 2009
@@ -28,7 +28,7 @@
BundleContext context = getActivator().getBundle().getBundleContext();
CamelContext camelContext = new DefaultCamelContext();
OsgiLanguageResolver resolver = new OsgiLanguageResolver();
- Language language = resolver.noSpecificLanguageFound("js", camelContext);
+ Language language = resolver.resolveLanguage("js", camelContext);
assertNotNull("We should find js language", language);
}
}