Willem,

I've tried to modify spring-osgi to make it possible to import
the org.apache.camel.component.file.strategy package from camel-core but I
haven't succeeded. I've used explicit import as well as dynamic. When I use
explicit import I can see (via the webconsole) that spring-osgi does indeed
import the org.apache.camel.component.file.strategy package from camel-core.
But it still cannot resolve
the org.apache.camel.component.file.strategy.GenericFileProcessStrategyFactory
class.

Running out of ideas....

/Bengt

2010/6/11 Bengt Rodehav <be...@rodehav.com>

> 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