You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Benjamin Piwowarski (JIRA)" <ji...@apache.org> on 2012/06/15 15:37:42 UTC

[jira] [Created] (VFS-422) Allows to create other channels

Benjamin Piwowarski created VFS-422:
---------------------------------------

             Summary: Allows to create other channels
                 Key: VFS-422
                 URL: https://issues.apache.org/jira/browse/VFS-422
             Project: Commons VFS
          Issue Type: Improvement
    Affects Versions: 2.0
         Environment: Any
            Reporter: Benjamin Piwowarski


In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 

For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.

I could submit a patch that would:
1) Allows a call to session.openChannel(String type) [following getChannel()]
2) Overwrite isReleaseable to keep the filesystem open if some external channels are open



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398518#comment-13398518 ] 

Benjamin Piwowarski commented on VFS-422:
-----------------------------------------

Sorry, I misunderstood you. I eventually followed the VFS way of doing so by using object creation and finalization (as in AbstractFileObject).

Just saw that ChannelSession and ChannelX11 were private. I guess it is a good idea to remove them.

Benjamin
                
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) [SFTP] Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13435881#comment-13435881 ] 

Benjamin Piwowarski commented on VFS-422:
-----------------------------------------

Is there any progress on this?
                
> [SFTP] Allows to create other channels in SftpFileSystem
> --------------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch, vfs-422-v2-by-gg.diff
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Gary D. Gregory (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13295703#comment-13295703 ] 

Gary D. Gregory commented on VFS-422:
-------------------------------------

Feel free to provide a patch! :)

Please keep in mind that this needs to be testable. 

So please also patch {{org.apache.commons.vfs2.provider.sftp.test.SftpProviderTestCase}}.
                
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Piwowarski updated VFS-422:
------------------------------------

    Attachment: 0001-SftpFileSystems-allows-opening-external-channels.patch
    
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Comment Edited] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398506#comment-13398506 ] 

Benjamin Piwowarski edited comment on VFS-422 at 6/21/12 3:48 PM:
------------------------------------------------------------------

Here are answers to your question

On formats:
* I will use the standard diff format - hopeful the test will pass (I have no trouble on my side after a clean)
* I now use the block style
* I added some comments on Jsch

Other things
* The runtime exception was just a way to see if the code was executed at some point (removed)
* Keeping track of how many objects are instantiated is important if we want to answer correctly to the "isReleasable" question - otherwise, opened channel will be closed when disposing of the filesystem, unless I misunderstood how VFS was working.

I will post an updated patch soon.

PS. my time zone is CEST.
                
      was (Author: bpiwowar):
    Here are answers to your question

On formats:
* I will use the standard diff format - hopeful the test will pass (I have no trouble on my side after a clean)
* I now use the block style
* I added some comments on Jsch

Other things
* The runtime exception was just a way to see if the code was executed at some point (removed)
* Keeping track of how many objects are instantiated is important if we want to answer correctly to the "isReleasable" question - otherwise, opened channel will be closed when disposing of the filesystem, unless I misunderstood how VFS was working.

I will post an updated patch soon.
                  
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (VFS-422) [SFTP] Allows to create other channels in SftpFileSystem

Posted by "Gary D. Gregory (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary D. Gregory updated VFS-422:
--------------------------------

    Summary: [SFTP] Allows to create other channels in SftpFileSystem  (was: Allows to create other channels in SftpFileSystem)
    
> [SFTP] Allows to create other channels in SftpFileSystem
> --------------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Gary D. Gregory (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398482#comment-13398482 ] 

Gary D. Gregory commented on VFS-422:
-------------------------------------

Hi Benjamin:

Thank you for providing another patch. 

Let's discuss:

- Meta: The patch format you supplied was painful for me to use. I had to cut and paste individual fragments for each file and remove the {{a/}} and {{b/}} from the paths. Can you use one plain old .diff file in the future please? 

- The above may mean I misapplied the patch because running "mvn clean test", I get:

{noformat}
Tests in error:
  testExternalChannel(org.apache.commons.vfs2.provider.sftp.test.ProviderSftpExternalChannelTest)
{noformat}


- Session type: Why is this not an enum? This sure seems like the perfect application of an enum. The implementation of {{com.jcraft.jsch.CommonsVFSChannelHelper.getChannel(Session, AtomicLong, String)}} can then be use a switch instead of a bunch of {{if}}s. Also, with enumns, no chance of a typo creating a bug.

- {{com.jcraft.jsch.CommonsVFSChannelHelper.getChannel(Session, AtomicLong, String)}} 

Why is a runtime exception thrown here:
{code:java}
                @Override
                public void close() {
                    if (!close)
                        counter.decrementAndGet();
                    super.close();
                    throw new RuntimeException("Closed call");
                }
{code}

- Always use blocks, for example:

{code:java}
if (!close) {
   counter.decrementAndGet();
}
{code}

Or, in the case of the goofy VFS style:

{code:java}
if (!close) 
{
   counter.decrementAndGet();
}
{code}

- {{com.jcraft.jsch.CommonsVFSChannelHelper.getChannel(Session, AtomicLong, String)}} instance initializers

Do we really care to track how many objects are instantiated? Would the increment be better in connect() overrides? This seems to match up better with the decrement in close(). What am I missing? Some code comments would help here for the non-Jsch guru.

                
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Piwowarski updated VFS-422:
------------------------------------

    Attachment: 0001-SftpFileSystems-allows-opening-external-channels.patch
    
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Comment Edited] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398506#comment-13398506 ] 

Benjamin Piwowarski edited comment on VFS-422 at 6/21/12 3:49 PM:
------------------------------------------------------------------

Here are answers to your question

On formats:
* I will use the standard diff format - hopeful the test will pass (I have no trouble on my side after a clean)
* I now use the block style
* I added some comments on Jsch

Other things
* The session type is now an enum (I just copied the JSch way in the first patch)
* The runtime exception was just a way to see if the code was executed at some point (removed)
* Keeping track of how many objects are instantiated is important if we want to answer correctly to the "isReleasable" question - otherwise, opened channel will be closed when disposing of the filesystem, unless I misunderstood how VFS was working.

I will post an updated patch soon.

PS. my time zone is CEST.
                
      was (Author: bpiwowar):
    Here are answers to your question

On formats:
* I will use the standard diff format - hopeful the test will pass (I have no trouble on my side after a clean)
* I now use the block style
* I added some comments on Jsch

Other things
* The runtime exception was just a way to see if the code was executed at some point (removed)
* Keeping track of how many objects are instantiated is important if we want to answer correctly to the "isReleasable" question - otherwise, opened channel will be closed when disposing of the filesystem, unless I misunderstood how VFS was working.

I will post an updated patch soon.

PS. my time zone is CEST.
                  
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Comment Edited] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398518#comment-13398518 ] 

Benjamin Piwowarski edited comment on VFS-422 at 6/21/12 4:12 PM:
------------------------------------------------------------------

Sorry, I misunderstood you. I eventually followed the VFS way of doing so by using object creation and finalization (as in AbstractFileObject).

Just saw that ChannelSession and ChannelX11 were private. I guess it is a good idea to remove them (along with some others in the same case, e.g agent forwarding)

Benjamin
                
      was (Author: bpiwowar):
    Sorry, I misunderstood you. I eventually followed the VFS way of doing so by using object creation and finalization (as in AbstractFileObject).

Just saw that ChannelSession and ChannelX11 were private. I guess it is a good idea to remove them.

Benjamin
                  
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Piwowarski updated VFS-422:
------------------------------------

    Attachment:     (was: 0001-SftpFileSystems-allows-opening-external-channels.patch)
    
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398506#comment-13398506 ] 

Benjamin Piwowarski commented on VFS-422:
-----------------------------------------

Here are answers to your question

On formats:
* I will use the standard diff format - hopeful the test will pass (I have no trouble on my side after a clean)
* I now use the block style
* I added some comments on Jsch

Other things
* The runtime exception was just a way to see if the code was executed at some point (removed)
* Keeping track of how many objects are instantiated is important if we want to answer correctly to the "isReleasable" question - otherwise, opened channel will be closed when disposing of the filesystem, unless I misunderstood how VFS was working.

I will post an updated patch soon.
                
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Gary D. Gregory (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398511#comment-13398511 ] 

Gary D. Gregory commented on VFS-422:
-------------------------------------

Hi Benjamin,

I am not questioning the need to track, just when to start tracking: object creation vs connection. 

IOW, why not track in connect/disconnect? 

Are all channel types really required or did you create the code as an exhaustive list. ChannelSession and the ChannelX11 are package private, if they are not supported, the helper class can move out of the jsch pacakge. Just a thought...

Thank you,
Gary
                
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (VFS-422) [SFTP] Allows to create other channels in SftpFileSystem

Posted by "Gary D. Gregory (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary D. Gregory updated VFS-422:
--------------------------------

    Attachment: vfs-422-v2-by-gg.diff

I cleaned up Benjamin's patch for further discussion.
                
> [SFTP] Allows to create other channels in SftpFileSystem
> --------------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch, vfs-422-v2-by-gg.diff
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Piwowarski updated VFS-422:
------------------------------------

    Attachment: 0001-SftpFileSystems-allows-opening-external-channels.patch
    
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch, 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Piwowarski updated VFS-422:
------------------------------------

    Attachment:     (was: 0001-SftpFileSystems-allows-opening-external-channels.patch)
    
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Piwowarski updated VFS-422:
------------------------------------

    Attachment: 0001-SftpFileSystems-allows-opening-external-channels.patch

Patch to be applied with 

patch -p1
                
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Gary D. Gregory (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398496#comment-13398496 ] 

Gary D. Gregory commented on VFS-422:
-------------------------------------

What time zon are you in BTW? I am USA EST.
                
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) [SFTP] Allows to create other channels in SftpFileSystem

Posted by "Gary D. Gregory (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398843#comment-13398843 ] 

Gary D. Gregory commented on VFS-422:
-------------------------------------

I've posted questions to the mailing list for further discussion.
                
> [SFTP] Allows to create other channels in SftpFileSystem
> --------------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch, vfs-422-v2-by-gg.diff
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) [SFTP] Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13437711#comment-13437711 ] 

Benjamin Piwowarski commented on VFS-422:
-----------------------------------------

I don't see clearly how to work with the Operations API, that seem to be more linked to a file, whereas the proposed API is at the level of the file system. 
                
> [SFTP] Allows to create other channels in SftpFileSystem
> --------------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch, vfs-422-v2-by-gg.diff
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Piwowarski updated VFS-422:
------------------------------------

    Summary: Allows to create other channels in SftpFileSystem  (was: Allows to create other channels)
    
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) [SFTP] Allows to create other channels in SftpFileSystem

Posted by "Gary D. Gregory (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13435914#comment-13435914 ] 

Gary D. Gregory commented on VFS-422:
-------------------------------------

There is a discussion thread here: http://markmail.org/message/lbzqhplulsz2a7a2#query:+page:1+mid:66hcwrqmzlziyssz+state:results

This discussion stalled June 22, 2012 though.

There appears to be no consensus on which approach to take for adding this kind of feature: implement in the provider itself or with the "Operation" API.

One way to further the discussion is to propose an Operations API implementation, compare it to the cleaned up patch I provided, and argue on the pros and cons of each.
                
> [SFTP] Allows to create other channels in SftpFileSystem
> --------------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch, vfs-422-v2-by-gg.diff
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VFS-422) Allows to create other channels in SftpFileSystem

Posted by "Benjamin Piwowarski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398297#comment-13398297 ] 

Benjamin Piwowarski commented on VFS-422:
-----------------------------------------

Please find a patch for this new functionality (along with tests & copyright information)

A few comments on the patch:
- SftpFileSystem has a counter for externally opened channels (and a read access to it in order to test the new functionality)
- I had to create a CommonsVFSChannelHelper in the com.jcraft.jsch package in order to get access to package protected classes.
- I added a new test case so that both the creation and the counter are tested, so that the function does not break in future versions.
                
> Allows to create other channels in SftpFileSystem
> -------------------------------------------------
>
>                 Key: VFS-422
>                 URL: https://issues.apache.org/jira/browse/VFS-422
>             Project: Commons VFS
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Any
>            Reporter: Benjamin Piwowarski
>         Attachments: 0001-SftpFileSystems-allows-opening-external-channels.patch
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> In the software I am writing, I need to execute commands when the filesystems "allows" it, i.e. local or via ssh (i.e. sftp filesystem). 
> For a local filesystem, I can easily do this, but for Sftp, there is no way to get a channel different than the SFTP on, so it would be great if other channels could be open.
> I could submit a patch that would:
> 1) Allows a call to session.openChannel(String type) [following getChannel()]
> 2) Overwrite isReleaseable to keep the filesystem open if some external channels are open

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira