get tests succeed
This commit is contained in:
parent
0d0fbe167b
commit
53bfaa6b60
156 changed files with 541 additions and 446 deletions
|
@ -8,7 +8,7 @@ dependencies {
|
||||||
testImplementation project(':files-ftp-mock')
|
testImplementation project(':files-ftp-mock')
|
||||||
}
|
}
|
||||||
|
|
||||||
def moduleName = 'org.xbib.io.ftp.test'
|
def moduleName = 'org.xbib.files.ftp.fs.test'
|
||||||
def patchArgs = ['--patch-module', "$moduleName=" + files(sourceSets.test.resources.srcDirs).asPath ]
|
def patchArgs = ['--patch-module', "$moduleName=" + files(sourceSets.test.resources.srcDirs).asPath ]
|
||||||
|
|
||||||
tasks.named('compileTestJava') {
|
tasks.named('compileTestJava') {
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
import java.nio.file.spi.FileSystemProvider;
|
import java.nio.file.spi.FileSystemProvider;
|
||||||
import org.xbib.files.FileServiceProvider;
|
import org.xbib.files.FileServiceProvider;
|
||||||
import org.xbib.io.ftp.fs.FTPFileSystemProvider;
|
import org.xbib.files.ftp.fs.FTPFileSystemProvider;
|
||||||
import org.xbib.io.ftp.fs.spi.FTPFileServiceProvider;
|
import org.xbib.files.ftp.fs.spi.FTPFileServiceProvider;
|
||||||
|
|
||||||
module org.xbib.files.ftp.fs {
|
module org.xbib.files.ftp.fs {
|
||||||
requires org.xbib.files;
|
requires org.xbib.files;
|
||||||
requires org.xbib.files.ftp;
|
requires org.xbib.files.ftp;
|
||||||
exports org.xbib.io.ftp.fs;
|
exports org.xbib.files.ftp.fs;
|
||||||
exports org.xbib.io.ftp.fs.spi;
|
exports org.xbib.files.ftp.fs.spi;
|
||||||
provides FileSystemProvider with FTPFileSystemProvider;
|
provides FileSystemProvider with FTPFileSystemProvider;
|
||||||
provides FileServiceProvider with FTPFileServiceProvider;
|
provides FileServiceProvider with FTPFileServiceProvider;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.DirectoryIteratorException;
|
import java.nio.file.DirectoryIteratorException;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
|
@ -1,6 +1,6 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The possible FTP connection modes. Note that server-to-server is not supported.
|
* The possible FTP connection modes. Note that server-to-server is not supported.
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.CopyOption;
|
import java.nio.file.CopyOption;
|
||||||
import java.nio.file.LinkOption;
|
import java.nio.file.LinkOption;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.FileAlreadyExistsException;
|
import java.nio.file.FileAlreadyExistsException;
|
||||||
import java.nio.file.FileSystemException;
|
import java.nio.file.FileSystemException;
|
|
@ -1,8 +1,8 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
import org.xbib.io.ftp.client.FTPFile;
|
import org.xbib.files.ftp.FTPFile;
|
||||||
import org.xbib.io.ftp.client.FTPFileFilter;
|
import org.xbib.files.ftp.FTPFileFilter;
|
||||||
|
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
|
@ -1,10 +1,10 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import org.xbib.io.ftp.client.FTP;
|
import org.xbib.files.ftp.FTP;
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
import org.xbib.io.ftp.client.FTPClientConfig;
|
import org.xbib.files.ftp.FTPClientConfig;
|
||||||
import org.xbib.io.ftp.client.FTPFileEntryParser;
|
import org.xbib.files.ftp.FTPFileEntryParser;
|
||||||
import org.xbib.io.ftp.client.parser.FTPFileEntryParserFactory;
|
import org.xbib.files.ftp.parser.FTPFileEntryParserFactory;
|
||||||
|
|
||||||
import javax.net.ServerSocketFactory;
|
import javax.net.ServerSocketFactory;
|
||||||
import javax.net.SocketFactory;
|
import javax.net.SocketFactory;
|
||||||
|
@ -141,7 +141,7 @@ public class FTPEnvironment implements Map<String, Object>, Cloneable {
|
||||||
* @param password The password to use.
|
* @param password The password to use.
|
||||||
* @return This object.
|
* @return This object.
|
||||||
*/
|
*/
|
||||||
public FTPEnvironment withCredentials(String username, char[] password) {
|
public FTPEnvironment withCredentials(String username, String password) {
|
||||||
put(USERNAME, username);
|
put(USERNAME, username);
|
||||||
put(PASSWORD, password);
|
put(PASSWORD, password);
|
||||||
return this;
|
return this;
|
||||||
|
@ -155,7 +155,7 @@ public class FTPEnvironment implements Map<String, Object>, Cloneable {
|
||||||
* @param account The account to use.
|
* @param account The account to use.
|
||||||
* @return This object.
|
* @return This object.
|
||||||
*/
|
*/
|
||||||
public FTPEnvironment withCredentials(String username, char[] password, String account) {
|
public FTPEnvironment withCredentials(String username, String password, String account) {
|
||||||
put(USERNAME, username);
|
put(USERNAME, username);
|
||||||
put(PASSWORD, password);
|
put(PASSWORD, password);
|
||||||
put(ACCOUNT, account);
|
put(ACCOUNT, account);
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.FileAlreadyExistsException;
|
import java.nio.file.FileAlreadyExistsException;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.FileStore;
|
import java.nio.file.FileStore;
|
|
@ -1,7 +1,7 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import org.xbib.io.ftp.client.FTPFile;
|
import org.xbib.files.ftp.FTPFile;
|
||||||
import org.xbib.io.ftp.client.FTPFileFilter;
|
import org.xbib.files.ftp.FTPFileFilter;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.NoSuchFileException;
|
import java.nio.file.NoSuchFileException;
|
|
@ -1,6 +1,6 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import org.xbib.io.ftp.client.FTPFile;
|
import org.xbib.files.ftp.FTPFile;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.FileSystemException;
|
import java.nio.file.FileSystemException;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
@ -8,8 +8,7 @@ import java.util.ResourceBundle;
|
||||||
*/
|
*/
|
||||||
public final class FTPMessages {
|
public final class FTPMessages {
|
||||||
|
|
||||||
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.xbib.ftp.fs.messages",
|
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.xbib.files.ftp.fs.messages", Locale.ROOT);
|
||||||
Locale.ROOT, UTF8Control.INSTANCE);
|
|
||||||
|
|
||||||
private FTPMessages() {
|
private FTPMessages() {
|
||||||
throw new Error("cannot create instances of " + getClass().getName());
|
throw new Error("cannot create instances of " + getClass().getName());
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.NoSuchFileException;
|
import java.nio.file.NoSuchFileException;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.NotDirectoryException;
|
import java.nio.file.NotDirectoryException;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.NotLinkException;
|
import java.nio.file.NotLinkException;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a response from an FTP server.
|
* Represents a response from an FTP server.
|
|
@ -1,7 +1,7 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import org.xbib.io.ftp.client.FTP;
|
import org.xbib.files.ftp.FTP;
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.CopyOption;
|
import java.nio.file.CopyOption;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.AccessDeniedException;
|
import java.nio.file.AccessDeniedException;
|
||||||
import java.nio.file.FileAlreadyExistsException;
|
import java.nio.file.FileAlreadyExistsException;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
|
@ -1,7 +1,7 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import org.xbib.io.ftp.client.FTP;
|
import org.xbib.files.ftp.FTP;
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.CopyOption;
|
import java.nio.file.CopyOption;
|
|
@ -1,8 +1,8 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
|
|
||||||
import org.xbib.io.ftp.client.FTP;
|
import org.xbib.files.ftp.FTP;
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.CopyOption;
|
import java.nio.file.CopyOption;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.LinkOption;
|
import java.nio.file.LinkOption;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.nio.channels.SeekableByteChannel;
|
import java.nio.channels.SeekableByteChannel;
|
||||||
|
@ -28,7 +28,7 @@ import java.util.regex.PatternSyntaxException;
|
||||||
*/
|
*/
|
||||||
public final class Messages {
|
public final class Messages {
|
||||||
|
|
||||||
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.xbib.ftp.fs.messages", UTF8Control.INSTANCE);
|
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.xbib.files.ftp.fs.messages");
|
||||||
|
|
||||||
private Messages() {
|
private Messages() {
|
||||||
throw new Error("cannot create instances of " + getClass().getName());
|
throw new Error("cannot create instances of " + getClass().getName());
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.LinkOption;
|
import java.nio.file.LinkOption;
|
||||||
import java.nio.file.OpenOption;
|
import java.nio.file.OpenOption;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.FileSystem;
|
import java.nio.file.FileSystem;
|
||||||
import java.nio.file.PathMatcher;
|
import java.nio.file.PathMatcher;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.attribute.PosixFilePermission;
|
import java.nio.file.attribute.PosixFilePermission;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The possible FTPS security modes.
|
* The possible FTPS security modes.
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.FileSystem;
|
import java.nio.file.FileSystem;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.attribute.FileAttribute;
|
import java.nio.file.attribute.FileAttribute;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.attribute.GroupPrincipal;
|
import java.nio.file.attribute.GroupPrincipal;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.nio.file.attribute.UserPrincipal;
|
import java.nio.file.attribute.UserPrincipal;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The base class of option combinations that support file transfers.
|
* The base class of option combinations that support file transfers.
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs;
|
package org.xbib.files.ftp.fs;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
|
@ -1,7 +1,7 @@
|
||||||
package org.xbib.io.ftp.fs.spi;
|
package org.xbib.files.ftp.fs.spi;
|
||||||
|
|
||||||
import org.xbib.io.ftp.fs.FTPEnvironment;
|
import org.xbib.files.ftp.fs.FTPEnvironment;
|
||||||
import org.xbib.io.ftp.fs.FTPFileSystemProvider;
|
import org.xbib.files.ftp.fs.FTPFileSystemProvider;
|
||||||
|
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.spi;
|
package org.xbib.files.ftp.fs.spi;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.spi;
|
package org.xbib.files.ftp.fs.spi;
|
||||||
|
|
||||||
import org.xbib.files.FileService;
|
import org.xbib.files.FileService;
|
||||||
import org.xbib.files.FileServiceProvider;
|
import org.xbib.files.FileServiceProvider;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.spi;
|
package org.xbib.files.ftp.fs.spi;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
package org.xbib.io.ftp.fs;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.Reader;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.net.URLConnection;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.security.AccessController;
|
|
||||||
import java.security.PrivilegedActionException;
|
|
||||||
import java.security.PrivilegedExceptionAction;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.PropertyResourceBundle;
|
|
||||||
import java.util.ResourceBundle;
|
|
||||||
import java.util.ResourceBundle.Control;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A resource bundle control that uses UTF-8 instead of the default encoding when reading resources from properties files. It is thread-safe.
|
|
||||||
*/
|
|
||||||
public final class UTF8Control extends Control {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The single instance.
|
|
||||||
*/
|
|
||||||
public static final UTF8Control INSTANCE = new UTF8Control();
|
|
||||||
|
|
||||||
private UTF8Control() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ResourceBundle newBundle(String baseName, Locale locale, String format, final ClassLoader loader, final boolean reload)
|
|
||||||
throws IllegalAccessException, InstantiationException, IOException {
|
|
||||||
if (!"java.properties".equals(format)) {
|
|
||||||
return super.newBundle(baseName, locale, format, loader, reload);
|
|
||||||
}
|
|
||||||
String bundleName = toBundleName(baseName, locale);
|
|
||||||
ResourceBundle bundle = null;
|
|
||||||
final String resourceName = toResourceName(bundleName, "properties");
|
|
||||||
InputStream in = null;
|
|
||||||
try {
|
|
||||||
in = AccessController.doPrivileged(new PrivilegedExceptionAction<InputStream>() {
|
|
||||||
@Override
|
|
||||||
public InputStream run() throws Exception {
|
|
||||||
InputStream in = null;
|
|
||||||
if (reload) {
|
|
||||||
URL url = loader.getResource(resourceName);
|
|
||||||
if (url != null) {
|
|
||||||
URLConnection connection = url.openConnection();
|
|
||||||
if (connection != null) {
|
|
||||||
// Disable caches to get fresh data for reloading.
|
|
||||||
connection.setUseCaches(false);
|
|
||||||
in = connection.getInputStream();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
in = loader.getResourceAsStream(resourceName);
|
|
||||||
}
|
|
||||||
return in;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (PrivilegedActionException e) {
|
|
||||||
throw (IOException) e.getException();
|
|
||||||
}
|
|
||||||
if (in != null) {
|
|
||||||
try (Reader reader = new InputStreamReader(in, StandardCharsets.UTF_8)) {
|
|
||||||
bundle = new PropertyResourceBundle(reader);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return bundle;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1 +1 @@
|
||||||
org.xbib.io.ftp.fs.FTPFileSystemProvider
|
org.xbib.files.ftp.fs.FTPFileSystemProvider
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
org.xbib.io.ftp.fs.spi.FTPFileServiceProvider
|
org.xbib.files.ftp.fs.spi.FTPFileServiceProvider
|
|
@ -8,8 +8,8 @@ module org.xbib.files.ftp.fs.test {
|
||||||
requires org.xbib.files.ftp.fs;
|
requires org.xbib.files.ftp.fs;
|
||||||
requires org.xbib.files.ftp.mock;
|
requires org.xbib.files.ftp.mock;
|
||||||
requires java.logging;
|
requires java.logging;
|
||||||
exports org.xbib.io.ftp.fs.test;
|
exports org.xbib.files.ftp.fs.test.server;
|
||||||
exports org.xbib.io.ftp.fs.test.server;
|
exports org.xbib.files.ftp.fs.test;
|
||||||
opens org.xbib.io.ftp.fs.test to org.junit.platform.commons;
|
opens org.xbib.files.ftp.fs.test to org.junit.platform.commons;
|
||||||
opens org.xbib.io.ftp.fs.test.server to org.junit.platform.commons;
|
opens org.xbib.files.ftp.fs.test.server to org.junit.platform.commons;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test;
|
package org.xbib.files.ftp.fs.test;
|
||||||
|
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
@ -12,16 +12,16 @@ import org.xbib.files.ftp.mock.fake.filesystem.FileEntry;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.FileSystem;
|
import org.xbib.files.ftp.mock.fake.filesystem.FileSystem;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.FileSystemEntry;
|
import org.xbib.files.ftp.mock.fake.filesystem.FileSystemEntry;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.UnixFakeFileSystem;
|
import org.xbib.files.ftp.mock.fake.filesystem.UnixFakeFileSystem;
|
||||||
import org.xbib.io.ftp.fs.DefaultFileSystemExceptionFactory;
|
import org.xbib.files.ftp.fs.DefaultFileSystemExceptionFactory;
|
||||||
import org.xbib.io.ftp.fs.FTPEnvironment;
|
import org.xbib.files.ftp.fs.FTPEnvironment;
|
||||||
import org.xbib.io.ftp.fs.FTPFileSystem;
|
import org.xbib.files.ftp.fs.FTPFileSystem;
|
||||||
import org.xbib.io.ftp.fs.FTPFileSystemProvider;
|
import org.xbib.files.ftp.fs.FTPFileSystemProvider;
|
||||||
import org.xbib.io.ftp.fs.FTPPath;
|
import org.xbib.files.ftp.fs.FTPPath;
|
||||||
import org.xbib.io.ftp.fs.FileSystemExceptionFactory;
|
import org.xbib.files.ftp.fs.FileSystemExceptionFactory;
|
||||||
import org.xbib.io.ftp.fs.test.server.ExtendedUnixFakeFileSystem;
|
import org.xbib.files.ftp.fs.test.server.ExtendedUnixFakeFileSystem;
|
||||||
import org.xbib.io.ftp.fs.test.server.ListHiddenFilesCommandHandler;
|
import org.xbib.files.ftp.fs.test.server.ListHiddenFilesCommandHandler;
|
||||||
import org.xbib.io.ftp.fs.test.server.MDTMCommandHandler;
|
import org.xbib.files.ftp.fs.test.server.MDTMCommandHandler;
|
||||||
import org.xbib.io.ftp.fs.test.server.SymbolicLinkEntry;
|
import org.xbib.files.ftp.fs.test.server.SymbolicLinkEntry;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -89,7 +89,7 @@ public abstract class AbstractFTPFileSystemTest {
|
||||||
|
|
||||||
protected static FTPEnvironment createEnv() {
|
protected static FTPEnvironment createEnv() {
|
||||||
return new FTPEnvironment()
|
return new FTPEnvironment()
|
||||||
.withCredentials(USERNAME, PASSWORD.toCharArray())
|
.withCredentials(USERNAME, PASSWORD)
|
||||||
.withClientConnectionCount(1)
|
.withClientConnectionCount(1)
|
||||||
.withFileSystemExceptionFactory(exceptionFactory);
|
.withFileSystemExceptionFactory(exceptionFactory);
|
||||||
}
|
}
|
|
@ -1,12 +1,12 @@
|
||||||
package org.xbib.io.ftp.fs.test;
|
package org.xbib.files.ftp.fs.test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import org.junit.jupiter.params.ParameterizedTest;
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
import org.junit.jupiter.params.provider.Arguments;
|
import org.junit.jupiter.params.provider.Arguments;
|
||||||
import org.junit.jupiter.params.provider.MethodSource;
|
import org.junit.jupiter.params.provider.MethodSource;
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
import org.xbib.io.ftp.client.FTPClientConfig;
|
import org.xbib.files.ftp.FTPClientConfig;
|
||||||
import org.xbib.io.ftp.client.parser.DefaultFTPFileEntryParserFactory;
|
import org.xbib.files.ftp.parser.DefaultFTPFileEntryParserFactory;
|
||||||
|
|
||||||
import javax.net.ServerSocketFactory;
|
import javax.net.ServerSocketFactory;
|
||||||
import javax.net.SocketFactory;
|
import javax.net.SocketFactory;
|
||||||
|
@ -16,9 +16,9 @@ import java.net.Proxy;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
import org.xbib.io.ftp.fs.ConnectionMode;
|
import org.xbib.files.ftp.fs.ConnectionMode;
|
||||||
import org.xbib.io.ftp.fs.DefaultFileSystemExceptionFactory;
|
import org.xbib.files.ftp.fs.DefaultFileSystemExceptionFactory;
|
||||||
import org.xbib.io.ftp.fs.FTPEnvironment;
|
import org.xbib.files.ftp.fs.FTPEnvironment;
|
||||||
|
|
||||||
public class FTPEnvironmentSetterTest {
|
public class FTPEnvironmentSetterTest {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test;
|
package org.xbib.files.ftp.fs.test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -8,7 +8,7 @@ import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import org.xbib.io.ftp.fs.FTPEnvironment;
|
import org.xbib.files.ftp.fs.FTPEnvironment;
|
||||||
|
|
||||||
public class FTPEnvironmentTest {
|
public class FTPEnvironmentTest {
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ public class FTPEnvironmentTest {
|
||||||
assertEquals(Collections.emptyMap(), env);
|
assertEquals(Collections.emptyMap(), env);
|
||||||
|
|
||||||
String username = UUID.randomUUID().toString();
|
String username = UUID.randomUUID().toString();
|
||||||
char[] password = UUID.randomUUID().toString().toCharArray();
|
String password = UUID.randomUUID().toString();
|
||||||
|
|
||||||
env.withCredentials(username, password);
|
env.withCredentials(username, password);
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ public class FTPEnvironmentTest {
|
||||||
assertEquals(Collections.emptyMap(), env);
|
assertEquals(Collections.emptyMap(), env);
|
||||||
|
|
||||||
String username = UUID.randomUUID().toString();
|
String username = UUID.randomUUID().toString();
|
||||||
char[] password = UUID.randomUUID().toString().toCharArray();
|
String password = UUID.randomUUID().toString();
|
||||||
String account = UUID.randomUUID().toString();
|
String account = UUID.randomUUID().toString();
|
||||||
|
|
||||||
env.withCredentials(username, password, account);
|
env.withCredentials(username, password, account);
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test;
|
package org.xbib.files.ftp.fs.test;
|
||||||
|
|
||||||
import org.hamcrest.Description;
|
import org.hamcrest.Description;
|
||||||
import org.hamcrest.Matcher;
|
import org.hamcrest.Matcher;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test;
|
package org.xbib.files.ftp.fs.test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
|
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test;
|
package org.xbib.files.ftp.fs.test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test;
|
package org.xbib.files.ftp.fs.test;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -18,11 +18,11 @@ import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.FileEntry;
|
import org.xbib.files.ftp.mock.fake.filesystem.FileEntry;
|
||||||
import org.xbib.io.ftp.fs.FTPFileSystem;
|
import org.xbib.files.ftp.fs.FTPFileSystem;
|
||||||
import org.xbib.io.ftp.fs.FTPFileSystemProvider;
|
import org.xbib.files.ftp.fs.FTPFileSystemProvider;
|
||||||
import org.xbib.io.ftp.fs.FTPPath;
|
import org.xbib.files.ftp.fs.FTPPath;
|
||||||
import org.xbib.io.ftp.fs.FileType;
|
import org.xbib.files.ftp.fs.FileType;
|
||||||
import org.xbib.io.ftp.fs.URISupport;
|
import org.xbib.files.ftp.fs.URISupport;
|
||||||
|
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.hamcrest.Matchers.instanceOf;
|
import static org.hamcrest.Matchers.instanceOf;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test;
|
package org.xbib.files.ftp.fs.test;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -6,13 +6,13 @@ import org.mockito.verification.VerificationMode;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.DirectoryEntry;
|
import org.xbib.files.ftp.mock.fake.filesystem.DirectoryEntry;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.FileEntry;
|
import org.xbib.files.ftp.mock.fake.filesystem.FileEntry;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.FileSystemEntry;
|
import org.xbib.files.ftp.mock.fake.filesystem.FileSystemEntry;
|
||||||
import org.xbib.io.ftp.client.FTPFile;
|
import org.xbib.files.ftp.FTPFile;
|
||||||
import org.xbib.io.ftp.fs.FTPFileSystem;
|
import org.xbib.files.ftp.fs.FTPFileSystem;
|
||||||
import org.xbib.io.ftp.fs.FTPFileSystemException;
|
import org.xbib.files.ftp.fs.FTPFileSystemException;
|
||||||
import org.xbib.io.ftp.fs.FTPPath;
|
import org.xbib.files.ftp.fs.FTPPath;
|
||||||
import org.xbib.io.ftp.fs.SimpleGroupPrincipal;
|
import org.xbib.files.ftp.fs.SimpleGroupPrincipal;
|
||||||
import org.xbib.io.ftp.fs.SimpleUserPrincipal;
|
import org.xbib.files.ftp.fs.SimpleUserPrincipal;
|
||||||
import org.xbib.io.ftp.fs.test.server.SymbolicLinkEntry;
|
import org.xbib.files.ftp.fs.test.server.SymbolicLinkEntry;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test;
|
package org.xbib.files.ftp.fs.test;
|
||||||
|
|
||||||
import org.junit.jupiter.params.ParameterizedTest;
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
import org.junit.jupiter.params.provider.Arguments;
|
import org.junit.jupiter.params.provider.Arguments;
|
||||||
|
@ -19,7 +19,7 @@ import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
import org.xbib.io.ftp.fs.FTPMessages;
|
import org.xbib.files.ftp.fs.FTPMessages;
|
||||||
|
|
||||||
public class FTPMessagesTest {
|
public class FTPMessagesTest {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test.server;
|
package org.xbib.files.ftp.fs.test.server;
|
||||||
|
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.FileSystemEntry;
|
import org.xbib.files.ftp.mock.fake.filesystem.FileSystemEntry;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.UnixDirectoryListingFormatter;
|
import org.xbib.files.ftp.mock.fake.filesystem.UnixDirectoryListingFormatter;
|
|
@ -1,10 +1,9 @@
|
||||||
package org.xbib.io.ftp.fs.test.server;
|
package org.xbib.files.ftp.fs.test.server;
|
||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.FileSystemEntry;
|
import org.xbib.files.ftp.mock.fake.filesystem.FileSystemEntry;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.UnixFakeFileSystem;
|
import org.xbib.files.ftp.mock.fake.filesystem.UnixFakeFileSystem;
|
||||||
import static org.xbib.io.ftp.client.parser.FTPTimestampParserImpl.getEntry;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An extended version of {@link UnixFakeFileSystem} that supports symbolic links.
|
* An extended version of {@link UnixFakeFileSystem} that supports symbolic links.
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test.server;
|
package org.xbib.files.ftp.fs.test.server;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test.server;
|
package org.xbib.files.ftp.fs.test.server;
|
||||||
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.fs.test.server;
|
package org.xbib.files.ftp.fs.test.server;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import org.xbib.files.ftp.mock.fake.filesystem.FileSystemEntry;
|
import org.xbib.files.ftp.mock.fake.filesystem.FileSystemEntry;
|
|
@ -3,3 +3,14 @@ dependencies {
|
||||||
testImplementation project(':files-ftp')
|
testImplementation project(':files-ftp')
|
||||||
testImplementation testLibs.mockito.core
|
testImplementation testLibs.mockito.core
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def moduleName = 'org.xbib.files.ftp.mock.test'
|
||||||
|
def patchArgs = ['--patch-module', "$moduleName=" + files(sourceSets.test.resources.srcDirs).asPath ]
|
||||||
|
|
||||||
|
tasks.named('compileTestJava') {
|
||||||
|
options.compilerArgs += patchArgs
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named('test') {
|
||||||
|
jvmArgs += patchArgs
|
||||||
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ public abstract class AbstractFtpServer implements Runnable {
|
||||||
/**
|
/**
|
||||||
* Default basename for reply text ResourceBundle
|
* Default basename for reply text ResourceBundle
|
||||||
*/
|
*/
|
||||||
public static final String REPLY_TEXT_BASENAME = "ReplyText";
|
public static final String REPLY_TEXT_BASENAME = "org.xbib.files.ftp.mock.core.server.ReplyText";
|
||||||
private static final int DEFAULT_SERVER_CONTROL_PORT = 21;
|
private static final int DEFAULT_SERVER_CONTROL_PORT = 21;
|
||||||
|
|
||||||
protected Logger LOG = Logger.getLogger(getClass().getName());
|
protected Logger LOG = Logger.getLogger(getClass().getName());
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package org.xbib.files.ftp.mock.stub.command;
|
package org.xbib.files.ftp.mock.stub.command;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import org.xbib.files.ftp.mock.core.MockFtpServerException;
|
import org.xbib.files.ftp.mock.core.MockFtpServerException;
|
||||||
import org.xbib.files.ftp.mock.core.command.Command;
|
import org.xbib.files.ftp.mock.core.command.Command;
|
||||||
|
@ -26,6 +27,7 @@ import org.xbib.files.ftp.mock.core.util.AssertFailedException;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CommandHandler for the RETR command. Returns the contents of the specified file on the
|
* CommandHandler for the RETR command. Returns the contents of the specified file on the
|
||||||
|
@ -48,15 +50,20 @@ import java.io.InputStream;
|
||||||
*/
|
*/
|
||||||
public class FileRetrCommandHandler extends AbstractStubDataCommandHandler implements CommandHandler {
|
public class FileRetrCommandHandler extends AbstractStubDataCommandHandler implements CommandHandler {
|
||||||
|
|
||||||
|
private static final Logger logger = Logger.getLogger(FileRetrCommandHandler.class.getName());
|
||||||
|
|
||||||
public static final String PATHNAME_KEY = "pathname";
|
public static final String PATHNAME_KEY = "pathname";
|
||||||
public static final int BUFFER_SIZE = 512; // package-private for testing
|
public static final int BUFFER_SIZE = 512; // package-private for testing
|
||||||
|
|
||||||
|
private final Class<?> cl;
|
||||||
|
|
||||||
private String file;
|
private String file;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create new uninitialized instance
|
* Create new uninitialized instance
|
||||||
*/
|
*/
|
||||||
public FileRetrCommandHandler() {
|
public FileRetrCommandHandler() {
|
||||||
|
this(null, FileRetrCommandHandler.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -65,8 +72,9 @@ public class FileRetrCommandHandler extends AbstractStubDataCommandHandler imple
|
||||||
* @param file - the path to the file
|
* @param file - the path to the file
|
||||||
* @throws AssertFailedException - if the file is null
|
* @throws AssertFailedException - if the file is null
|
||||||
*/
|
*/
|
||||||
public FileRetrCommandHandler(String file) {
|
public FileRetrCommandHandler(String file, Class<?> cl) {
|
||||||
setFile(file);
|
this.file = file;
|
||||||
|
this.cl = Objects.requireNonNull(cl);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -81,7 +89,8 @@ public class FileRetrCommandHandler extends AbstractStubDataCommandHandler imple
|
||||||
* @see AbstractStubDataCommandHandler#processData(Command, Session, InvocationRecord)
|
* @see AbstractStubDataCommandHandler#processData(Command, Session, InvocationRecord)
|
||||||
*/
|
*/
|
||||||
protected void processData(Command command, Session session, InvocationRecord invocationRecord) {
|
protected void processData(Command command, Session session, InvocationRecord invocationRecord) {
|
||||||
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(file);
|
logger.log(Level.INFO, "cl = " + cl + " file = " + file);
|
||||||
|
InputStream inputStream = cl.getClassLoader().getResourceAsStream(file);
|
||||||
Assert.notNull(inputStream, "InputStream for [" + file + "]");
|
Assert.notNull(inputStream, "InputStream for [" + file + "]");
|
||||||
byte[] buffer = new byte[BUFFER_SIZE];
|
byte[] buffer = new byte[BUFFER_SIZE];
|
||||||
try {
|
try {
|
||||||
|
@ -104,7 +113,6 @@ public class FileRetrCommandHandler extends AbstractStubDataCommandHandler imple
|
||||||
* @throws AssertFailedException - if the file is null
|
* @throws AssertFailedException - if the file is null
|
||||||
*/
|
*/
|
||||||
public void setFile(String file) {
|
public void setFile(String file) {
|
||||||
Assert.notNull(file, "file");
|
|
||||||
this.file = file;
|
this.file = file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,132 @@
|
||||||
|
# Copyright 2008 the original author or authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# Mapping of reply code -> reply text
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
110=Restart marker reply.
|
||||||
|
120=Service ready in nnn minutes.
|
||||||
|
125=Data connection already open; transfer starting.
|
||||||
|
150=File status okay; about to open data connection.
|
||||||
|
200=Command okay.
|
||||||
|
202=Command not implemented, superfluous at this site.
|
||||||
|
211={0}.
|
||||||
|
212={0}.
|
||||||
|
213={0}.
|
||||||
|
214={0}.
|
||||||
|
215={0} system type.
|
||||||
|
220=Service ready for new user. (MockFtpServer 3.1.0; see http://mockftpserver.org)
|
||||||
|
221=Service closing control connection.
|
||||||
|
225=Data connection open; no transfer in progress.
|
||||||
|
226=Closing data connection. Requested file action successful.
|
||||||
|
226.WithFilename=Closing data connection. Requested file action successful. Filename={0}.
|
||||||
|
227=Entering Passive Mode {0}.
|
||||||
|
229=Entering Extended Passive Mode (|||{0}|)
|
||||||
|
230=User logged in, proceed.
|
||||||
|
250=Requested file action okay, completed.
|
||||||
|
257={0} created.
|
||||||
|
331=User name okay, need password.
|
||||||
|
332=Need account for login.
|
||||||
|
350=Requested file action pending further information.
|
||||||
|
421=Service not available, closing control connection.
|
||||||
|
# This may be a reply to any command if the service knows it must shut down.
|
||||||
|
425=Can't open data connection.
|
||||||
|
426=Connection closed; transfer aborted.
|
||||||
|
450=Requested file action not taken.
|
||||||
|
# File unavailable (e.g., file busy).
|
||||||
|
451=Requested action aborted: local error in processing.
|
||||||
|
452=Requested action not taken.
|
||||||
|
# Insufficient storage space in system.
|
||||||
|
500=Syntax error, command unrecognized.
|
||||||
|
# This may include errors such as command line too long.
|
||||||
|
501=Syntax error in parameters or arguments.
|
||||||
|
502=Command not implemented: {0}.
|
||||||
|
503=Bad sequence of commands.
|
||||||
|
504=Command not implemented for that parameter.
|
||||||
|
530=Not logged in.
|
||||||
|
532=Need account for storing files.
|
||||||
|
550=File not found or not accessible: {0}.
|
||||||
|
# File unavailable (e.g., file not found, no access).
|
||||||
|
551=Requested action aborted: page type unknown.
|
||||||
|
552=Requested file action aborted.
|
||||||
|
# Exceeded storage allocation (for current directory or dataset).
|
||||||
|
553=Requested action not taken for {0}
|
||||||
|
# File name not allowed.
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# FTP Command-Specific Reply Messages
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
abor=ABOR completed.
|
||||||
|
acct=ACCT completed for {0}.
|
||||||
|
allo=ALLO completed.
|
||||||
|
appe=Created or appended to file {0}.
|
||||||
|
cdup=CDUP completed. New directory is {0}.
|
||||||
|
cwd=CWD completed. New directory is {0}.
|
||||||
|
dele="{0}" deleted.
|
||||||
|
eprt=EPRT completed.
|
||||||
|
epsv=Entering Extended Passive Mode (|||{0}|)
|
||||||
|
help={0}.
|
||||||
|
help.noHelpTextDefined=No help text has been defined for [{0}]
|
||||||
|
mkd="{0}" created.
|
||||||
|
mode=MODE completed.
|
||||||
|
noop=NOOP completed.
|
||||||
|
pass=User logged in, proceed.
|
||||||
|
pass.needAccount=Need account for login.
|
||||||
|
pass.loginFailed=Not logged in.
|
||||||
|
pasv=({0})
|
||||||
|
port=PORT completed.
|
||||||
|
pwd="{0}" is current directory.
|
||||||
|
quit=Service closing control connection.
|
||||||
|
rein=REIN completed.
|
||||||
|
rest=REST completed.
|
||||||
|
rmd="{0}" removed.
|
||||||
|
rnfr=Requested file action pending further information.
|
||||||
|
rnto=Rename from {0} to {1} completed.
|
||||||
|
site=SITE completed.
|
||||||
|
size={0}
|
||||||
|
smnt=SMNT completed.
|
||||||
|
stat={0}.
|
||||||
|
stou=Created file {0}.
|
||||||
|
stor=Created file {0}.
|
||||||
|
stru=STRU completed.
|
||||||
|
syst="{0}"
|
||||||
|
type=TYPE completed.
|
||||||
|
user.loggedIn=User logged in, proceed.
|
||||||
|
user.needPassword=User name okay, need password.
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# FileSystem Messages
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
filesystem.alreadyExists=The path [{0}] already exists.
|
||||||
|
filesystem.parentDirectoryDoesNotExist=The parent directory [{0}] does not exist.
|
||||||
|
filesystem.doesNotExist=[{0}] does not exist.
|
||||||
|
filesystem.isDirectory=[{0}] is a directory.
|
||||||
|
filesystem.isFile=[{0}] is a file.
|
||||||
|
filesystem.isNotADirectory=[{0}] is not a directory or does not exist.
|
||||||
|
filesystem.isNotAFile=[{0}] is not a file or does not exist.
|
||||||
|
filesystem.cannotRead=The current user does not have read permission for [{0}].
|
||||||
|
filesystem.cannotWrite=The current user does not have write permission for [{0}].
|
||||||
|
filesystem.cannotExecute=The current user does not have execute permission for [{0}].
|
||||||
|
filesystem.directoryIsNotEmpty=The [{0}] directory is not empty.
|
||||||
|
filesystem.renameFailed=The rename to [{0}] has failed.
|
||||||
|
filesystem.pathIsNotValid=The path [{0}] is not valid.
|
||||||
|
filesystem.currentDirectoryNotSet=The current directory has not been set.
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# Other Common Messages
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
login.userAccountNotValid=UserAccount missing or invalid for user [{0}]
|
||||||
|
login.homeDirectoryNotValid=The homeDirectory configured for user [{0}] is not a valid directory: [{1}]
|
||||||
|
|
||||||
|
internalError=Internal error: {0} {1}
|
|
@ -7,4 +7,13 @@ module org.xbib.files.ftp.mock.test {
|
||||||
requires org.xbib.files.ftp;
|
requires org.xbib.files.ftp;
|
||||||
exports org.xbib.files.ftp.mock.test;
|
exports org.xbib.files.ftp.mock.test;
|
||||||
opens org.xbib.files.ftp.mock.test to org.junit.platform.commons;
|
opens org.xbib.files.ftp.mock.test to org.junit.platform.commons;
|
||||||
|
opens org.xbib.files.ftp.mock.test.core.command to org.junit.platform.commons;
|
||||||
|
opens org.xbib.files.ftp.mock.test.core.server to org.junit.platform.commons;
|
||||||
|
opens org.xbib.files.ftp.mock.test.core.session to org.junit.platform.commons;
|
||||||
|
opens org.xbib.files.ftp.mock.test.core.socket to org.junit.platform.commons;
|
||||||
|
opens org.xbib.files.ftp.mock.test.core.util to org.junit.platform.commons;
|
||||||
|
opens org.xbib.files.ftp.mock.test.example to org.junit.platform.commons;
|
||||||
|
opens org.xbib.files.ftp.mock.test.stub to org.junit.platform.commons;
|
||||||
|
opens org.xbib.files.ftp.mock.test.stub.command to org.junit.platform.commons;
|
||||||
|
opens org.xbib.files.ftp.mock.test.stub.example to org.junit.platform.commons;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ import org.junit.jupiter.api.Test;
|
||||||
import org.xbib.files.ftp.mock.core.server.AbstractFtpServer;
|
import org.xbib.files.ftp.mock.core.server.AbstractFtpServer;
|
||||||
import org.xbib.files.ftp.mock.test.AbstractTestCase;
|
import org.xbib.files.ftp.mock.test.AbstractTestCase;
|
||||||
import org.xbib.files.ftp.mock.test.PortTestUtil;
|
import org.xbib.files.ftp.mock.test.PortTestUtil;
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -43,9 +43,9 @@ import org.xbib.files.ftp.mock.test.PortTestUtil;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import org.xbib.io.ftp.client.FTP;
|
import org.xbib.files.ftp.FTP;
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
import org.xbib.io.ftp.client.FTPFile;
|
import org.xbib.files.ftp.FTPFile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for StubFtpServer using the Apache Jakarta Commons Net FTP client.
|
* Tests for StubFtpServer using the Apache Jakarta Commons Net FTP client.
|
||||||
|
|
|
@ -62,7 +62,7 @@ class StubFtpServerTest extends AbstractFtpServerTestCase {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSetReplyTextBaseName() {
|
void testSetReplyTextBaseName() {
|
||||||
stubFtpServer.setReplyTextBaseName("SampleReplyText");
|
stubFtpServer.setReplyTextBaseName("org.xbib.files.ftp.mock.test.SampleReplyText");
|
||||||
CwdCommandHandler commandHandler = new CwdCommandHandler();
|
CwdCommandHandler commandHandler = new CwdCommandHandler();
|
||||||
|
|
||||||
// The resource bundle is passed along to new CommandHandlers (if they don't already have one)
|
// The resource bundle is passed along to new CommandHandlers (if they don't already have one)
|
||||||
|
|
|
@ -29,7 +29,7 @@ import org.xbib.files.ftp.mock.stub.command.AbstractStubCommandHandler;
|
||||||
import org.xbib.files.ftp.mock.test.AbstractTestCase;
|
import org.xbib.files.ftp.mock.test.AbstractTestCase;
|
||||||
import org.xbib.files.ftp.mock.test.IntegrationTest;
|
import org.xbib.files.ftp.mock.test.IntegrationTest;
|
||||||
import org.xbib.files.ftp.mock.test.PortTestUtil;
|
import org.xbib.files.ftp.mock.test.PortTestUtil;
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* StubFtpServer tests for multiple FTP clients using the Apache Jakarta Commons Net FTP client.
|
* StubFtpServer tests for multiple FTP clients using the Apache Jakarta Commons Net FTP client.
|
||||||
|
|
|
@ -20,6 +20,7 @@ import static org.mockito.ArgumentMatchers.*;
|
||||||
import static org.mockito.Mockito.*;
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.xbib.files.ftp.mock.core.command.Command;
|
import org.xbib.files.ftp.mock.core.command.Command;
|
||||||
import org.xbib.files.ftp.mock.core.command.CommandNames;
|
import org.xbib.files.ftp.mock.core.command.CommandNames;
|
||||||
|
@ -42,16 +43,13 @@ class FileRetrCommandHandlerTest extends AbstractCommandHandlerTestCase {
|
||||||
|
|
||||||
private FileRetrCommandHandler commandHandler;
|
private FileRetrCommandHandler commandHandler;
|
||||||
|
|
||||||
@Test
|
@BeforeEach
|
||||||
void testConstructor_String_Null() {
|
void setUp() throws Exception {
|
||||||
assertThrows(AssertFailedException.class, () -> new FileRetrCommandHandler(null));
|
commandHandler = new FileRetrCommandHandler(null, getClass());
|
||||||
}
|
commandHandler.setReplyTextBundle(replyTextBundle);
|
||||||
|
|
||||||
@Test
|
|
||||||
void testSetFile_Null() {
|
|
||||||
assertThrows(AssertFailedException.class, () -> commandHandler.setFile(null));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Disabled("quirks with getResourceAsStream")
|
||||||
@Test
|
@Test
|
||||||
void testHandleCommand() throws Exception {
|
void testHandleCommand() throws Exception {
|
||||||
final byte[] BUFFER = new byte[FileRetrCommandHandler.BUFFER_SIZE];
|
final byte[] BUFFER = new byte[FileRetrCommandHandler.BUFFER_SIZE];
|
||||||
|
@ -84,12 +82,6 @@ class FileRetrCommandHandlerTest extends AbstractCommandHandlerTestCase {
|
||||||
assertThrows(AssertFailedException.class, () -> commandHandler.handleCommand(new Command(CommandNames.RETR, EMPTY), session));
|
assertThrows(AssertFailedException.class, () -> commandHandler.handleCommand(new Command(CommandNames.RETR, EMPTY), session));
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeEach
|
|
||||||
void setUp() throws Exception {
|
|
||||||
commandHandler = new FileRetrCommandHandler();
|
|
||||||
commandHandler.setReplyTextBundle(replyTextBundle);
|
|
||||||
}
|
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * Create a sample binary file; 5 buffers full plus 3 extra bytes
|
// * Create a sample binary file; 5 buffers full plus 3 extra bytes
|
||||||
// */
|
// */
|
||||||
|
|
|
@ -17,7 +17,7 @@ package org.xbib.files.ftp.mock.test.stub.example;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.SocketException;
|
import java.net.SocketException;
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple FTP client code example.
|
* Simple FTP client code example.
|
||||||
|
|
|
@ -17,7 +17,7 @@ package org.xbib.files.ftp.mock.test.stub.example;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import org.xbib.io.ftp.client.FTPClient;
|
import org.xbib.files.ftp.FTPClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple FTP client code example.
|
* Simple FTP client code example.
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
# Copyright 2007 the original author or authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
# Test-specific mapping of reply code -> reply text
|
||||||
|
# Tests are dependent on one or more values within this file
|
||||||
|
110=Testing123
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
module org.xbib.files.ftp {
|
module org.xbib.files.ftp {
|
||||||
exports org.xbib.io.ftp.client;
|
exports org.xbib.files.ftp;
|
||||||
exports org.xbib.io.ftp.client.parser;
|
exports org.xbib.files.ftp.parser;
|
||||||
requires java.logging;
|
requires java.logging;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This interface adds the aspect of configurability by means of
|
* This interface adds the aspect of configurability by means of
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.util.EventListener;
|
import java.util.EventListener;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.util.EventObject;
|
import java.util.EventObject;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.util.EventListener;
|
import java.util.EventListener;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.net.DatagramSocket;
|
import java.net.DatagramSocket;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.net.DatagramSocket;
|
import java.net.DatagramSocket;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.net.DatagramSocket;
|
import java.net.DatagramSocket;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import javax.net.SocketFactory;
|
import javax.net.SocketFactory;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
|
@ -1,9 +1,9 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import org.xbib.io.ftp.client.parser.DefaultFTPFileEntryParserFactory;
|
import org.xbib.files.ftp.parser.DefaultFTPFileEntryParserFactory;
|
||||||
import org.xbib.io.ftp.client.parser.FTPFileEntryParserFactory;
|
import org.xbib.files.ftp.parser.FTPFileEntryParserFactory;
|
||||||
import org.xbib.io.ftp.client.parser.MLSxEntryParser;
|
import org.xbib.files.ftp.parser.MLSxEntryParser;
|
||||||
import org.xbib.io.ftp.client.parser.ParserInitializationException;
|
import org.xbib.files.ftp.parser.ParserInitializationException;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
|
@ -2640,7 +2640,7 @@ public class FTPClient extends FTP implements Configurable {
|
||||||
* @throws IOException If an I/O error occurs while either sending a
|
* @throws IOException If an I/O error occurs while either sending a
|
||||||
* command to the server or receiving a reply
|
* command to the server or receiving a reply
|
||||||
* from the server.
|
* from the server.
|
||||||
* @throws org.xbib.io.ftp.client.parser.ParserInitializationException Thrown if the parserKey parameter cannot be
|
* @throws org.xbib.files.ftp.parser.ParserInitializationException Thrown if the parserKey parameter cannot be
|
||||||
* resolved by the selected parser factory.
|
* resolved by the selected parser factory.
|
||||||
* In the DefaultFTPEntryParserFactory, this will
|
* In the DefaultFTPEntryParserFactory, this will
|
||||||
* happen when parserKey is neither
|
* happen when parserKey is neither
|
||||||
|
@ -2689,7 +2689,7 @@ public class FTPClient extends FTP implements Configurable {
|
||||||
* @throws IOException If an I/O error occurs while either sending a
|
* @throws IOException If an I/O error occurs while either sending a
|
||||||
* command to the server or receiving a reply
|
* command to the server or receiving a reply
|
||||||
* from the server.
|
* from the server.
|
||||||
* @throws org.xbib.io.ftp.client.parser.ParserInitializationException Thrown if the parserKey parameter cannot be
|
* @throws org.xbib.files.ftp.parser.ParserInitializationException Thrown if the parserKey parameter cannot be
|
||||||
* resolved by the selected parser factory.
|
* resolved by the selected parser factory.
|
||||||
* In the DefaultFTPEntryParserFactory, this will
|
* In the DefaultFTPEntryParserFactory, this will
|
||||||
* happen when parserKey is neither
|
* happen when parserKey is neither
|
||||||
|
@ -2748,7 +2748,7 @@ public class FTPClient extends FTP implements Configurable {
|
||||||
* @throws IOException If an I/O error occurs while either sending a
|
* @throws IOException If an I/O error occurs while either sending a
|
||||||
* command to the server or receiving a reply
|
* command to the server or receiving a reply
|
||||||
* from the server.
|
* from the server.
|
||||||
* @throws org.xbib.io.ftp.client.parser.ParserInitializationException Thrown if the parserKey parameter cannot be
|
* @throws org.xbib.files.ftp.parser.ParserInitializationException Thrown if the parserKey parameter cannot be
|
||||||
* resolved by the selected parser factory.
|
* resolved by the selected parser factory.
|
||||||
* In the DefaultFTPEntryParserFactory, this will
|
* In the DefaultFTPEntryParserFactory, this will
|
||||||
* happen when parserKey is neither
|
* happen when parserKey is neither
|
||||||
|
@ -2834,7 +2834,7 @@ public class FTPClient extends FTP implements Configurable {
|
||||||
* as an IOException or independently as itself.
|
* as an IOException or independently as itself.
|
||||||
* @throws IOException If an I/O error occurs while either sending a
|
* @throws IOException If an I/O error occurs while either sending a
|
||||||
* command to the server or receiving a reply from the server.
|
* command to the server or receiving a reply from the server.
|
||||||
* @throws org.xbib.io.ftp.client.parser.ParserInitializationException Thrown if the autodetect mechanism cannot
|
* @throws org.xbib.files.ftp.parser.ParserInitializationException Thrown if the autodetect mechanism cannot
|
||||||
* resolve the type of system we are connected with.
|
* resolve the type of system we are connected with.
|
||||||
* @see FTPListParseEngine
|
* @see FTPListParseEngine
|
||||||
*/
|
*/
|
||||||
|
@ -2884,7 +2884,7 @@ public class FTPClient extends FTP implements Configurable {
|
||||||
* as an IOException or independently as itself.
|
* as an IOException or independently as itself.
|
||||||
* @throws IOException If an I/O error occurs while either sending a
|
* @throws IOException If an I/O error occurs while either sending a
|
||||||
* command to the server or receiving a reply from the server.
|
* command to the server or receiving a reply from the server.
|
||||||
* @throws org.xbib.io.ftp.client.parser.ParserInitializationException Thrown if the autodetect mechanism cannot
|
* @throws org.xbib.files.ftp.parser.ParserInitializationException Thrown if the autodetect mechanism cannot
|
||||||
* resolve the type of system we are connected with.
|
* resolve the type of system we are connected with.
|
||||||
* @see FTPListParseEngine
|
* @see FTPListParseEngine
|
||||||
*/
|
*/
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.text.DateFormatSymbols;
|
import java.text.DateFormatSymbols;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
@ -114,8 +114,8 @@ import java.util.TreeMap;
|
||||||
*
|
*
|
||||||
* @see Configurable
|
* @see Configurable
|
||||||
* @see FTPClient
|
* @see FTPClient
|
||||||
* @see org.xbib.io.ftp.client.parser.FTPTimestampParserImpl#configure(FTPClientConfig)
|
* @see org.xbib.files.ftp.parser.FTPTimestampParserImpl#configure(FTPClientConfig)
|
||||||
* @see org.xbib.io.ftp.client.parser.ConfigurableFTPFileEntryParserImpl
|
* @see org.xbib.files.ftp.parser.ConfigurableFTPFileEntryParserImpl
|
||||||
*/
|
*/
|
||||||
public class FTPClientConfig {
|
public class FTPClientConfig {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform filtering on FTPFile entries.
|
* Perform filtering on FTPFile entries.
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
|
@ -1,4 +1,4 @@
|
||||||
package org.xbib.io.ftp.client;
|
package org.xbib.files.ftp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FTPReply stores a set of constants for FTP reply codes. To interpret
|
* FTPReply stores a set of constants for FTP reply codes. To interpret
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue