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
>>
>>
>>
>
>
>