publishPermissions is fine for me, we can use the "chmod mode" terminology in 
the documentation of this attribute.

Maarten

----- Original Message ----
From: Xavier Hanin <[EMAIL PROTECTED]>
To: Ant Developers List <dev@ant.apache.org>
Sent: Friday, April 4, 2008 9:45:57 AM
Subject: Re: svn commit: r644541 - in /ant/ivy/core/trunk: CHANGES.txt 
doc/resolver/ssh.html src/java/org/apache/ivy/plugins/repository/ssh/Scp.java 
src/java/org/apache/ivy/plugins/repository/ssh/SshRepository.java

On Fri, Apr 4, 2008 at 9:24 AM, Maarten Coene <[EMAIL PROTECTED]>
wrote:

> Btw, in the manual for chmod, they use the "mode" terminology for this
> kind of information.

Maybe it's only me then, but I think mode is too generic in this situation.
Moreover we have resolveMode option on the resolve task (introduced
recently), and I think we could later end up with the same kind of need on
publish, in which case we couldn't use publishMode to avoid the confusion if
we keep it for this attribute. What do you think?

Xavier


>
>
> Maarten
>
> ----- Original Message ----
> From: Maarten Coene <[EMAIL PROTECTED]>
> To: Ant Developers List <dev@ant.apache.org>
> Sent: Friday, April 4, 2008 9:19:57 AM
> Subject: Re: svn commit: r644541 - in /ant/ivy/core/trunk: CHANGES.txt
> doc/resolver/ssh.html
> src/java/org/apache/ivy/plugins/repository/ssh/Scp.java
> src/java/org/apache/ivy/plugins/repository/ssh/SshRepository.java
>
> It was hardcoded to 0600 in Scp.java before I made this change. To keep it
> BC, I defaulted it to the same value. As far as I could see, the umask
> wasn't used. Since this attribute is only used for publishing modules, not
> for module retrieval, I think we should at least keep "publish" in the
> attribute name, but renaming 'mode' to 'permissions' (or something else) is
> fine for me.
>
> Maarten
>
> ----- Original Message ----
> From: Xavier Hanin <[EMAIL PROTECTED]>
> To: dev@ant.apache.org
> Sent: Friday, April 4, 2008 8:51:18 AM
> Subject: Re: svn commit: r644541 - in /ant/ivy/core/trunk: CHANGES.txt
> doc/resolver/ssh.html
> src/java/org/apache/ivy/plugins/repository/ssh/Scp.java
> src/java/org/apache/ivy/plugins/repository/ssh/SshRepository.java
>
> On Fri, Apr 4, 2008 at 12:49 AM, <[EMAIL PROTECTED]> wrote:
>
> > Author: maartenc
> > Date: Thu Apr  3 15:49:49 2008
> > New Revision: 644541
> >
> > URL: http://svn.apache.org/viewvc?rev=644541&view=rev
> > Log:
> > IMPROVEMENT: make it possible to specify permissions of published files
> > for the SSH resolver (IVY-764) + removal of some unused code
> >
> > Modified:
> >    ant/ivy/core/trunk/CHANGES.txt
> >    ant/ivy/core/trunk/doc/resolver/ssh.html
> >
> >
>  ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/Scp.java
> >
> >
>  
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/SshRepository.java
> >
> > Modified: ant/ivy/core/trunk/CHANGES.txt
> > URL:
> >
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=644541&r1=644540&r2=644541&view=diff
> >
> >
> ==============================================================================
> > --- ant/ivy/core/trunk/CHANGES.txt (original)
> > +++ ant/ivy/core/trunk/CHANGES.txt Thu Apr  3 15:49:49 2008
> > @@ -69,6 +69,7 @@
> >  - NEW: Add a new resolve mode (optionally per module) to utilize
> dynamic
> > constraint rule metadata (IVY-740)
> >  - NEW: Add transitive dependency version and branch override mechanism
> > (IVY-784)
> >
> > +- IMPROVEMENT: make it possible to specify permissions of published
> files
> > for the SSH resolver (IVY-764)
> >  - IMPROVEMENT: Load Ivy version number into some Ant property (IVY-790)
> >  - IMPROVEMENT: Make Ivy standalone runnable with no required
> dependencies
> > (IVY-757)
> >  - IMPROVEMENT: add branch attribute in ivy:install task (IVY-727)
> >
> > Modified: ant/ivy/core/trunk/doc/resolver/ssh.html
> > URL:
> >
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/doc/resolver/ssh.html?rev=644541&r1=644540&r2=644541&view=diff
> >
> >
> ==============================================================================
> > --- ant/ivy/core/trunk/doc/resolver/ssh.html (original)
> > +++ ant/ivy/core/trunk/doc/resolver/ssh.html Thu Apr  3 15:49:49 2008
> > @@ -56,6 +56,8 @@
> >         <td>No, defaults to host given on the patterns, fail if none is
> > set</td></tr>
> >     <tr><td>port</td><td>The port to connect to</td>
> >         <td>No, defaults to 22</td></tr>
> > +    <tr><td>publishMode</td><td>A four digit string (e.g., 0644, see
> "man
> > chmod", "man open") specifying the permissions of the published files.
> <span
> > class="since">(since 2.0)</span>
> > +</td><td>No, defaults to 0600</td></tr>
>
> Is it a good idea to give a default value to this attribute? This will
> break
> BC, it used to be using the umask, right? I wonder if the default
> shouldn't
> be "use the umask" to preserve BC. WDYT?
>
> BTW, I don't like the name "publishMode". What do you think of
> "permissions"
> or "umask"?
>
> Xavier
>
>
>
> >
> >  </tbody>
> >  </table>
> >  <h1>Child elements</h1>
> >
> > Modified:
> >
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/Scp.java
> > URL:
> >
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/Scp.java?rev=644541&r1=644540&r2=644541&view=diff
> >
> >
> ==============================================================================
> > ---
> >
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/Scp.java
> > (original)
> > +++
> >
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/Scp.java
> > Thu Apr  3 15:49:49 2008
> > @@ -276,41 +276,6 @@
> >         fileInfo.setLastModified(modtime);
> >     }
> >
> > -    private void sendBytes(Channel channel, byte[] data, String
> fileName,
> > String mode)
> > -            throws IOException, RemoteScpException {
> > -        OutputStream os = channel.getOutputStream();
> > -        InputStream is = new BufferedInputStream(
> > -            channel.getInputStream(), SEND_BYTES_BUFFER_LENGTH);
> > -
> > -        try {
> > -            if (channel.isConnected()) {
> > -                channel.start();
> > -            } else {
> > -                channel.connect();
> > -            }
> > -        } catch (JSchException e1) {
> > -            throw (IOException) new IOException("Channel connection
> > problems").initCause(e1);
> > -        }
> > -
> > -        readResponse(is);
> > -
> > -        String cline = "C" + mode + " " + data.length + " " + fileName
> +
> > "\n";
> > -
> > -        os.write(cline.getBytes());
> > -        os.flush();
> > -
> > -        readResponse(is);
> > -
> > -        os.write(data, 0, data.length);
> > -        os.write(0);
> > -        os.flush();
> > -
> > -        readResponse(is);
> > -
> > -        os.write("E\n".getBytes());
> > -        os.flush();
> > -    }
> > -
> >     private void sendFile(Channel channel, String localFile, String
> > remoteName, String mode)
> >             throws IOException, RemoteScpException {
> >         byte[] buffer = new byte[BUFFER_SIZE];
> > @@ -480,101 +445,6 @@
> >             os.flush();
> >         }
> >         return fileInfo;
> > -    }
> > -
> > -    /**
> > -     * Copy a local file to a remote directory, uses mode 0600 when
> > creating the file on the remote
> > -     * side.
> > -     *
> > -     * @param localFile
> > -     *            Path and name of local file.
> > -     * @param remoteTargetDirectory
> > -     *            Remote target directory where the file has to end up
> > (optional)
> > -     * @param remoteName
> > -     *            target filename to use
> > -     * @throws IOException
> > -     *             in case of network problems
> > -     * @throws RemoteScpException
> > -     *             in case of problems on the target system (connection
> > ok)
> > -     */
> > -    public void put(String localFile, String remoteTargetDirectory,
> > String remoteName)
> > -            throws IOException, RemoteScpException {
> > -        put(localFile, remoteTargetDirectory, remoteName, "0600");
> > -    }
> > -
> > -    /**
> > -     * Create a remote file and copy the contents of the passed byte
> > array into it. Uses mode 0600
> > -     * for creating the remote file.
> > -     *
> > -     * @param data
> > -     *            the data to be copied into the remote file.
> > -     * @param remoteFileName
> > -     *            The name of the file which will be created in the
> > remote target directory.
> > -     * @param remoteTargetDirectory
> > -     *            Remote target directory where the file has to end up
> > (optional)
> > -     * @throws IOException
> > -     *             in case of network problems
> > -     * @throws RemoteScpException
> > -     *             in case of problems on the target system (connection
> > ok)
> > -     */
> > -
> > -    public void put(byte[] data, String remoteFileName, String
> > remoteTargetDirectory)
> > -            throws IOException, RemoteScpException {
> > -        put(data, remoteFileName, remoteTargetDirectory, "0600");
> > -    }
> > -
> > -    /**
> > -     * Create a remote file and copy the contents of the passed byte
> > array into it. The method use
> > -     * the specified mode when creating the file on the remote side.
> > -     *
> > -     * @param data
> > -     *            the data to be copied into the remote file.
> > -     * @param remoteFileName
> > -     *            The name of the file which will be created in the
> > remote target directory.
> > -     * @param remoteTargetDirectory
> > -     *            Remote target directory where the file has to end up
> > (optional)
> > -     * @param mode
> > -     *            a four digit string (e.g., 0644, see "man chmod",
> "man
> > open")
> > -     * @throws IOException
> > -     *             in case of network problems
> > -     * @throws RemoteScpException
> > -     *             in case of problems on the target system (connection
> > ok)
> > -     */
> > -    public void put(byte[] data, String remoteFileName, String
> > remoteTargetDirectory, String mode)
> > -            throws IOException, RemoteScpException {
> > -        ChannelExec channel = null;
> > -
> > -        if ((remoteFileName == null) || (mode == null)) {
> > -            throw new IllegalArgumentException("Null argument.");
> > -        }
> > -
> > -        if (mode.length() != MODE_LENGTH) {
> > -            throw new IllegalArgumentException("Invalid mode.");
> > -        }
> > -
> > -        for (int i = 0; i < mode.length(); i++) {
> > -            if (!Character.isDigit(mode.charAt(i))) {
> > -                throw new IllegalArgumentException("Invalid mode.");
> > -            }
> > -        }
> > -
> > -        String cmd = "scp -t ";
> > -        if (remoteTargetDirectory != null &&
> > remoteTargetDirectory.length() > 0) {
> > -            cmd = cmd + "-d " + remoteTargetDirectory;
> > -        }
> > -
> > -        try {
> > -            channel = getExecChannel();
> > -            channel.setCommand(cmd);
> > -            sendBytes(channel, data, remoteFileName, mode);
> > -            // channel.disconnect();
> > -        } catch (JSchException e) {
> > -            if (channel != null) {
> > -                channel.disconnect();
> > -            }
> > -            throw (IOException) new IOException("Error during SCP
> > transfer." + e.getMessage())
> > -                    .initCause(e);
> > -        }
> >     }
> >
> >     /**
> >
> > Modified:
> >
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/SshRepository.java
> > URL:
> >
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/SshRepository.java?rev=644541&r1=644540&r2=644541&view=diff
> >
> >
> ==============================================================================
> > ---
> >
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/SshRepository.java
> > (original)
> > +++
> >
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/SshRepository.java
> > Thu Apr  3 15:49:49 2008
> > @@ -54,6 +54,8 @@
> >     private String existCommand = "ls";
> >
> >     private String createDirCommand = "mkdir";
> > +
> > +    private String publishMode = "0600";
> >
> >     /**
> >      * create a new resource with lazy initializing
> > @@ -259,7 +261,7 @@
> >                 makePath(path, session);
> >             }
> >             Scp myCopy = new Scp(session);
> > -            myCopy.put(source.getCanonicalPath(), path, name);
> > +            myCopy.put(source.getCanonicalPath(), path, name,
> > publishMode);
> >         } catch (IOException e) {
> >             if (session != null) {
> >                 releaseSession(session, destination);
> > @@ -421,6 +423,14 @@
> >      */
> >     public void setFileSeparator(char fileSeparator) {
> >         this.fileSeparator = fileSeparator;
> > +    }
> > +
> > +    /**
> > +     * A four digit string (e.g., 0644, see "man chmod", "man open")
> > specifying the permissions
> > +     * of the published files.
> > +     */
> > +    public void setPublishMode(String mode) {
> > +        this.publishMode = mode;
> >     }
> >
> >     /**
> >
> >
> >
>
>
> --
> Xavier Hanin - Independent Java Consultant
> http://xhab.blogspot.com/
> http://ant.apache.org/ivy/
> http://www.xoocode.org/
>
>
>
>
>
>
>  
> ____________________________________________________________________________________
> You rock. That's why Blockbuster's offering you one month of Blockbuster
> Total Access, No Cost.
> http://tc.deals.yahoo.com/tc/blockbuster/text5.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>
>
>
>  
> ____________________________________________________________________________________
> You rock. That's why Blockbuster's offering you one month of Blockbuster
> Total Access, No Cost.
> http://tc.deals.yahoo.com/tc/blockbuster/text5.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Xavier Hanin - Independent Java Consultant
http://xhab.blogspot.com/
http://ant.apache.org/ivy/
http://www.xoocode.org/





      
____________________________________________________________________________________
You rock. That's why Blockbuster's offering you one month of Blockbuster Total 
Access, No Cost.  
http://tc.deals.yahoo.com/tc/blockbuster/text5.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to