You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Claus Ibsen <cl...@gmail.com> on 2009/12/29 09:46:37 UTC

Re: svn commit: r894310 - in /camel/trunk/components/camel-osgi/src: main/java/org/apache/camel/osgi/ test/java/org/apache/camel/osgi/

Hi Willem

Just a quick note, you got both INFO and TRACE logging somewhere in
the OsgiClassResolver.
I think keeping it at TRACE only to avoid spamming the logs.


On Tue, Dec 29, 2009 at 5:59 AM,  <ni...@apache.org> wrote:
> Author: ningjiang
> Date: Tue Dec 29 04:59:50 2009
> New Revision: 894310
>
> URL: http://svn.apache.org/viewvc?rev=894310&view=rev
> Log:
> CAMEL-2323 Added OsgiClassResolver
>
> Added:
>    camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java   (with props)
>    camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java   (with props)
> Modified:
>    camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java
>    camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java
>    camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java
>    camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java
>
> Modified: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java?rev=894310&r1=894309&r2=894310&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java (original)
> +++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java Tue Dec 29 04:59:50 2009
> @@ -60,6 +60,8 @@
>                 LOG.debug("Using OSGI resolvers");
>             }
>             updateRegistry(context);
> +            LOG.debug("Using the OsgiClassResolver");
> +            context.setClassResolver(new OsgiClassResolver(bundleContext));
>             LOG.debug("Using OsgiFactoryFinderResolver");
>             context.setFactoryFinderResolver(new OsgiFactoryFinderResolver());
>             LOG.debug("Using OsgiPackageScanClassResolver");
>
> Modified: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java?rev=894310&r1=894309&r2=894310&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java (original)
> +++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java Tue Dec 29 04:59:50 2009
> @@ -57,9 +57,11 @@
>         SpringCamelContext context = super.createContext();
>         if (bundleContext != null) {
>             if (LOG.isDebugEnabled()) {
> -                LOG.debug("Using OSGI resolvers");
> +                LOG.debug("Using OSGi resolvers");
>             }
>             updateRegistry(context);
> +            LOG.debug("Using the OsgiClassResolver");
> +            context.setClassResolver(new OsgiClassResolver(bundleContext));
>             LOG.debug("Using OsgiFactoryFinderResolver");
>             context.setFactoryFinderResolver(new OsgiFactoryFinderResolver());
>             LOG.debug("Using OsgiPackageScanClassResolver");
>
> Added: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java?rev=894310&view=auto
> ==============================================================================
> --- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java (added)
> +++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java Tue Dec 29 04:59:50 2009
> @@ -0,0 +1,108 @@
> +/**
> + * Licensed to the Apache Software Foundation (ASF) under one or more
> + * contributor license agreements.  See the NOTICE file distributed with
> + * this work for additional information regarding copyright ownership.
> + * The ASF licenses this file to You under the Apache License, Version 2.0
> + * (the "License"); you may not use this file except in compliance with
> + * the License.  You may obtain a copy of the License at
> + *
> + *      http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +package org.apache.camel.osgi;
> +
> +import java.io.IOException;
> +import java.io.InputStream;
> +import java.net.URL;
> +
> +import org.apache.camel.impl.DefaultClassResolver;
> +import org.apache.camel.spi.ClassResolver;
> +import org.apache.camel.util.CastUtils;
> +import org.apache.camel.util.ObjectHelper;
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +import org.osgi.framework.Bundle;
> +import org.osgi.framework.BundleContext;
> +import org.springframework.osgi.util.BundleDelegatingClassLoader;
> +
> +/* Using the bundle of CamelContext to load the class */
> +public class OsgiClassResolver extends DefaultClassResolver {
> +    private static final transient Log LOG = LogFactory.getLog(OsgiClassResolver.class);
> +
> +    public BundleContext bundleContext;
> +
> +    public OsgiClassResolver(BundleContext context) {
> +        this.bundleContext = context;
> +    }
> +
> +    public Class<?> resolveClass(String name) {
> +        return loadClass(name, BundleDelegatingClassLoader.createBundleClassLoaderFor(bundleContext.getBundle()));
> +    }
> +
> +    public <T> Class<T> resolveClass(String name, Class<T> type) {
> +        Class<T> answer = CastUtils.cast(loadClass(name, BundleDelegatingClassLoader.createBundleClassLoaderFor(bundleContext.getBundle())));
> +        return (Class<T>) answer;
> +    }
> +
> +    public InputStream loadResourceAsStream(String uri) {
> +        ObjectHelper.notEmpty(uri, "uri");
> +        URL url = loadResourceAsURL(uri);
> +        InputStream answer = null;
> +        if (url != null) {
> +            try {
> +                answer = url.openStream();
> +            } catch (IOException ex) {
> +                LOG.error("Cannot load resource: " + uri, ex);
> +            }
> +        }
> +        return answer;
> +    }
> +
> +    public URL loadResourceAsURL(String uri) {
> +        ObjectHelper.notEmpty(uri, "uri");
> +        URL url = null;
> +        for (Bundle bundle : bundleContext.getBundles()) {
> +            url = bundle.getEntry(uri);
> +            if (url != null) {
> +                break;
> +            }
> +        }
> +        return url;
> +    }
> +
> +    protected Class<?> loadClass(String name, ClassLoader loader) {
> +        ObjectHelper.notEmpty(name, "name");
> +        Class<?> answer = null;
> +        // Try to use the camel context's bundle's classloader to load the class
> +        if (loader != null) {
> +            try {
> +                answer = loader.loadClass(name);
> +            } catch (ClassNotFoundException e) {
> +                LOG.info("Cannot load class: " + name + " using classloader: " + loader, e);
> +                if (LOG.isTraceEnabled()) {
> +                    LOG.trace("Cannot load class: " + name + " using classloader: " + loader, e);
> +                }
> +            }
> +        }
> +        // Load the class with bundle, if there are more than one version of the class the first one will be load
> +        if (answer == null) {
> +            for (Bundle bundle : bundleContext.getBundles()) {
> +                try {
> +                    answer = bundle.loadClass(name);
> +                    if (answer != null) {
> +                        break;
> +                    }
> +                } catch (Exception e) {
> +                    // do nothing here
> +                }
> +            }
> +        }
> +        return answer;
> +    }
> +
> +}
>
> Propchange: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java
> ------------------------------------------------------------------------------
>    svn:keywords = Rev Date
>
> Modified: camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java?rev=894310&r1=894309&r2=894310&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java (original)
> +++ camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java Tue Dec 29 04:59:50 2009
> @@ -16,6 +16,7 @@
>  */
>  package org.apache.camel.osgi;
>
> +import org.apache.camel.spi.ClassResolver;
>  import org.junit.After;
>  import org.junit.Assert;
>  import org.junit.Before;
> @@ -26,7 +27,8 @@
>  public class CamelOsgiTestSupport extends Assert {
>     private Activator testActivator;
>     private MockBundleContext bundleContext = new CamelMockBundleContext();
> -    private OsgiPackageScanClassResolver resolver = new OsgiPackageScanClassResolver(bundleContext);
> +    private OsgiPackageScanClassResolver packageScanClassResolver = new OsgiPackageScanClassResolver(bundleContext);
> +    private ClassResolver classResolver = new OsgiClassResolver(bundleContext);
>     private MockBundle bundle = new CamelMockBundle();
>
>     @Before
> @@ -49,7 +51,11 @@
>         return bundleContext;
>     }
>
> -    public OsgiPackageScanClassResolver getResolver() {
> -        return resolver;
> +    public OsgiPackageScanClassResolver getPackageScanClassResolver() {
> +        return packageScanClassResolver;
> +    }
> +
> +    public ClassResolver getClassResolver() {
> +        return classResolver;
>     }
>  }
>
> Modified: camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java?rev=894310&r1=894309&r2=894310&view=diff
> ==============================================================================
> --- camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java (original)
> +++ camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java Tue Dec 29 04:59:50 2009
> @@ -23,7 +23,7 @@
>
>     @Test
>     public void testLoad() throws Exception {
> -        OsgiAnnotationTypeConverterLoader loader = new OsgiAnnotationTypeConverterLoader(getResolver());
> +        OsgiAnnotationTypeConverterLoader loader = new OsgiAnnotationTypeConverterLoader(getPackageScanClassResolver());
>         MockTypeConverterRegistry registry = new MockTypeConverterRegistry();
>         loader.load(registry);
>         assertTrue("There should have at lest one fallback converter", registry.getFallbackTypeConverters().size() >= 1);
>
> Added: camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java
> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java?rev=894310&view=auto
> ==============================================================================
> --- camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java (added)
> +++ camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java Tue Dec 29 04:59:50 2009
> @@ -0,0 +1,41 @@
> +/**
> + * Licensed to the Apache Software Foundation (ASF) under one or more
> + * contributor license agreements.  See the NOTICE file distributed with
> + * this work for additional information regarding copyright ownership.
> + * The ASF licenses this file to You under the Apache License, Version 2.0
> + * (the "License"); you may not use this file except in compliance with
> + * the License.  You may obtain a copy of the License at
> + *
> + *      http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +package org.apache.camel.osgi;
> +
> +import java.io.InputStream;
> +import java.net.URL;
> +
> +import org.apache.camel.spi.ClassResolver;
> +import org.junit.Test;
> +
> +public class OsgiClassResolverTest extends CamelOsgiTestSupport {
> +
> +    @Test
> +    public void testResolveClass() {
> +        ClassResolver classResolver = getClassResolver();
> +        Class routeBuilder = classResolver.resolveClass("org.apache.camel.osgi.test.MyRouteBuilder");
> +        assertNotNull("The class of routeBuilder should not be null.", routeBuilder);
> +    }
> +
> +    @Test
> +    public void testResolverResource() {
> +        ClassResolver classResolver = getClassResolver();
> +        InputStream is = classResolver.loadResourceAsStream("/META-INF/services/org/apache/camel/TypeConverter");
> +        assertNotNull("The InputStream should not be null.");
> +    }
> +
> +}
>
> Propchange: camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange: camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java
> ------------------------------------------------------------------------------
>    svn:keywords = Rev Date
>
>
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Re: svn commit: r894310 - in /camel/trunk/components/camel-osgi/src: main/java/org/apache/camel/osgi/ test/java/org/apache/camel/osgi/

Posted by Willem Jiang <wi...@gmail.com>.
Hi Claus,

My bad, thanks for point that out.
I will commit a quick fix for it.

Willem

Claus Ibsen wrote:
> Hi Willem
> 
> Just a quick note, you got both INFO and TRACE logging somewhere in
> the OsgiClassResolver.
> I think keeping it at TRACE only to avoid spamming the logs.
> 
> 
> On Tue, Dec 29, 2009 at 5:59 AM,  <ni...@apache.org> wrote:
>> Author: ningjiang
>> Date: Tue Dec 29 04:59:50 2009
>> New Revision: 894310
>>
>> URL: http://svn.apache.org/viewvc?rev=894310&view=rev
>> Log:
>> CAMEL-2323 Added OsgiClassResolver
>>
>> Added:
>>    camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java   (with props)
>>    camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java   (with props)
>> Modified:
>>    camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java
>>    camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java
>>    camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java
>>    camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java
>>
>> Modified: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java
>> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java?rev=894310&r1=894309&r2=894310&view=diff
>> ==============================================================================
>> --- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java (original)
>> +++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactory.java Tue Dec 29 04:59:50 2009
>> @@ -60,6 +60,8 @@
>>                 LOG.debug("Using OSGI resolvers");
>>             }
>>             updateRegistry(context);
>> +            LOG.debug("Using the OsgiClassResolver");
>> +            context.setClassResolver(new OsgiClassResolver(bundleContext));
>>             LOG.debug("Using OsgiFactoryFinderResolver");
>>             context.setFactoryFinderResolver(new OsgiFactoryFinderResolver());
>>             LOG.debug("Using OsgiPackageScanClassResolver");
>>
>> Modified: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java
>> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java?rev=894310&r1=894309&r2=894310&view=diff
>> ==============================================================================
>> --- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java (original)
>> +++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java Tue Dec 29 04:59:50 2009
>> @@ -57,9 +57,11 @@
>>         SpringCamelContext context = super.createContext();
>>         if (bundleContext != null) {
>>             if (LOG.isDebugEnabled()) {
>> -                LOG.debug("Using OSGI resolvers");
>> +                LOG.debug("Using OSGi resolvers");
>>             }
>>             updateRegistry(context);
>> +            LOG.debug("Using the OsgiClassResolver");
>> +            context.setClassResolver(new OsgiClassResolver(bundleContext));
>>             LOG.debug("Using OsgiFactoryFinderResolver");
>>             context.setFactoryFinderResolver(new OsgiFactoryFinderResolver());
>>             LOG.debug("Using OsgiPackageScanClassResolver");
>>
>> Added: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java
>> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java?rev=894310&view=auto
>> ==============================================================================
>> --- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java (added)
>> +++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java Tue Dec 29 04:59:50 2009
>> @@ -0,0 +1,108 @@
>> +/**
>> + * Licensed to the Apache Software Foundation (ASF) under one or more
>> + * contributor license agreements.  See the NOTICE file distributed with
>> + * this work for additional information regarding copyright ownership.
>> + * The ASF licenses this file to You under the Apache License, Version 2.0
>> + * (the "License"); you may not use this file except in compliance with
>> + * the License.  You may obtain a copy of the License at
>> + *
>> + *      http://www.apache.org/licenses/LICENSE-2.0
>> + *
>> + * Unless required by applicable law or agreed to in writing, software
>> + * distributed under the License is distributed on an "AS IS" BASIS,
>> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>> + * See the License for the specific language governing permissions and
>> + * limitations under the License.
>> + */
>> +package org.apache.camel.osgi;
>> +
>> +import java.io.IOException;
>> +import java.io.InputStream;
>> +import java.net.URL;
>> +
>> +import org.apache.camel.impl.DefaultClassResolver;
>> +import org.apache.camel.spi.ClassResolver;
>> +import org.apache.camel.util.CastUtils;
>> +import org.apache.camel.util.ObjectHelper;
>> +import org.apache.commons.logging.Log;
>> +import org.apache.commons.logging.LogFactory;
>> +import org.osgi.framework.Bundle;
>> +import org.osgi.framework.BundleContext;
>> +import org.springframework.osgi.util.BundleDelegatingClassLoader;
>> +
>> +/* Using the bundle of CamelContext to load the class */
>> +public class OsgiClassResolver extends DefaultClassResolver {
>> +    private static final transient Log LOG = LogFactory.getLog(OsgiClassResolver.class);
>> +
>> +    public BundleContext bundleContext;
>> +
>> +    public OsgiClassResolver(BundleContext context) {
>> +        this.bundleContext = context;
>> +    }
>> +
>> +    public Class<?> resolveClass(String name) {
>> +        return loadClass(name, BundleDelegatingClassLoader.createBundleClassLoaderFor(bundleContext.getBundle()));
>> +    }
>> +
>> +    public <T> Class<T> resolveClass(String name, Class<T> type) {
>> +        Class<T> answer = CastUtils.cast(loadClass(name, BundleDelegatingClassLoader.createBundleClassLoaderFor(bundleContext.getBundle())));
>> +        return (Class<T>) answer;
>> +    }
>> +
>> +    public InputStream loadResourceAsStream(String uri) {
>> +        ObjectHelper.notEmpty(uri, "uri");
>> +        URL url = loadResourceAsURL(uri);
>> +        InputStream answer = null;
>> +        if (url != null) {
>> +            try {
>> +                answer = url.openStream();
>> +            } catch (IOException ex) {
>> +                LOG.error("Cannot load resource: " + uri, ex);
>> +            }
>> +        }
>> +        return answer;
>> +    }
>> +
>> +    public URL loadResourceAsURL(String uri) {
>> +        ObjectHelper.notEmpty(uri, "uri");
>> +        URL url = null;
>> +        for (Bundle bundle : bundleContext.getBundles()) {
>> +            url = bundle.getEntry(uri);
>> +            if (url != null) {
>> +                break;
>> +            }
>> +        }
>> +        return url;
>> +    }
>> +
>> +    protected Class<?> loadClass(String name, ClassLoader loader) {
>> +        ObjectHelper.notEmpty(name, "name");
>> +        Class<?> answer = null;
>> +        // Try to use the camel context's bundle's classloader to load the class
>> +        if (loader != null) {
>> +            try {
>> +                answer = loader.loadClass(name);
>> +            } catch (ClassNotFoundException e) {
>> +                LOG.info("Cannot load class: " + name + " using classloader: " + loader, e);
>> +                if (LOG.isTraceEnabled()) {
>> +                    LOG.trace("Cannot load class: " + name + " using classloader: " + loader, e);
>> +                }
>> +            }
>> +        }
>> +        // Load the class with bundle, if there are more than one version of the class the first one will be load
>> +        if (answer == null) {
>> +            for (Bundle bundle : bundleContext.getBundles()) {
>> +                try {
>> +                    answer = bundle.loadClass(name);
>> +                    if (answer != null) {
>> +                        break;
>> +                    }
>> +                } catch (Exception e) {
>> +                    // do nothing here
>> +                }
>> +            }
>> +        }
>> +        return answer;
>> +    }
>> +
>> +}
>>
>> Propchange: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java
>> ------------------------------------------------------------------------------
>>    svn:eol-style = native
>>
>> Propchange: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiClassResolver.java
>> ------------------------------------------------------------------------------
>>    svn:keywords = Rev Date
>>
>> Modified: camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java
>> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java?rev=894310&r1=894309&r2=894310&view=diff
>> ==============================================================================
>> --- camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java (original)
>> +++ camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/CamelOsgiTestSupport.java Tue Dec 29 04:59:50 2009
>> @@ -16,6 +16,7 @@
>>  */
>>  package org.apache.camel.osgi;
>>
>> +import org.apache.camel.spi.ClassResolver;
>>  import org.junit.After;
>>  import org.junit.Assert;
>>  import org.junit.Before;
>> @@ -26,7 +27,8 @@
>>  public class CamelOsgiTestSupport extends Assert {
>>     private Activator testActivator;
>>     private MockBundleContext bundleContext = new CamelMockBundleContext();
>> -    private OsgiPackageScanClassResolver resolver = new OsgiPackageScanClassResolver(bundleContext);
>> +    private OsgiPackageScanClassResolver packageScanClassResolver = new OsgiPackageScanClassResolver(bundleContext);
>> +    private ClassResolver classResolver = new OsgiClassResolver(bundleContext);
>>     private MockBundle bundle = new CamelMockBundle();
>>
>>     @Before
>> @@ -49,7 +51,11 @@
>>         return bundleContext;
>>     }
>>
>> -    public OsgiPackageScanClassResolver getResolver() {
>> -        return resolver;
>> +    public OsgiPackageScanClassResolver getPackageScanClassResolver() {
>> +        return packageScanClassResolver;
>> +    }
>> +
>> +    public ClassResolver getClassResolver() {
>> +        return classResolver;
>>     }
>>  }
>>
>> Modified: camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java
>> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java?rev=894310&r1=894309&r2=894310&view=diff
>> ==============================================================================
>> --- camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java (original)
>> +++ camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoaderTest.java Tue Dec 29 04:59:50 2009
>> @@ -23,7 +23,7 @@
>>
>>     @Test
>>     public void testLoad() throws Exception {
>> -        OsgiAnnotationTypeConverterLoader loader = new OsgiAnnotationTypeConverterLoader(getResolver());
>> +        OsgiAnnotationTypeConverterLoader loader = new OsgiAnnotationTypeConverterLoader(getPackageScanClassResolver());
>>         MockTypeConverterRegistry registry = new MockTypeConverterRegistry();
>>         loader.load(registry);
>>         assertTrue("There should have at lest one fallback converter", registry.getFallbackTypeConverters().size() >= 1);
>>
>> Added: camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java
>> URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java?rev=894310&view=auto
>> ==============================================================================
>> --- camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java (added)
>> +++ camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java Tue Dec 29 04:59:50 2009
>> @@ -0,0 +1,41 @@
>> +/**
>> + * Licensed to the Apache Software Foundation (ASF) under one or more
>> + * contributor license agreements.  See the NOTICE file distributed with
>> + * this work for additional information regarding copyright ownership.
>> + * The ASF licenses this file to You under the Apache License, Version 2.0
>> + * (the "License"); you may not use this file except in compliance with
>> + * the License.  You may obtain a copy of the License at
>> + *
>> + *      http://www.apache.org/licenses/LICENSE-2.0
>> + *
>> + * Unless required by applicable law or agreed to in writing, software
>> + * distributed under the License is distributed on an "AS IS" BASIS,
>> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>> + * See the License for the specific language governing permissions and
>> + * limitations under the License.
>> + */
>> +package org.apache.camel.osgi;
>> +
>> +import java.io.InputStream;
>> +import java.net.URL;
>> +
>> +import org.apache.camel.spi.ClassResolver;
>> +import org.junit.Test;
>> +
>> +public class OsgiClassResolverTest extends CamelOsgiTestSupport {
>> +
>> +    @Test
>> +    public void testResolveClass() {
>> +        ClassResolver classResolver = getClassResolver();
>> +        Class routeBuilder = classResolver.resolveClass("org.apache.camel.osgi.test.MyRouteBuilder");
>> +        assertNotNull("The class of routeBuilder should not be null.", routeBuilder);
>> +    }
>> +
>> +    @Test
>> +    public void testResolverResource() {
>> +        ClassResolver classResolver = getClassResolver();
>> +        InputStream is = classResolver.loadResourceAsStream("/META-INF/services/org/apache/camel/TypeConverter");
>> +        assertNotNull("The InputStream should not be null.");
>> +    }
>> +
>> +}
>>
>> Propchange: camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java
>> ------------------------------------------------------------------------------
>>    svn:eol-style = native
>>
>> Propchange: camel/trunk/components/camel-osgi/src/test/java/org/apache/camel/osgi/OsgiClassResolverTest.java
>> ------------------------------------------------------------------------------
>>    svn:keywords = Rev Date
>>
>>
>>
> 
> 
>