You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2008/10/13 23:24:28 UTC

svn commit: r704254 - in /mina/ftpserver/trunk/core/src: main/java/org/apache/ftpserver/ main/java/org/apache/ftpserver/config/spring/ main/java/org/apache/ftpserver/impl/ main/java/org/apache/ftpserver/listener/ main/java/org/apache/ftpserver/listener...

Author: ngn
Date: Mon Oct 13 14:24:27 2008
New Revision: 704254

URL: http://svn.apache.org/viewvc?rev=704254&view=rev
Log:
Make ConnectionConfig and DataConnectionConfig immutable (FTPSERVER-187). These are the last ones!

Added:
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ConnectionConfigFactory.java   (with props)
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java   (with props)
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultConnectionConfig.java
      - copied, changed from r701859, mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DefaultConnectionConfig.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java   (contents, props changed)
      - copied, changed from r701863, mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DefaultDataConnectionConfiguration.java
Removed:
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DefaultConnectionConfig.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DefaultDataConnectionConfiguration.java
Modified:
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfiguration.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/config/spring/ListenerBeanDefinitionParser.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/config/spring/ServerBeanDefinitionParser.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpServerContext.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/ListenerFactory.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/AbstractListener.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/main/CommandLine.java
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/main/Daemon.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/CustomMaxLoginTest.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/LoginNoAnonTest.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvAddressTest.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvAddressWithHostnameTest.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvTest.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/UnlimitedMaxLoginTest.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/config/spring/DbUserManagerConfigTest.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/ssl/SSLTestTemplate.java

Added: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ConnectionConfigFactory.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ConnectionConfigFactory.java?rev=704254&view=auto
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ConnectionConfigFactory.java (added)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ConnectionConfigFactory.java Mon Oct 13 14:24:27 2008
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.ftpserver;
+
+import org.apache.ftpserver.impl.DefaultConnectionConfig;
+
+/**
+ * Factory for creating connection configurations
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ *
+ */
+public class ConnectionConfigFactory implements ConnectionConfig {
+
+    private int maxLogins = 10;
+
+    private boolean anonymousLoginEnabled = true;
+
+    private int maxAnonymousLogins = 10;
+
+    private int maxLoginFailures = 3;
+
+    private int loginFailureDelay = 500;
+
+    public ConnectionConfig createConnectionConfig() {
+        return new DefaultConnectionConfig(anonymousLoginEnabled,
+                loginFailureDelay, maxLogins, maxAnonymousLogins,
+                maxLoginFailures);
+    }
+    
+    public int getLoginFailureDelay() {
+        return loginFailureDelay;
+    }
+
+    public int getMaxAnonymousLogins() {
+        return maxAnonymousLogins;
+    }
+
+    public int getMaxLoginFailures() {
+        return maxLoginFailures;
+    }
+
+    public int getMaxLogins() {
+        return maxLogins;
+    }
+
+    public boolean isAnonymousLoginEnabled() {
+        return anonymousLoginEnabled;
+    }
+
+    public void setMaxLogins(final int maxLogins) {
+        this.maxLogins = maxLogins;
+    }
+
+    public void setAnonymousLoginEnabled(final boolean anonymousLoginEnabled) {
+        this.anonymousLoginEnabled = anonymousLoginEnabled;
+    }
+
+    public void setMaxAnonymousLogins(final int maxAnonymousLogins) {
+        this.maxAnonymousLogins = maxAnonymousLogins;
+    }
+
+    public void setMaxLoginFailures(final int maxLoginFailures) {
+        this.maxLoginFailures = maxLoginFailures;
+    }
+
+    public void setLoginFailureDelay(final int loginFailureDelay) {
+        this.loginFailureDelay = loginFailureDelay;
+    }
+
+}

Propchange: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/ConnectionConfigFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfiguration.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfiguration.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfiguration.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfiguration.java Mon Oct 13 14:24:27 2008
@@ -88,17 +88,6 @@
     String getPassivePorts();
 
     /**
-     * Set the allowed passive ports.
-     * 
-     * @see DataConnectionConfiguration#getPassivePorts() for details on the
-     *      allowed format. If set to null, the passive port with be assigned
-     *      from any available port
-     * @param passivePorts
-     *            The passive ports to use for this data connection
-     */
-    void setPassivePorts(String passivePorts);
-
-    /**
      * Request a passive port
      */
     int requestPassivePort();

Added: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java?rev=704254&view=auto
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java (added)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java Mon Oct 13 14:24:27 2008
@@ -0,0 +1,203 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.ftpserver;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+import org.apache.ftpserver.impl.DefaultDataConnectionConfiguration;
+import org.apache.ftpserver.impl.PassivePorts;
+import org.apache.ftpserver.ssl.SslConfiguration;
+
+/**
+ * Data connection factory
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev: 701863 $, $Date: 2008-10-05 21:25:50 +0200 (Sun, 05 Oct 2008) $
+ */
+public class DataConnectionConfigurationFactory {
+
+    public void setIdleTime(int idleTime) {
+        this.idleTime = idleTime;
+    }
+
+    public void setActiveEnabled(boolean activeEnabled) {
+        this.activeEnabled = activeEnabled;
+    }
+
+    public void setActiveLocalAddress(InetAddress activeLocalAddress) {
+        this.activeLocalAddress = activeLocalAddress;
+    }
+
+    public void setActiveLocalPort(int activeLocalPort) {
+        this.activeLocalPort = activeLocalPort;
+    }
+
+    public void setActiveIpCheck(boolean activeIpCheck) {
+        this.activeIpCheck = activeIpCheck;
+    }
+
+    public void setPassiveAddress(InetAddress passiveAddress) {
+        this.passiveAddress = passiveAddress;
+    }
+
+    // maximum idle time in seconds
+    private int idleTime = 300;
+    private SslConfiguration ssl;
+
+    private boolean activeEnabled = true;
+    private InetAddress activeLocalAddress;
+    private int activeLocalPort = 0;
+    private boolean activeIpCheck = false;
+    
+    private InetAddress passiveAddress;
+    private InetAddress passiveExternalAddress;
+    private PassivePorts passivePorts = new PassivePorts(new int[] { 0 });
+
+    public DataConnectionConfigurationFactory() {
+        try {
+            activeLocalAddress = InetAddress.getLocalHost();
+        } catch (UnknownHostException e) {
+            throw new FtpServerConfigurationException(
+                    "Failed to resolve localhost", e);
+        }
+    }
+    
+    public DataConnectionConfiguration createDataConnectionConfiguration() {
+        return new DefaultDataConnectionConfiguration(idleTime,
+                ssl, activeEnabled, activeIpCheck,
+                activeLocalAddress, activeLocalPort,
+                passiveAddress, passivePorts,
+                passiveExternalAddress);
+    }
+    
+    /**
+     * Get the maximum idle time in seconds.
+     */
+    public int getIdleTime() {
+        return idleTime;
+    }
+
+    /**
+     * Is PORT enabled?
+     */
+    public boolean isActiveEnabled() {
+        return activeEnabled;
+    }
+
+    /**
+     * Check the PORT IP?
+     */
+    public boolean isActiveIpCheck() {
+        return activeIpCheck;
+    }
+
+    /**
+     * Get the local address for active mode data transfer.
+     */
+    public InetAddress getActiveLocalAddress() {
+        return activeLocalAddress;
+    }
+
+    /**
+     * Get the active local port number.
+     */
+    public int getActiveLocalPort() {
+        return activeLocalPort;
+    }
+
+    /**
+     * Get passive host.
+     */
+    public InetAddress getPassiveAddress() {
+        return passiveAddress;
+    }
+
+    /**
+     * Get external passive host.
+     */
+    public InetAddress getPassiveExernalAddress() {
+        return passiveExternalAddress;
+    }
+
+    public void setPassiveExernalAddress(InetAddress passiveExternalAddress) {
+        this.passiveExternalAddress = passiveExternalAddress;
+    }
+    
+    /**
+     * Get passive data port. Data port number zero (0) means that any available
+     * port will be used.
+     */
+    public synchronized int requestPassivePort() {
+        int dataPort = -1;
+        int loopTimes = 2;
+        Thread currThread = Thread.currentThread();
+
+        while ((dataPort == -1) && (--loopTimes >= 0)
+                && (!currThread.isInterrupted())) {
+
+            // search for a free port
+            dataPort = passivePorts.reserveNextPort();
+
+            // no available free port - wait for the release notification
+            if (dataPort == -1) {
+                try {
+                    wait();
+                } catch (InterruptedException ex) {
+                }
+            }
+        }
+        return dataPort;
+    }
+
+    /**
+     * Retrive the passive ports configured for this data connection
+     * 
+     * @return The String of passive ports
+     */
+    public String getPassivePorts() {
+        return passivePorts.toString();
+    }
+
+    public void setPassivePorts(String passivePorts) {
+        this.passivePorts = new PassivePorts(passivePorts);
+    }
+
+    
+    /**
+     * Release data port
+     */
+    public synchronized void releasePassivePort(final int port) {
+        passivePorts.releasePort(port);
+
+        notify();
+    }
+
+    /**
+     * Get SSL component.
+     */
+    public SslConfiguration getSslConfiguration() {
+        return ssl;
+    }
+    
+    public void setSslConfiguration(SslConfiguration ssl) {
+        this.ssl = ssl;
+    }
+}

Propchange: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DataConnectionConfigurationFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/config/spring/ListenerBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/config/spring/ListenerBeanDefinitionParser.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/config/spring/ListenerBeanDefinitionParser.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/config/spring/ListenerBeanDefinitionParser.java Mon Oct 13 14:24:27 2008
@@ -25,9 +25,7 @@
 import java.util.List;
 
 import org.apache.ftpserver.DataConnectionConfiguration;
-import org.apache.ftpserver.DefaultDataConnectionConfiguration;
-import org.apache.ftpserver.DefaultDataConnectionConfiguration.Active;
-import org.apache.ftpserver.DefaultDataConnectionConfiguration.Passive;
+import org.apache.ftpserver.DataConnectionConfigurationFactory;
 import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.ssl.SslConfiguration;
 import org.apache.ftpserver.ssl.SslConfigurationFactory;
@@ -250,7 +248,7 @@
     private DataConnectionConfiguration parseDataConnection(
             final Element element,
             final SslConfiguration listenerSslConfiguration) {
-        DefaultDataConnectionConfiguration dc = new DefaultDataConnectionConfiguration();
+        DataConnectionConfigurationFactory dc = new DataConnectionConfigurationFactory();
 
         if (element != null) {
             // data con config element available
@@ -271,45 +269,39 @@
             Element activeElm = SpringUtil.getChildElement(element,
                     FtpServerNamespaceHandler.FTPSERVER_NS, "active");
             if (activeElm != null) {
-                Active active = new Active();
-                active.setEnable(SpringUtil.parseBoolean(activeElm, "enabled",
+                dc.setActiveEnabled(SpringUtil.parseBoolean(activeElm, "enabled",
                         true));
-                active.setIpCheck(SpringUtil.parseBoolean(activeElm,
+                dc.setActiveIpCheck(SpringUtil.parseBoolean(activeElm,
                         "ip-check", false));
-                active.setLocalPort(SpringUtil.parseInt(activeElm,
+                dc.setActiveLocalPort(SpringUtil.parseInt(activeElm,
                         "local-port", 0));
 
                 InetAddress localAddress = SpringUtil.parseInetAddress(
                         activeElm, "local-address");
                 if (localAddress != null) {
-                    active.setLocalAddress(localAddress);
+                    dc.setActiveLocalAddress(localAddress);
                 }
-
-                dc.setActive(active);
             }
 
             Element passiveElm = SpringUtil.getChildElement(element,
                     FtpServerNamespaceHandler.FTPSERVER_NS, "passive");
             if (passiveElm != null) {
-                Passive passive = new Passive();
-
                 InetAddress address = SpringUtil.parseInetAddress(passiveElm,
                         "address");
                 if (address != null) {
-                    passive.setAddress(address);
+                    dc.setPassiveAddress(address);
                 }
 
                 InetAddress externalAddress = SpringUtil.parseInetAddress(
                         passiveElm, "external-address");
                 if (externalAddress != null) {
-                    passive.setExternalAddress(externalAddress);
+                    dc.setPassiveExernalAddress(externalAddress);
                 }
 
                 String ports = SpringUtil.parseString(passiveElm, "ports");
                 if (ports != null) {
-                    passive.setPorts(ports);
+                    dc.setPassivePorts(ports);
                 }
-                dc.setPassive(passive);
             }
         } else {
             // no data conn config element, do we still have SSL config from the
@@ -322,7 +314,7 @@
 
         }
 
-        return dc;
+        return dc.createDataConnectionConfiguration();
     }
 
 }

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/config/spring/ServerBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/config/spring/ServerBeanDefinitionParser.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/config/spring/ServerBeanDefinitionParser.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/config/spring/ServerBeanDefinitionParser.java Mon Oct 13 14:24:27 2008
@@ -23,10 +23,11 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.ftpserver.DefaultConnectionConfig;
+import org.apache.ftpserver.ConnectionConfigFactory;
 import org.apache.ftpserver.FtpServer;
 import org.apache.ftpserver.FtpServerConfigurationException;
 import org.apache.ftpserver.FtpServerFactory;
+import org.apache.ftpserver.impl.DefaultConnectionConfig;
 import org.apache.ftpserver.impl.DefaultFtpServer;
 import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.message.MessageResource;
@@ -115,7 +116,7 @@
         }
 
         // Configure login limits
-        DefaultConnectionConfig connectionConfig = new DefaultConnectionConfig();
+        ConnectionConfigFactory connectionConfig = new ConnectionConfigFactory();
         if (StringUtils.hasText(element.getAttribute("max-logins"))) {
             connectionConfig.setMaxLogins(SpringUtil.parseInt(element,
                     "max-logins"));
@@ -137,7 +138,7 @@
                     "login-failure-delay"));
         }
 
-        factoryBuilder.addPropertyValue("connectionConfig", connectionConfig);
+        factoryBuilder.addPropertyValue("connectionConfig", connectionConfig.createConnectionConfig());
 
        
         BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition();

Copied: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultConnectionConfig.java (from r701859, mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DefaultConnectionConfig.java)
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultConnectionConfig.java?p2=mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultConnectionConfig.java&p1=mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DefaultConnectionConfig.java&r1=701859&r2=704254&rev=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DefaultConnectionConfig.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultConnectionConfig.java Mon Oct 13 14:24:27 2008
@@ -17,7 +17,10 @@
  * under the License.
  */
 
-package org.apache.ftpserver;
+package org.apache.ftpserver.impl;
+
+import org.apache.ftpserver.ConnectionConfig;
+import org.apache.ftpserver.ConnectionConfigFactory;
 
 /**
  * 
@@ -38,6 +41,19 @@
 
     private int loginFailureDelay = 500;
 
+    /**
+     * Internal constructor, do not use directly. Use {@link ConnectionConfigFactory} instead
+     */
+    public DefaultConnectionConfig(boolean anonymousLoginEnabled,
+            int loginFailureDelay, int maxLogins, int maxAnonymousLogins,
+            int maxLoginFailures) {
+        this.anonymousLoginEnabled = anonymousLoginEnabled;
+        this.loginFailureDelay = loginFailureDelay;
+        this.maxLogins = maxLogins;
+        this.maxAnonymousLogins = maxAnonymousLogins;
+        this.maxLoginFailures = maxLoginFailures;
+    }
+
     public int getLoginFailureDelay() {
         return loginFailureDelay;
     }
@@ -58,24 +74,4 @@
         return anonymousLoginEnabled;
     }
 
-    public void setMaxLogins(final int maxLogins) {
-        this.maxLogins = maxLogins;
-    }
-
-    public void setAnonymousLoginEnabled(final boolean anonymousLoginEnabled) {
-        this.anonymousLoginEnabled = anonymousLoginEnabled;
-    }
-
-    public void setMaxAnonymousLogins(final int maxAnonymousLogins) {
-        this.maxAnonymousLogins = maxAnonymousLogins;
-    }
-
-    public void setMaxLoginFailures(final int maxLoginFailures) {
-        this.maxLoginFailures = maxLoginFailures;
-    }
-
-    public void setLoginFailureDelay(final int loginFailureDelay) {
-        this.loginFailureDelay = loginFailureDelay;
-    }
-
 }

Copied: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java (from r701863, mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DefaultDataConnectionConfiguration.java)
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java?p2=mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java&p1=mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DefaultDataConnectionConfiguration.java&r1=701863&r2=704254&rev=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/DefaultDataConnectionConfiguration.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java Mon Oct 13 14:24:27 2008
@@ -17,12 +17,12 @@
  * under the License.
  */
 
-package org.apache.ftpserver;
+package org.apache.ftpserver.impl;
 
 import java.net.InetAddress;
-import java.net.UnknownHostException;
 
-import org.apache.ftpserver.impl.PassivePorts;
+import org.apache.ftpserver.DataConnectionConfiguration;
+import org.apache.ftpserver.DataConnectionConfigurationFactory;
 import org.apache.ftpserver.ssl.SslConfiguration;
 
 /**
@@ -34,94 +34,38 @@
 public class DefaultDataConnectionConfiguration implements
         DataConnectionConfiguration {
 
-    public static class Active {
-        private boolean enable = true;
-
-        private InetAddress localAddress;
-
-        private int localPort = 0;
-
-        private boolean ipCheck = false;
-
-        public Active() {
-            try {
-                localAddress = InetAddress.getLocalHost();
-            } catch (UnknownHostException e) {
-                throw new FtpServerConfigurationException(
-                        "Failed to resolve localhost", e);
-            }
-        }
-
-        public boolean isEnable() {
-            return enable;
-        }
-
-        public void setEnable(boolean enable) {
-            this.enable = enable;
-        }
-
-        public boolean isIpCheck() {
-            return ipCheck;
-        }
-
-        public void setIpCheck(boolean ipCheck) {
-            this.ipCheck = ipCheck;
-        }
-
-        public InetAddress getLocalAddress() {
-            return localAddress;
-        }
-
-        public void setLocalAddress(InetAddress localAddress) {
-            this.localAddress = localAddress;
-        }
-
-        public int getLocalPort() {
-            return localPort;
-        }
-
-        public void setLocalPort(int localPort) {
-            this.localPort = localPort;
-        }
-    }
-
-    public static class Passive {
-        private InetAddress address;
-
-        private InetAddress externalAddress;
-
-        private PassivePorts passivePorts = new PassivePorts(new int[] { 0 });
-
-        public InetAddress getAddress() {
-            return address;
-        }
-
-        public void setAddress(InetAddress address) {
-            this.address = address;
-        }
-
-        public PassivePorts getPassivePorts() {
-            return passivePorts;
-        }
-
-        public void setPorts(String ports) {
-            this.passivePorts = new PassivePorts(ports);
-        }
-
-        public InetAddress getExternalAddress() {
-            return externalAddress;
-        }
-
-        public void setExternalAddress(InetAddress externalAddress) {
-            this.externalAddress = externalAddress;
-        }
-    }
-
     // maximum idle time in seconds
-    private int idleTime = 300;
-
+    private int idleTime;
     private SslConfiguration ssl;
 
+    private boolean activeEnabled;
+    private InetAddress activeLocalAddress;
+    private int activeLocalPort;
+    private boolean activeIpCheck;
+    
+    private InetAddress passiveAddress;
+    private InetAddress passiveExternalAddress;
+    private PassivePorts passivePorts;
+
+    /**
+     * Internal constructor, do not use directly. Use {@link DataConnectionConfigurationFactory} instead.
+     */
+    public DefaultDataConnectionConfiguration(int idleTime,
+            SslConfiguration ssl, boolean activeEnabled, boolean activeIpCheck,
+            InetAddress activeLocalAddress, int activeLocalPort,
+            InetAddress passiveAddress, PassivePorts passivePorts,
+            InetAddress passiveExternalAddress) {
+        this.idleTime = idleTime;
+        this.ssl = ssl;
+        this.activeEnabled = activeEnabled;
+        this.activeIpCheck = activeIpCheck;
+        this.activeLocalAddress = activeLocalAddress;
+        this.activeLocalPort = activeLocalPort;
+        this.passiveAddress = passiveAddress;
+        this.passivePorts = passivePorts;
+        this.passiveExternalAddress = passiveExternalAddress;
+    }
+
     /**
      * Get the maximum idle time in seconds.
      */
@@ -129,86 +73,46 @@
         return idleTime;
     }
 
-    public void setIdleTime(final int idleTime) {
-        this.idleTime = idleTime;
-    }
-
-    private Active active = new Active();
-
-    private Passive passive = new Passive();
-
-    public void setActive(final Active active) {
-        this.active = active;
-    }
-
-    public void setPassive(final Passive passive) {
-        this.passive = passive;
-    }
-
-    public void setSslConfiguration(final SslConfiguration ssl) {
-        this.ssl = ssl;
-    }
-
     /**
      * Is PORT enabled?
      */
     public boolean isActiveEnabled() {
-        return active.isEnable();
+        return activeEnabled;
     }
 
     /**
      * Check the PORT IP?
      */
     public boolean isActiveIpCheck() {
-        return active.isIpCheck();
+        return activeIpCheck;
     }
 
     /**
      * Get the local address for active mode data transfer.
      */
     public InetAddress getActiveLocalAddress() {
-        return active.getLocalAddress();
+        return activeLocalAddress;
     }
 
     /**
      * Get the active local port number.
      */
     public int getActiveLocalPort() {
-        return active.getLocalPort();
+        return activeLocalPort;
     }
 
     /**
      * Get passive host.
      */
     public InetAddress getPassiveAddress() {
-        return passive.getAddress();
-    }
-
-    /**
-     * Set the passive host
-     * 
-     * @param address
-     *            The passive host
-     */
-    public void setPassiveAddress(final InetAddress address) {
-        passive.setAddress(address);
+        return passiveAddress;
     }
 
     /**
      * Get external passive host.
      */
     public InetAddress getPassiveExernalAddress() {
-        return passive.getExternalAddress();
-    }
-
-    /**
-     * Set the passive external host
-     * 
-     * @param address
-     *            The passive external host
-     */
-    public void setPassiveExernalAddress(final InetAddress address) {
-        passive.setExternalAddress(address);
+        return passiveExternalAddress;
     }
 
     /**
@@ -224,7 +128,7 @@
                 && (!currThread.isInterrupted())) {
 
             // search for a free port
-            dataPort = passive.getPassivePorts().reserveNextPort();
+            dataPort = passivePorts.reserveNextPort();
 
             // no available free port - wait for the release notification
             if (dataPort == -1) {
@@ -243,31 +147,14 @@
      * @return The String of passive ports
      */
     public String getPassivePorts() {
-        return passive.passivePorts.toString();
-    }
-
-    /**
-     * Set the passive ports allowed for this data connection.
-     * 
-     * @param passivePorts
-     *            A string consisting of port numbers separated by commas. It
-     *            can also include ranged. For example:
-     *            <p>
-     *            22,23,24
-     *            </p>
-     *            <p>
-     *            22-24,28
-     *            </p>
-     */
-    public void setPassivePorts(final String passivePorts) {
-        passive.passivePorts = new PassivePorts(passivePorts);
+        return passivePorts.toString();
     }
 
     /**
      * Release data port
      */
     public synchronized void releasePassivePort(final int port) {
-        passive.getPassivePorts().releasePort(port);
+        passivePorts.releasePort(port);
 
         notify();
     }

Propchange: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultDataConnectionConfiguration.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpServerContext.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpServerContext.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpServerContext.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/impl/DefaultFtpServerContext.java Mon Oct 13 14:24:27 2008
@@ -26,7 +26,7 @@
 import java.util.Map;
 
 import org.apache.ftpserver.ConnectionConfig;
-import org.apache.ftpserver.DefaultConnectionConfig;
+import org.apache.ftpserver.ConnectionConfigFactory;
 import org.apache.ftpserver.command.CommandFactory;
 import org.apache.ftpserver.command.CommandFactoryFactory;
 import org.apache.ftpserver.filesystem.nativefs.NativeFileSystemFactory;
@@ -72,7 +72,7 @@
 
     private CommandFactory commandFactory = new CommandFactoryFactory().createCommandFactory();
 
-    private ConnectionConfig connectionConfig = new DefaultConnectionConfig();
+    private ConnectionConfig connectionConfig = new ConnectionConfigFactory().createConnectionConfig();
 
     private Map<String, Listener> listeners = new HashMap<String, Listener>();
 

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/ListenerFactory.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/ListenerFactory.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/ListenerFactory.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/ListenerFactory.java Mon Oct 13 14:24:27 2008
@@ -23,7 +23,8 @@
 import java.util.List;
 
 import org.apache.ftpserver.DataConnectionConfiguration;
-import org.apache.ftpserver.DefaultDataConnectionConfiguration;
+import org.apache.ftpserver.DataConnectionConfigurationFactory;
+import org.apache.ftpserver.impl.DefaultDataConnectionConfiguration;
 import org.apache.ftpserver.listener.nio.NioListener;
 import org.apache.ftpserver.ssl.SslConfiguration;
 import org.apache.mina.filter.firewall.Subnet;
@@ -45,10 +46,11 @@
 
     private boolean implicitSsl = false;
 
-    private DataConnectionConfiguration dataConnectionConfig = new DefaultDataConnectionConfiguration();
+    private DataConnectionConfiguration dataConnectionConfig = new DataConnectionConfigurationFactory()
+            .createDataConnectionConfiguration();
 
     private int idleTimeout = 300;
-    
+
     private List<InetAddress> blockedAddresses;
 
     private List<Subnet> blockedSubnets;
@@ -75,14 +77,14 @@
         blockedSubnets = listener.getBlockedSubnets();
     }
 
-    
     /**
      * Create a listener based on the settings of this factory. The listener is immutable.
      * @return The created listener
      */
     public Listener createListener() {
         return new NioListener(serverAddress, port, implicitSsl, ssl,
-                dataConnectionConfig, idleTimeout, blockedAddresses, blockedSubnets);
+                dataConnectionConfig, idleTimeout, blockedAddresses,
+                blockedSubnets);
     }
 
     /**
@@ -222,8 +224,7 @@
      * @param blockedAddresses
      *            The list of {@link InetAddress}es
      */
-    public void setBlockedAddresses(
-            List<InetAddress> blockedAddresses) {
+    public void setBlockedAddresses(List<InetAddress> blockedAddresses) {
         this.blockedAddresses = blockedAddresses;
     }
 

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/AbstractListener.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/AbstractListener.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/AbstractListener.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/nio/AbstractListener.java Mon Oct 13 14:24:27 2008
@@ -24,7 +24,7 @@
 import java.util.List;
 
 import org.apache.ftpserver.DataConnectionConfiguration;
-import org.apache.ftpserver.DefaultDataConnectionConfiguration;
+import org.apache.ftpserver.impl.DefaultDataConnectionConfiguration;
 import org.apache.ftpserver.listener.Listener;
 import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.ssl.SslConfiguration;
@@ -52,7 +52,7 @@
 
     private List<Subnet> blockedSubnets;
 
-    private DataConnectionConfiguration dataConnectionConfig = new DefaultDataConnectionConfiguration();
+    private DataConnectionConfiguration dataConnectionConfig;
 
     /**
      * Constructor for internal use, do not use directly. Instead use {@link ListenerFactory}

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/main/CommandLine.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/main/CommandLine.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/main/CommandLine.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/main/CommandLine.java Mon Oct 13 14:24:27 2008
@@ -134,16 +134,16 @@
                     args[0]);
 
             if (ctx.containsBean("server")) {
-                server = (DefaultFtpServer) ctx.getBean("server");
+                server = (FtpServer) ctx.getBean("server");
             } else {
-                String[] beanNames = ctx.getBeanNamesForType(DefaultFtpServer.class);
+                String[] beanNames = ctx.getBeanNamesForType(FtpServer.class);
                 if (beanNames.length == 1) {
-                    server = (DefaultFtpServer) ctx.getBean(beanNames[0]);
+                    server = (FtpServer) ctx.getBean(beanNames[0]);
                 } else if (beanNames.length > 1) {
                     System.out
                             .println("Using the first server defined in the configuration, named "
                                     + beanNames[0]);
-                    server = (DefaultFtpServer) ctx.getBean(beanNames[0]);
+                    server = (FtpServer) ctx.getBean(beanNames[0]);
                 } else {
                     System.err
                             .println("XML configuration does not contain a server configuration");

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/main/Daemon.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/main/Daemon.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/main/Daemon.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/main/Daemon.java Mon Oct 13 14:24:27 2008
@@ -111,7 +111,7 @@
                     System.out
                             .println("Using the first server defined in the configuration, named "
                                     + beanNames[0]);
-                    server = (DefaultFtpServer) ctx.getBean(beanNames[0]);
+                    server = (FtpServer) ctx.getBean(beanNames[0]);
                 } else {
                     System.err
                             .println("XML configuration does not contain a server configuration");

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/CustomMaxLoginTest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/CustomMaxLoginTest.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/CustomMaxLoginTest.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/CustomMaxLoginTest.java Mon Oct 13 14:24:27 2008
@@ -22,10 +22,8 @@
 import java.net.SocketException;
 
 import org.apache.commons.net.ftp.FTPConnectionClosedException;
-import org.apache.ftpserver.DefaultConnectionConfig;
+import org.apache.ftpserver.ConnectionConfigFactory;
 import org.apache.ftpserver.FtpServerFactory;
-import org.apache.ftpserver.impl.DefaultFtpServerContext;
-import org.apache.ftpserver.impl.DefaultFtpServer;
 
 /**
 *
@@ -41,11 +39,12 @@
     protected FtpServerFactory createServer() throws Exception {
         FtpServerFactory server = super.createServer();
 
-        DefaultConnectionConfig cc = (DefaultConnectionConfig) server
-                .getConnectionConfig();
+        ConnectionConfigFactory ccFactory = new ConnectionConfigFactory();
 
-        cc.setMaxLoginFailures(2);
+        ccFactory.setMaxLoginFailures(2);
 
+        server.setConnectionConfig(ccFactory.createConnectionConfig());
+        
         return server;
     }
 

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/LoginNoAnonTest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/LoginNoAnonTest.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/LoginNoAnonTest.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/LoginNoAnonTest.java Mon Oct 13 14:24:27 2008
@@ -19,8 +19,9 @@
 
 package org.apache.ftpserver.clienttests;
 
-import org.apache.ftpserver.DefaultConnectionConfig;
+import org.apache.ftpserver.ConnectionConfigFactory;
 import org.apache.ftpserver.FtpServerFactory;
+import org.apache.ftpserver.impl.DefaultConnectionConfig;
 
 /**
 *
@@ -38,9 +39,11 @@
     protected FtpServerFactory createServer() throws Exception {
         FtpServerFactory server = super.createServer();
 
-        DefaultConnectionConfig cc = (DefaultConnectionConfig) server
-                .getConnectionConfig();
-        cc.setAnonymousLoginEnabled(false);
+        ConnectionConfigFactory ccFactory = new ConnectionConfigFactory();
+
+        ccFactory.setAnonymousLoginEnabled(false);
+
+        server.setConnectionConfig(ccFactory.createConnectionConfig());
 
         return server;
     }

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvAddressTest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvAddressTest.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvAddressTest.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvAddressTest.java Mon Oct 13 14:24:27 2008
@@ -22,8 +22,9 @@
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 
-import org.apache.ftpserver.DefaultDataConnectionConfiguration;
+import org.apache.ftpserver.DataConnectionConfigurationFactory;
 import org.apache.ftpserver.FtpServerFactory;
+import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.test.TestUtil;
 import org.apache.ftpserver.util.SocketAddressEncoder;
 
@@ -40,14 +41,18 @@
     protected FtpServerFactory createServer() throws Exception {
         FtpServerFactory server = super.createServer();
 
-        DefaultDataConnectionConfiguration ddcc = (DefaultDataConnectionConfiguration) server
-                .getListener("default")
-                .getDataConnectionConfiguration();
-
+        ListenerFactory listenerFactory = new ListenerFactory(server.getListener("default"));
+        
+        DataConnectionConfigurationFactory dccFactory = new DataConnectionConfigurationFactory();
+        
         passiveAddress = TestUtil.findNonLocalhostIp();
-        ddcc.setPassiveAddress(passiveAddress);
-        ddcc.setPassivePorts("12347");
+        dccFactory.setPassiveAddress(passiveAddress);
+        dccFactory.setPassivePorts("12347");
+        
+        listenerFactory.setDataConnectionConfiguration(dccFactory.createDataConnectionConfiguration());
 
+        server.addListener("default", listenerFactory.createListener());
+        
         return server;
     }
 

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvAddressWithHostnameTest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvAddressWithHostnameTest.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvAddressWithHostnameTest.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvAddressWithHostnameTest.java Mon Oct 13 14:24:27 2008
@@ -21,8 +21,10 @@
 
 import java.net.InetAddress;
 
-import org.apache.ftpserver.DefaultDataConnectionConfiguration;
+import org.apache.ftpserver.DataConnectionConfigurationFactory;
 import org.apache.ftpserver.FtpServerFactory;
+import org.apache.ftpserver.impl.DefaultDataConnectionConfiguration;
+import org.apache.ftpserver.listener.ListenerFactory;
 
 /**
  * Test for external passive address configured as hostname rather than IP
@@ -37,9 +39,15 @@
     protected FtpServerFactory createServer() throws Exception {
         FtpServerFactory server = super.createServer();
 
-        DefaultDataConnectionConfiguration ddcc = (DefaultDataConnectionConfiguration) server
-                .getListener("default").getDataConnectionConfiguration();
-        ddcc.setPassiveExernalAddress(InetAddress.getByName("127.0.0.1"));
+        ListenerFactory listenerFactory = new ListenerFactory(server.getListener("default"));
+        
+        DataConnectionConfigurationFactory dccFactory = new DataConnectionConfigurationFactory();
+
+        dccFactory.setPassiveExernalAddress(InetAddress.getByName("127.0.0.1"));
+
+        listenerFactory.setDataConnectionConfiguration(dccFactory.createDataConnectionConfiguration());
+
+        server.addListener("default", listenerFactory.createListener());
 
         return server;
     }

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvTest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvTest.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvTest.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/PasvTest.java Mon Oct 13 14:24:27 2008
@@ -20,9 +20,9 @@
 package org.apache.ftpserver.clienttests;
 
 import org.apache.commons.net.ftp.FTPConnectionClosedException;
-import org.apache.ftpserver.DataConnectionConfiguration;
+import org.apache.ftpserver.DataConnectionConfigurationFactory;
 import org.apache.ftpserver.FtpServerFactory;
-import org.apache.ftpserver.listener.Listener;
+import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.test.TestUtil;
 
 /**
@@ -41,12 +41,17 @@
     protected FtpServerFactory createServer() throws Exception {
         FtpServerFactory server = super.createServer();
         
-        Listener l = server.getListener("default");
-        DataConnectionConfiguration dcc = l.getDataConnectionConfiguration();
+        ListenerFactory listenerFactory = new ListenerFactory(server.getListener("default"));
         
+        DataConnectionConfigurationFactory dccFactory = new DataConnectionConfigurationFactory();
+
         int passivePort = TestUtil.findFreePort(12444);
         
-        dcc.setPassivePorts(passivePort + "-" + passivePort);
+        dccFactory.setPassivePorts(passivePort + "-" + passivePort);
+        
+        listenerFactory.setDataConnectionConfiguration(dccFactory.createDataConnectionConfiguration());
+
+        server.addListener("default", listenerFactory.createListener());
         
         return server;
     }

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/UnlimitedMaxLoginTest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/UnlimitedMaxLoginTest.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/UnlimitedMaxLoginTest.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/UnlimitedMaxLoginTest.java Mon Oct 13 14:24:27 2008
@@ -19,10 +19,8 @@
 
 package org.apache.ftpserver.clienttests;
 
-import org.apache.ftpserver.DefaultConnectionConfig;
+import org.apache.ftpserver.ConnectionConfigFactory;
 import org.apache.ftpserver.FtpServerFactory;
-import org.apache.ftpserver.impl.DefaultFtpServerContext;
-import org.apache.ftpserver.impl.DefaultFtpServer;
 
 /**
 *
@@ -38,9 +36,11 @@
     protected FtpServerFactory createServer() throws Exception {
         FtpServerFactory server = super.createServer();
 
-        DefaultConnectionConfig cc = (DefaultConnectionConfig) server
-                .getConnectionConfig();
-        cc.setMaxLoginFailures(0);
+        ConnectionConfigFactory ccFactory = new ConnectionConfigFactory();
+
+        ccFactory.setMaxLoginFailures(0);
+
+        server.setConnectionConfig(ccFactory.createConnectionConfig());
         return server;
     }
 

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/config/spring/DbUserManagerConfigTest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/config/spring/DbUserManagerConfigTest.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/config/spring/DbUserManagerConfigTest.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/config/spring/DbUserManagerConfigTest.java Mon Oct 13 14:24:27 2008
@@ -49,8 +49,7 @@
                 + "<authenticate>AUTHENTICATE</authenticate>"
                 + "</db-user-manager>");
 
-        DbUserManager um = (DbUserManager) server.getServerContext()
-                .getUserManager();
+        DbUserManager um = (DbUserManager) server.getUserManager();
         assertTrue(um.getDataSource() instanceof jdbcDataSource);
         assertTrue(um.getPasswordEncryptor() instanceof SaltedPasswordEncryptor);
 

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/ssl/SSLTestTemplate.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/ssl/SSLTestTemplate.java?rev=704254&r1=704253&r2=704254&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/ssl/SSLTestTemplate.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/ssl/SSLTestTemplate.java Mon Oct 13 14:24:27 2008
@@ -29,9 +29,10 @@
 import javax.net.ssl.TrustManagerFactory;
 
 import org.apache.commons.net.ftp.FTPSClient;
-import org.apache.ftpserver.DefaultDataConnectionConfiguration;
+import org.apache.ftpserver.DataConnectionConfigurationFactory;
 import org.apache.ftpserver.FtpServerFactory;
 import org.apache.ftpserver.clienttests.ClientTestTemplate;
+import org.apache.ftpserver.impl.DefaultDataConnectionConfiguration;
 import org.apache.ftpserver.impl.DefaultFtpServerContext;
 import org.apache.ftpserver.impl.DefaultFtpServer;
 import org.apache.ftpserver.listener.ListenerFactory;
@@ -75,10 +76,10 @@
 
         factory.setSslConfiguration(createSslConfiguration().createSslConfiguration());
 
-        DefaultDataConnectionConfiguration dataConfig = new DefaultDataConnectionConfiguration();
+        DataConnectionConfigurationFactory dataConfig = new DataConnectionConfigurationFactory();
         dataConfig.setSslConfiguration(createSslConfiguration().createSslConfiguration());
 
-        factory.setDataConnectionConfiguration(dataConfig);
+        factory.setDataConnectionConfiguration(dataConfig.createDataConnectionConfiguration());
 
         server.addListener("default", factory.createListener());