[ 
https://issues.apache.org/activemq/browse/CAMEL-2663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=59020#action_59020
 ] 

Claus Ibsen commented on CAMEL-2663:
------------------------------------

Hi Christoph

That is great

See about pluggable class resolvers here
http://camel.apache.org/pluggable-class-resolvers.html

What we may can do is to add a new camel-eclipsercp component which provides 
this class resolver.
What .jar / jars do you need to use?

And I assume those jars has an open source license, such as Apache or Eclipse 
based?
If so we can have it included out of the box at Apache. If not (as in JBoss 
case) is has to be hosted elsewhere such as camel-extra
http://code.google.com/p/camel-extra/

Or at github etc.

> DefaultPackageScanClassResolver can't read entries in an eclipse rcp app 
> because it can't handle bundleresource - protocol
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-2663
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2663
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.2.0
>         Environment: Windows, Eclipse 3.5.2
>            Reporter: Christoph Dittberner
>         Attachments: EclipsePackageScanClassResolver.java
>
>
> scenario:
> I have an eclipse rcp based app and use the apache camel libs within my 
> plugin, i.e. the libs are one classpath of the plugin. I use a route using 
> camel-mail to process some mailqueues.
> CamelContext context = new DefaultCamelContext();
> context.addRoutes(new RouteBuilder() {
>     public void configure()   {
>         
> from("imaps://mailserver?username=user&password=password&consumer.delay=5000&delete=false&unseen=true")
>             .to("log: new mail");
>    }});
>    context.start();
> When I start my app all seems to be ok. But in my log I get a lot of error 
> messages regarding the loading of converters. If I ask my context to find a 
> converter f.i. to converty to byte[] form inputstream (as I did see in 
> another mail example reagding attachments) I get null because the context 
> can't find one.
> I debugged  deeper into the camel code and it seems that the 
> DefaultPackageScanClassResolver can't load from urls starting with 
> bundleresource like 
> "bundleresource://109.fwk32380043:4/org/apache/camel/component/file/"
> using camel-osgi didn't worked because all camel libs are loaded as inner 
> libs of my single plugin and not as plugins. (loading as plugins didn't 
> worked but thats another problem/bug)
>  
> LOG Messages:
> 2010-04-21 11:15:34,829 DEBUG 
> org.apache.camel.impl.converter.DefaultTypeConverter loadTypeConverters - 
> Loading type converters ...
> 2010-04-21 11:15:34,829 DEBUG 
> org.apache.camel.impl.DefaultPackageScanClassResolver findAnnotated - 
> Searching for annotations of org.apache.camel.Converter in packages: 
> [org.apache.camel.component.file, org.apache.camel.component.bean, 
> org.apache.camel.converter, org.apache.camel.component.mail, 
> org.apache.camel.component.spring.integration.converter]
> 2010-04-21 11:15:34,829 DEBUG 
> org.apache.camel.impl.DefaultPackageScanClassResolver getClassLoaders - The 
> thread context class loader: 
> org.eclipse.core.runtime.internal.adaptor.contextfin...@1a76eff  is used to 
> load the class
> 2010-04-21 11:15:34,829 DEBUG 
> org.apache.camel.impl.DefaultPackageScanClassResolver find - Searching for: 
> annotated with @Converter in package: org/apache/camel/component/file using 
> classloader: org.eclipse.core.runtime.internal.adaptor.ContextFinder
> 2010-04-21 11:15:39,954 DEBUG 
> org.apache.camel.impl.DefaultPackageScanClassResolver getResources - Getting 
> resource URL for package: org/apache/camel/component/file with classloader: 
> org.eclipse.core.runtime.internal.adaptor.contextfin...@1a76eff
> 2010-04-21 11:16:44,970 DEBUG 
> org.apache.camel.impl.DefaultPackageScanClassResolver find - URL from 
> classloader: 
> bundleresource://109.fwk32380043:4/org/apache/camel/component/file/
> 2010-04-21 11:17:01,642 DEBUG 
> org.apache.camel.impl.DefaultPackageScanClassResolver find - Decoded urlPath: 
> /org/apache/camel/component/file/ with protocol: bundleresource
> 2010-04-21 11:23:59,814 DEBUG 
> org.apache.camel.impl.DefaultPackageScanClassResolver find - 
> isLocalFileSystem: false
> 2010-04-21 11:24:00,470 DEBUG 
> org.apache.camel.impl.DefaultPackageScanClassResolver find - Scanning for 
> classes in [/org/apache/camel/component/file/] matching criteria: annotated 
> with @Converter
> 2010-04-21 11:24:16,079 DEBUG 
> org.apache.camel.impl.DefaultPackageScanClassResolver find - Loading from jar 
> using http/https: /org/apache/camel/component/file/
> 2010-04-21 11:24:26,626 DEBUG 
> org.apache.camel.impl.DefaultPackageScanClassResolver find - Cannot read 
> entries in url: 
> bundleresource://109.fwk32380043:4/org/apache/camel/component/file/
> java.net.MalformedURLException: no protocol: /org/apache/camel/component/file/
>       at java.net.URL.<init>(URL.java:567)
>       at java.net.URL.<init>(URL.java:464)
>       at java.net.URL.<init>(URL.java:413)
>       at 
> org.apache.camel.impl.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:264)
>       at 
> org.apache.camel.impl.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:180)
>       at 
> org.apache.camel.impl.DefaultPackageScanClassResolver.findAnnotated(DefaultPackageScanClassResolver.java:100)
>       at 
> org.apache.camel.impl.converter.AnnotationTypeConverterLoader.load(AnnotationTypeConverterLoader.java:63)
>       at 
> org.apache.camel.impl.converter.DefaultTypeConverter.loadTypeConverters(DefaultTypeConverter.java:361)
>       at 
> org.apache.camel.impl.converter.DefaultTypeConverter.doStart(DefaultTypeConverter.java:384)
>       at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:49)
>       at 
> org.apache.camel.impl.DefaultCamelContext.startServices(DefaultCamelContext.java:1174)
>       at 
> org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:644)
>       at 
> org.apache.camel.impl.DefaultCamelContext.getTypeConverter(DefaultCamelContext.java:691)
>       at 
> org.apache.camel.util.CamelContextHelper.convertTo(CamelContextHelper.java:68)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to