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

Reply via email to