Author: rwinston Date: Tue Aug 29 13:47:29 2006 New Revision: 438203 URL: http://svn.apache.org/viewvc?rev=438203&view=rev Log: * Clean up FTPSClient.java slightly * Refactor changeRegex() to setRegex() in RegexFTPFileEntryParserImpl.java * Document some more changes
Modified: jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/FTPSClient.java jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/xdocs/changes.xml Modified: jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/FTPSClient.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/FTPSClient.java?rev=438203&r1=438202&r2=438203&view=diff ============================================================================== --- jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/FTPSClient.java (original) +++ jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/FTPSClient.java Tue Aug 29 13:47:29 2006 @@ -19,27 +19,15 @@ import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; -import java.net.InetAddress; import java.net.Socket; -import java.net.SocketException; import java.security.KeyManagementException; -import java.security.KeyStore; -import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.security.UnrecoverableKeyException; -import java.security.cert.CertificateException; -import java.util.Enumeration; -import java.util.Vector; -import javax.net.ssl.KeyManager; -import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLException; import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; -import javax.net.ssl.TrustManagerFactory; /** * FTP over SSL processing. @@ -68,10 +56,6 @@ private String protocol = DEFAULT_PROTOCOL; /** The AUTH Command value */ private String auth = DEFAULT_PROTOCOL; - /** The KeyManager object. */ - private KeyManager[] keyManager = null; - /** The TrustManager object */ - private TrustManager[] trustManager = null; /** The context object. */ private SSLContext context; /** The socket object. */ @@ -138,116 +122,8 @@ context = SSLContext.getInstance(protocol); } - /** - * Create KeyManager[] object. - * @param ks The KeyStore objects. - * @param storePass The Store password. - * @throws NoSuchAlgorithmException A requested cryptographic - * algorithm is not available in the environment. - * @throws NoSuchProviderException A requested cryptographic provider - * is not available in the environment. - * @throws UnrecoverableKeyException This exception is thrown - * if a key in the keystore cannot be recovered. - * @throws KeyStoreException This is the generic KeyStore exception. - * @throws KeyManagementException It is the generic KeyManager exception. - */ - public void createKeyManager(KeyStore ks, String storePass) - throws NoSuchAlgorithmException, NoSuchProviderException, - KeyStoreException,UnrecoverableKeyException,KeyManagementException{ - if (ks == null) { - keyManager = null; - return; - } - if (KEYSTORE_ALGORITHM == null) - KEYSTORE_ALGORITHM = KeyManagerFactory.getDefaultAlgorithm(); - KeyManagerFactory kmf; - if (PROVIDER == null) { - kmf = KeyManagerFactory.getInstance(KEYSTORE_ALGORITHM); - } else { - kmf = KeyManagerFactory.getInstance(KEYSTORE_ALGORITHM, PROVIDER); - } - if (kmf == null) { - keyManager = null; - return; - } - kmf.init(ks, storePass.toCharArray()); - keyManager = kmf.getKeyManagers(); - context.init(keyManager, trustManager, null); - } - - /** - * Create TrustManager[] object. - * @param ks The KeyStore object. - * @throws NoSuchAlgorithmException A requested cryptographic algorithm - * is not available in the environment. - * @throws NoSuchProviderException A requested cryptographic provider - * is not available in the environment. - * @throws KeyStoreException This is the generic KeyStore exception. - * @throws KeyManagementException It is the generic KeyManager exception. - */ - public void createTrustManager(KeyStore ks) - throws NoSuchAlgorithmException, NoSuchProviderException, - KeyStoreException, KeyManagementException { - if (ks == null) trustManager = null; - if (TRUSTSTORE_ALGORITHM == null) - TRUSTSTORE_ALGORITHM = TrustManagerFactory.getDefaultAlgorithm(); - TrustManagerFactory tmf; - if (PROVIDER == null) { - tmf = TrustManagerFactory.getInstance(TRUSTSTORE_ALGORITHM); - } else { - tmf = TrustManagerFactory.getInstance( - TRUSTSTORE_ALGORITHM, PROVIDER); - } - if (tmf == null) { - trustManager = null; - return; - } - tmf.init(ks); - trustManager = tmf.getTrustManagers(); - context.init(keyManager, trustManager, null); - } - - /** - * Create TrustManager[] object. - * @param _ks The KeyStore objects. - * @throws KeyStoreException This is the generic KeyStore exception. - * @throws CertificateException This exception indicates one of - * a variety of certificate problems. - * @throws NoSuchAlgorithmException A requested cryptographic algorithm - * is not available in the environment. - * @throws NoSuchProviderException A requested cryptographic provider - * is not available in the environment. - * @throws KeyManagementException It is the generic KeyManager exception. - * @throws IOException - */ - public void createTrustManager(Vector ks) throws KeyStoreException, - NoSuchAlgorithmException, CertificateException, - IOException, NoSuchProviderException, KeyManagementException { - if (ks == null) { - trustManager = null; - return; - } - KeyStore _ks; - if (STORE_TYPE == null) { - _ks = KeyStore.getInstance(KeyStore.getDefaultType()); - } else { - _ks = KeyStore.getInstance(STORE_TYPE); - } - _ks.load(null, null); - int n = 0; - // as for every keystore - for (int i = 0; i < ks.size(); i++) { - // as for every alias - KeyStore wks = ((KeyStore) ks.get(i)); - for (Enumeration e = wks.aliases(); e.hasMoreElements();) { - String alias = (String) e.nextElement(); - _ks.setCertificateEntry(String.valueOf(n), - wks.getCertificate(alias)); - n++; - } - } - createTrustManager(_ks); - } + + /** * Set AUTH command use value. @@ -266,82 +142,7 @@ return this.auth; } - /** - * I work to be connected. Opens a Socket connected to a remote host - * at the specified port and originating from the current host at - * a system assigned port. - * @param address The name of the remote host. - * @param port The port to connect to on the remote host. - * @throws SocketException If the socket timeout could not be set. - * @throws IOException If the socket could not be opened. - * In most cases you will only want to catch IOException since - * SocketException is derived from it. - * @see org.apache.commons.net.SocketClient#connect(java.lang.String, int) - */ - public void connect(String address, int port) - throws SocketException, IOException { - super.connect(address, port); - } - - /** - * I work to be connected. Opens a Socket connected to a remote host - * at the specified port and originating from the current host at - * a system assigned port. - * @param address The name of the remote host. - * @param port The port to connect to on the remote host. - * @throws SocketException If the socket timeout could not be set. - * @throws IOException If the socket could not be opened. - * In most cases you will only want to catch IOException since - * SocketException is derived from it. - * @see org.apache.commons.net.SocketClient - * #connect(java.net.InetAddress, int) - */ - public void connect(InetAddress address, int port) - throws SocketException, IOException { - super.connect(address, port); - } - - /** - * I work to be connected. Opens a Socket connected to a remote host - * at the specified port and originating from the specified - * local address and port. - * @param address The name of the remote host. - * @param port The port to connect to on the remote host. - * @param localAddress The local address to use. - * @param localPort The local port to use. - * @throws SocketException If the socket timeout could not be set. - * @throws IOException If the socket could not be opened. - * In most cases you will only want to catch IOException since - * SocketException is derived from it. - * @see org.apache.commons.net.SocketClient - * #connect(java.net.InetAddress, int, java.net.InetAddress, int) - */ - public void connect(InetAddress address, int port, - InetAddress localAddress, int localPort) - throws SocketException, IOException { - super.connect(address, port, localAddress, localPort); - } - - /** - * I work to be connected. Opens a Socket connected to a remote host - * at the specified port and originating from the specified - * local address and port. - * @param address The name of the remote host. - * @param port The port to connect to on the remote host. - * @param localAddress The local address to use. - * @param localPort The local port to use. - * @throws SocketException If the socket timeout could not be set. - * @throws IOException If the socket could not be opened. - * In most cases you will only want to catch IOException since - * SocketException is derived from it. - * @see org.apache.commons.net.SocketClient - * #connect(java.lang.String, int, java.net.InetAddress, int) - */ - public void connect(String address, int port, InetAddress localAddress, - int localPort) throws SocketException, IOException { - super.connect(address, port, localAddress, localPort); - } - + /** * Because there are so many connect() methods, * the _connectAction_() method is provided as a means of performing @@ -362,7 +163,7 @@ } /** - * I carry out an AUTH command. + * AUTH command. * @throws SSLException If it server reply code not equal "234" and "334". * @throws IOException If an I/O error occurs while either sending * the command. @@ -379,8 +180,8 @@ } /** - * SSL/TLS negotiation. I acquire an SSL socket of a control - * connection and carry out handshake processing. + * SSL/TLS negotiation. Acquires an SSL socket of a control + * connection and carries out handshake processing. * @throws IOException A handicap breaks out by sever negotiation. */ private void sslNegotiation() throws IOException { @@ -390,7 +191,6 @@ try { context.init(null, new TrustManager[] { new FTPSTrustManager() } , null); } catch (KeyManagementException e) { - // TODO Auto-generated catch block e.printStackTrace(); } @@ -419,7 +219,7 @@ } /** - * Controls whether new SSL session may be established by this socket. + * Controls whether new a SSL session may be established by this socket. * @param isCreation The established socket flag. */ public void setEnabledSessionCreation(boolean isCreation) { @@ -546,7 +346,7 @@ } /** - * I carry out an PBSZ command. pbsz value: 0 to (2^32)-1 decimal integer. + * PBSZ command. pbsz value: 0 to (2^32)-1 decimal integer. * @param pbsz Protection Buffer Size. * @throws SSLException If it server reply code not equal "200". * @throws IOException If an I/O error occurs while either sending @@ -561,7 +361,7 @@ } /** - * I carry out an PROT command.</br> + * PROT command.</br> * C - Clear</br> * S - Safe(SSL protocol only)</br> * E - Confidential(SSL protocol only)</br> @@ -620,9 +420,8 @@ } /** - * I return a socket of the data connection that I acquired. - * When I ssl it and communicate, I return the SSL socket which - * carried out handshake processing. + * Returns a socket of the data connection. + * Wrapped as an [EMAIL PROTECTED] SSLSocket}, which carries out handshake processing. * @pram command The text representation of the FTP command to send. * @param arg The arguments to the FTP command. * If this parameter is set to null, then the command is sent with Modified: jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java?rev=438203&r1=438202&r2=438203&view=diff ============================================================================== --- jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java (original) +++ jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/main/java/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java Tue Aug 29 13:47:29 2006 @@ -67,7 +67,7 @@ public RegexFTPFileEntryParserImpl(String regex) { super(); - changeRegex(regex); + setRegex(regex); } /** @@ -139,7 +139,7 @@ * @param regex The new regular expression * @return */ - public boolean changeRegex(String regex) { + public boolean setRegex(String regex) { try { pattern = Pattern.compile(regex); } catch (PatternSyntaxException pse) { Modified: jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/xdocs/changes.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/xdocs/changes.xml?rev=438203&r1=438202&r2=438203&view=diff ============================================================================== --- jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/xdocs/changes.xml (original) +++ jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/xdocs/changes.xml Tue Aug 29 13:47:29 2006 @@ -22,7 +22,7 @@ <body> - <release version="2.0" date="" description="Java 5.0+ release"> + <release version="2.0" date="" description="Java 5.0 release"> <action dev="rwinston" type="add"> FTPS (TLS and SSL) is now supported. Thanks to Jose Juan Montiel, Paul Ferraro, and Satoshi Ishigami. </action> @@ -76,6 +76,13 @@ </action> <action dev="rwinston" type="add"> Added WindowSizeOptionHandler (NET-136) + </action> + <action dev="rwinston" type="update"> + Refactored *Client classes under net/ package into separate subpackages + </action> + <action dev="rwinston" type="add"> + Added an ant target to the Maven build to generate an FTP-only jar file, for clients who + wish to use only FTP-based functionality. </action> </release> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]