diff --git a/core/pom.xml b/core/pom.xml
index a0604d4..9472d19 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -1,222 +1,213 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-	license agreements. See the NOTICE file distributed with this work for additional 
-	information regarding copyright ownership. The ASF licenses this file to 
-	you under the Apache License, Version 2.0 (the "License"); you may not use 
-	this file except in compliance with the License. You may obtain a copy of 
-	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-	by applicable law or agreed to in writing, software distributed under the 
-	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-	OF ANY KIND, either express or implied. See the License for the specific 
-	language governing permissions and limitations under the License. -->
+  license agreements. See the NOTICE file distributed with this work for additional 
+  information regarding copyright ownership. The ASF licenses this file to 
+  you under the Apache License, Version 2.0 (the "License"); you may not use 
+  this file except in compliance with the License. You may obtain a copy of 
+  the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+  by applicable law or agreed to in writing, software distributed under the 
+  License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+  OF ANY KIND, either express or implied. See the License for the specific 
+  language governing permissions and limitations under the License. -->
 <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/xsd/maven-4.0.0.xsd">
-	<parent>
-		<artifactId>ftpserver-parent</artifactId>
-		<groupId>org.apache.ftpserver</groupId>
-		<version>1.1.2-SNAPSHOT</version>
-	</parent>
-	<modelVersion>4.0.0</modelVersion>
-	<artifactId>ftpserver-core</artifactId>
-	<name>Apache FtpServer Core</name>
-	<version>1.1.2-SNAPSHOT</version>
-	<packaging>bundle</packaging>
-	<scm>
-		<connection>
-      scm:svn:http://svn.apache.org/repos/asf/mina/ftpserver/trunk/core
-    </connection>
-		<developerConnection>
-      scm:svn:https://svn.apache.org/repos/asf/mina/ftpserver/trunk/core
-    </developerConnection>
-		<url> http://svn.apache.org/viewvc/mina/ftpserver/trunk/core</url>
-		<tag>HEAD</tag>
-	</scm>
-	<build>
-		<resources>
-			<resource>
-				<directory>src/main/resources</directory>
-				<includes>
-					<include>**/*.properties</include>
-					<include>**/*.handlers</include>
-					<include>**/*.schemas</include>
-					<include>**/*.xsd</include>
-				</includes>
-			</resource>
-		</resources>
-		<testResources>
-			<testResource>
-				<directory>src/test/resources</directory>
-				<includes>
-					<include>**/*.properties</include>
-				</includes>
-			</testResource>
-		</testResources>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-bundle-plugin</artifactId>
-				<version>2.5.3</version>
-				<extensions>true</extensions>
-				<configuration>
-					<instructions>
-						<Bundle-SymbolicName> ${project.artifactId}</Bundle-SymbolicName>
-						<Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
-						<Export-Package> org.apache.ftpserver;version=${project.version},
-							org.apache.ftpserver.command;version=${project.version},
-							org.apache.ftpserver.config.spring;version=${project.version},
-							org.apache.ftpserver.filesystem.nativefs;version=${project.version},
-							org.apache.ftpserver.ftpletcontainer;version=${project.version},
-							org.apache.ftpserver.ipfilter;version=${project.version},
-							org.apache.ftpserver.listener;version=${project.version},
-							org.apache.ftpserver.main;version=${project.version},
-							org.apache.ftpserver.message;version=${project.version},
-							org.apache.ftpserver.ssl;version=${project.version},
-							org.apache.ftpserver.usermanager;version=${project.version}
-						</Export-Package>
-						<Import-Package>
-							org.springframework.beans.factory.config;resolution:=optional;version="2.5",
-							org.springframework.beans.factory.support;resolution:=optional;version="2.5",
-							org.springframework.beans.factory.xml;resolution:=optional;version="2.5",
-							org.springframework.context.support;resolution:=optional;version="2.5",
-							org.springframework.util;resolution:=optional;version="2.5",
-							org.springframework.util.xml;resolution:=optional;version="2.5",
-							*</Import-Package>
-					</instructions>
-				</configuration>
-			</plugin>
+  <parent>
+    <artifactId>ftpserver-parent</artifactId>
+    <groupId>org.apache.ftpserver</groupId>
+    <version>1.1.2-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>ftpserver-core</artifactId>
+  <name>Apache FtpServer Core</name>
+  <version>1.1.2-SNAPSHOT</version>
+  <packaging>bundle</packaging>
 
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>properties-maven-plugin</artifactId>
-				<version>1.0-alpha-2</version>
-				<executions>
-					<execution>
-						<phase>generate-resources</phase>
-						<goals>
-							<goal>write-project-properties</goal>
-						</goals>
-						<configuration>
-							<outputFile>${project.build.outputDirectory}/org/apache/ftpserver/ftpserver.properties</outputFile>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
+   <build>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <includes>
+          <include>**/*.properties</include>
+          <include>**/*.handlers</include>
+          <include>**/*.schemas</include>
+          <include>**/*.xsd</include>
+        </includes>
+      </resource>
+    </resources>
+    <testResources>
+      <testResource>
+        <directory>src/test/resources</directory>
+        <includes>
+          <include>**/*.properties</include>
+        </includes>
+      </testResource>
+    </testResources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>2.5.3</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-SymbolicName> ${project.artifactId}</Bundle-SymbolicName>
+            <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
+            <Export-Package> org.apache.ftpserver;version=${project.version},
+              org.apache.ftpserver.command;version=${project.version},
+              org.apache.ftpserver.config.spring;version=${project.version},
+              org.apache.ftpserver.filesystem.nativefs;version=${project.version},
+              org.apache.ftpserver.ftpletcontainer;version=${project.version},
+              org.apache.ftpserver.ipfilter;version=${project.version},
+              org.apache.ftpserver.listener;version=${project.version},
+              org.apache.ftpserver.main;version=${project.version},
+              org.apache.ftpserver.message;version=${project.version},
+              org.apache.ftpserver.ssl;version=${project.version},
+              org.apache.ftpserver.usermanager;version=${project.version}
+            </Export-Package>
+            <Import-Package>
+              org.springframework.beans.factory.config;resolution:=optional;version="2.5",
+              org.springframework.beans.factory.support;resolution:=optional;version="2.5",
+              org.springframework.beans.factory.xml;resolution:=optional;version="2.5",
+              org.springframework.context.support;resolution:=optional;version="2.5",
+              org.springframework.util;resolution:=optional;version="2.5",
+              org.springframework.util.xml;resolution:=optional;version="2.5",
+              *</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
 
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>rat-maven-plugin</artifactId>
-				<version>1.0-alpha-3</version>
-				<configuration>
-					<excludes>
-						<exclude>res/user.gen</exclude>
-					</excludes>
-				</configuration>
-			</plugin>
-		</plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>properties-maven-plugin</artifactId>
+        <version>1.0-alpha-2</version>
+        <executions>
+          <execution>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>write-project-properties</goal>
+            </goals>
+            <configuration>
+              <outputFile>${project.build.outputDirectory}/org/apache/ftpserver/ftpserver.properties</outputFile>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
 
-		<pluginManagement>
-			<plugins>
-				<!--This plugin's configuration is used to store Eclipse m2e settings 
-					only. It has no influence on the Maven build itself. -->
-				<plugin>
-					<groupId>org.eclipse.m2e</groupId>
-					<artifactId>lifecycle-mapping</artifactId>
-					<version>1.0.0</version>
-					<configuration>
-						<lifecycleMappingMetadata>
-							<pluginExecutions>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>
-											org.codehaus.mojo
-										</groupId>
-										<artifactId>
-											properties-maven-plugin
-										</artifactId>
-										<versionRange>
-											[1.0-alpha-1,)
-										</versionRange>
-										<goals>
-											<goal>
-												write-project-properties
-											</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore />
-									</action>
-								</pluginExecution>
-							</pluginExecutions>
-						</lifecycleMappingMetadata>
-					</configuration>
-				</plugin>
-			</plugins>
-		</pluginManagement>
-	</build>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>rat-maven-plugin</artifactId>
+        <version>1.0-alpha-3</version>
+        <configuration>
+          <excludes>
+            <exclude>res/user.gen</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+    </plugins>
 
-	<dependencies>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>ftplet-api</artifactId>
-		</dependency>
+    <pluginManagement>
+      <plugins>
+        <!--This plugin's configuration is used to store Eclipse m2e settings 
+          only. It has no influence on the Maven build itself. -->
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>
+                      org.codehaus.mojo
+                    </groupId>
+                    <artifactId>
+                      properties-maven-plugin
+                    </artifactId>
+                    <versionRange>
+                      [1.0-alpha-1,)
+                    </versionRange>
+                    <goals>
+                      <goal>
+                        write-project-properties
+                      </goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore />
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
 
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-api</artifactId>
-		</dependency>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>ftplet-api</artifactId>
+    </dependency>
 
-		<dependency>
-			<groupId>org.apache.mina</groupId>
-			<artifactId>mina-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-context</artifactId>
-			<optional>true</optional>
-		</dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
 
-		<!-- Use as Spring uses JCL -->
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>jcl-over-slf4j</artifactId>
-			<optional>true</optional>
-		</dependency>
+    <dependency>
+      <groupId>org.apache.mina</groupId>
+      <artifactId>mina-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-context</artifactId>
+      <optional>true</optional>
+    </dependency>
+
+    <!-- Use as Spring uses JCL -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>jcl-over-slf4j</artifactId>
+      <optional>true</optional>
+    </dependency>
 
 
-		<!-- Test dependencies -->
-		<dependency>
-			<groupId>commons-net</groupId>
-			<artifactId>commons-net</artifactId>
-			<scope>test</scope>
-		</dependency>
+    <!-- Test dependencies -->
+    <dependency>
+      <groupId>commons-net</groupId>
+      <artifactId>commons-net</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-log4j12</artifactId>
-			<scope>test</scope>
-		</dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-		<dependency>
-			<groupId>org.apache.logging.log4j</groupId>
-			<artifactId>log4j-core</artifactId>
-			<scope>test</scope>
-		</dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<scope>test</scope>
-		</dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-		<dependency>
-			<groupId>commons-codec</groupId>
-			<artifactId>commons-codec</artifactId>
-			<scope>test</scope>
-		</dependency>
+    <dependency>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+      <scope>test</scope>
+    </dependency>
 
-		<dependency>
-			<groupId>hsqldb</groupId>
-			<artifactId>hsqldb</artifactId>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
+    <dependency>
+      <groupId>hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 </project>
diff --git a/distribution/pom.xml b/distribution/pom.xml
index 2c17db2..d36596f 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -1,165 +1,109 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-	license agreements. See the NOTICE file distributed with this work for additional 
-	information regarding copyright ownership. The ASF licenses this file to 
-	you under the Apache License, Version 2.0 (the "License"); you may not use 
-	this file except in compliance with the License. You may obtain a copy of 
-	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-	by applicable law or agreed to in writing, software distributed under the 
-	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-	OF ANY KIND, either express or implied. See the License for the specific 
-	language governing permissions and limitations under the License. -->
+  license agreements. See the NOTICE file distributed with this work for additional 
+  information regarding copyright ownership. The ASF licenses this file to 
+  you under the Apache License, Version 2.0 (the "License"); you may not use 
+  this file except in compliance with the License. You may obtain a copy of 
+  the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+  by applicable law or agreed to in writing, software distributed under the 
+  License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+  OF ANY KIND, either express or implied. See the License for the specific 
+  language governing permissions and limitations under the License. -->
 
 
 <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/xsd/maven-4.0.0.xsd">
-	<parent>
-		<artifactId>ftpserver-parent</artifactId>
-		<groupId>org.apache.ftpserver</groupId>
-		<version>1.1.2-SNAPSHOT</version>
-	</parent>
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.ftpserver</groupId>
-	<artifactId>ftpserver</artifactId>
-	<packaging>pom</packaging>
-	<name>Apache FtpServer</name>
-	<version>1.1.2-SNAPSHOT</version>
+  <parent>
+    <artifactId>ftpserver-parent</artifactId>
+    <groupId>org.apache.ftpserver</groupId>
+    <version>1.1.2-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.ftpserver</groupId>
+  <artifactId>ftpserver</artifactId>
+  <packaging>pom</packaging>
+  <name>Apache FtpServer</name>
+  <version>1.1.2-SNAPSHOT</version>
 
-	<scm>
-		<connection>scm:svn:http://svn.apache.org/repos/asf/mina/ftpserver/trunk/distribution</connection>
-		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/mina/ftpserver/trunk/distribution</developerConnection>
-		<url>http://svn.apache.org/viewvc/mina/ftpserver/trunk/distribution</url>
-		<tag>HEAD</tag>
-	</scm>
+  <build>
+    <finalName>apache-${project.artifactId}-${project.version}</finalName>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <version>2.2-beta-2</version>
+        <executions>
+          <execution>
+            <id>bin</id>
+            <phase>package</phase>
+            <goals>
+              <goal>attached</goal>
+            </goals>
+            <configuration>
+              <descriptors>
+                <descriptor>src/main/assemblies/bin.xml</descriptor>
+              </descriptors>
+              <tarLongFileMode>gnu</tarLongFileMode>
+            </configuration>
+          </execution>
+          <execution>
+            <id>src</id>
+            <phase>package</phase>
+            <goals>
+              <goal>attached</goal>
+            </goals>
+            <configuration>
+              <descriptors>
+                <descriptor>src/main/assemblies/src.xml</descriptor>
+              </descriptors>
+              <tarLongFileMode>gnu</tarLongFileMode>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>rat-maven-plugin</artifactId>
+        <version>1.0-alpha-3</version>
+        <configuration>
+          <excludes>
+            <exclude>LICENSE.slf4j.txt</exclude>
+            <exclude>LICENSE.springframework.txt</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
 
-	<build>
-		<finalName>apache-${project.artifactId}-${project.version}</finalName>
-		<plugins>
-			<plugin>
-				<artifactId>maven-assembly-plugin</artifactId>
-				<version>2.2-beta-2</version>
-				<executions>
-					<execution>
-						<id>bin</id>
-						<phase>package</phase>
-						<goals>
-							<goal>attached</goal>
-						</goals>
-						<configuration>
-							<descriptors>
-								<descriptor>src/main/assemblies/bin.xml</descriptor>
-							</descriptors>
-							<tarLongFileMode>gnu</tarLongFileMode>
-						</configuration>
-					</execution>
-					<execution>
-						<id>src</id>
-						<phase>package</phase>
-						<goals>
-							<goal>attached</goal>
-						</goals>
-						<configuration>
-							<descriptors>
-								<descriptor>src/main/assemblies/src.xml</descriptor>
-							</descriptors>
-							<tarLongFileMode>gnu</tarLongFileMode>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>rat-maven-plugin</artifactId>
-				<version>1.0-alpha-3</version>
-				<configuration>
-					<excludes>
-						<exclude>LICENSE.slf4j.txt</exclude>
-						<exclude>LICENSE.springframework.txt</exclude>
-					</excludes>
-				</configuration>
-			</plugin>
+    </plugins>
+  </build>
 
-		</plugins>
-	</build>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.ftpserver</groupId>
+      <artifactId>ftplet-api</artifactId>
+    </dependency>
 
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.ftpserver</groupId>
-			<artifactId>ftplet-api</artifactId>
-		</dependency>
+    <dependency>
+      <groupId>org.apache.ftpserver</groupId>
+      <artifactId>ftpserver-core</artifactId>
+    </dependency>
 
-		<dependency>
-			<groupId>org.apache.ftpserver</groupId>
-			<artifactId>ftpserver-core</artifactId>
-		</dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
 
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-log4j12</artifactId>
-		</dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+    </dependency>
 
-		<dependency>
-			<groupId>org.apache.logging.log4j</groupId>
-			<artifactId>log4j-core</artifactId>
-		</dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-context</artifactId>
+    </dependency>
 
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-context</artifactId>
-		</dependency>
-
-		<!-- Use as Spring uses JCL -->
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>jcl-over-slf4j</artifactId>
-		</dependency>
-	</dependencies>
-
-	<profiles>
-		<profile>
-			<id>release</id>
-			<build>
-				<plugins>
-					<plugin>
-						<artifactId>maven-antrun-plugin</artifactId>
-						<version>1.1</version>
-						<executions>
-							<execution>
-								<id>download-docs</id>
-								<phase>process-resources</phase>
-								<goals>
-									<goal>run</goal>
-								</goals>
-								<configuration>
-									<tasks>
-										<echo>Downloading Manual</echo>
-										<mkdir dir="${project.build.directory}/site" />
-										<get src="http://people.apache.org/~ngn/ftpserver/docs/ftpserver.zip" dest="${project.build.directory}/${project.artifactId}-docs.zip" />
-										<unzip src="${project.build.directory}/${project.artifactId}-docs.zip" dest="${project.build.directory}/docs" />
-									</tasks>
-								</configuration>
-							</execution>
-
-							<execution>
-								<id>copy-javadocs-docs</id>
-								<phase>process-resources</phase>
-								<goals>
-									<goal>run</goal>
-								</goals>
-								<configuration>
-									<tasks>
-										<echo>Copying Javadocs</echo>
-										<mkdir dir="${project.build.directory}/api" />
-										<copy todir="${project.build.directory}/api">
-											<fileset dir="../target/site/apidocs" />
-										</copy>
-									</tasks>
-								</configuration>
-							</execution>
-
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
+    <!-- Use as Spring uses JCL -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>jcl-over-slf4j</artifactId>
+    </dependency>
+  </dependencies>
 </project>
diff --git a/examples/ftpserver-example-spring-war/pom.xml b/examples/ftpserver-example-spring-war/pom.xml
index f3dd41c..7b94955 100644
--- a/examples/ftpserver-example-spring-war/pom.xml
+++ b/examples/ftpserver-example-spring-war/pom.xml
@@ -1,81 +1,81 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-	license agreements. See the NOTICE file distributed with this work for additional 
-	information regarding copyright ownership. The ASF licenses this file to 
-	you under the Apache License, Version 2.0 (the "License"); you may not use 
-	this file except in compliance with the License. You may obtain a copy of 
-	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-	by applicable law or agreed to in writing, software distributed under the 
-	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-	OF ANY KIND, either express or implied. See the License for the specific 
-	language governing permissions and limitations under the License. -->
+  license agreements. See the NOTICE file distributed with this work for additional 
+  information regarding copyright ownership. The ASF licenses this file to 
+  you under the Apache License, Version 2.0 (the "License"); you may not use 
+  this file except in compliance with the License. You may obtain a copy of 
+  the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+  by applicable law or agreed to in writing, software distributed under the 
+  License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+  OF ANY KIND, either express or implied. See the License for the specific 
+  language governing permissions and limitations under the License. -->
 <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/xsd/maven-4.0.0.xsd">
-	<parent>
-		<artifactId>ftpserver-parent</artifactId>
-		<groupId>org.apache.ftpserver</groupId>
-		<version>1.1.2-SNAPSHOT</version>
-		<relativePath>../../pom.xml</relativePath>
-	</parent>
+  <parent>
+    <artifactId>ftpserver-parent</artifactId>
+    <groupId>org.apache.ftpserver</groupId>
+    <version>1.1.2-SNAPSHOT</version>
+    <relativePath>../../pom.xml</relativePath>
+  </parent>
 
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.ftpserver.examples</groupId>
-	<artifactId>ftpserver-spring-war</artifactId>
-	<name>FtpServer Spring web project example</name>
-	<packaging>war</packaging>
-	<version>1.1.2-SNAPSHOT</version>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.ftpserver.examples</groupId>
+  <artifactId>ftpserver-spring-war</artifactId>
+  <name>FtpServer Spring web project example</name>
+  <packaging>war</packaging>
+  <version>1.1.2-SNAPSHOT</version>
 
-	<dependencies>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-web</artifactId>
-			<version>2.5.5</version>
-		</dependency>
+  <dependencies>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-web</artifactId>
+      <version>2.5.5</version>
+    </dependency>
 
-		<dependency>
-			<groupId>org.apache.ftpserver</groupId>
-			<artifactId>ftpserver-core</artifactId>
-			<version>${project.version}</version>
-		</dependency>
+    <dependency>
+      <groupId>org.apache.ftpserver</groupId>
+      <artifactId>ftpserver-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
 
-		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>servlet-api</artifactId>
-			<version>2.5</version>
-			<scope>provided</scope>
-		</dependency>
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>servlet-api</artifactId>
+      <version>2.5</version>
+      <scope>provided</scope>
+    </dependency>
 
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-log4j12</artifactId>
-		</dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
 
-		<dependency>
-			<groupId>org.apache.logging.log4j</groupId>
-			<artifactId>log4j-core</artifactId>
-		</dependency>
-	</dependencies>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+    </dependency>
+  </dependencies>
 
-	<build>
-		<finalName>ftpserver-spring-war</finalName>
-		<plugins>
-			<plugin>
-				<groupId>org.mortbay.jetty</groupId>
-				<artifactId>maven-jetty-plugin</artifactId>
-				<version>6.1.8</version>
-				<configuration>
-					<contextPath>/</contextPath>
-					<scanIntervalSeconds>5</scanIntervalSeconds>
-				</configuration>
-			</plugin>
+  <build>
+    <finalName>ftpserver-spring-war</finalName>
+    <plugins>
+      <plugin>
+        <groupId>org.mortbay.jetty</groupId>
+        <artifactId>maven-jetty-plugin</artifactId>
+        <version>6.1.8</version>
+        <configuration>
+          <contextPath>/</contextPath>
+          <scanIntervalSeconds>5</scanIntervalSeconds>
+        </configuration>
+      </plugin>
 
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<source>1.7</source>
-					<target>1.7</target>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.7</source>
+          <target>1.7</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/ftplet-api/pom.xml b/ftplet-api/pom.xml
index 54d01ca..80f80b1 100644
--- a/ftplet-api/pom.xml
+++ b/ftplet-api/pom.xml
@@ -33,19 +33,6 @@
     session.</description>
   <url>http://mina.apache.org/ftpserver</url>
   
-  <scm>
-    <connection>
-      scm:svn:http://svn.apache.org/repos/asf/mina/ftpserver/trunk/ftplet-api
-    </connection>
-    
-    <developerConnection>
-      scm:svn:https://svn.apache.org/repos/asf/mina/ftpserver/trunk/ftplet-api
-    </developerConnection>
-    <url>http://svn.apache.org/viewvc/mina/ftpserver/trunk/ftplet-api
-    </url>
-    <tag>HEAD</tag>
-  </scm>
-  
   <build>
     <plugins>
       <plugin>
diff --git a/pom.xml b/pom.xml
index 957d364..62c80da 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,497 +1,512 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-	license agreements. See the NOTICE file distributed with this work for additional 
-	information regarding copyright ownership. The ASF licenses this file to 
-	you under the Apache License, Version 2.0 (the "License"); you may not use 
-	this file except in compliance with the License. You may obtain a copy of 
-	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-	by applicable law or agreed to in writing, software distributed under the 
-	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-	OF ANY KIND, either express or implied. See the License for the specific 
-	language governing permissions and limitations under the License. -->
+  license agreements. See the NOTICE file distributed with this work for additional 
+  information regarding copyright ownership. The ASF licenses this file to 
+  you under the Apache License, Version 2.0 (the "License"); you may not use 
+  this file except in compliance with the License. You may obtain a copy of 
+  the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+  by applicable law or agreed to in writing, software distributed under the 
+  License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+  OF ANY KIND, either express or implied. See the License for the specific 
+  language governing permissions and limitations under the License. -->
 
 <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/xsd/maven-4.0.0.xsd">
-	<parent>
-		<artifactId>apache</artifactId>
-		<groupId>org.apache</groupId>
-		<version>24</version>
-	</parent>
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.ftpserver</groupId>
-	<artifactId>ftpserver-parent</artifactId>
-	<packaging>pom</packaging>
-	<name>Apache FtpServer Parent</name>
-	<version>1.1.2-SNAPSHOT</version>
-	<url>https://mina.apache.org/ftpserver</url>
-	<issueManagement>
-		<system>Jira</system>
-		<url>https://issues.apache.org/jira/browse/FTPSERVER</url>
-	</issueManagement>
-	<inceptionYear>2003</inceptionYear>
+  <parent>
+    <artifactId>apache</artifactId>
+    <groupId>org.apache</groupId>
+    <version>24</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.ftpserver</groupId>
+  <artifactId>ftpserver-parent</artifactId>
+  <packaging>pom</packaging>
+  <name>Apache FtpServer Parent</name>
+  <version>1.1.2-SNAPSHOT</version>
+  <url>https://mina.apache.org/ftpserverproject</url>
+  <issueManagement>
+    <system>Jira</system>
+    <url>https://issues.apache.org/jira/browse/FTPSERVER</url>
+  </issueManagement>
+  <inceptionYear>2003</inceptionYear>
 
-	<licenses>
-		<license>
-			<name>Apache 2.0 License</name>
-			<url>https://www.apache.org/licenses/LICENSE-2.0</url>
-			<distribution>repo</distribution>
-		</license>
-	</licenses>
+  <licenses>
+    <license>
+      <name>Apache 2.0 License</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
+  <!-- Temporary add snapshot repository here to be able to resolve snapshot parent pom -->
+  <repositories>
+    <repository>
+      <id>apache.snapshots</id>
+      <name>Apache Snapshot Repository</name>
+      <url>https://repository.apache.org/snapshots</url>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+    </repository>
+  </repositories>
 
 
-	<mailingLists>
-		<mailingList>
-			<name>FtpServer Users mailing list</name>
-			<subscribe>ftpserver-users-subscribe@mina.apache.org</subscribe>
-			<unsubscribe>ftpserver-users-unsubscribe@mina.apache.org</unsubscribe>
-			<post>ftpserver-users@mina.apache.org</post>
-			<archive>https://mail-archives.apache.org/mod_mbox/mina-ftpserver-users/</archive>
-		</mailingList>
-		<mailingList>
-			<name>MINA Development mailing list</name>
-			<subscribe>dev-subscribe@mina.apache.org</subscribe>
-			<unsubscribe>dev-unsubscribe@mina.apache.org</unsubscribe>
-			<post>dev@mina.apache.org</post>
-			<archive>https://mail-archives.apache.org/mod_mbox/mina-dev/</archive>
-			<otherArchives>
-				<otherArchive>http://www.nabble.com/Apache-MINA-f16868.html</otherArchive>
-			</otherArchives>
-		</mailingList>
-		<mailingList>
-			<name>MINA Commit mailing list</name>
-			<subscribe>commits-subscribe@mina.apache.org</subscribe>
-			<unsubscribe>commits-unsubscribe@mina.apache.org</unsubscribe>
-			<archive>https://mail-archives.apache.org/mod_mbox/mina-commits/</archive>
-		</mailingList>
-	</mailingLists>
+  <mailingLists>
+    <mailingList>
+      <name>FtpServer Users mailing list</name>
+      <subscribe>ftpserver-users-subscribe@mina.apache.org</subscribe>
+      <unsubscribe>ftpserver-users-unsubscribe@mina.apache.org</unsubscribe>
+      <post>ftpserver-users@mina.apache.org</post>
+      <archive>https://mail-archives.apache.org/mod_mbox/mina-ftpserver-users/</archive>
+    </mailingList>
+    <mailingList>
+      <name>MINA Development mailing list</name>
+      <subscribe>dev-subscribe@mina.apache.org</subscribe>
+      <unsubscribe>dev-unsubscribe@mina.apache.org</unsubscribe>
+      <post>dev@mina.apache.org</post>
+      <archive>https://mail-archives.apache.org/mod_mbox/mina-dev/</archive>
+      <otherArchives>
+        <otherArchive>http://www.nabble.com/Apache-MINA-f16868.html</otherArchive>
+      </otherArchives>
+    </mailingList>
+    <mailingList>
+      <name>MINA Commit mailing list</name>
+      <subscribe>commits-subscribe@mina.apache.org</subscribe>
+      <unsubscribe>commits-unsubscribe@mina.apache.org</unsubscribe>
+      <archive>https://mail-archives.apache.org/mod_mbox/mina-commits/</archive>
+    </mailingList>
+  </mailingLists>
 
-	<developers>
-		<developer>
-			<id>ngn</id>
-			<name>Niklas Gustavsson</name>
-			<email>niklas@protocol7.com</email>
-		</developer>
-		<developer>
-			<id>rana_b</id>
-			<name>Rana Battacharyya</name>
-			<email>rana_b.{aT}.yahoo.{d0T}.com</email>
-		</developer>
-		<developer>
-			<id>hammant</id>
-			<name>Paul Hammant</name>
-			<email>paul.{aT}.hammant.{d0T}.org</email>
-		</developer>
-		<developer>
-			<id>sergey</id>
-			<name>Sergey M Vladimirov</name>
-			<email>vlsergey.{aT}.gmail.{d0T}.com</email>
-			<organization>Netcracker corp.</organization>
-		</developer>
-	</developers>
+  <developers>
+    <developer>
+      <id>ngn</id>
+      <name>Niklas Gustavsson</name>
+      <email>niklas@protocol7.com</email>
+    </developer>
+    <developer>
+      <id>rana_b</id>
+      <name>Rana Battacharyya</name>
+      <email>rana_b.{aT}.yahoo.{d0T}.com</email>
+    </developer>
+    <developer>
+      <id>hammant</id>
+      <name>Paul Hammant</name>
+      <email>paul.{aT}.hammant.{d0T}.org</email>
+    </developer>
+    <developer>
+      <id>sergey</id>
+      <name>Sergey M Vladimirov</name>
+      <email>vlsergey.{aT}.gmail.{d0T}.com</email>
+      <organization>Netcracker corp.</organization>
+    </developer>
+  </developers>
 
-	<contributors>
-		<contributor>
-			<name>Birkir A. Barkarson</name>
-		</contributor>
-		<contributor>
-			<name>David H. DeWolf</name>
-			<email>ddewolf.{aT}.apache.{d0T}.org</email>
-			<organization>Vivare, INC</organization>
-		</contributor>
-		<contributor>
-			<name>Luis Sanabria</name>
-		</contributor>
-		<contributor>
-			<name>Daniel Hagen</name>
-		</contributor>
-		<contributor>
-			<name>KwangYul Seo</name>
-		</contributor>
-		<contributor>
-			<name>Dave Roberts</name>
-			<organization>SAA Consultants Ltd</organization>
-		</contributor>
-		<contributor>
-			<name>Nick Vincent</name>
-		</contributor>
-		<contributor>
-			<name>Andrea Francia</name>
-			<url>http://andreafrancia.blogspot.com</url>
-		</contributor>
-	</contributors>
+  <contributors>
+    <contributor>
+      <name>Birkir A. Barkarson</name>
+    </contributor>
+    <contributor>
+      <name>David H. DeWolf</name>
+      <email>ddewolf.{aT}.apache.{d0T}.org</email>
+      <organization>Vivare, INC</organization>
+    </contributor>
+    <contributor>
+      <name>Luis Sanabria</name>
+    </contributor>
+    <contributor>
+      <name>Daniel Hagen</name>
+    </contributor>
+    <contributor>
+      <name>KwangYul Seo</name>
+    </contributor>
+    <contributor>
+      <name>Dave Roberts</name>
+      <organization>SAA Consultants Ltd</organization>
+    </contributor>
+    <contributor>
+      <name>Nick Vincent</name>
+    </contributor>
+    <contributor>
+      <name>Andrea Francia</name>
+      <url>http://andreafrancia.blogspot.com</url>
+    </contributor>
+  </contributors>
 
-	<scm>
-		<connection>scm:git:https://gitbox.apache.org/repos/asf/mina-ftpserver.git</connection>
-		<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/mina-ftpserver.git</developerConnection>
-		<url>https://github.com/apache/mina-ftpserver/tree/${project.scm.tag}</url>
-		<tag>master</tag>
-	</scm>
+  <scm>
+    <connection>scm:git:https://gitbox.apache.org/repos/asf/mina-ftpserver.git</connection>
+    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/mina-ftpserver.git</developerConnection>
+    <url>https://github.com/apache/mina-ftpserver/tree/${project.scm.tag}</url>
+    <tag>master</tag>
+  </scm>
 
-	<properties>
-		<!-- Disbale the JAVA 8 Javadoc Lint -->
-		<additionalparam>-Xdoclint:none</additionalparam>
+  <properties>
+                <project.build.outputTimestamp>10</project.build.outputTimestamp>
 
-		<!-- Set versions for depending jars -->
-		<commons.codec.version>1.10</commons.codec.version>
-		<commons.net.version>3.5</commons.net.version>
-		<hsqldb.version>1.8.0.10</hsqldb.version>
-		<jcl.over.slf4j.version>1.7.21</jcl.over.slf4j.version>
-		<junit.version>4.12</junit.version>
-		<log4j.version>2.16.0</log4j.version>
-		<mina.core.version>2.1.2</mina.core.version>
-		<slf4j.api.version>1.7.21</slf4j.api.version>
-		<slf4j.log4j12.version>1.7.21</slf4j.log4j12.version>
-		<spring.context.version>2.5.5</spring.context.version>
+    <!-- Disbale the JAVA 8 Javadoc Lint -->
+    <additionalparam>-Xdoclint:none</additionalparam>
 
-		<maven.compile.source>1.7</maven.compile.source>
-		<maven.compile.target>1.7</maven.compile.target>
-		<ftpserver.version>${project.version}</ftpserver.version>
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-	</properties>
+    <!-- Set versions for depending jars -->
+    <commons.codec.version>1.10</commons.codec.version>
+    <commons.net.version>3.5</commons.net.version>
+    <hsqldb.version>1.8.0.10</hsqldb.version>
+    <jcl.over.slf4j.version>1.7.32</jcl.over.slf4j.version>
+    <junit.version>4.12</junit.version>
+    <log4j.version>2.16.0</log4j.version>
+    <mina.core.version>2.1.2</mina.core.version>
+    <slf4j.api.version>1.7.32</slf4j.api.version>
+    <slf4j.log4j12.version>1.7.32</slf4j.log4j12.version>
+    <spring.context.version>2.5.5</spring.context.version>
 
-	<dependencyManagement>
-		<dependencies>
-			<!-- Submodules -->
-			<dependency>
-				<groupId>${project.groupId}</groupId>
-				<artifactId>ftplet-api</artifactId>
-				<version>${project.version}</version>
-			</dependency>
+    <maven.compile.source>1.7</maven.compile.source>
+    <maven.compile.target>1.7</maven.compile.target>
+    <ftpserver.version>${project.version}</ftpserver.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
 
-			<dependency>
-				<groupId>${project.groupId}</groupId>
-				<artifactId>ftpserver-core</artifactId>
-				<version>${project.version}</version>
-			</dependency>
+  <dependencyManagement>
+    <dependencies>
+      <!-- Submodules -->
+      <dependency>
+        <groupId>${project.groupId}</groupId>
+        <artifactId>ftplet-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
 
-			<dependency>
-				<groupId>org.apache.mina</groupId>
-				<artifactId>mina-core</artifactId>
-				<version>${mina.core.version}</version>
-			</dependency>
+      <dependency>
+        <groupId>${project.groupId}</groupId>
+        <artifactId>ftpserver-core</artifactId>
+        <version>${project.version}</version>
+      </dependency>
 
-			<dependency>
-				<groupId>org.springframework</groupId>
-				<artifactId>spring-context</artifactId>
-				<version>${spring.context.version}</version>
-				<exclusions>
-					<exclusion>
-						<groupId>commons-logging</groupId>
-						<artifactId>commons-logging</artifactId>
-					</exclusion>
-				</exclusions>
-			</dependency>
+      <dependency>
+        <groupId>org.apache.mina</groupId>
+        <artifactId>mina-core</artifactId>
+        <version>${mina.core.version}</version>
+      </dependency>
 
-			<!-- Logging -->
-			<dependency>
-				<groupId>org.slf4j</groupId>
-				<artifactId>slf4j-api</artifactId>
-				<version>${slf4j.api.version}</version>
-			</dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-context</artifactId>
+        <version>${spring.context.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
 
-			<dependency>
-				<groupId>org.slf4j</groupId>
-				<artifactId>jcl-over-slf4j</artifactId>
-				<version>${jcl.over.slf4j.version}</version>
-			</dependency>
+      <!-- Logging -->
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <version>${slf4j.api.version}</version>
+      </dependency>
 
-			<!-- Test dependencies -->
-			<dependency>
-				<groupId>junit</groupId>
-				<artifactId>junit</artifactId>
-				<version>${junit.version}</version>
-			</dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>jcl-over-slf4j</artifactId>
+        <version>${jcl.over.slf4j.version}</version>
+      </dependency>
 
-			<dependency>
-				<groupId>commons-net</groupId>
-				<artifactId>commons-net</artifactId>
-				<version>${commons.net.version}</version>
-			</dependency>
+      <!-- Test dependencies -->
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>${junit.version}</version>
+      </dependency>
 
-			<dependency>
-				<groupId>org.slf4j</groupId>
-				<artifactId>slf4j-log4j12</artifactId>
-				<version>${slf4j.log4j12.version}</version>
-			</dependency>
+      <dependency>
+        <groupId>commons-net</groupId>
+        <artifactId>commons-net</artifactId>
+        <version>${commons.net.version}</version>
+      </dependency>
 
-			<dependency>
-				<groupId>org.apache.logging.log4j</groupId>
-				<artifactId>log4j-core</artifactId>
-				<version>${log4j.version}</version>
-			</dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-log4j12</artifactId>
+        <version>${slf4j.log4j12.version}</version>
+      </dependency>
 
-			<dependency>
-				<groupId>commons-codec</groupId>
-				<artifactId>commons-codec</artifactId>
-				<version>${commons.codec.version}</version>
-			</dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core</artifactId>
+        <version>${log4j.version}</version>
+      </dependency>
 
-			<dependency>
-				<groupId>hsqldb</groupId>
-				<artifactId>hsqldb</artifactId>
-				<version>${hsqldb.version}</version>
-			</dependency>
-		</dependencies>
-	</dependencyManagement>
+      <dependency>
+        <groupId>commons-codec</groupId>
+        <artifactId>commons-codec</artifactId>
+        <version>${commons.codec.version}</version>
+      </dependency>
 
-	<build>
-		<pluginManagement>
-			<plugins>
-				<plugin>
-					<groupId>org.apache.rat</groupId>
-					<artifactId>apache-rat-plugin</artifactId>
-					<version>0.13</version>
-					<inherited>true</inherited>
-					<configuration>
-						<excludeSubProjects>false</excludeSubProjects>
-						<excludes>
-							<!-- MAVEN_DEFAULT_EXCLUDES -->
-							<exclude>**/target/**/*</exclude>
-							<exclude>**/cobertura.ser</exclude>
+      <dependency>
+        <groupId>hsqldb</groupId>
+        <artifactId>hsqldb</artifactId>
+        <version>${hsqldb.version}</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
 
-							<!-- ECLIPSE_DEFAULT_EXCLUDES -->
-							<exclude>**/.classpath</exclude>
-							<exclude>**/.project</exclude>
-							<exclude>**/.settings/**/*</exclude>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <version>0.13</version>
+          <inherited>true</inherited>
+          <configuration>
+            <excludeSubProjects>false</excludeSubProjects>
+            <excludes>
+              <!-- MAVEN_DEFAULT_EXCLUDES -->
+              <exclude>**/target/**/*</exclude>
+              <exclude>**/cobertura.ser</exclude>
 
-							<!-- IDEA_DEFAULT_EXCLUDES -->
-							<exclude>**/*.iml</exclude>
-							<exclude>**/*.ipr</exclude>
-							<exclude>**/*.iws</exclude>
+              <!-- ECLIPSE_DEFAULT_EXCLUDES -->
+              <exclude>**/.classpath</exclude>
+              <exclude>**/.project</exclude>
+              <exclude>**/.settings/**/*</exclude>
 
-							<!-- MANIFEST_MF_EXCLUDES -->
-							<exclude>**/MANIFEST.MF</exclude>
+              <!-- IDEA_DEFAULT_EXCLUDES -->
+              <exclude>**/*.iml</exclude>
+              <exclude>**/*.ipr</exclude>
+              <exclude>**/*.iws</exclude>
 
-							<!-- 3RD_PARTY_LICENSES -->
-							<exclude>**/LICENSE*</exclude>
+              <!-- MANIFEST_MF_EXCLUDES -->
+              <exclude>**/MANIFEST.MF</exclude>
 
-							<!-- Missing license header in dependency reduced pom, see http://jira.codehaus.org/browse/MSHADE-48 -->
-							<exclude>**/dependency-reduced-pom.xml</exclude>
-						</excludes>
-					</configuration>
-					<executions>
-						<execution>
-							<phase>verify</phase>
-							<goals>
-								<goal>check</goal>
-							</goals>
-						</execution>
-					</executions>
-				</plugin>
+              <!-- 3RD_PARTY_LICENSES -->
+              <exclude>**/LICENSE*</exclude>
 
-				<plugin>
-					<groupId>org.apache.maven.plugins</groupId>
-					<artifactId>maven-release-plugin</artifactId>
-					<version>2.5.3</version>
-					<configuration>
-						<autoVersionSubmodules>true</autoVersionSubmodules>
-					</configuration>
-				</plugin>
+              <!-- Missing license header in dependency reduced pom, see http://jira.codehaus.org/browse/MSHADE-48 -->
+              <exclude>**/dependency-reduced-pom.xml</exclude>
+            </excludes>
+          </configuration>
+          <executions>
+            <execution>
+              <phase>verify</phase>
+              <goals>
+                <goal>check</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
 
-				<plugin>
-					<groupId>org.apache.maven.plugins</groupId>
-					<artifactId>maven-source-plugin</artifactId>
-					<version>3.0.1</version>
-				</plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>2.5.3</version>
+          <configuration>
+            <autoVersionSubmodules>true</autoVersionSubmodules>
+          </configuration>
+        </plugin>
 
-				<plugin>
-					<groupId>org.apache.maven.plugins</groupId>
-					<artifactId>maven-clean-plugin</artifactId>
-					<version>3.0.0</version>
-				</plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-source-plugin</artifactId>
+          <version>3.0.1</version>
+        </plugin>
 
-				<plugin>
-					<groupId>org.apache.maven.plugins</groupId>
-					<artifactId>maven-install-plugin</artifactId>
-					<version>2.5.2</version>
-				</plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-clean-plugin</artifactId>
+          <version>3.0.0</version>
+        </plugin>
 
-				<plugin>
-					<groupId>org.apache.maven.plugins</groupId>
-					<artifactId>maven-javadoc-plugin</artifactId>
-					<version>2.10.4</version>
-				</plugin>
-			</plugins>
-		</pluginManagement>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-install-plugin</artifactId>
+          <version>2.5.2</version>
+        </plugin>
 
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-enforcer-plugin</artifactId>
-				<version>1.3.1</version>
-				<executions>
-					<execution>
-						<phase>validate</phase>
-						<goals>
-							<goal>enforce</goal>
-						</goals>
-						<configuration>
-							<rules>
-								<!-- Allow only Maven 2.0.5 and >2.0.7 -->
-								<requireMavenVersion>
-									<version>[2.0.5],[2.0.7,]</version>
-								</requireMavenVersion>
-							</rules>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-javadoc-plugin</artifactId>
+          <version>2.10.4</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
 
-			<plugin>
-				<artifactId>maven-surefire-plugin</artifactId>
-				<version>2.18.1</version>
-			</plugin>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <version>1.3.1</version>
+        <executions>
+          <execution>
+            <phase>validate</phase>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <!-- Allow only Maven 2.0.5 and >2.0.7 -->
+                <requireMavenVersion>
+                  <version>[2.0.5],[2.0.7,]</version>
+                </requireMavenVersion>
+              </rules>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
 
-			<plugin>
-				<artifactId>maven-eclipse-plugin</artifactId>
-				<version>2.9</version>
-				<configuration>
-					<downloadSources>true</downloadSources>
-				</configuration>
-			</plugin>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.18.1</version>
+      </plugin>
 
-			<plugin>
-				<artifactId>maven-release-plugin</artifactId>
-				<version>2.5.1</version>
-				<configuration>
-					<tagBase>https://svn.apache.org/repos/asf/mina/ftpserver/tags/</tagBase>
-				</configuration>
-			</plugin>
+      <plugin>
+        <artifactId>maven-eclipse-plugin</artifactId>
+        <version>2.9</version>
+        <configuration>
+          <downloadSources>true</downloadSources>
+        </configuration>
+      </plugin>
 
-			<plugin>
-				<artifactId>maven-remote-resources-plugin</artifactId>
-				<version>1.5</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>process</goal>
-						</goals>
-						<configuration>
-							<resourceBundles>
-								<resourceBundle>org.apache:apache-jar-resource-bundle:1.1</resourceBundle>
-							</resourceBundles>
-							<properties>
-								<addLicense>true</addLicense>
-							</properties>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
+      <plugin>
+        <artifactId>maven-release-plugin</artifactId>
+        <version>2.5.1</version>
+        <configuration>
+          <tagBase>https://svn.apache.org/repos/asf/mina/ftpserver/tags/</tagBase>
+        </configuration>
+      </plugin>
 
-			<plugin>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>3.5.1</version>
-				<configuration>
-					<source>${maven.compile.source}</source>
-					<target>${maven.compile.target}</target>
-				</configuration>
-			</plugin>
+      <plugin>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <version>1.5</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <resourceBundles>
+                <resourceBundle>org.apache:apache-jar-resource-bundle:1.1</resourceBundle>
+              </resourceBundles>
+              <properties>
+                <addLicense>true</addLicense>
+              </properties>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
 
-			<plugin>
-				<artifactId>maven-source-plugin</artifactId>
-				<version>2.4</version>
-				<executions>
-					<execution>
-						<id>create-source-jar</id>
-						<goals>
-							<goal>jar</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.5.1</version>
+        <configuration>
+          <source>${maven.compile.source}</source>
+          <target>${maven.compile.target}</target>
+        </configuration>
+      </plugin>
 
-			<plugin>
-				<artifactId>maven-idea-plugin</artifactId>
-				<version>2.2.1</version>
-				<configuration>
-					<jdkLevel>${maven.compile.source}</jdkLevel>
-				</configuration>
-			</plugin>
+      <plugin>
+        <artifactId>maven-source-plugin</artifactId>
+        <version>2.4</version>
+        <executions>
+          <execution>
+            <id>create-source-jar</id>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
 
-			<plugin>
-				<artifactId>maven-jar-plugin</artifactId>
-				<version>2.5</version>
-				<configuration>
-					<archive>
-						<addMavenDescriptor>false</addMavenDescriptor>
-					</archive>
-				</configuration>
-			</plugin>
+      <plugin>
+        <artifactId>maven-idea-plugin</artifactId>
+        <version>2.2.1</version>
+        <configuration>
+          <jdkLevel>${maven.compile.source}</jdkLevel>
+        </configuration>
+      </plugin>
 
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-war-plugin</artifactId>
-				<version>2.5</version>
-			</plugin>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.5</version>
+        <configuration>
+          <archive>
+            <addMavenDescriptor>false</addMavenDescriptor>
+          </archive>
+        </configuration>
+      </plugin>
 
-			<plugin>
-				<groupId>org.apache.rat</groupId>
-				<artifactId>apache-rat-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>check-apache-license-header</id>
-						<phase>validate</phase>
-						<goals>
-							<goal>check</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-war-plugin</artifactId>
+        <version>2.5</version>
+      </plugin>
 
-	<profiles>
-		<profile>
-			<id>apache-release</id>
-			<build>
-				<plugins>
-					<plugin>
-						<artifactId>maven-javadoc-plugin</artifactId>
-						<version>2.10.1</version>
-						<executions>
-							<execution>
-								<id>create-javadoc-jar</id>
-								<goals>
-									<goal>jar</goal>
-								</goals>
-								<configuration>
-									<source>${maven.compile.source}</source>
-									<excludePackageNames>
-										*.impl:org.apache.ftpserver.example.*:org.apache.ftpserver.config.spring:org.apache.ftpserver.command.impl.listing:org.apache.ftpserver.listener.nio:org.apache.ftpserver.util
-									</excludePackageNames>
-								</configuration>
-							</execution>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>check-apache-license-header</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 
-							<execution>
-								<id>create-site-javadoc</id>
-								<phase>process-resources</phase>
-								<goals>
-									<goal>aggregate</goal>
-								</goals>
-								<configuration>
-									<doctitle>Apache FtpServer ${project.version} Public API</doctitle>
-									<windowtitle>Apache FtpServer ${project.version} Public API</windowtitle>
-									<source>${maven.compile.source}</source>
-									<excludePackageNames>
-										*.impl:org.apache.ftpserver.example.*:org.apache.ftpserver.config.spring:org.apache.ftpserver.command.impl.listing:org.apache.ftpserver.listener.nio:org.apache.ftpserver.util
-									</excludePackageNames>
-								</configuration>
-							</execution>
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-			<modules>
-				<module>ftplet-api</module>
-				<module>core</module>
-				<module>distribution</module>
-				<module>examples</module>
-			</modules>
-		</profile>
-	</profiles>
+  <profiles>
+    <profile>
+      <id>apache-release</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>2.10.1</version>
+            <executions>
+              <execution>
+                <id>create-javadoc-jar</id>
+                <goals>
+                  <goal>javadoc</goal>
+                </goals>
+                <configuration>
+                  <aggregate>true</aggregate>
+                  <source>${maven.compile.source}</source>
+                  <excludePackageNames>
+                    *.impl:org.apache.ftpserver.example.*:org.apache.ftpserver.config.spring:org.apache.ftpserver.command.impl.listing:org.apache.ftpserver.listener.nio:org.apache.ftpserver.util
+                  </excludePackageNames>
+                </configuration>
+              </execution>
 
-	<modules>
-		<module>ftplet-api</module>
-		<module>core</module>
-		<module>examples</module>
-	</modules>
+              <execution>
+                <id>create-site-javadoc</id>
+                <phase>process-resources</phase>
+                <goals>
+                  <goal>aggregate</goal>
+                </goals>
+                <configuration>
+                  <doctitle>Apache FtpServer ${project.version} Public API</doctitle>
+                  <windowtitle>Apache FtpServer ${project.version} Public API</windowtitle>
+                  <source>${maven.compile.source}</source>
+                  <excludePackageNames>
+                    *.impl:org.apache.ftpserver.example.*:org.apache.ftpserver.config.spring:org.apache.ftpserver.command.impl.listing:org.apache.ftpserver.listener.nio:org.apache.ftpserver.util
+                  </excludePackageNames>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+      <modules>
+        <module>ftplet-api</module>
+        <module>core</module>
+        <module>examples</module>
+      </modules>
+    </profile>
+  </profiles>
+
+  <modules>
+    <module>ftplet-api</module>
+    <module>core</module>
+    <module>examples</module>
+    <module>distribution</module>
+  </modules>
 </project>
