001: /**
002: *
003: * edtFTPj
004: *
005: * Copyright (C) 2000 Enterprise Distributed Technologies Ltd
006: *
007: * www.enterprisedt.com
008: *
009: * This library is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU Lesser General Public
011: * License as published by the Free Software Foundation; either
012: * version 2.1 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: * Lesser General Public License for more details.
018: *
019: * You should have received a copy of the GNU Lesser General Public
020: * License along with this library; if not, write to the Free Software
021: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
022: *
023: * Bug fixes, suggestions and comments should be should posted on
024: * http://www.enterprisedt.com/forums/index.php
025: *
026: * Change Log:
027: *
028: * $Log: FTPTestTools.java,v $
029: * Revision 1.5 2006/10/27 15:44:44 bruceb
030: * renamed logger, put deprecated constructor call back in
031: *
032: * Revision 1.4 2006/10/11 08:59:20 hans
033: * Fixed use of deprecated FTPClient constructor.
034: *
035: * Revision 1.3 2005/11/09 21:21:09 bruceb
036: * detect transfer mode on
037: *
038: * Revision 1.2 2005/08/26 17:48:33 bruceb
039: * passive ip address setting
040: *
041: * Revision 1.1 2005/07/15 14:41:12 bruceb
042: * needed for rework of unit testing structure
043: *
044: */package com.enterprisedt.net.ftp.test;
045:
046: import java.util.Properties;
047:
048: import com.enterprisedt.net.ftp.FTPClient;
049: import com.enterprisedt.net.ftp.FTPClientInterface;
050: import com.enterprisedt.net.ftp.FTPConnectMode;
051: import com.enterprisedt.net.ftp.FTPControlSocket;
052: import com.enterprisedt.util.debug.Logger;
053:
054: /**
055: * Base class for login tools
056: *
057: * @author Bruce Blackshaw
058: * @version $Revision: 1.5 $
059: */
060: public class FTPTestTools extends TestTools {
061:
062: /**
063: * Log stream
064: */
065: protected Logger log = Logger.getLogger("FTPTestTools");
066:
067: /**
068: * If true use deprecated constructors
069: */
070: protected boolean useDeprecatedConstructors = false;
071:
072: /**
073: * Connect mode for test
074: */
075: protected FTPConnectMode connectMode;
076:
077: /**
078: * Strict reply checking?
079: */
080: protected boolean strictReplies = true;
081:
082: /**
083: * If true, uses the original host IP if an internal IP address
084: * is returned by the server in PASV mode
085: */
086: protected boolean autoPassiveIPSubstitution = false;
087:
088: /**
089: * Set test properties for connecting
090: *
091: * @param props properties obj
092: */
093: public void setProperties(Properties props) {
094: super .setProperties(props);
095:
096: String strict = props.getProperty("ftptest.strictreplies");
097: if (strict != null && strict.equalsIgnoreCase("false"))
098: this .strictReplies = false;
099: else
100: this .strictReplies = true;
101:
102: String autoPassive = props
103: .getProperty("ftptest.autopassivesubstitution");
104: if (autoPassive != null && autoPassive.equalsIgnoreCase("true"))
105: this .autoPassiveIPSubstitution = true;
106: else
107: this .autoPassiveIPSubstitution = false;
108:
109: String deprecatedConstructorsStr = props
110: .getProperty("ftptest.deprecatedconstructors");
111: if (deprecatedConstructorsStr != null)
112: useDeprecatedConstructors = Boolean
113: .getBoolean(deprecatedConstructorsStr);
114:
115: // active or passive?
116: String connectModeStr = System
117: .getProperty("ftptest.connectmode");
118: if (connectModeStr != null
119: && connectModeStr.equalsIgnoreCase("active"))
120: this .connectMode = FTPConnectMode.ACTIVE;
121: else
122: this .connectMode = FTPConnectMode.PASV;
123: }
124:
125: /**
126: * Connect to the remote host
127: *
128: * @return connected FTPClient
129: * @throws Exception
130: */
131: public FTPClientInterface connect() throws Exception {
132: // connect
133: FTPClient ftp = null;
134: if (!useDeprecatedConstructors) {
135: ftp = new FTPClient();
136: ftp.setRemoteHost(host);
137: ftp.setTimeout(timeout);
138:
139: } else {
140: ftp = new FTPClient(host, FTPControlSocket.CONTROL_PORT,
141: timeout);
142: }
143: ftp.setAutoPassiveIPSubstitution(autoPassiveIPSubstitution);
144: ftp.setConnectMode(connectMode);
145: ftp.setDetectTransferMode(true);
146: if (!strictReplies) {
147: log.warn("Strict replies not enabled");
148: ftp.setStrictReturnCodes(false);
149: }
150: ftp.connect();
151: ftp.login(user, password);
152: return ftp;
153: }
154:
155: }
|