Willem, I've done some more digging in order to understand what is happening. Apparently spring-osgi embeds the OsgiClassResolver class (it is specified as a Private-Package). The class that the resolver is trying to resolve is:
org.apache.camel.component.file.strategy.GenericFileProcessStrategyFactory The package org.apache.camel.component.file.strategy is exported from camel-core but it is not imported into spring-osgi which must be the reason why it cannot be resolved. If the resolver resides in spring-osgi (which it does) then it must import all packages that it can potentially be requested to resolve. I guess one way of doing that would be via Dynamic-Import. Will you take a look at this? /Bengt 2010/6/11 Bengt Rodehav <be...@rodehav.com> > Hello again Willem! > > Maybe we should switch thread since this presently has nothing to do with > ftps... > > Anyway, it's going to be pretty hard for me to extract a small test case. > Not sure I will be enable to do it. Just out of curiosity, did you also try > a "ftps:" endpoint? > > Also, I've been doing some System.out debugging. I've found out the > following: > > The resolver that is being used is an instance of > the org.apache.camel.core.osgi.OsgiClassResolver class. When I search > through the Camel source code I only find this class in one place - in the > camel-core-osgi component. To my knowledge I don't use that component and I > have no idea how that class can be instantiated in run-time. > > Any thoughts on this? Is this the correct resolver to use? How is > camel-core supposed to find that class? How does it work? > > /Bengt > > > 2010/6/10 Willem Jiang <willem.ji...@gmail.com> > >> Hi Bengt, >> I just tried to use some file endpoint inside our camel OSGi test >> platform, the route is started without any issue. >> >> Can you create a small test case which is based on you application and >> submit it into a JIRA ? >> In this way I can keep on digging the issue :) >> >> Willem >> >> >> Bengt Rodehav wrote: >> >>> I now get the following exception: >>> >>> java.lang.TypeNotPresentException: Type >>> >>> org.apache.camel.component.file.strategy.GenericFileProcessStrategyFactory >>> class not found not present >>> at >>> >>> org.apache.camel.component.file.GenericFileEndpoint.createGenericFileStrategy(GenericFileEndpoint.java:145) >>> at >>> >>> org.apache.camel.component.file.GenericFileEndpoint.getGenericFileProcessStrategy(GenericFileEndpoint.java:118) >>> at >>> >>> org.apache.camel.component.file.GenericFileConsumer.doStart(GenericFileConsumer.java:397) >>> at >>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:56) >>> at >>> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:53) >>> at >>> >>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1015) >>> ... >>> >>> This is incredibly strange to me. It seems like the caller (line 145 in >>> class GenericFileEndpoint) cannot find the class >>> GenericFileProcessStrategyFactory. They both reside in camel-core so >>> there >>> can be no problem in finding the class. However it is not exactly trying >>> to >>> find it but to "resolve" it. The following call throws the exception: >>> >>> factory = >>> >>> this.getCamelContext().getClassResolver().resolveClass(DEFAULT_STRATEGYFACTORY_CLASS); >>> >>> Any ideas? >>> >>> /Bengt >>> >>> >>> >>> >>> >>> >>> 2010/6/10 Bengt Rodehav <be...@rodehav.com> >>> >>> Willem, >>>> >>>> I'm just now building a new trunk version of Camel and need to verify >>>> with >>>> you that I'm using Camel properly in an OSGi environment: >>>> >>>> - I only install the features "camel" (includes camel-core and >>>> camel-spring >>>> bundles) + camel-ftp (that I wish to test) >>>> Do I need camel-spring if I'm not using Spring directly? I create all >>>> my >>>> routes in Java DSL. >>>> >>>> - I noticed that there is a component called camel-core-osgi. Should I >>>> use >>>> it in any way? How? >>>> >>>> Just out of curiosity. What was the typo you mentioned? >>>> >>>> /Bengt >>>> >>>> >>>> 2010/6/10 Willem Jiang <willem.ji...@gmail.com> >>>> >>>> Hi Bengt, >>>>> >>>>> It's a typo, I just fixed it with an OSGi unit test. >>>>> Please check out the last camel trunk code to keep on riding with Camel >>>>> :) >>>>> >>>>> >>>>> Willem >>>>> >>>>> Bengt Rodehav wrote: >>>>> >>>>> Thanks Willem - what a relief... >>>>>> >>>>>> I eagerly await the results from your digging, >>>>>> >>>>>> /Bengt >>>>>> >>>>>> 2010/6/10 Willem Jiang <willem.ji...@gmail.com> >>>>>> >>>>>> I can reproduce the error that you met, there must be something wrong >>>>>> >>>>>>> with >>>>>>> current OSGi refactoring, >>>>>>> I will keep digging to see if I can fix this issue soon. >>>>>>> >>>>>>> Willem >>>>>>> >>>>>>> >>>>>>> Bengt Rodehav wrote: >>>>>>> >>>>>>> Thanks for your reply Willem, >>>>>>> >>>>>>>> I've tried various combinations of camel features. Right now I use >>>>>>>> the >>>>>>>> "camel" feature (plus camel-ftp since that's what I'm trying to >>>>>>>> test). >>>>>>>> In >>>>>>>> runtime I can see the camel-core, camel-spring and the camel-ftp >>>>>>>> bundles >>>>>>>> installed and active. I manage to create an OsgiDefaultCamelContext >>>>>>>> the >>>>>>>> following way: >>>>>>>> >>>>>>>> mCamelContextFactory = new CamelContextFactory(); >>>>>>>> mCamelContextFactory.setBundleContext(theBundleContext); >>>>>>>> mCamelContext = mCamelContextFactory.createContext(); >>>>>>>> >>>>>>>> However, when I try to start the camel context I get the exception I >>>>>>>> mentioned above: >>>>>>>> >>>>>>>> Caused by: org.apache.camel.ResolveEndpointFailedException: Failed >>>>>>>> to >>>>>>>> resolve endpoint: >>>>>>>> >>>>>>>> >>>>>>>> file://data/connect/test/sample/file2ftps?delay=1000&move=archive%2F%24% >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> 7Bdate%3Anow%3AyyyyMMdd%7D%2F%24%7Bfile%3Aname%7D&moveFailed=failed%2F%24%7Bfile%3Aname.noext%7D-%24%7Bdate%3Anow%3AyyyyMMddHHmmssSSS%7D.%24%7Bfile%3Aext%7D >>>>>>>> due to: No language could be found for: file >>>>>>>> at >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:377) >>>>>>>> >>>>>>>> To me it sounds like the languages has not been registered properly. >>>>>>>> Looking >>>>>>>> through the code it looks like the OSGi "registration" part of camel >>>>>>>> has >>>>>>>> moved from camel-osgi to camel-core. Which I guess means that I >>>>>>>> should >>>>>>>> not >>>>>>>> be using camel-osgi anymore (just camel-core in combination with >>>>>>>> camel-spring). This is what I'm doing, but I still get the above >>>>>>>> exception. >>>>>>>> >>>>>>>> Could it be a problem with iPojo? I use iPOJO to create my OSGi >>>>>>>> services >>>>>>>> from configurations handled by file install. I noticed that the >>>>>>>> BundleContext I'm using is really an instance >>>>>>>> of org.apache.felix.ipojo.IPojoContext. >>>>>>>> >>>>>>>> Any clues? >>>>>>>> >>>>>>>> /Bengt >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> 2010/6/10 Willem Jiang <willem.ji...@gmail.com> >>>>>>>> >>>>>>>> Hi Bengt, >>>>>>>> >>>>>>>> Did you use the apache camel feature of the Camel 2.4-SNAPSHOT ? >>>>>>>>> If so, you just need to install the feature of camel, it includes >>>>>>>>> the >>>>>>>>> camel-core feature and camel-spring feature. >>>>>>>>> >>>>>>>>> And you can still use org.apache.camel.osgi.CamelContextFactory to >>>>>>>>> create >>>>>>>>> the camel context :) >>>>>>>>> >>>>>>>>> Willem >>>>>>>>> >>>>>>>>> >>>>>>>>> Bengt Rodehav wrote: >>>>>>>>> >>>>>>>>> Claus, >>>>>>>>> >>>>>>>>> I have now managed to build Camel version 2.4-SNAPSHOT. However, I >>>>>>>>>> can't >>>>>>>>>> get >>>>>>>>>> my application to work on that version. I'm using Karaf 1.6.0 for >>>>>>>>>> deployment >>>>>>>>>> and something has definitely changed in Camel regarding OSGi. I >>>>>>>>>> haven't >>>>>>>>>> figured out how to use Camel 2.4-SNAPSHOT in Karaf yet. Maybe you >>>>>>>>>> (or >>>>>>>>>> someone else reading this) can help out? >>>>>>>>>> >>>>>>>>>> When using Camel 2.3, I create my camel context using >>>>>>>>>> the org.apache.camel.osgi.CamelContextFactory class. In runtime, >>>>>>>>>> this >>>>>>>>>> class >>>>>>>>>> is imported from the camel-spring-osgi bundle. The activator for >>>>>>>>>> this >>>>>>>>>> bundle >>>>>>>>>> (org.apache.camel.osgi.Activator) seems to reside in the >>>>>>>>>> camel-osgi >>>>>>>>>> bundle >>>>>>>>>> but that bundle also seems to be embedded in camel-spring-osgi. >>>>>>>>>> Have >>>>>>>>>> to >>>>>>>>>> admit that this solution is far from pretty but it seems to work. >>>>>>>>>> The >>>>>>>>>> activator keeps track of installed bundles and their camel >>>>>>>>>> resources >>>>>>>>>> (such >>>>>>>>>> as components and languages). >>>>>>>>>> >>>>>>>>>> When I switch to Camel 2.4-SNAPSHOT I get the following exception: >>>>>>>>>> >>>>>>>>>> ... >>>>>>>>>> Caused by: org.apache.camel.ResolveEndpointFailedException: Failed >>>>>>>>>> to >>>>>>>>>> resolve en >>>>>>>>>> dpoint: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> file://data/connect/sample/file2ftps?delay=1000&move=archive%2F%24%7Bdat >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> e%3Anow%3AyyyyMMdd%7D%2F%24%7Bfile%3Aname%7D&moveFailed=failed%2F%24%7Bfile%3Ana >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> me.noext%7D-%24%7Bdate%3Anow%3AyyyyMMddHHmmssSSS%7D.%24%7Bfile%3Aext%7D >>>>>>>>>> due >>>>>>>>>> to: >>>>>>>>>> No language could be found for: file >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelCon >>>>>>>>>> text.java:377) >>>>>>>>>> ... >>>>>>>>>> >>>>>>>>>> It seems like Camel cannot find the "file" language (which is >>>>>>>>>> supposed >>>>>>>>>> to >>>>>>>>>> be >>>>>>>>>> mapped to the org.apache.camel.language.simple.SimpleLanguage >>>>>>>>>> class). >>>>>>>>>> I >>>>>>>>>> then >>>>>>>>>> tried to find the proper activator to find out why the language >>>>>>>>>> doesn't >>>>>>>>>> seem >>>>>>>>>> to be registered. >>>>>>>>>> >>>>>>>>>> First, the camel-spring-osgi bundle does not seem to exist in >>>>>>>>>> camel >>>>>>>>>> anymore. >>>>>>>>>> Instead, the CamelContextFactory is now imported from the >>>>>>>>>> camel-spring >>>>>>>>>> bundle. camel-spring's activator (org.apache.camel.osgi.Activator) >>>>>>>>>> is >>>>>>>>>> now >>>>>>>>>> part of the camel-spring component but when I look at it I can't >>>>>>>>>> see >>>>>>>>>> that >>>>>>>>>> it >>>>>>>>>> keeps track of anything but it's own BundleContext and Bundle >>>>>>>>>> instance. >>>>>>>>>> Then >>>>>>>>>> who keeps track of the registered components, type converters, >>>>>>>>>> languages >>>>>>>>>> and >>>>>>>>>> so forth? >>>>>>>>>> >>>>>>>>>> I must be missing something here. Can someone please explain to me >>>>>>>>>> how >>>>>>>>>> to >>>>>>>>>> use Camel 2.4 in OSGi? I must say I've had a lot of problems with >>>>>>>>>> the >>>>>>>>>> combination of camel and OSGi before as well but I was hoping for >>>>>>>>>> Camel's >>>>>>>>>> OSGi support to get better - right now I'm a bit disillusioned :-( >>>>>>>>>> >>>>>>>>>> I noticed that camel-osgi still exists in Camel 2.4 but it doesn't >>>>>>>>>> look >>>>>>>>>> like >>>>>>>>>> a bundle anymore. Maybe there is a secret here that I haven't >>>>>>>>>> fully >>>>>>>>>> understood. >>>>>>>>>> >>>>>>>>>> /Bengt >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2010/6/7 Claus Ibsen <claus.ib...@gmail.com> >>>>>>>>>> >>>>>>>>>> On Mon, Jun 7, 2010 at 4:30 PM, Bengt Rodehav <be...@rodehav.com >>>>>>>>>> > >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Claus, >>>>>>>>>> >>>>>>>>>>> I have now tested my version using both passive and active (which >>>>>>>>>>>> >>>>>>>>>>>> requires a >>>>>>>>>>>> >>>>>>>>>>>> certificate) mode. I've tested against a free ftp server - >>>>>>>>>>> Filezilla - >>>>>>>>>>> >>>>>>>>>>> and a >>>>>>>>>>>> >>>>>>>>>>>> commercial ftp server (that we often use) - Serv-u. It works >>>>>>>>>>> fine. >>>>>>>>>>> >>>>>>>>>>> I haven't tested your version yet because it requires me to >>>>>>>>>>>> build >>>>>>>>>>>> my >>>>>>>>>>>> application against Camel version 2.4-SNAPSHOT instead of Camel >>>>>>>>>>>> version >>>>>>>>>>>> 2.3.0. To get this to work I need to get all the 2-4-SNAPSHOT >>>>>>>>>>>> artifacts >>>>>>>>>>>> >>>>>>>>>>>> into >>>>>>>>>>>> >>>>>>>>>>>> my local Maven repository. I tried to do this by building >>>>>>>>>>> Camel >>>>>>>>>>> >>>>>>>>>>> locally >>>>>>>>>>>> >>>>>>>>>>>> but >>>>>>>>>>>> >>>>>>>>>>>> I never seem to get it to build. Right now, I'm stuck with the >>>>>>>>>>> >>>>>>>>>>> following >>>>>>>>>>>> Maven error message (I'm usng Maven 2.0.11): >>>>>>>>>>>> >>>>>>>>>>>> You can just cd into camel-ftp and build that jar. And then you >>>>>>>>>>>> grab >>>>>>>>>>>> >>>>>>>>>>>> the camel-core jar as well. >>>>>>>>>>>> >>>>>>>>>>> And if you use spring then camel-spring .jar as well. Then you >>>>>>>>>>> got >>>>>>>>>>> what you need for 2.4-SNAPSHOTs. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Yeah Maven can be strange. Sometimes you need to nuke you local >>>>>>>>>>> m2 >>>>>>>>>>> repo >>>>>>>>>>> cache. >>>>>>>>>>> And I use maven 2.0.9. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> [INFO] Writing OBR metadata >>>>>>>>>>> >>>>>>>>>>> [INFO] >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ------------------------------------------------------------------------ >>>>>>>>>>>> [INFO] Building Camel :: Jetty >>>>>>>>>>>> [INFO] task-segment: [clean, install] >>>>>>>>>>>> [INFO] >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ------------------------------------------------------------------------ >>>>>>>>>>>> [INFO] [clean:clean] >>>>>>>>>>>> Downloading: >>>>>>>>>>>> >>>>>>>>>>>> https://repository.apache.org/content/repositories/releases//com/su >>>>>>>>>>>> n/mail/all/1.4.3/all-1.4.3.pom >>>>>>>>>>>> [INFO] Unable to find resource 'com.sun.mail:all:pom:1.4.3' in >>>>>>>>>>>> repository >>>>>>>>>>>> apache >>>>>>>>>>>> .releases ( >>>>>>>>>>>> https://repository.apache.org/content/repositories/releases/ >>>>>>>>>>>> ) >>>>>>>>>>>> Downloading: >>>>>>>>>>>> >>>>>>>>>>>> http://svn.apache.org/repos/asf/servicemix/m2-repo/com/sun/mail/all >>>>>>>>>>>> /1.4.3/all-1.4.3.pom >>>>>>>>>>>> [INFO] Unable to find resource 'com.sun.mail:all:pom:1.4.3' in >>>>>>>>>>>> repository >>>>>>>>>>>> servic >>>>>>>>>>>> emix (http://svn.apache.org/repos/asf/servicemix/m2-repo) >>>>>>>>>>>> Downloading: >>>>>>>>>>>> >>>>>>>>>>>> http://jansi.fusesource.org/repo/release/com/sun/mail/all/1.4.3/all >>>>>>>>>>>> -1.4.3.pom >>>>>>>>>>>> [INFO] Unable to find resource 'com.sun.mail:all:pom:1.4.3' in >>>>>>>>>>>> repository >>>>>>>>>>>> jansi. >>>>>>>>>>>> release.m2 (http://jansi.fusesource.org/repo/release) >>>>>>>>>>>> Downloading: >>>>>>>>>>>> >>>>>>>>>>>> http://repository.ops4j.org/maven2/com/sun/mail/all/1.4.3/all-1.4.3 >>>>>>>>>>>> .pom >>>>>>>>>>>> [INFO] Unable to find resource 'com.sun.mail:all:pom:1.4.3' in >>>>>>>>>>>> repository >>>>>>>>>>>> ops4j >>>>>>>>>>>> (http://repository.ops4j.org/maven2) >>>>>>>>>>>> Downloading: >>>>>>>>>>>> >>>>>>>>>>>> http://repo1.maven.org/maven2/com/sun/mail/all/1.4.3/all-1.4.3.pom >>>>>>>>>>>> [INFO] Unable to find resource 'com.sun.mail:all:pom:1.4.3' in >>>>>>>>>>>> repository >>>>>>>>>>>> centra >>>>>>>>>>>> l (http://repo1.maven.org/maven2) >>>>>>>>>>>> [INFO] >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ------------------------------------------------------------------------ >>>>>>>>>>>> [ERROR] BUILD ERROR >>>>>>>>>>>> [INFO] >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ------------------------------------------------------------------------ >>>>>>>>>>>> [INFO] Error building POM (may not be this project's POM). >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Project ID: javax.mail:mail:jar:null >>>>>>>>>>>> >>>>>>>>>>>> Reason: Cannot find parent: com.sun.mail:all for project: >>>>>>>>>>>> javax.mail:mail:jar:nu >>>>>>>>>>>> ll for project javax.mail:mail:jar:null >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> [INFO] >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ------------------------------------------------------------------------ >>>>>>>>>>>> [INFO] For more information, run Maven with the -e switch >>>>>>>>>>>> [INFO] >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ------------------------------------------------------------------------ >>>>>>>>>>>> [INFO] Total time: 4 minutes 26 seconds >>>>>>>>>>>> [INFO] Finished at: Mon Jun 07 12:59:05 CEST 2010 >>>>>>>>>>>> [INFO] Final Memory: 231M/483M >>>>>>>>>>>> [INFO] >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ------------------------------------------------------------------------ >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> /Bengt >>>>>>>>>>>> >>>>>>>>>>>> 2010/6/5 Bengt Rodehav <be...@rodehav.com> >>>>>>>>>>>> >>>>>>>>>>>> God you're fast. I made my own attempts and attached diff files >>>>>>>>>>>> to >>>>>>>>>>>> the >>>>>>>>>>>> JIRA >>>>>>>>>>>> issue you created. I also added a couple of comments/suggestions >>>>>>>>>>>> to >>>>>>>>>>>> the >>>>>>>>>>>> >>>>>>>>>>>> issue. >>>>>>>>>>>> >>>>>>>>>>>>> In short I believe that it is probably easier for the >>>>>>>>>>>>> user/developer >>>>>>>>>>>>> if >>>>>>>>>>>>> >>>>>>>>>>>>> it >>>>>>>>>>>>> >>>>>>>>>>>>> is enough to specify whether a secure data channel should be >>>>>>>>>>>> used >>>>>>>>>>>> or >>>>>>>>>>>> not >>>>>>>>>>>> >>>>>>>>>>>> (the default should be true). Adding more detailed options, >>>>>>>>>>>> like >>>>>>>>>>>> >>>>>>>>>>>>> you >>>>>>>>>>>>> >>>>>>>>>>>>> did, is >>>>>>>>>>>>> >>>>>>>>>>>>> of course just a benefit as long as it is possible to also >>>>>>>>>>>> configure >>>>>>>>>>>> it >>>>>>>>>>>> the >>>>>>>>>>>> easy way (like I described). >>>>>>>>>>>> >>>>>>>>>>>> I haven't tested your changes yet - will do. I have done some >>>>>>>>>>>> >>>>>>>>>>>>> limited >>>>>>>>>>>>> testing with my own version, but only in passive mode. If you >>>>>>>>>>>>> use >>>>>>>>>>>>> a >>>>>>>>>>>>> >>>>>>>>>>>>> secure >>>>>>>>>>>>> >>>>>>>>>>>>> data channel in active mode one must first create a >>>>>>>>>>>> public/private >>>>>>>>>>>> key >>>>>>>>>>>> pair >>>>>>>>>>>> for the ftps client to use and I haven't gotten around to >>>>>>>>>>>> testing >>>>>>>>>>>> that >>>>>>>>>>>> yet. >>>>>>>>>>>> /Bengt >>>>>>>>>>>> >>>>>>>>>>>> 2010/6/4 Claus Ibsen <claus.ib...@gmail.com> >>>>>>>>>>>> >>>>>>>>>>>>> Hi >>>>>>>>>>>>> >>>>>>>>>>>>> On Fri, Jun 4, 2010 at 3:42 PM, Bengt Rodehav < >>>>>>>>>>>>> be...@rodehav.com >>>>>>>>>>>>> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> OK, will try to do that sometime this weekend. >>>>>>>>>>>>> >>>>>>>>>>>> Will be in touch, >>>>>>>>>>>> >>>>>>>>>>>>> I was one step ahead of you. I created the ticket and took a >>>>>>>>>>>>>> >>>>>>>>>>>>>>> stab >>>>>>>>>>>>>>> at >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> resolving it. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> https://issues.apache.org/activemq/browse/CAMEL-2790 >>>>>>>>>>>>>> >>>>>>>>>>>>>> Can you try with the latest source code? And maybe if there is >>>>>>>>>>>>>> still >>>>>>>>>>>>>> some issue then work on a patch from there. >>>>>>>>>>>>>> Would be lovely with an unit test, but the test ftp server we >>>>>>>>>>>>>> use >>>>>>>>>>>>>> cannot understand the secure data transfer. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Anyway would be awesome if you could test it on your real >>>>>>>>>>>>>> systems. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> /Bengt >>>>>>>>>>>>>> >>>>>>>>>>>>>> 2010/6/4 Claus Ibsen <claus.ib...@gmail.com> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Well spotted. Do you mind creating a JIRA ticket and link to >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> post >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> using nabble etc. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> And you may even want to contribute a patch :) >>>>>>>>>>>>> >>>>>>>>>>>>> On Fri, Jun 4, 2010 at 11:34 AM, Bengt Rodehav < >>>>>>>>>>>>>>>> be...@rodehav.com >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I'm using camel-ftp for secure ftps communication. I need >>>>>>>>>>>>>>> to be >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> able >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> connect to a wide range of ftps servers in both explicit and >>>>>>>>>>>>>> implicit >>>>>>>>>>>>>> >>>>>>>>>>>>>>> mode. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I have encountered problems using camel-ftp for ftps >>>>>>>>>>>>>> >>>>>>>>>>>>> communication >>>>>>>>>>>>> >>>>>>>>>>>>> in >>>>>>>>>>>>>> >>>>>>>>>>>>>>> implicit mode. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Some ftps servers require that the file transfer is encrypted >>>>>>>>>>>>>> >>>>>>>>>>>>> (not >>>>>>>>>>>>> >>>>>>>>>>>>> just >>>>>>>>>>>>>> >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> commands). This is of course very natural and is the reason >>>>>>>>>>>>>>> why >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> ftps >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> is >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> chosen in the first place. However, commons-net (which >>>>>>>>>>>>>> camel-ftp >>>>>>>>>>>>>> uses) >>>>>>>>>>>>>> >>>>>>>>>>>>>>> does >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> (for some reason) not by default setup a secure channel for >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> file >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> transfers. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> It has to be requested by code similar to the following: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> ftpsClient.execPBSZ(0); >>>>>>>>>>>>>>>>> ftpsClient.execPROT("P"); >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I suggest to add an option to camel-ftp, regarding ftps, to >>>>>>>>>>>>>>>>> make >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> possible >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> to specify whether the data channel will be encrypted or not. >>>>>>>>>>>>>> Encrypted >>>>>>>>>>>>>> >>>>>>>>>>>>>>> should be default. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> When looking at the code in camel-ftp it seems like there is >>>>>>>>>>>>>>> no >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> special >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> handling during connect for ftps compared to ftp. Thus >>>>>>>>>>>>>>>> there is >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> no >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> natural >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> place to put the above code. One way is to add something >>>>>>>>>>>>>>>> like >>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> following >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> at the end of the method "connect" in the class >>>>>>>>>>>>>>>> "FtpOperations": >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> if(client instanceof FTPSClient) { >>>>>>>>>>>>>>>>> FTPSClient ftpsClient = (FTPSClient)client; >>>>>>>>>>>>>>>>> try { >>>>>>>>>>>>>>>>> if (useSecureDataChannel) { // useSecureDataChannel should >>>>>>>>>>>>>>>>> be >>>>>>>>>>>>>>>>> initialized from the configuration somehow >>>>>>>>>>>>>>>>> ftpsClient.execPBSZ(0); >>>>>>>>>>>>>>>>> ftpsClient.execPROT("P"); >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> } catch (SSLException e) { >>>>>>>>>>>>>>>>> throw new >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> GenericFileOperationFailedException(client.getReplyCode(), >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> client.getReplyString(), e.getMessage(), e); >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> } catch (IOException e) { >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> throw new >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> GenericFileOperationFailedException(client.getReplyCode(), >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> client.getReplyString(), e.getMessage(), e); >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Am I the only one having problems with this? Maybe there is >>>>>>>>>>>>>>>>> a >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> workaround >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> that I haven't figured out. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> /Bengt >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> >>>>>>>>>>>>>> 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 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>> >> >