*Again*: One of the *invaluable +advices+ from +Rony Flatscher+ * ....

Thanks a lot, Rony, also here in Vienna, Austria :-) :-) :-)

Kind regards to all ooRexx, BSF4ooRexx, as well as *classic Rexx* and 
*NetRexx* Lovers.

Thomas Schneider, Vienna, Austria.

============================================================================0


Am 23.09.2016 um 13:17 schrieb oorexx-users-requ...@lists.sourceforge.net:
> Send Oorexx-users mailing list submissions to
>       oorexx-users@lists.sourceforge.net
>
> To subscribe or unsubscribe via the World Wide Web, visit
>       https://lists.sourceforge.net/lists/listinfo/oorexx-users
> or, via email, send a message with subject or body 'help' to
>       oorexx-users-requ...@lists.sourceforge.net
>
> You can reach the person managing the list at
>       oorexx-users-ow...@lists.sourceforge.net
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Oorexx-users digest..."
>
>
> Today's Topics:
>
>     1. RxFtp Class Library (pr gramly)
>     2. Re: RxFtp Class Library (Rony G. Flatscher)
>     3. Re: RxFtp Class Library (Rony G. Flatscher)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 22 Sep 2016 17:00:00 -0500
> From: pr gramly <prgra...@gmail.com>
> Subject: [Oorexx-users] RxFtp Class Library
> To: Oorexx-users@lists.sourceforge.net
> Message-ID: <1474581600.3698.29.ca...@gmail.com>
> Content-Type: text/plain; charset="UTF-8"
>
> Is there something like RxFtp for sftp protocol?
> I guess, more broadly, it would be a ooRexx class to use with ssh.
>
> Regards,?
>
> Phillip
>
>
>
> ------------------------------
>
> Message: 2
> Date: Fri, 23 Sep 2016 12:23:02 +0200
> From: "Rony G. Flatscher" <rony.flatsc...@wu.ac.at>
> Subject: Re: [Oorexx-users] RxFtp Class Library
> To: oorexx-users@lists.sourceforge.net
> Message-ID: <d799fd33-cc4d-3f01-6a74-00a9d9281...@wu.ac.at>
> Content-Type: text/plain; charset=utf-8
>
> Hi Phillip,
>
> On 23.09.2016 00:00, pr gramly wrote:
>> Is there something like RxFtp for sftp protocol?
>> I guess, more broadly, it would be a ooRexx class to use with ssh.
> AFAIK there is no such ooRexx class in existence or in the works. Whoever 
> implements such a
> functionality for ooRexx needs to implement a security infrastructure (and 
> keep it up-to-date) to be
> used for sftp.
>
> However, if you use the ooRexx package "BSF4ooRexx", then you can use Java 
> classes as ooRexx classes
> and take advantage of any Java class (which will exploit the Java runtime 
> deployed Java security
> infrastructure on any operating system).
>
> To get an idea how you can take advantage of BSF4ooRexx take a look at e.g. 
> the following slides:
> <http://wi.wu.ac.at/rgf/wu/lehre/autojava/material/foils/AutoJava-BSF4ooRexx-03-Sockets.pdf>.
>  These
> slides introduce newbies into socket programming using Java classes instead 
> of the ooRexx classes.
> Then, starting with slide 23, an example is given for using ssl (which does 
> not exist for ooRexx)
> via ooRexx (using Java classes as if they were ooRexx classes).
>
> BSF4ooRexx is actually quite easy and straight forward camouflaging Java 
> classes as ooRexx classes
> and Java objects as ooRexx objects to which you merely send ooRexx messages! 
> The latest version is
> the (stable) beta at: 
> <https://sourceforge.net/projects/bsf4oorexx/files/beta/20160815/>, read the
> "readme" file!
>
> The introduction to BSF4ooRexx explaining the basic concepts can be found in 
> the slides
> <http://wi.wu.ac.at/rgf/wu/lehre/autojava/material/foils/AutoJava-BSF4ooRexx-01.pdf>.
>
> There is no need to learn programming in Java in order to use Java classes as 
> ooRexx classes, you
> merely need to be able to read the (online) documentation of the Java APIs, 
> which is a set of
> interconnected HTML-pages.
>
> If you have questions about BSF4ooRexx then just use the BSF4ooRexx mailing 
> lists like
> <bsf4oorexx-de...@lists.sourceforge.net> or 
> <bsf4oorexx-supp...@lists.sourceforge.net>.
>
> ---rony
>
> P.S.: The latest BSF4ooRexx beta includes .Net support on the Windows 
> platform, cf. the presentation
> of this year's International Rexx symposium organized by 
> <http://www.rexxla.org>.
>
>
>
>
>
>
>
>
>
> ------------------------------
>
> Message: 3
> Date: Fri, 23 Sep 2016 13:16:59 +0200
> From: "Rony G. Flatscher" <rony.flatsc...@wu.ac.at>
> Subject: Re: [Oorexx-users] RxFtp Class Library
> To: oorexx-users@lists.sourceforge.net
> Message-ID: <19ec32a7-75bc-cc54-ed90-cc0023a18...@wu.ac.at>
> Content-Type: text/plain; charset="windows-1252"
>
> Hi Phillip,
>
> oops, forgot to point out that there are quite a few Java solutions that 
> allow you to use sftp.
> Using BSF4ooRexx allows you to use them with pure ooRexx, no need to code in 
> Java yourself.
>
> E.g. one solution uses <http://commons.apache.org/proper/commons-vfs/> (can 
> be used from Java 1.5
> on), so you would have to download that jar-file (jar="Java archive", a zip 
> container of Java
> classes and sometimes with resources) and put its path into the environment 
> variable named
> "CLASSPATH". Once on the CLASSPATH BSF4ooRexx can find all Java classes in 
> that jar file and use
> them as if they were ooRexx classes. [The documentation for the Apache 
> commons-vfs can be found
> here: <http://commons.apache.org/proper/commons-vfs/apidocs/index.html>.]
>
> The mentioned solution (uploading, downloading, deleting files using sftp) 
> can be found here:
> <http://www.mysamplecode.com/2013/06/sftp-apache-commons-file-download.html>, 
> so just read that page.
>
> Here is a transcription from the shown Java code to ooRexx (untested).
>
> Java-code for uploading a file via sftp:
>
>      // Upload file to remote server using SFTP package com.as400samplecode; 
> import java.io.File;
>      import java.io.FileInputStream; import java.util.Properties; import
>      org.apache.commons.vfs2.FileObject; import 
> org.apache.commons.vfs2.FileSystemOptions; import
>      org.apache.commons.vfs2.Selectors; import
>      org.apache.commons.vfs2.impl.StandardFileSystemManager; import
>      org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder; 
> public class SendMyFiles {
>      static Properties props; public static void main(String[] args) { 
> SendMyFiles sendMyFiles = new
>      SendMyFiles(); if (args.length < 1) { System.err.println("Usage: java " +
>      sendMyFiles.getClass().getName()+ " Properties_file File_To_FTP "); 
> System.exit(1); } String
>      propertiesFile = args[0].trim(); String fileToFTP = args[1].trim();
>      sendMyFiles.startFTP(propertiesFile, fileToFTP); } public boolean 
> startFTP(String
>      propertiesFilename, String fileToFTP){ props = new Properties(); 
> StandardFileSystemManager
>      manager = new StandardFileSystemManager(); try { props.load(new 
> FileInputStream("properties/" +
>      propertiesFilename)); String serverAddress = 
> props.getProperty("serverAddress").trim(); String
>      userId = props.getProperty("userId").trim(); String password =
>      props.getProperty("password").trim(); String remoteDirectory =
>      props.getProperty("remoteDirectory").trim(); String localDirectory =
>      props.getProperty("localDirectory").trim(); //check if the file exists 
> String filepath =
>      localDirectory + fileToFTP; File file = new File(filepath); if 
> (!file.exists()) throw new
>      RuntimeException("Error. Local file not found"); //Initializes the file 
> manager manager.init();
>      //Setup our SFTP configuration FileSystemOptions opts = new 
> FileSystemOptions();
>      SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking( 
> opts, "no");
>      SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, true);
>      SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 10000); 
> //Create the SFTP URI using
>      the host name, userid, password, remote path and file name String 
> sftpUri = "sftp://"; + userId +
>      ":" + password + "@" + serverAddress + "/" + remoteDirectory + 
> fileToFTP; // Create local file
>      object FileObject localFile = 
> manager.resolveFile(file.getAbsolutePath()); // Create remote file
>      object FileObject remoteFile = manager.resolveFile(sftpUri, opts); // 
> Copy local file to sftp
>      server remoteFile.copyFrom(localFile, Selectors.SELECT_SELF); 
> System.out.println("File upload
>      successful"); } catch (Exception ex) { ex.printStackTrace(); return 
> false; } finally {
>      manager.close(); } return true; } }
>
> The ooRexx transcription (untested) could look like this:
>
>      -- Upload file to remote server using SFTP -- "main" method in a Java 
> class can be used as the
>      (prolog) Rexx code parse arg propertiesFile fileToFtp 
> res=startFtp(propertiesFile,
>      fileToFtp~strip) say "startFtp() returned:" res "(0=.false, 
> 1=.true=success)" ::routine startFTP
>      use arg propertiesFilename, fileToFTP props = 
> .BSF~new("java.util.Properties") manager =
>      .BSF~new("org.apache.commons.vfs2.impl.StandardFileSystemManager") -- no 
> need to try and catch,
>      if there is an error, the Rexx interpreter will abort -- and give the 
> respective Java exception
>      information props~load(.bsf~new("java.io.FileInputStream", 
> "properties/"propertiesFilename))
>      serverAddress = props~getProperty("serverAddress" )~strip userID = 
> props~getProperty("userId"
>      )~strip password = props~getProperty("password" )~strip remoteDirectory =
>      props~getProperty("remoteDirectory")~strip localDirectory = 
> props~getProperty("localDirectory"
>      )~strip -- check if the file exists filepath = localDirectory || 
> fileToFTP file =
>      .bsf~new("java.io.File", filepath) if \file~exists then raise syntax 
> 90.900 array ("Error. Local
>      file" pp(filepath) "not found") signal on syntax -- from now on let us 
> intercept any condition
>      to close manager and return .false -- Initializes the file manager 
> manager~init -- Setup our
>      SFTP configuration opts = 
> .bsf~new("org.apache.commons.vfs2.FileSystemOptions")
>      
> SftpFileSystemConfigBuilder=bsf.import("org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder")
>      instance=SftpFileSystemConfigBuilder~getInstance 
> instance~setStrictHostKeyChecking(opt,"no")
>      instance~setUserDirIsRoot(opts, .true) instance~setTimeout(opts, 10000) 
> -- Create the SFTP URI
>      using the host name, userid, password, remote path and file name -- 
> String sftpUri = "sftp://"; +
>      userId + ":" + password + "@" + serverAddress + "/" + sftpUri =
>      "sftp://"userId":"password"@"serverAddress"/"remoteDirectory || 
> fileToFTP -- Create local file
>      object localFile = manager~resolveFile(file~getAbsolutePath) -- Create 
> remote file object
>      remoteFile = manager~resolveFile(sftpUri, opts) -- Copy local file to 
> sftp server
>      Selectors=bsf.import("org.apache.commons.vfs2.Selectors") 
> remoteFile~copyFrom(localFile,
>      Selectors~SELECT_SELF) say "File upload successful" manager~close return 
> .true syntax:
>      manager~close return .false ::requires BSF.CLS -- load Java support
>
> One can transcribe the other two Java programs to pure ooRexx as well.
>
> HTH,
>
> ---rony
>
>
>
> On 23.09.2016 12:23, Rony G. Flatscher wrote:
>> Hi Phillip,
>>
>> On 23.09.2016 00:00, pr gramly wrote:
>>> Is there something like RxFtp for sftp protocol?
>>> I guess, more broadly, it would be a ooRexx class to use with ssh.
>> AFAIK there is no such ooRexx class in existence or in the works. Whoever 
>> implements such a
>> functionality for ooRexx needs to implement a security infrastructure (and 
>> keep it up-to-date) to be
>> used for sftp.
>>
>> However, if you use the ooRexx package "BSF4ooRexx", then you can use Java 
>> classes as ooRexx classes
>> and take advantage of any Java class (which will exploit the Java runtime 
>> deployed Java security
>> infrastructure on any operating system).
>>
>> To get an idea how you can take advantage of BSF4ooRexx take a look at e.g. 
>> the following slides:
>> <http://wi.wu.ac.at/rgf/wu/lehre/autojava/material/foils/AutoJava-BSF4ooRexx-03-Sockets.pdf>.
>>  These
>> slides introduce newbies into socket programming using Java classes instead 
>> of the ooRexx classes.
>> Then, starting with slide 23, an example is given for using ssl (which does 
>> not exist for ooRexx)
>> via ooRexx (using Java classes as if they were ooRexx classes).
>>
>> BSF4ooRexx is actually quite easy and straight forward camouflaging Java 
>> classes as ooRexx classes
>> and Java objects as ooRexx objects to which you merely send ooRexx messages! 
>> The latest version is
>> the (stable) beta at: 
>> <https://sourceforge.net/projects/bsf4oorexx/files/beta/20160815/>, read the
>> "readme" file!
>>
>> The introduction to BSF4ooRexx explaining the basic concepts can be found in 
>> the slides
>> <http://wi.wu.ac.at/rgf/wu/lehre/autojava/material/foils/AutoJava-BSF4ooRexx-01.pdf>.
>>
>> There is no need to learn programming in Java in order to use Java classes 
>> as ooRexx classes, you
>> merely need to be able to read the (online) documentation of the Java APIs, 
>> which is a set of
>> interconnected HTML-pages.
>>
>> If you have questions about BSF4ooRexx then just use the BSF4ooRexx mailing 
>> lists like
>> <bsf4oorexx-de...@lists.sourceforge.net> or 
>> <bsf4oorexx-supp...@lists.sourceforge.net>.
>>
>> ---rony
>>
>> P.S.: The latest BSF4ooRexx beta includes .Net support on the Windows 
>> platform, cf. the presentation
>> of this year's International Rexx symposium organized by 
>> <http://www.rexxla.org>.
>>
> -------------- next part --------------
> An HTML attachment was scrubbed...
>
> ------------------------------
>
> ------------------------------------------------------------------------------
>
>
> ------------------------------
>
> _______________________________________________
> Oorexx-users mailing list
> Oorexx-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-users
>
>
> End of Oorexx-users Digest, Vol 68, Issue 7
> *******************************************


------------------------------------------------------------------------------
_______________________________________________
Oorexx-users mailing list
Oorexx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-users

Reply via email to