diff --git a/MockFtpServer/pom.xml b/MockFtpServer/pom.xml
deleted file mode 100644
index d13fe08..0000000
--- a/MockFtpServer/pom.xml
+++ /dev/null
@@ -1,325 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.5</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <version>1.6.6</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-          <groupId>org.codehaus.groovy</groupId>
-          <artifactId>groovy-all</artifactId>
-          <version>1.7.10</version>
-            <scope>test</scope>
-        </dependency>
-
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <version>1.6.6</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <snapshotRepository>
-            <id>ossrh</id>
-            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
-        </snapshotRepository>
-        <repository>
-            <id>ossrh</id>
-            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <plugins>
-
-            <plugin>
-               <groupId>org.codehaus.gmaven</groupId>
-               <artifactId>gmaven-plugin</artifactId>
-               <version>1.3</version>
-               <configuration>
-                 <providerSelection>1.7</providerSelection>
-               </configuration>
-               <executions>
-                 <execution>
-                   <goals>
-                       <goal>generateStubs</goal>
-                       <goal>compile</goal>
-                       <goal>generateTestStubs</goal>
-                       <goal>testCompile</goal>
-                      <!--if you want joint compilation, add stub generation goals here-->
-                   </goals>
-                 </execution>
-               </executions>
-               <dependencies>
-                 <dependency>
-                   <groupId>org.codehaus.gmaven.runtime</groupId>
-                   <artifactId>gmaven-runtime-1.7</artifactId>
-                   <version>1.3</version>
-                   <exclusions>
-                     <exclusion>
-                       <groupId>org.codehaus.groovy</groupId>
-                       <artifactId>groovy-all</artifactId>
-                     </exclusion>
-                   </exclusions>
-                 </dependency>
-                 <dependency>
-                   <groupId>org.codehaus.groovy</groupId>
-                   <artifactId>groovy-all</artifactId>
-                   <version>1.7.10</version>
-                 </dependency>
-               </dependencies>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <!--<plugin>-->
-                <!--<groupId>org.apache.maven.plugins</groupId>-->
-                <!--<artifactId>maven-source-plugin</artifactId>-->
-                <!--<executions>-->
-                    <!--<execution>-->
-                        <!--<id>attach-sources</id>-->
-                        <!--<phase>package</phase>-->
-                        <!--<goals>-->
-                            <!--<goal>jar</goal>-->
-                        <!--</goals>-->
-                    <!--</execution>-->
-                <!--</executions>-->
-            <!--</plugin>-->
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <version>2.2.1</version>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <goals>
-                            <goal>jar-no-fork</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <version>2.9.1</version>
-                <executions>
-                    <execution>
-                        <id>attach-javadocs</id>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-            <plugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-site-plugin</artifactId>
-              <version>2.1</version>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-gpg-plugin</artifactId>
-                <version>1.5</version>
-                <executions>
-                    <execution>
-                        <id>sign-artifacts</id>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>sign</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.2</version>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <developers>
-        <developer>
-            <id>chrismair</id>
-            <name>Chris Mair</name>
-            <email>chrismair@users.sourceforge.net</email>
-            <url>https://sourceforge.net/users/chrismair</url>
-            <roles>
-                <role>developer</role>
-            </roles>
-            <timezone>-4</timezone>
-        </developer>
-    </developers>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/branches/1.x_Branch/pom.xml b/branches/1.x_Branch/pom.xml
deleted file mode 100644
index 48e3815..0000000
--- a/branches/1.x_Branch/pom.xml
+++ /dev/null
@@ -1,192 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.mockftpserver</groupId>
-  <artifactId>MockFtpServer</artifactId>
-  <name>MockFtpServer</name>
-  <description>
-	The MockFtpServer project provides a mock/dummy FTP server for testing FTP client code. 
-	It can be configured to return custom data or reply codes, to simulate either success 
-	or failure scenarios. You can also verify expected command invocations. 
-  </description>
-  <packaging>jar</packaging>
-  <version>1.2.4</version>
-  <url>http://mockftpserver.sourceforge.net/</url>
-
-  <scm>
-    <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-    <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</developerConnection>
-    <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-  </scm>
-  
-  <dependencies>
-
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>1.2.13</version>
-    </dependency>
-
-	<!-- TESTING ONLY -->
-
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-      <version>1.4.1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>1.2_Java1.3</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit-addons</groupId>
-      <artifactId>junit-addons</artifactId>
-      <version>1.4</version>
-      <scope>test</scope>
-    </dependency>
-
-	<dependency> 
-      <groupId>org.springframework</groupId> 
-      <artifactId>spring</artifactId> 
-      <version>2.0.7</version> 
-      <scope>test</scope>
-	</dependency>
-
-  	<!-- Transitive dependency.
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    -->
-
-  </dependencies>
-  
-  <distributionManagement>
-    <repository>
-      <id>sourceforge</id>
-      <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-    </repository>
-  </distributionManagement>
-  
-  <build>
-    <extensions>
-      <extension>
-        <groupId>org.apache.maven.wagon</groupId>
-         <artifactId>wagon-ssh-external</artifactId>
-         <version>1.0-beta-2</version>
-      </extension>
-    </extensions>
-   
-    <plugins> 
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-compiler-plugin</artifactId>
-      <configuration>
-        <verbose>true</verbose>
-        <fork>true</fork>
-        <executable>${JAVA_1_4_HOME}/bin/javac</executable>
-        <compilerVersion>1.3</compilerVersion>
-      </configuration>
-    </plugin>
-    
-    <!-- clean coverage data before collecting --> 
-    <plugin> 
-      <artifactId>cobertura-maven-plugin</artifactId> 
-      <groupId>org.codehaus.mojo</groupId> 
-      <version>2.0</version>
-      <executions> 
-        <execution> 
-          <goals> 
-            <goal>clean</goal> 
-          </goals> 
-        </execution> 
-      </executions> 
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-      <configuration>
-        <archive>
-          <manifestEntries>
-            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-          </manifestEntries>
-        </archive>
-      </configuration>
-    </plugin>
-    
-    <plugin>
-      <artifactId>maven-assembly-plugin</artifactId>
-      <configuration>
-        <descriptors>
-          <descriptor>src/assembly/assembly.xml</descriptor>
-        </descriptors>
-      </configuration>
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-release-plugin</artifactId>
-      <configuration>
-        <preparationGoals>clean site assembly:assembly</preparationGoals>
-      </configuration>
-    </plugin>
-    
-    </plugins> 
-  </build> 
-
-  <reporting> 
-    <plugins> 
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <reportSets>
-          <reportSet>
-             <reports>
-                <report>dependencies</report>
-                <!-- <report>project-team</report> -->
-                <!-- <report>mailing-list</report> -->
-                <!-- <report>cim</report> -->
-                <!-- <report>issue-tracking</report> -->
-                <report>license</report>
-                <!-- <report>scm</report> -->
-             </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-  
-      <plugin> 
-        <groupId>org.codehaus.mojo</groupId> 
-        <artifactId>cobertura-maven-plugin</artifactId> 
-      </plugin> 
-    
-      <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-javadoc-plugin</artifactId>
-       </plugin>
-  
-       <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-pmd-plugin</artifactId>
-       </plugin>
-  
-    </plugins> 
-  </reporting> 
-
-  <licenses>
-    <license>
-      <name>Apache 2</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  
-</project>
\ No newline at end of file
diff --git a/tags/1.0/pom.xml b/tags/1.0/pom.xml
deleted file mode 100644
index 4e3b183..0000000
--- a/tags/1.0/pom.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.mockftpserver</groupId>
-  <artifactId>MockFtpServer</artifactId>
-  <name>MockFtpServer</name>
-  <version>1.0</version>
-  <url>http://mockftpserver.sourceforge.net/</url>
-  
-  <scm>
-    <connection>scm:svn:http://localhost/svn/dev/tags/MockFtpServer-1.0-RC1</connection>
-    <developerConnection>scm:svn:http://localhost/svn/dev/tags/MockFtpServer-1.0-RC1</developerConnection>
-  </scm>
-  
-  <dependencies>
-
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>1.2.13</version>
-    </dependency>
-
-	<!-- TESTING ONLY -->
-
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-      <version>1.4.1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>1.2_Java1.3</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit-addons</groupId>
-      <artifactId>junit-addons</artifactId>
-      <version>1.4</version>
-      <scope>test</scope>
-    </dependency>
-
-	<dependency> 
-      <groupId>org.springframework</groupId> 
-      <artifactId>spring</artifactId> 
-      <version>2.0.7</version> 
-      <scope>test</scope>
-	</dependency>
-
-  	<!-- Transitive dependency.
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    -->
-
-  </dependencies>
-  
-<build> 
-  <plugins> 
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-compiler-plugin</artifactId>
-      <configuration>
-        <verbose>true</verbose>
-        <fork>true</fork>
-        <executable>${JAVA_1_4_HOME}/bin/javac</executable>
-        <compilerVersion>1.3</compilerVersion>
-      </configuration>
-    </plugin>
-    
-    <!-- clean coverage data before collecting --> 
-    <plugin> 
-      <artifactId>cobertura-maven-plugin</artifactId> 
-      <groupId>org.codehaus.mojo</groupId> 
-      <version>2.0</version>
-      <executions> 
-        <execution> 
-          <goals> 
-            <goal>clean</goal> 
-          </goals> 
-        </execution> 
-      </executions> 
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-      <configuration>
-        <archive>
-          <manifestEntries>
-            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-          </manifestEntries>
-        </archive>
-      </configuration>
-    </plugin>
-    
-    <plugin>
-      <artifactId>maven-assembly-plugin</artifactId>
-      <configuration>
-        <descriptors>
-          <descriptor>src/assembly/assembly.xml</descriptor>
-        </descriptors>
-      </configuration>
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-release-plugin</artifactId>
-      <configuration>
-        <preparationGoals>clean site assembly:assembly</preparationGoals>
-      </configuration>
-    </plugin>
-    
-  </plugins> 
- </build> 
-
-  <reporting> 
-    <plugins> 
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <reportSets>
-          <reportSet>
-             <reports>
-                <report>dependencies</report>
-                <!-- <report>project-team</report> -->
-                <!-- <report>mailing-list</report> -->
-                <!-- <report>cim</report> -->
-                <!-- <report>issue-tracking</report> -->
-                <report>license</report>
-                <!-- <report>scm</report> -->
-             </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-  
-      <plugin> 
-        <groupId>org.codehaus.mojo</groupId> 
-        <artifactId>cobertura-maven-plugin</artifactId> 
-      </plugin> 
-    
-      <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-javadoc-plugin</artifactId>
-       </plugin>
-  
-       <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-pmd-plugin</artifactId>
-       </plugin>
-  
-    </plugins> 
-  </reporting> 
-
-  <licenses>
-    <license>
-      <name>Apache 2</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  
-</project>
\ No newline at end of file
diff --git a/tags/1.1/pom.xml b/tags/1.1/pom.xml
deleted file mode 100644
index f22fb23..0000000
--- a/tags/1.1/pom.xml
+++ /dev/null
@@ -1,172 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.mockftpserver</groupId>
-  <artifactId>MockFtpServer</artifactId>
-  <name>MockFtpServer</name>
-  <version>1.1</version>
-  <url>http://mockftpserver.sourceforge.net/</url>
-
-  <!--  
-  <scm>
-    <connection>scm:svn:http://localhost/svn/dev/tags/MockFtpServer-1.0-RC1</connection>
-    <developerConnection>scm:svn:http://localhost/svn/dev/tags/MockFtpServer-1.0-RC1</developerConnection>
-  </scm>
-  -->
-  
-  <dependencies>
-
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>1.2.13</version>
-    </dependency>
-
-	<!-- TESTING ONLY -->
-
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-      <version>1.4.1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>1.2_Java1.3</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit-addons</groupId>
-      <artifactId>junit-addons</artifactId>
-      <version>1.4</version>
-      <scope>test</scope>
-    </dependency>
-
-	<dependency> 
-      <groupId>org.springframework</groupId> 
-      <artifactId>spring</artifactId> 
-      <version>2.0.7</version> 
-      <scope>test</scope>
-	</dependency>
-
-  	<!-- Transitive dependency.
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    -->
-
-  </dependencies>
-  
-<build> 
-  <plugins> 
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-compiler-plugin</artifactId>
-      <configuration>
-        <verbose>true</verbose>
-        <fork>true</fork>
-        <executable>${JAVA_1_4_HOME}/bin/javac</executable>
-        <compilerVersion>1.3</compilerVersion>
-      </configuration>
-    </plugin>
-    
-    <!-- clean coverage data before collecting --> 
-    <plugin> 
-      <artifactId>cobertura-maven-plugin</artifactId> 
-      <groupId>org.codehaus.mojo</groupId> 
-      <version>2.0</version>
-      <executions> 
-        <execution> 
-          <goals> 
-            <goal>clean</goal> 
-          </goals> 
-        </execution> 
-      </executions> 
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-      <configuration>
-        <archive>
-          <manifestEntries>
-            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-          </manifestEntries>
-        </archive>
-      </configuration>
-    </plugin>
-    
-    <plugin>
-      <artifactId>maven-assembly-plugin</artifactId>
-      <configuration>
-        <descriptors>
-          <descriptor>src/assembly/assembly.xml</descriptor>
-        </descriptors>
-      </configuration>
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-release-plugin</artifactId>
-      <configuration>
-        <preparationGoals>clean site assembly:assembly</preparationGoals>
-      </configuration>
-    </plugin>
-    
-  </plugins> 
- </build> 
-
-  <reporting> 
-    <plugins> 
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <reportSets>
-          <reportSet>
-             <reports>
-                <report>dependencies</report>
-                <!-- <report>project-team</report> -->
-                <!-- <report>mailing-list</report> -->
-                <!-- <report>cim</report> -->
-                <!-- <report>issue-tracking</report> -->
-                <report>license</report>
-                <!-- <report>scm</report> -->
-             </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-  
-      <plugin> 
-        <groupId>org.codehaus.mojo</groupId> 
-        <artifactId>cobertura-maven-plugin</artifactId> 
-      </plugin> 
-    
-      <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-javadoc-plugin</artifactId>
-       </plugin>
-  
-       <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-pmd-plugin</artifactId>
-       </plugin>
-  
-    </plugins> 
-  </reporting> 
-
-  <licenses>
-    <license>
-      <name>Apache 2</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  
-</project>
\ No newline at end of file
diff --git a/tags/1.2.1/pom.xml b/tags/1.2.1/pom.xml
deleted file mode 100644
index 08ab06c..0000000
--- a/tags/1.2.1/pom.xml
+++ /dev/null
@@ -1,192 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.mockftpserver</groupId>
-  <artifactId>MockFtpServer</artifactId>
-  <name>MockFtpServer</name>
-  <description>
-	The MockFtpServer project provides a mock/dummy FTP server for testing FTP client code. 
-	It can be configured to return custom data or reply codes, to simulate either success 
-	or failure scenarios. You can also verify expected command invocations. 
-  </description>
-  <packaging>jar</packaging>
-  <version>1.2.1</version>
-  <url>http://mockftpserver.sourceforge.net/</url>
-
-  <scm>
-    <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-    <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</developerConnection>
-    <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-  </scm>
-  
-  <dependencies>
-
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>1.2.13</version>
-    </dependency>
-
-	<!-- TESTING ONLY -->
-
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-      <version>1.4.1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>1.2_Java1.3</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit-addons</groupId>
-      <artifactId>junit-addons</artifactId>
-      <version>1.4</version>
-      <scope>test</scope>
-    </dependency>
-
-	<dependency> 
-      <groupId>org.springframework</groupId> 
-      <artifactId>spring</artifactId> 
-      <version>2.0.7</version> 
-      <scope>test</scope>
-	</dependency>
-
-  	<!-- Transitive dependency.
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    -->
-
-  </dependencies>
-  
-  <distributionManagement>
-    <repository>
-      <id>sourceforge</id>
-      <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-    </repository>
-  </distributionManagement>
-  
-  <build>
-    <extensions>
-      <extension>
-        <groupId>org.apache.maven.wagon</groupId>
-         <artifactId>wagon-ssh-external</artifactId>
-         <version>1.0-beta-2</version>
-      </extension>
-    </extensions>
-   
-    <plugins> 
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-compiler-plugin</artifactId>
-      <configuration>
-        <verbose>true</verbose>
-        <fork>true</fork>
-        <executable>${JAVA_1_4_HOME}/bin/javac</executable>
-        <compilerVersion>1.3</compilerVersion>
-      </configuration>
-    </plugin>
-    
-    <!-- clean coverage data before collecting --> 
-    <plugin> 
-      <artifactId>cobertura-maven-plugin</artifactId> 
-      <groupId>org.codehaus.mojo</groupId> 
-      <version>2.0</version>
-      <executions> 
-        <execution> 
-          <goals> 
-            <goal>clean</goal> 
-          </goals> 
-        </execution> 
-      </executions> 
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-      <configuration>
-        <archive>
-          <manifestEntries>
-            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-          </manifestEntries>
-        </archive>
-      </configuration>
-    </plugin>
-    
-    <plugin>
-      <artifactId>maven-assembly-plugin</artifactId>
-      <configuration>
-        <descriptors>
-          <descriptor>src/assembly/assembly.xml</descriptor>
-        </descriptors>
-      </configuration>
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-release-plugin</artifactId>
-      <configuration>
-        <preparationGoals>clean site assembly:assembly</preparationGoals>
-      </configuration>
-    </plugin>
-    
-    </plugins> 
-  </build> 
-
-  <reporting> 
-    <plugins> 
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <reportSets>
-          <reportSet>
-             <reports>
-                <report>dependencies</report>
-                <!-- <report>project-team</report> -->
-                <!-- <report>mailing-list</report> -->
-                <!-- <report>cim</report> -->
-                <!-- <report>issue-tracking</report> -->
-                <report>license</report>
-                <!-- <report>scm</report> -->
-             </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-  
-      <plugin> 
-        <groupId>org.codehaus.mojo</groupId> 
-        <artifactId>cobertura-maven-plugin</artifactId> 
-      </plugin> 
-    
-      <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-javadoc-plugin</artifactId>
-       </plugin>
-  
-       <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-pmd-plugin</artifactId>
-       </plugin>
-  
-    </plugins> 
-  </reporting> 
-
-  <licenses>
-    <license>
-      <name>Apache 2</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  
-</project>
\ No newline at end of file
diff --git a/tags/1.2.2/pom.xml b/tags/1.2.2/pom.xml
deleted file mode 100644
index 6712e48..0000000
--- a/tags/1.2.2/pom.xml
+++ /dev/null
@@ -1,192 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.mockftpserver</groupId>
-  <artifactId>MockFtpServer</artifactId>
-  <name>MockFtpServer</name>
-  <description>
-	The MockFtpServer project provides a mock/dummy FTP server for testing FTP client code. 
-	It can be configured to return custom data or reply codes, to simulate either success 
-	or failure scenarios. You can also verify expected command invocations. 
-  </description>
-  <packaging>jar</packaging>
-  <version>1.2.2</version>
-  <url>http://mockftpserver.sourceforge.net/</url>
-
-  <scm>
-    <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-    <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</developerConnection>
-    <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-  </scm>
-  
-  <dependencies>
-
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>1.2.13</version>
-    </dependency>
-
-	<!-- TESTING ONLY -->
-
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-      <version>1.4.1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>1.2_Java1.3</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit-addons</groupId>
-      <artifactId>junit-addons</artifactId>
-      <version>1.4</version>
-      <scope>test</scope>
-    </dependency>
-
-	<dependency> 
-      <groupId>org.springframework</groupId> 
-      <artifactId>spring</artifactId> 
-      <version>2.0.7</version> 
-      <scope>test</scope>
-	</dependency>
-
-  	<!-- Transitive dependency.
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    -->
-
-  </dependencies>
-  
-  <distributionManagement>
-    <repository>
-      <id>sourceforge</id>
-      <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-    </repository>
-  </distributionManagement>
-  
-  <build>
-    <extensions>
-      <extension>
-        <groupId>org.apache.maven.wagon</groupId>
-         <artifactId>wagon-ssh-external</artifactId>
-         <version>1.0-beta-2</version>
-      </extension>
-    </extensions>
-   
-    <plugins> 
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-compiler-plugin</artifactId>
-      <configuration>
-        <verbose>true</verbose>
-        <fork>true</fork>
-        <executable>${JAVA_1_4_HOME}/bin/javac</executable>
-        <compilerVersion>1.3</compilerVersion>
-      </configuration>
-    </plugin>
-    
-    <!-- clean coverage data before collecting --> 
-    <plugin> 
-      <artifactId>cobertura-maven-plugin</artifactId> 
-      <groupId>org.codehaus.mojo</groupId> 
-      <version>2.0</version>
-      <executions> 
-        <execution> 
-          <goals> 
-            <goal>clean</goal> 
-          </goals> 
-        </execution> 
-      </executions> 
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-      <configuration>
-        <archive>
-          <manifestEntries>
-            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-          </manifestEntries>
-        </archive>
-      </configuration>
-    </plugin>
-    
-    <plugin>
-      <artifactId>maven-assembly-plugin</artifactId>
-      <configuration>
-        <descriptors>
-          <descriptor>src/assembly/assembly.xml</descriptor>
-        </descriptors>
-      </configuration>
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-release-plugin</artifactId>
-      <configuration>
-        <preparationGoals>clean site assembly:assembly</preparationGoals>
-      </configuration>
-    </plugin>
-    
-    </plugins> 
-  </build> 
-
-  <reporting> 
-    <plugins> 
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <reportSets>
-          <reportSet>
-             <reports>
-                <report>dependencies</report>
-                <!-- <report>project-team</report> -->
-                <!-- <report>mailing-list</report> -->
-                <!-- <report>cim</report> -->
-                <!-- <report>issue-tracking</report> -->
-                <report>license</report>
-                <!-- <report>scm</report> -->
-             </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-  
-      <plugin> 
-        <groupId>org.codehaus.mojo</groupId> 
-        <artifactId>cobertura-maven-plugin</artifactId> 
-      </plugin> 
-    
-      <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-javadoc-plugin</artifactId>
-       </plugin>
-  
-       <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-pmd-plugin</artifactId>
-       </plugin>
-  
-    </plugins> 
-  </reporting> 
-
-  <licenses>
-    <license>
-      <name>Apache 2</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  
-</project>
\ No newline at end of file
diff --git a/tags/1.2.3/pom.xml b/tags/1.2.3/pom.xml
deleted file mode 100644
index 86c0ace..0000000
--- a/tags/1.2.3/pom.xml
+++ /dev/null
@@ -1,192 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.mockftpserver</groupId>
-  <artifactId>MockFtpServer</artifactId>
-  <name>MockFtpServer</name>
-  <description>
-	The MockFtpServer project provides a mock/dummy FTP server for testing FTP client code. 
-	It can be configured to return custom data or reply codes, to simulate either success 
-	or failure scenarios. You can also verify expected command invocations. 
-  </description>
-  <packaging>jar</packaging>
-  <version>1.2.3</version>
-  <url>http://mockftpserver.sourceforge.net/</url>
-
-  <scm>
-    <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-    <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</developerConnection>
-    <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-  </scm>
-  
-  <dependencies>
-
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>1.2.13</version>
-    </dependency>
-
-	<!-- TESTING ONLY -->
-
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-      <version>1.4.1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>1.2_Java1.3</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit-addons</groupId>
-      <artifactId>junit-addons</artifactId>
-      <version>1.4</version>
-      <scope>test</scope>
-    </dependency>
-
-	<dependency> 
-      <groupId>org.springframework</groupId> 
-      <artifactId>spring</artifactId> 
-      <version>2.0.7</version> 
-      <scope>test</scope>
-	</dependency>
-
-  	<!-- Transitive dependency.
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    -->
-
-  </dependencies>
-  
-  <distributionManagement>
-    <repository>
-      <id>sourceforge</id>
-      <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-    </repository>
-  </distributionManagement>
-  
-  <build>
-    <extensions>
-      <extension>
-        <groupId>org.apache.maven.wagon</groupId>
-         <artifactId>wagon-ssh-external</artifactId>
-         <version>1.0-beta-2</version>
-      </extension>
-    </extensions>
-   
-    <plugins> 
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-compiler-plugin</artifactId>
-      <configuration>
-        <verbose>true</verbose>
-        <fork>true</fork>
-        <executable>${JAVA_1_4_HOME}/bin/javac</executable>
-        <compilerVersion>1.3</compilerVersion>
-      </configuration>
-    </plugin>
-    
-    <!-- clean coverage data before collecting --> 
-    <plugin> 
-      <artifactId>cobertura-maven-plugin</artifactId> 
-      <groupId>org.codehaus.mojo</groupId> 
-      <version>2.0</version>
-      <executions> 
-        <execution> 
-          <goals> 
-            <goal>clean</goal> 
-          </goals> 
-        </execution> 
-      </executions> 
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-      <configuration>
-        <archive>
-          <manifestEntries>
-            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-          </manifestEntries>
-        </archive>
-      </configuration>
-    </plugin>
-    
-    <plugin>
-      <artifactId>maven-assembly-plugin</artifactId>
-      <configuration>
-        <descriptors>
-          <descriptor>src/assembly/assembly.xml</descriptor>
-        </descriptors>
-      </configuration>
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-release-plugin</artifactId>
-      <configuration>
-        <preparationGoals>clean site assembly:assembly</preparationGoals>
-      </configuration>
-    </plugin>
-    
-    </plugins> 
-  </build> 
-
-  <reporting> 
-    <plugins> 
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <reportSets>
-          <reportSet>
-             <reports>
-                <report>dependencies</report>
-                <!-- <report>project-team</report> -->
-                <!-- <report>mailing-list</report> -->
-                <!-- <report>cim</report> -->
-                <!-- <report>issue-tracking</report> -->
-                <report>license</report>
-                <!-- <report>scm</report> -->
-             </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-  
-      <plugin> 
-        <groupId>org.codehaus.mojo</groupId> 
-        <artifactId>cobertura-maven-plugin</artifactId> 
-      </plugin> 
-    
-      <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-javadoc-plugin</artifactId>
-       </plugin>
-  
-       <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-pmd-plugin</artifactId>
-       </plugin>
-  
-    </plugins> 
-  </reporting> 
-
-  <licenses>
-    <license>
-      <name>Apache 2</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  
-</project>
\ No newline at end of file
diff --git a/tags/1.2.4/pom.xml b/tags/1.2.4/pom.xml
deleted file mode 100644
index 48e3815..0000000
--- a/tags/1.2.4/pom.xml
+++ /dev/null
@@ -1,192 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.mockftpserver</groupId>
-  <artifactId>MockFtpServer</artifactId>
-  <name>MockFtpServer</name>
-  <description>
-	The MockFtpServer project provides a mock/dummy FTP server for testing FTP client code. 
-	It can be configured to return custom data or reply codes, to simulate either success 
-	or failure scenarios. You can also verify expected command invocations. 
-  </description>
-  <packaging>jar</packaging>
-  <version>1.2.4</version>
-  <url>http://mockftpserver.sourceforge.net/</url>
-
-  <scm>
-    <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-    <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</developerConnection>
-    <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-  </scm>
-  
-  <dependencies>
-
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>1.2.13</version>
-    </dependency>
-
-	<!-- TESTING ONLY -->
-
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-      <version>1.4.1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>1.2_Java1.3</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit-addons</groupId>
-      <artifactId>junit-addons</artifactId>
-      <version>1.4</version>
-      <scope>test</scope>
-    </dependency>
-
-	<dependency> 
-      <groupId>org.springframework</groupId> 
-      <artifactId>spring</artifactId> 
-      <version>2.0.7</version> 
-      <scope>test</scope>
-	</dependency>
-
-  	<!-- Transitive dependency.
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    -->
-
-  </dependencies>
-  
-  <distributionManagement>
-    <repository>
-      <id>sourceforge</id>
-      <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-    </repository>
-  </distributionManagement>
-  
-  <build>
-    <extensions>
-      <extension>
-        <groupId>org.apache.maven.wagon</groupId>
-         <artifactId>wagon-ssh-external</artifactId>
-         <version>1.0-beta-2</version>
-      </extension>
-    </extensions>
-   
-    <plugins> 
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-compiler-plugin</artifactId>
-      <configuration>
-        <verbose>true</verbose>
-        <fork>true</fork>
-        <executable>${JAVA_1_4_HOME}/bin/javac</executable>
-        <compilerVersion>1.3</compilerVersion>
-      </configuration>
-    </plugin>
-    
-    <!-- clean coverage data before collecting --> 
-    <plugin> 
-      <artifactId>cobertura-maven-plugin</artifactId> 
-      <groupId>org.codehaus.mojo</groupId> 
-      <version>2.0</version>
-      <executions> 
-        <execution> 
-          <goals> 
-            <goal>clean</goal> 
-          </goals> 
-        </execution> 
-      </executions> 
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-      <configuration>
-        <archive>
-          <manifestEntries>
-            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-          </manifestEntries>
-        </archive>
-      </configuration>
-    </plugin>
-    
-    <plugin>
-      <artifactId>maven-assembly-plugin</artifactId>
-      <configuration>
-        <descriptors>
-          <descriptor>src/assembly/assembly.xml</descriptor>
-        </descriptors>
-      </configuration>
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-release-plugin</artifactId>
-      <configuration>
-        <preparationGoals>clean site assembly:assembly</preparationGoals>
-      </configuration>
-    </plugin>
-    
-    </plugins> 
-  </build> 
-
-  <reporting> 
-    <plugins> 
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <reportSets>
-          <reportSet>
-             <reports>
-                <report>dependencies</report>
-                <!-- <report>project-team</report> -->
-                <!-- <report>mailing-list</report> -->
-                <!-- <report>cim</report> -->
-                <!-- <report>issue-tracking</report> -->
-                <report>license</report>
-                <!-- <report>scm</report> -->
-             </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-  
-      <plugin> 
-        <groupId>org.codehaus.mojo</groupId> 
-        <artifactId>cobertura-maven-plugin</artifactId> 
-      </plugin> 
-    
-      <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-javadoc-plugin</artifactId>
-       </plugin>
-  
-       <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-pmd-plugin</artifactId>
-       </plugin>
-  
-    </plugins> 
-  </reporting> 
-
-  <licenses>
-    <license>
-      <name>Apache 2</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  
-</project>
\ No newline at end of file
diff --git a/tags/1.2/pom.xml b/tags/1.2/pom.xml
deleted file mode 100644
index 989170b..0000000
--- a/tags/1.2/pom.xml
+++ /dev/null
@@ -1,172 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.mockftpserver</groupId>
-  <artifactId>MockFtpServer</artifactId>
-  <name>MockFtpServer</name>
-  <version>1.2</version>
-  <url>http://mockftpserver.sourceforge.net/</url>
-
-  <!--  
-  <scm>
-    <connection>scm:svn:http://localhost/svn/dev/tags/MockFtpServer-1.0-RC1</connection>
-    <developerConnection>scm:svn:http://localhost/svn/dev/tags/MockFtpServer-1.0-RC1</developerConnection>
-  </scm>
-  -->
-  
-  <dependencies>
-
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>1.2.13</version>
-    </dependency>
-
-	<!-- TESTING ONLY -->
-
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-      <version>1.4.1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>1.2_Java1.3</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit-addons</groupId>
-      <artifactId>junit-addons</artifactId>
-      <version>1.4</version>
-      <scope>test</scope>
-    </dependency>
-
-	<dependency> 
-      <groupId>org.springframework</groupId> 
-      <artifactId>spring</artifactId> 
-      <version>2.0.7</version> 
-      <scope>test</scope>
-	</dependency>
-
-  	<!-- Transitive dependency.
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    -->
-
-  </dependencies>
-  
-<build> 
-  <plugins> 
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-compiler-plugin</artifactId>
-      <configuration>
-        <verbose>true</verbose>
-        <fork>true</fork>
-        <executable>${JAVA_1_4_HOME}/bin/javac</executable>
-        <compilerVersion>1.3</compilerVersion>
-      </configuration>
-    </plugin>
-    
-    <!-- clean coverage data before collecting --> 
-    <plugin> 
-      <artifactId>cobertura-maven-plugin</artifactId> 
-      <groupId>org.codehaus.mojo</groupId> 
-      <version>2.0</version>
-      <executions> 
-        <execution> 
-          <goals> 
-            <goal>clean</goal> 
-          </goals> 
-        </execution> 
-      </executions> 
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-      <configuration>
-        <archive>
-          <manifestEntries>
-            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-          </manifestEntries>
-        </archive>
-      </configuration>
-    </plugin>
-    
-    <plugin>
-      <artifactId>maven-assembly-plugin</artifactId>
-      <configuration>
-        <descriptors>
-          <descriptor>src/assembly/assembly.xml</descriptor>
-        </descriptors>
-      </configuration>
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-release-plugin</artifactId>
-      <configuration>
-        <preparationGoals>clean site assembly:assembly</preparationGoals>
-      </configuration>
-    </plugin>
-    
-  </plugins> 
- </build> 
-
-  <reporting> 
-    <plugins> 
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <reportSets>
-          <reportSet>
-             <reports>
-                <report>dependencies</report>
-                <!-- <report>project-team</report> -->
-                <!-- <report>mailing-list</report> -->
-                <!-- <report>cim</report> -->
-                <!-- <report>issue-tracking</report> -->
-                <report>license</report>
-                <!-- <report>scm</report> -->
-             </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-  
-      <plugin> 
-        <groupId>org.codehaus.mojo</groupId> 
-        <artifactId>cobertura-maven-plugin</artifactId> 
-      </plugin> 
-    
-      <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-javadoc-plugin</artifactId>
-       </plugin>
-  
-       <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-pmd-plugin</artifactId>
-       </plugin>
-  
-    </plugins> 
-  </reporting> 
-
-  <licenses>
-    <license>
-      <name>Apache 2</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  
-</project>
\ No newline at end of file
diff --git a/tags/2.0-rc1/MockFtpServer/pom.xml b/tags/2.0-rc1/MockFtpServer/pom.xml
deleted file mode 100644
index f5c3fd7..0000000
--- a/tags/2.0-rc1/MockFtpServer/pom.xml
+++ /dev/null
@@ -1,236 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.0-rc2</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.13</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-            <groupId>org.codehaus.groovy.maven.runtime</groupId>
-            <artifactId>gmaven-runtime-default</artifactId>
-            <version>1.0-rc-3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <repository>
-            <id>sourceforge</id>
-            <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh-external</artifactId>
-                <version>1.0-beta-2</version>
-            </extension>
-        </extensions>
-
-        <plugins>
-
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <version>1.0-rc-3</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- <goal>generateStubs</goal> -->
-                            <!-- <goal>compile</goal> -->
-                            <goal>generateTestStubs</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.0-rc1/pom.xml b/tags/2.0-rc1/pom.xml
deleted file mode 100644
index a3ec703..0000000
--- a/tags/2.0-rc1/pom.xml
+++ /dev/null
@@ -1,222 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.0-rc1</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.13</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-            <groupId>org.codehaus.groovy.maven.runtime</groupId>
-            <artifactId>gmaven-runtime-default</artifactId>
-            <version>1.0-rc-3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <repository>
-            <id>sourceforge</id>
-            <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh-external</artifactId>
-                <version>1.0-beta-2</version>
-            </extension>
-        </extensions>
-
-        <plugins>
-
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <version>1.0-rc-3</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- <goal>generateStubs</goal> -->
-                            <!-- <goal>compile</goal> -->
-                            <goal>generateTestStubs</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <fork>true</fork>
-                    <executable>${JAVA_1_4_HOME}/bin/javac</executable>
-                    <compilerVersion>1.3</compilerVersion>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.0-rc3/MockFtpServer/pom.xml b/tags/2.0-rc3/MockFtpServer/pom.xml
deleted file mode 100644
index 9c5bab8..0000000
--- a/tags/2.0-rc3/MockFtpServer/pom.xml
+++ /dev/null
@@ -1,236 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.0-rc3</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.13</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-            <groupId>org.codehaus.groovy.maven.runtime</groupId>
-            <artifactId>gmaven-runtime-default</artifactId>
-            <version>1.0-rc-3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <repository>
-            <id>sourceforge</id>
-            <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh-external</artifactId>
-                <version>1.0-beta-2</version>
-            </extension>
-        </extensions>
-
-        <plugins>
-
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <version>1.0-rc-3</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- <goal>generateStubs</goal> -->
-                            <!-- <goal>compile</goal> -->
-                            <goal>generateTestStubs</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.0.1/pom.xml b/tags/2.0.1/pom.xml
deleted file mode 100644
index 8229abd..0000000
--- a/tags/2.0.1/pom.xml
+++ /dev/null
@@ -1,236 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.0.1</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.13</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-            <groupId>org.codehaus.groovy.maven.runtime</groupId>
-            <artifactId>gmaven-runtime-default</artifactId>
-            <version>1.0-rc-3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <repository>
-            <id>sourceforge</id>
-            <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh-external</artifactId>
-                <version>1.0-beta-2</version>
-            </extension>
-        </extensions>
-
-        <plugins>
-
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <version>1.0-rc-3</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- <goal>generateStubs</goal> -->
-                            <!-- <goal>compile</goal> -->
-                            <goal>generateTestStubs</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.0.2/pom.xml b/tags/2.0.2/pom.xml
deleted file mode 100644
index 53d96e3..0000000
--- a/tags/2.0.2/pom.xml
+++ /dev/null
@@ -1,236 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.0.2</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.13</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-            <groupId>org.codehaus.groovy.maven.runtime</groupId>
-            <artifactId>gmaven-runtime-default</artifactId>
-            <version>1.0-rc-3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <repository>
-            <id>sourceforge</id>
-            <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh-external</artifactId>
-                <version>1.0-beta-2</version>
-            </extension>
-        </extensions>
-
-        <plugins>
-
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <version>1.0-rc-3</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- <goal>generateStubs</goal> -->
-                            <!-- <goal>compile</goal> -->
-                            <goal>generateTestStubs</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.0/pom.xml b/tags/2.0/pom.xml
deleted file mode 100644
index 9c10cef..0000000
--- a/tags/2.0/pom.xml
+++ /dev/null
@@ -1,236 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.0</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.13</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-            <groupId>org.codehaus.groovy.maven.runtime</groupId>
-            <artifactId>gmaven-runtime-default</artifactId>
-            <version>1.0-rc-3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <repository>
-            <id>sourceforge</id>
-            <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh-external</artifactId>
-                <version>1.0-beta-2</version>
-            </extension>
-        </extensions>
-
-        <plugins>
-
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <version>1.0-rc-3</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- <goal>generateStubs</goal> -->
-                            <!-- <goal>compile</goal> -->
-                            <goal>generateTestStubs</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.1/pom.xml b/tags/2.1/pom.xml
deleted file mode 100644
index 49b90a7..0000000
--- a/tags/2.1/pom.xml
+++ /dev/null
@@ -1,236 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.1</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.13</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-            <groupId>org.codehaus.groovy.maven.runtime</groupId>
-            <artifactId>gmaven-runtime-default</artifactId>
-            <version>1.0-rc-3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <repository>
-            <id>sourceforge</id>
-            <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh-external</artifactId>
-                <version>1.0-beta-2</version>
-            </extension>
-        </extensions>
-
-        <plugins>
-
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <version>1.0-rc-3</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- <goal>generateStubs</goal> -->
-                            <!-- <goal>compile</goal> -->
-                            <goal>generateTestStubs</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.2/pom.xml b/tags/2.2/pom.xml
deleted file mode 100644
index 3792604..0000000
--- a/tags/2.2/pom.xml
+++ /dev/null
@@ -1,236 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.2</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.13</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-            <groupId>org.codehaus.groovy.maven.runtime</groupId>
-            <artifactId>gmaven-runtime-default</artifactId>
-            <version>1.0-rc-3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <repository>
-            <id>sourceforge</id>
-            <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh-external</artifactId>
-                <version>1.0-beta-2</version>
-            </extension>
-        </extensions>
-
-        <plugins>
-
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <version>1.0-rc-3</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- <goal>generateStubs</goal> -->
-                            <!-- <goal>compile</goal> -->
-                            <goal>generateTestStubs</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.3/pom.xml b/tags/2.3/pom.xml
deleted file mode 100644
index 8503632..0000000
--- a/tags/2.3/pom.xml
+++ /dev/null
@@ -1,228 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.3</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.13</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-            <groupId>org.codehaus.groovy.maven.runtime</groupId>
-            <artifactId>gmaven-runtime-default</artifactId>
-            <version>1.0-rc-3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <repository>
-            <id>sourceforge</id>
-            <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <plugins>
-
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <version>1.0-rc-3</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- <goal>generateStubs</goal> -->
-                            <!-- <goal>compile</goal> -->
-                            <goal>generateTestStubs</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.4/pom.xml b/tags/2.4/pom.xml
deleted file mode 100644
index 0f56235..0000000
--- a/tags/2.4/pom.xml
+++ /dev/null
@@ -1,266 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.4</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <version>1.6.6</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-          <groupId>org.codehaus.groovy</groupId>
-          <artifactId>groovy-all</artifactId>
-          <version>1.7.10</version>
-            <scope>test</scope>
-        </dependency>
-
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <version>1.6.6</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <repository>
-            <id>sourceforge</id>
-            <!-- <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url> -->
-            <url>sftp://web.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <plugins>
-
-            <plugin>
-               <groupId>org.codehaus.gmaven</groupId>
-               <artifactId>gmaven-plugin</artifactId>
-               <version>1.3</version>
-               <configuration>
-                 <providerSelection>1.7</providerSelection>
-               </configuration>
-               <executions>
-                 <execution>
-                   <goals>
-                       <goal>generateStubs</goal>
-                       <goal>compile</goal>
-                       <goal>generateTestStubs</goal>
-                       <goal>testCompile</goal>
-                      <!--if you want joint compilation, add stub generation goals here-->
-                   </goals>
-                 </execution>
-               </executions>
-               <dependencies>
-                 <dependency>
-                   <groupId>org.codehaus.gmaven.runtime</groupId>
-                   <artifactId>gmaven-runtime-1.7</artifactId>
-                   <version>1.3</version>
-                   <exclusions>
-                     <exclusion>
-                       <groupId>org.codehaus.groovy</groupId>
-                       <artifactId>groovy-all</artifactId>
-                     </exclusion>
-                   </exclusions>
-                 </dependency>
-                 <dependency>
-                   <groupId>org.codehaus.groovy</groupId>
-                   <artifactId>groovy-all</artifactId>
-                   <version>1.7.10</version>
-                 </dependency>
-               </dependencies>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-            <plugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-site-plugin</artifactId>
-              <version>2.1</version>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.2</version>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.5/pom.xml b/tags/2.5/pom.xml
deleted file mode 100644
index d13fe08..0000000
--- a/tags/2.5/pom.xml
+++ /dev/null
@@ -1,325 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.mockftpserver</groupId>
-    <artifactId>MockFtpServer</artifactId>
-    <name>MockFtpServer</name>
-    <description>
-        The MockFtpServer project provides mock/dummy FTP server implementations for testing FTP client
-        code. Two FTP Server implementations are provided, each at a different level of abstraction.
-        FakeFtpServer provides a higher-level abstraction. You define a virtual file system, including
-        directories and files, as well as a set of valid user accounts and credentials. The FakeFtpServer
-        then responds with appropriate replies and reply codes based on that configuration.
-        StubFtpServer, on the other hand, is a lower-level "stub" implementation. You configure the
-        individual FTP server commands to return custom data or reply codes, allowing simulation of
-        either success or failure scenarios. You can also verify expected command invocations.
-    </description>
-    <packaging>jar</packaging>
-    <version>2.5</version>
-    <url>http://mockftpserver.sourceforge.net/</url>
-
-    <scm>
-        <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-        <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer
-        </developerConnection>
-        <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-    </scm>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <version>1.6.6</version>
-        </dependency>
-
-        <!-- TESTING ONLY -->
-
-        <dependency>
-          <groupId>org.codehaus.groovy</groupId>
-          <artifactId>groovy-all</artifactId>
-          <version>1.7.10</version>
-            <scope>test</scope>
-        </dependency>
-
-
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <version>1.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>1.2_Java1.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit-addons</groupId>
-            <artifactId>junit-addons</artifactId>
-            <version>1.4</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring</artifactId>
-            <version>2.0.7</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <version>1.6.6</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Transitive dependency.
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>3.8.1</version>
-          <scope>test</scope>
-        </dependency>
-        -->
-
-    </dependencies>
-
-    <distributionManagement>
-        <snapshotRepository>
-            <id>ossrh</id>
-            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
-        </snapshotRepository>
-        <repository>
-            <id>ossrh</id>
-            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
-        </repository>
-    </distributionManagement>
-
-    <build>
-        <plugins>
-
-            <plugin>
-               <groupId>org.codehaus.gmaven</groupId>
-               <artifactId>gmaven-plugin</artifactId>
-               <version>1.3</version>
-               <configuration>
-                 <providerSelection>1.7</providerSelection>
-               </configuration>
-               <executions>
-                 <execution>
-                   <goals>
-                       <goal>generateStubs</goal>
-                       <goal>compile</goal>
-                       <goal>generateTestStubs</goal>
-                       <goal>testCompile</goal>
-                      <!--if you want joint compilation, add stub generation goals here-->
-                   </goals>
-                 </execution>
-               </executions>
-               <dependencies>
-                 <dependency>
-                   <groupId>org.codehaus.gmaven.runtime</groupId>
-                   <artifactId>gmaven-runtime-1.7</artifactId>
-                   <version>1.3</version>
-                   <exclusions>
-                     <exclusion>
-                       <groupId>org.codehaus.groovy</groupId>
-                       <artifactId>groovy-all</artifactId>
-                     </exclusion>
-                   </exclusions>
-                 </dependency>
-                 <dependency>
-                   <groupId>org.codehaus.groovy</groupId>
-                   <artifactId>groovy-all</artifactId>
-                   <version>1.7.10</version>
-                 </dependency>
-               </dependencies>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <verbose>true</verbose>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                    <fork>true</fork>
-                </configuration>
-            </plugin>
-
-            <!-- clean coverage data before collecting -->
-            <plugin>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <!--<plugin>-->
-                <!--<groupId>org.apache.maven.plugins</groupId>-->
-                <!--<artifactId>maven-source-plugin</artifactId>-->
-                <!--<executions>-->
-                    <!--<execution>-->
-                        <!--<id>attach-sources</id>-->
-                        <!--<phase>package</phase>-->
-                        <!--<goals>-->
-                            <!--<goal>jar</goal>-->
-                        <!--</goals>-->
-                    <!--</execution>-->
-                <!--</executions>-->
-            <!--</plugin>-->
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <version>2.2.1</version>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <goals>
-                            <goal>jar-no-fork</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <version>2.9.1</version>
-                <executions>
-                    <execution>
-                        <id>attach-javadocs</id>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/assembly.xml</descriptor>
-                    </descriptors>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <preparationGoals>clean site assembly:assembly</preparationGoals>
-                </configuration>
-            </plugin>
-
-            <plugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-site-plugin</artifactId>
-              <version>2.1</version>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-gpg-plugin</artifactId>
-                <version>1.5</version>
-                <executions>
-                    <execution>
-                        <id>sign-artifacts</id>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>sign</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <reporting>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.2</version>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <!-- <report>project-team</report> -->
-                            <!-- <report>mailing-list</report> -->
-                            <!-- <report>cim</report> -->
-                            <!-- <report>issue-tracking</report> -->
-                            <report>license</report>
-                            <!-- <report>scm</report> -->
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-    <developers>
-        <developer>
-            <id>chrismair</id>
-            <name>Chris Mair</name>
-            <email>chrismair@users.sourceforge.net</email>
-            <url>https://sourceforge.net/users/chrismair</url>
-            <roles>
-                <role>developer</role>
-            </roles>
-            <timezone>-4</timezone>
-        </developer>
-    </developers>
-
-    <licenses>
-        <license>
-            <name>Apache 2</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-</project>
\ No newline at end of file
diff --git a/tags/2.x_Before_IDEA/pom.xml b/tags/2.x_Before_IDEA/pom.xml
deleted file mode 100644
index 77842e2..0000000
--- a/tags/2.x_Before_IDEA/pom.xml
+++ /dev/null
@@ -1,204 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.mockftpserver</groupId>
-  <artifactId>MockFtpServer</artifactId>
-  <name>MockFtpServer</name>
-  <description>
-	The MockFtpServer project provides a mock/dummy FTP server for testing FTP client code. 
-	It can be configured to return custom data or reply codes, to simulate either success 
-	or failure scenarios. You can also verify expected command invocations. 
-  </description>
-  <packaging>groovy-jar</packaging>
-  <version>1.2.1</version>
-  <url>http://mockftpserver.sourceforge.net/</url>
-
-  <scm>
-    <connection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</connection>
-    <developerConnection>scm:svn:https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver/MockFtpServer</developerConnection>
-    <url>https://mockftpserver.svn.sourceforge.net/svnroot/mockftpserver</url>
-  </scm>
-  
-  <dependencies>
-
-    <dependency>
-      <groupId>org.codehaus.groovy</groupId>
-      <artifactId>groovy-all</artifactId>
-      <version>1.5.4</version>
-    </dependency>
-
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>1.2.13</version>
-    </dependency>
-
-	<!-- TESTING ONLY -->
-
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-      <version>1.4.1</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>1.2_Java1.3</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit-addons</groupId>
-      <artifactId>junit-addons</artifactId>
-      <version>1.4</version>
-      <scope>test</scope>
-    </dependency>
-
-	<dependency> 
-      <groupId>org.springframework</groupId> 
-      <artifactId>spring</artifactId> 
-      <version>2.0.7</version> 
-      <scope>test</scope>
-	</dependency>
-
-  	<!-- Transitive dependency.
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    -->
-
-  </dependencies>
-  
-  <distributionManagement>
-    <repository>
-      <id>sourceforge</id>
-      <url>scp://shell.sourceforge.net/home/groups/m/mo/mockftpserver/htdocs/m2repo</url>
-    </repository>
-  </distributionManagement>
-  
-  <build>
-    <extensions>
-      <extension>
-        <groupId>org.apache.maven.wagon</groupId>
-         <artifactId>wagon-ssh-external</artifactId>
-         <version>1.0-beta-2</version>
-      </extension>
-    </extensions>
-   
-    <plugins> 
-    
-    <plugin>
-       <groupId>org.codehaus.mojo.groovy</groupId>
-       <artifactId>groovy-maven-plugin</artifactId>
-       <extensions>true</extensions>
-    </plugin>
-   
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-compiler-plugin</artifactId>
-      <configuration>
-        <verbose>true</verbose>
-        <fork>true</fork>
-        <executable>${JAVA_1_4_HOME}/bin/javac</executable>
-        <compilerVersion>1.3</compilerVersion>
-      </configuration>
-    </plugin>
-    
-    <!-- clean coverage data before collecting --> 
-    <plugin> 
-      <artifactId>cobertura-maven-plugin</artifactId> 
-      <groupId>org.codehaus.mojo</groupId> 
-      <version>2.0</version>
-      <executions> 
-        <execution> 
-          <goals> 
-            <goal>clean</goal> 
-          </goals> 
-        </execution> 
-      </executions> 
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-      <configuration>
-        <archive>
-          <manifestEntries>
-            <MockFtpServer-Version>${pom.version}</MockFtpServer-Version>
-          </manifestEntries>
-        </archive>
-      </configuration>
-    </plugin>
-    
-    <plugin>
-      <artifactId>maven-assembly-plugin</artifactId>
-      <configuration>
-        <descriptors>
-          <descriptor>src/assembly/assembly.xml</descriptor>
-        </descriptors>
-      </configuration>
-    </plugin>       
-    
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-release-plugin</artifactId>
-      <configuration>
-        <preparationGoals>clean site assembly:assembly</preparationGoals>
-      </configuration>
-    </plugin>
-    
-    </plugins> 
-  </build> 
-
-  <reporting> 
-    <plugins> 
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <reportSets>
-          <reportSet>
-             <reports>
-                <report>dependencies</report>
-                <!-- <report>project-team</report> -->
-                <!-- <report>mailing-list</report> -->
-                <!-- <report>cim</report> -->
-                <!-- <report>issue-tracking</report> -->
-                <report>license</report>
-                <!-- <report>scm</report> -->
-             </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-  
-      <plugin> 
-        <groupId>org.codehaus.mojo</groupId> 
-        <artifactId>cobertura-maven-plugin</artifactId> 
-      </plugin> 
-    
-      <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-javadoc-plugin</artifactId>
-       </plugin>
-  
-       <plugin>
-         <groupId>org.apache.maven.plugins</groupId>
-         <artifactId>maven-pmd-plugin</artifactId>
-       </plugin>
-  
-    </plugins> 
-  </reporting> 
-
-  <licenses>
-    <license>
-      <name>Apache 2</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  
-</project>
\ No newline at end of file
