Hello,
parser of spring xml configuration file doesn't cover all configuration
possibilities (and relevant unit test and testing xml file even more).
Attached file is a patch for one such a hole.
Jiří Kuhn.
Index: core/src/test/java/org/apache/ftpserver/config/spring/SpringConfigTest.java
===================================================================
--- core/src/test/java/org/apache/ftpserver/config/spring/SpringConfigTest.java (revision 727999)
+++ core/src/test/java/org/apache/ftpserver/config/spring/SpringConfigTest.java (working copy)
@@ -67,6 +67,8 @@
assertEquals(2222, ((NioListener) listener).getPort());
assertEquals(InetAddress.getByName("1.2.3.4"), InetAddress.getByName(((NioListener) listener)
.getServerAddress()));
+ assertEquals(100, ((NioListener) listener)
+ .getDataConnectionConfiguration().getIdleTime());
assertEquals(true, ((NioListener) listener)
.getDataConnectionConfiguration().isActiveEnabled());
assertEquals(InetAddress.getByName("1.2.3.4"), InetAddress.getByName(((NioListener) listener)
Index: core/src/test/resources/spring-config/config-spring-1.xml
===================================================================
--- core/src/test/resources/spring-config/config-spring-1.xml (revision 727999)
+++ core/src/test/resources/spring-config/config-spring-1.xml (working copy)
@@ -38,7 +38,7 @@
<keystore file="src/test/resources/ftpserver.jks" password="password"/>
</ssl>
- <data-connection>
+ <data-connection idle-timeout="100">
<active enabled="true" local-address="1.2.3.4"/>
<passive ports="123-125"/>
</data-connection>
Index: core/src/main/java/org/apache/ftpserver/config/spring/ListenerBeanDefinitionParser.java
===================================================================
--- core/src/main/java/org/apache/ftpserver/config/spring/ListenerBeanDefinitionParser.java (revision 727999)
+++ core/src/main/java/org/apache/ftpserver/config/spring/ListenerBeanDefinitionParser.java (working copy)
@@ -254,9 +254,13 @@
// data con config element available
SslConfiguration ssl = parseSsl(element);
- LOG.debug("SSL configuration found for the data connection");
- dc.setSslConfiguration(ssl);
+ if (ssl != null) {
+ LOG.debug("SSL configuration found for the data connection");
+ dc.setSslConfiguration(ssl);
+ }
+ dc.setIdleTime(SpringUtil.parseInt(element, "idle-timeout", dc.getIdleTime()));
+
Element activeElm = SpringUtil.getChildElement(element,
FtpServerNamespaceHandler.FTPSERVER_NS, "active");
if (activeElm != null) {