INT-2477 allow control encoding to be set
INT-2477 added tests Polishing - Spring Standard tabs Vs. spaces, formatting
This commit is contained in:
committed by
Gary Russell
parent
6975da83da
commit
175bc8554c
@@ -54,13 +54,15 @@ public abstract class AbstractFtpSessionFactory<T extends FTPClient> implements
|
|||||||
protected String password;
|
protected String password;
|
||||||
|
|
||||||
protected int port = FTP.DEFAULT_PORT;
|
protected int port = FTP.DEFAULT_PORT;
|
||||||
|
|
||||||
protected int bufferSize = 2048; //see https://issues.apache.org/jira/browse/NET-207
|
protected int bufferSize = 2048; //see https://issues.apache.org/jira/browse/NET-207
|
||||||
|
|
||||||
protected int clientMode = FTPClient.ACTIVE_LOCAL_DATA_CONNECTION_MODE;
|
protected int clientMode = FTPClient.ACTIVE_LOCAL_DATA_CONNECTION_MODE;
|
||||||
|
|
||||||
protected int fileType = FTP.BINARY_FILE_TYPE;
|
protected int fileType = FTP.BINARY_FILE_TYPE;
|
||||||
|
|
||||||
|
protected String controlEncoding = FTP.DEFAULT_CONTROL_ENCODING;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* File types defined by {@link org.apache.commons.net.ftp.FTP} constants:
|
* File types defined by {@link org.apache.commons.net.ftp.FTP} constants:
|
||||||
@@ -76,6 +78,11 @@ public abstract class AbstractFtpSessionFactory<T extends FTPClient> implements
|
|||||||
this.fileType = fileType;
|
this.fileType = fileType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setControlEncoding(String controlEncoding) {
|
||||||
|
Assert.hasText(controlEncoding);
|
||||||
|
this.controlEncoding = controlEncoding;
|
||||||
|
}
|
||||||
|
|
||||||
public void setConfig(FTPClientConfig config) {
|
public void setConfig(FTPClientConfig config) {
|
||||||
Assert.notNull(config);
|
Assert.notNull(config);
|
||||||
this.config = config;
|
this.config = config;
|
||||||
@@ -161,6 +168,7 @@ public abstract class AbstractFtpSessionFactory<T extends FTPClient> implements
|
|||||||
this.updateClientMode(client);
|
this.updateClientMode(client);
|
||||||
client.setFileType(fileType);
|
client.setFileType(fileType);
|
||||||
client.setBufferSize(bufferSize);
|
client.setBufferSize(bufferSize);
|
||||||
|
client.setControlEncoding(controlEncoding);
|
||||||
return client;
|
return client;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import java.util.concurrent.Executors;
|
|||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
|
import junit.framework.Assert;
|
||||||
import org.apache.commons.net.ftp.FTPClient;
|
import org.apache.commons.net.ftp.FTPClient;
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -42,6 +43,37 @@ import static org.junit.Assert.assertEquals;
|
|||||||
@SuppressWarnings({"rawtypes","unchecked"})
|
@SuppressWarnings({"rawtypes","unchecked"})
|
||||||
public class SessionFactoryTests {
|
public class SessionFactoryTests {
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWithControlEncoding() {
|
||||||
|
DefaultFtpSessionFactory sessionFactory = new DefaultFtpSessionFactory();
|
||||||
|
sessionFactory.setControlEncoding("UTF-8");
|
||||||
|
Assert.assertEquals("Expected controlEncoding value of 'UTF-8'",
|
||||||
|
"UTF-8",
|
||||||
|
TestUtils.getPropertyValue(sessionFactory, "controlEncoding"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWithoutControlEncoding() {
|
||||||
|
DefaultFtpSessionFactory sessionFactory = new DefaultFtpSessionFactory();
|
||||||
|
Assert.assertEquals("Expected controlEncoding value of 'ISO-8859-1'",
|
||||||
|
"ISO-8859-1",
|
||||||
|
TestUtils.getPropertyValue(sessionFactory, "controlEncoding"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected=IllegalArgumentException.class)
|
||||||
|
public void testEmptyControlEncoding() {
|
||||||
|
DefaultFtpSessionFactory sessionFactory = new DefaultFtpSessionFactory();
|
||||||
|
sessionFactory.setControlEncoding("");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected=IllegalArgumentException.class)
|
||||||
|
public void testNullControlEncoding() {
|
||||||
|
DefaultFtpSessionFactory sessionFactory = new DefaultFtpSessionFactory();
|
||||||
|
sessionFactory.setControlEncoding(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testClientModes() throws Exception{
|
public void testClientModes() throws Exception{
|
||||||
DefaultFtpSessionFactory sessionFactory = new DefaultFtpSessionFactory();
|
DefaultFtpSessionFactory sessionFactory = new DefaultFtpSessionFactory();
|
||||||
|
|||||||
Reference in New Issue
Block a user