diff --git a/src/bin/README.txt b/src/bin-deprecated/README.txt
similarity index 100%
rename from src/bin/README.txt
rename to src/bin-deprecated/README.txt
diff --git a/src/bin/bundle-upload/deploy-bundle b/src/bin-deprecated/bundle-upload/deploy-bundle
similarity index 100%
rename from src/bin/bundle-upload/deploy-bundle
rename to src/bin-deprecated/bundle-upload/deploy-bundle
diff --git a/src/bin/bundle-upload/test.sh b/src/bin-deprecated/bundle-upload/test.sh
similarity index 100%
rename from src/bin/bundle-upload/test.sh
rename to src/bin-deprecated/bundle-upload/test.sh
diff --git a/src/bin/cmd-for-rssh.sh b/src/bin-deprecated/cmd-for-rssh.sh
similarity index 100%
rename from src/bin/cmd-for-rssh.sh
rename to src/bin-deprecated/cmd-for-rssh.sh
diff --git a/src/bin/crontab.txt b/src/bin-deprecated/crontab.txt
similarity index 100%
rename from src/bin/crontab.txt
rename to src/bin-deprecated/crontab.txt
diff --git a/src/bin/fixes/2006-11-16-m1-m2-plugin-conversion.sh b/src/bin-deprecated/fixes/2006-11-16-m1-m2-plugin-conversion.sh
similarity index 100%
rename from src/bin/fixes/2006-11-16-m1-m2-plugin-conversion.sh
rename to src/bin-deprecated/fixes/2006-11-16-m1-m2-plugin-conversion.sh
diff --git a/src/bin/fixes/README.txt b/src/bin-deprecated/fixes/README.txt
similarity index 100%
rename from src/bin/fixes/README.txt
rename to src/bin-deprecated/fixes/README.txt
diff --git a/src/bin/kill_long_runners.sh b/src/bin-deprecated/kill_long_runners.sh
similarity index 100%
rename from src/bin/kill_long_runners.sh
rename to src/bin-deprecated/kill_long_runners.sh
diff --git a/src/bin/m1-m2-conversion/archiva-cli-1.0-SNAPSHOT-cli.jar b/src/bin-deprecated/m1-m2-conversion/archiva-cli-1.0-SNAPSHOT-cli.jar
similarity index 100%
rename from src/bin/m1-m2-conversion/archiva-cli-1.0-SNAPSHOT-cli.jar
rename to src/bin-deprecated/m1-m2-conversion/archiva-cli-1.0-SNAPSHOT-cli.jar
Binary files differ
diff --git a/src/bin/m1-m2-conversion/conversion.properties b/src/bin-deprecated/m1-m2-conversion/conversion.properties
similarity index 100%
rename from src/bin/m1-m2-conversion/conversion.properties
rename to src/bin-deprecated/m1-m2-conversion/conversion.properties
diff --git a/src/bin/m1-m2-conversion/convert-m1-m2.sh b/src/bin-deprecated/m1-m2-conversion/convert-m1-m2.sh
similarity index 100%
rename from src/bin/m1-m2-conversion/convert-m1-m2.sh
rename to src/bin-deprecated/m1-m2-conversion/convert-m1-m2.sh
diff --git a/src/bin/stats.sh b/src/bin-deprecated/stats.sh
similarity index 100%
rename from src/bin/stats.sh
rename to src/bin-deprecated/stats.sh
diff --git a/src/bin/synchronize-central-to-cica.sh b/src/bin-deprecated/synchronize-central-to-cica.sh
similarity index 100%
rename from src/bin/synchronize-central-to-cica.sh
rename to src/bin-deprecated/synchronize-central-to-cica.sh
diff --git a/src/bin/synchronize-central-to-exist.sh b/src/bin-deprecated/synchronize-central-to-exist.sh
similarity index 100%
rename from src/bin/synchronize-central-to-exist.sh
rename to src/bin-deprecated/synchronize-central-to-exist.sh
diff --git a/src/bin/synchronize-central-to-ibiblio.sh b/src/bin-deprecated/synchronize-central-to-ibiblio.sh
similarity index 100%
rename from src/bin/synchronize-central-to-ibiblio.sh
rename to src/bin-deprecated/synchronize-central-to-ibiblio.sh
diff --git a/src/bin/synchronize-inbound.sh b/src/bin-deprecated/synchronize-inbound.sh
similarity index 100%
rename from src/bin/synchronize-inbound.sh
rename to src/bin-deprecated/synchronize-inbound.sh
diff --git a/src/bin/synchronize-m1-apache.sh b/src/bin-deprecated/synchronize-m1-apache.sh
similarity index 100%
rename from src/bin/synchronize-m1-apache.sh
rename to src/bin-deprecated/synchronize-m1-apache.sh
diff --git a/src/bin/synchronize-m1.sh b/src/bin-deprecated/synchronize-m1.sh
similarity index 100%
rename from src/bin/synchronize-m1.sh
rename to src/bin-deprecated/synchronize-m1.sh
diff --git a/src/bin/synchronize-nexus-repos.sh b/src/bin-deprecated/synchronize-nexus-repos.sh
similarity index 100%
rename from src/bin/synchronize-nexus-repos.sh
rename to src/bin-deprecated/synchronize-nexus-repos.sh
diff --git a/src/bin/synchronize-rewrite-rules-to-ibiblio.sh b/src/bin-deprecated/synchronize-rewrite-rules-to-ibiblio.sh
similarity index 100%
rename from src/bin/synchronize-rewrite-rules-to-ibiblio.sh
rename to src/bin-deprecated/synchronize-rewrite-rules-to-ibiblio.sh
diff --git a/src/bin/synchronize.properties b/src/bin-deprecated/synchronize.properties
similarity index 100%
rename from src/bin/synchronize.properties
rename to src/bin-deprecated/synchronize.properties
diff --git a/src/bin/synchronize/m1-m2-mod-rewrite-rules.txt b/src/bin-deprecated/synchronize/m1-m2-mod-rewrite-rules.txt
similarity index 100%
rename from src/bin/synchronize/m1-m2-mod-rewrite-rules.txt
rename to src/bin-deprecated/synchronize/m1-m2-mod-rewrite-rules.txt
diff --git a/src/bin/synchronize/m2-sync/sync.csv b/src/bin-deprecated/synchronize/m2-sync/sync.csv
similarity index 100%
rename from src/bin/synchronize/m2-sync/sync.csv
rename to src/bin-deprecated/synchronize/m2-sync/sync.csv
diff --git a/src/bin/synchronize/m2-sync/sync.csv.nexus b/src/bin-deprecated/synchronize/m2-sync/sync.csv.nexus
similarity index 100%
rename from src/bin/synchronize/m2-sync/sync.csv.nexus
rename to src/bin-deprecated/synchronize/m2-sync/sync.csv.nexus
diff --git a/src/bin/synchronize/m2-sync/sync.properties b/src/bin-deprecated/synchronize/m2-sync/sync.properties
similarity index 100%
rename from src/bin/synchronize/m2-sync/sync.properties
rename to src/bin-deprecated/synchronize/m2-sync/sync.properties
diff --git a/src/bin/synchronize/m2-sync/sync.properties.nexus b/src/bin-deprecated/synchronize/m2-sync/sync.properties.nexus
similarity index 100%
rename from src/bin/synchronize/m2-sync/sync.properties.nexus
rename to src/bin-deprecated/synchronize/m2-sync/sync.properties.nexus
diff --git a/src/bin/synchronize/syncopate/IniFiles.pm b/src/bin-deprecated/synchronize/syncopate/IniFiles.pm
similarity index 100%
rename from src/bin/synchronize/syncopate/IniFiles.pm
rename to src/bin-deprecated/synchronize/syncopate/IniFiles.pm
diff --git a/src/bin/synchronize/syncopate/conf/m1/apache.conf b/src/bin-deprecated/synchronize/syncopate/conf/m1/apache.conf
similarity index 100%
rename from src/bin/synchronize/syncopate/conf/m1/apache.conf
rename to src/bin-deprecated/synchronize/syncopate/conf/m1/apache.conf
diff --git a/src/bin/synchronize/syncopate/conf/m1/codehaus.conf b/src/bin-deprecated/synchronize/syncopate/conf/m1/codehaus.conf
similarity index 100%
rename from src/bin/synchronize/syncopate/conf/m1/codehaus.conf
rename to src/bin-deprecated/synchronize/syncopate/conf/m1/codehaus.conf
diff --git a/src/bin/synchronize/syncopate/conf/m1/maven-plugins-sf.conf b/src/bin-deprecated/synchronize/syncopate/conf/m1/maven-plugins-sf.conf
similarity index 100%
rename from src/bin/synchronize/syncopate/conf/m1/maven-plugins-sf.conf
rename to src/bin-deprecated/synchronize/syncopate/conf/m1/maven-plugins-sf.conf
diff --git a/src/bin/synchronize/syncopate/conf/m1/mortbay.conf b/src/bin-deprecated/synchronize/syncopate/conf/m1/mortbay.conf
similarity index 100%
rename from src/bin/synchronize/syncopate/conf/m1/mortbay.conf
rename to src/bin-deprecated/synchronize/syncopate/conf/m1/mortbay.conf
diff --git a/src/bin/synchronize/syncopate/conf/m1/objectweb.conf b/src/bin-deprecated/synchronize/syncopate/conf/m1/objectweb.conf
similarity index 100%
rename from src/bin/synchronize/syncopate/conf/m1/objectweb.conf
rename to src/bin-deprecated/synchronize/syncopate/conf/m1/objectweb.conf
diff --git a/src/bin/synchronize/syncopate/conf/m1/opensymphony.conf b/src/bin-deprecated/synchronize/syncopate/conf/m1/opensymphony.conf
similarity index 100%
rename from src/bin/synchronize/syncopate/conf/m1/opensymphony.conf
rename to src/bin-deprecated/synchronize/syncopate/conf/m1/opensymphony.conf
diff --git a/src/bin/synchronize/syncopate/conf/m1/stage.conf b/src/bin-deprecated/synchronize/syncopate/conf/m1/stage.conf
similarity index 100%
rename from src/bin/synchronize/syncopate/conf/m1/stage.conf
rename to src/bin-deprecated/synchronize/syncopate/conf/m1/stage.conf
diff --git a/src/bin/synchronize/syncopate/conf/m1/test.conf b/src/bin-deprecated/synchronize/syncopate/conf/m1/test.conf
similarity index 100%
rename from src/bin/synchronize/syncopate/conf/m1/test.conf
rename to src/bin-deprecated/synchronize/syncopate/conf/m1/test.conf
diff --git a/src/bin/synchronize/syncopate/exclusions-nexus.txt b/src/bin-deprecated/synchronize/syncopate/exclusions-nexus.txt
similarity index 100%
rename from src/bin/synchronize/syncopate/exclusions-nexus.txt
rename to src/bin-deprecated/synchronize/syncopate/exclusions-nexus.txt
diff --git a/src/bin/synchronize/syncopate/exclusions.txt b/src/bin-deprecated/synchronize/syncopate/exclusions.txt
similarity index 100%
rename from src/bin/synchronize/syncopate/exclusions.txt
rename to src/bin-deprecated/synchronize/syncopate/exclusions.txt
diff --git a/src/bin/synchronize/syncopate/sync b/src/bin-deprecated/synchronize/syncopate/sync
similarity index 100%
rename from src/bin/synchronize/syncopate/sync
rename to src/bin-deprecated/synchronize/syncopate/sync
diff --git a/src/bin/synchronize/syncopate/sync.new b/src/bin-deprecated/synchronize/syncopate/sync.new
similarity index 100%
rename from src/bin/synchronize/syncopate/sync.new
rename to src/bin-deprecated/synchronize/syncopate/sync.new
diff --git a/src/bin/synchronize/syncopate/syncopate.conf b/src/bin-deprecated/synchronize/syncopate/syncopate.conf
similarity index 100%
rename from src/bin/synchronize/syncopate/syncopate.conf
rename to src/bin-deprecated/synchronize/syncopate/syncopate.conf
diff --git a/src/mrsk/id_dsa.pub b/src/maven-key/id_dsa.pub
similarity index 100%
rename from src/mrsk/id_dsa.pub
rename to src/maven-key/id_dsa.pub
diff --git a/src/mrmk/README.apt b/src/mrmk/README.apt
deleted file mode 100644
index c159f78..0000000
--- a/src/mrmk/README.apt
+++ /dev/null
@@ -1,31 +0,0 @@
- ----
- Maven Repository Mirroring Kit
- -----
- Jason van Zyl
- -----
- 17 October 2006
- -----
-
-Maven Repository Mirroring Kit
-
-Requirements
-
- * SSH
- 
- * Rsync
- 
- * Maven's public SSH key
-
- * Sample Maven sync configuration (sample.conf)
-
- * Project PGP key
-
-Preparations
-
- * Create a user account with an id of <<<maven>>>
- 
- * Setup SSH for the <<<maven>>> user
-
- * Create a valid Maven sync configuration
- 
- * Submit configuration
diff --git a/src/mrmk/sample.conf b/src/mrmk/sample.conf
deleted file mode 100644
index 744d40b..0000000
--- a/src/mrmk/sample.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-[info]
-id = org.foo
-name = My Software Foundation
-contact = you@foo.org
-
-[host]
-address=repository.foo.org
-directory=/www/maven-2-repository
-rsyncUser=maven
diff --git a/src/mrsk/README.apt b/src/mrsk/README.apt
deleted file mode 100644
index c65789e..0000000
--- a/src/mrsk/README.apt
+++ /dev/null
@@ -1,31 +0,0 @@
- ----
- Maven Repository Syncing Kit
- -----
- Jason van Zyl
- -----
- 17 October 2006
- -----
-
-Maven Repository Syncing Kit
-
-Requirements
-
- * SSH
- 
- * Rsync
- 
- * Maven's public SSH key
-
- * Sample Maven sync configuration (sample.conf)
-
- * Project PGP key
-
-Preparations
-
- * Create a user account with an id of <<<maven>>>
- 
- * Setup SSH for the <<<maven>>> user
-
- * Create a valid Maven sync configuration
- 
- * Submit configuration
diff --git a/src/mrsk/sample.conf b/src/mrsk/sample.conf
deleted file mode 100644
index 744d40b..0000000
--- a/src/mrsk/sample.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-[info]
-id = org.foo
-name = My Software Foundation
-contact = you@foo.org
-
-[host]
-address=repository.foo.org
-directory=/www/maven-2-repository
-rsyncUser=maven
diff --git a/src/site/apt/repository-synchronization-refactor-20050406.apt b/src/site/apt/repository-synchronization-refactor-20050406.apt
deleted file mode 100644
index df62682..0000000
--- a/src/site/apt/repository-synchronization-refactor-20050406.apt
+++ /dev/null
@@ -1,127 +0,0 @@
-  ---
-  Maven Repository Synchronization Refactor: Summary of Changes
-  ---
-  John Casey
-  ---
-  2005-April-06
-  ---
-  
-~~ Copyright 2006 The Apache Software Foundation.
-~~
-~~ Licensed 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/guides/mini/guide-apt-format.html
-
-Summary of Changes for the Maven Repository Synchronization Process
-
-*Abstract
-
-  In order to support the impending release of maven2 from a production-ready
-  repository on ibiblio.org, several things had to be changed. Most importantly,
-  we had to somehow find a way to synchronize the maven1 repository and feeds
-  with maven2's repository, and find a way to integrate this conversion process
-  with the synchronization already taking place on beaver.codehaus.org.
-  
-  What follows is a description of the changes I made to the original maven1 
-  synchronization process in order to accommodate maven2's release.
-  
-*Conversion
-
-  First, we needed a reliable tool to convert a maven1 repository into a maven2
-  repository. There are several tasks involved in this process:
-  
-  [[1]] Parsing artifact paths for artifact information.
-  
-  [[2]] Moving artifacts from source repo to target repo, reformatting the
-        relative artifact paths along the way (to conform with the new repo
-        layout for m2).
-  
-  [[3]] Translating m1 POMs into m2 POMs, and creating skeletal POMs where they
-        were missing, using the artifact information parsed in [1] above.
-  
-  [[4]] Repairing and/or moving MD5 checksums for each artifact from source to
-        target repository.
-        
-  [[5]] Preserving a good log of errors encountered during the conversion
-        process, for later auditing.
-        
-  Since I had limited time with which to implement a solution, and didn't have
-  much familiarity with pre-existing repository conversion tools made by Carlos
-  et al. I decided to design my own solution to the problem, and worry about
-  merging with other tools later.
-  
-  The solution I have created is called repoclean, and can be found in
-  <<<maven-components/sandbox/repoclean>>>. It's a plexus application, with some
-  basic bash shell scripts used to install and run the application. The steps
-  enumerated above were implemented as separate components, then stitched 
-  together with a Main class and controller component which serves as the entry
-  point for Main.
-  
-  As a final point, the reporting takes place both at the entire-process level
-  for operations such as artifact discovery, and at the per-artifact level. A
-  report is only written in the event of an error or warning, and per-artifact
-  reports are mentioned in the entire-process report if they contained an error.
-  In the event that an error was detected, the entire-process report should be
-  mailed to the m2-dev list with a subject similar to: <<[REPOCLEAN] Error(s)
-  occurred while converting the repository>>. Other reports can be found in the
-  reports directory of the sync work directory (mentioned below).
-  
-*Synchronization
-
-  Now, the synchronization process as-is was only maintaining a maven1 repository
-  from a set of feeds. In order to refactor this into a maintenance process for
-  both maven1 and maven2 repositories, I had to make a few minor changes.
-  
-  In order to aid in understanding this process, I moved the tools suite into
-  $HOME/repository-tools. I moved the synchronization work directory (the 
-  directory into which all feeds will copy, and which the outbound rsync will
-  use as a source) into $HOME/repository-staging. The tools suite (in
-  $HOME/repository-tools) does NOT contain the only copy of syncopate and the
-  outbound rsync script, only the copies I made and modified for the new
-  synchronization process...this was an insurance policy made to allow rollback.
-  
-  As I said, I made some minor changes to the existing process. These mainly 
-  consisted of reconfiguring syncopate and the outbound rsync script to use the
-  new directory structures, along with adding a control script which would be 
-  called from cron, and which would inject a call to repoclean into the middle
-  of the process. The new controller script was used to consolidate all 
-  synchronization logic into the repository-tools directory, and expose it all
-  equally as scripts to be maintained as a unit. Now, the crontab entry is very
-  simple, only referencing the controller script.
-  
-  The new synchronization process executes the following operations:
-  
-  [[1]] Run syncopate to collect new artifacts from the feeder repositories.
-  
-        <<Syncopate location:>> $HOME/repository-tools/syncopate
-        <<Target repository location:>> $HOME/repository-staging/to-ibiblio/maven
-        
-  [[2]] Run repoclean to convert any new added or updated artifacts to the
-        maven2 repository work directory.
-        
-        <<Repoclean location:>> $HOME/repository-tools/repoclean
-        <<Source repository location:>> $HOME/repository-staging/to-ibiblio/maven
-        <<Target repository location:>> $HOME/repository-staging/to-ibiblio/maven2
-        
-  [[3]] Run the rsync to ibiblio.
-  
-        <<Rsync script location:>> $HOME/repository-tools/ibiblio-sync/synchronize-codehaus-to-ibiblio.sh
-        
-        <<*NOTE:>> This is accomplished as two separate rsync operations, to 
-        avoid unwanted directories being added to the outbound rsync (which 
-        would land in /public/html on ibiblio...a big no-no).
-   
-   All of the old synchronization stuff is still in place, with the exception of
-   the old version of the canonical repositories, which were removed to keep our
-   space usage to a minimum on beaver.codehaus.org.
\ No newline at end of file
diff --git a/src/site/fml/faq.fml b/src/site/fml/faq.fml
deleted file mode 100644
index 9eb48e0..0000000
--- a/src/site/fml/faq.fml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<faqs id="General FAQ">
-  <part id="General">
-    <faq id="where">
-      <question>Where did Maven come from?</question>
-      <answer>
-        <p>
-          Maven was created by a group of software developers who were tired
-          of wasting their time fiddling around with builds and wanted to get
-          down to brass tacks and actually develop software!
-        </p>
-      </answer>
-    </faq>
-    <faq id="why">
-      <question>Why is maven so wildly popular?</question>
-      <answer>
-        <p>
-          Maven saves you so much time in your software development efforts that
-          you will have time to learn a second language, relax ten hours a
-          day, and train for that marathon you've always wanted to run!
-        </p>
-      </answer>
-    </faq>
-  </part>
-</faqs>
diff --git a/src/site/fr/apt/format.apt b/src/site/fr/apt/format.apt
deleted file mode 100644
index ab1c602..0000000
--- a/src/site/fr/apt/format.apt
+++ /dev/null
@@ -1,596 +0,0 @@
-
-Le format APT
-~~~~~~~~~~~~~
-
-   Dans la section suivante, les bo?tes contenant du texte dans la police
-   de type machine ? ?crire sont des exemples de source APT.
-
-* Structure du document
-~~~~~~~~~~~~~~~~~~~~~~~
-
-  A short APT document is contained in a single text file. A longer document
-  may be contained in a ordered list of text files. For instance, first text
-  file contains section 1, second text file contains section 2, and so on.
-
-      [Note:] Splitting the APT document in several text files on a section
-              boundary is not mandatory. The split may occur anywhere.
-              However doing so is recommended because a text file containing a
-              section is by itself a valid APT document.
-
-  A file contains a sequence of paragraphs and ``displays'' (non paragraphs
-  such as tables) separated by open lines.
-
-  A paragraph is simply a sequence of consecutive text lines.
-
-+------------------------------------------------------------------------+
-  First line of first paragraph.
-  Second line of first paragraph.
-  Third line of first paragraph.
-  
-  Line 1 of paragraph 2 (separated from first paragraph by an open line).
-  Line 2 of paragraph 2.
-+------------------------------------------------------------------------+
-
-  The indentation of the first line of a paragraph is the main method used by
-  an APT processor to recognize the type of the paragraph. For example, a
-  section title must not be indented at all.
-
-  A ``plain'' paragraph must be indented by a certain amount of space. For
-  example, a plain paragraph which is not contained in a list may be indented
-  by two spaces.
-
-+-------------------------------------------------+
-My section title (not indented).
-
-  My paragraph first line (indented by 2 spaces).
-+-------------------------------------------------+
-
-  Indentation is not rigid. Any amount of space will do. You don't even need
-  to use a consistent indentation all over your document. What really matters
-  for an APT processor is whether the paragraph is not indented at all or,
-  when inside a list, whether a paragraph is more or less indented than the
-  first item of the list (more about this later).
-
-+-------------------------------------------------------+
-    First paragraph has its first line indented by four
-spaces. Then the author did even bother to indent the
-other lines of the paragraph.
-
-  Second paragraph contains several lines which are all 
-  indented by two spaces. This style is much nicer than 
-  the one used for the previous paragraph.
-+-------------------------------------------------------+
-
-  Note that tabs are expanded with a tab width set to 8.
-
-* Document elements
-~~~~~~~~~~~~~~~~~~~
-
-** Block level elements
-~~~~~~~~~~~~~~~~~~~~~~~
-
-*** Title
-~~~~~~~~~~
-
-  A title is optional. If used, it must appear as the first block of the
-  document.
-
-+----------------------------------------------------------------------------+
-				    ------
-				    Title
-				    ------
-				    Author
-				    ------
-				     Date
-+----------------------------------------------------------------------------+
-
-  A title block is indented (centering it is nicer). It begins with a line
-  containing at least 3 dashes (<<<--->>>).
-
-  After the first <<<--->>> line, one or several consecutive lines of text
-  (implicit line break after each line) specify the title of the document.
-
-  This text may immediately be followed by another <<<--->>> line and one or
-  several consecutive lines of text which specifies the author of the
-  document.
-
-  The author sub-block may optionaly be followed by a date sub-block using the
-  same syntax.
-
-  The following example is used for a document with an title and a date but
-  with no declared author.
-
-+----------------------------------------------------------------------------+
-				    ------
-				    Title
-				    ------
-				    ------
-				     Date
-				    ------
-+----------------------------------------------------------------------------+
-
-  The last line is ignored. It is just there to make the block nicer.
-
-*** Paragraph
-~~~~~~~~~~~~~
-
-  Paragraphs other than the title block may appear before the first section.
-
-+----------------------+
-  Paragraph 1, line 1.
-  Paragraph 1, line 2.
-
-  Paragraph 2, line 1.
-  Paragraph 2, line 2.
-+----------------------+
-
-  Paragraphs are indented. They have already been described in the {{document
-  structure}} section.
-
-*** Section
-~~~~~~~~~~~
-
-  Sections are created by inserting section titles into the document. Simple
-  documents need not contain sections.
-
-+-----------------------------------+
-Section title
-
-* Sub-section title
-
-** Sub-sub-section title
-
-*** Sub-sub-sub-section title
-
-**** Sub-sub-sub-sub-section title
-+-----------------------------------+
-
-  Section titles are not indented. A sub-section title begins with one
-  asterisk (<<<*>>>), a sub-sub-section title begins with two asterisks
-  (<<<**>>>), and so forth up to four sub-section levels.
-
-*** List
-~~~~~~~~
-
-+---------------------------------------+
-      * List item 1.
-
-      * List item 2.
-
-	Paragraph contained in list item 2.
-
-	    * Sub-list item 1.
-
-	    * Sub-list item 2.
-
-      * List item 3.
-+---------------------------------------+
-
-  List items are indented and begin with a asterisk (<<<*>>>). 
-
-  Plain paragraphs more indented than the first list item are nested in that
-  list. Displays such as tables (not indented) are always nested in the
-  current list.
-
-  To nest a list inside a list, indent its first item more than its parent
-  list. To end a list, add a paragraph or list item less indented than the
-  current list.
-
-  Section titles always end a list. Displays cannot end a list but the
-  <<<[]>>> pseudo-element may be used to force the end of a list.
-
-+------------------------------------+
-      * List item 3.
-        Force end of list:
-
-      []
-
---------------------------------------------
-Verbatim text not contained in list item 3
---------------------------------------------
-+------------------------------------+
-
-  In the previous example, without the <<<[]>>>, the verbatim text (not
-  indented as all displays) would have been contained in list item 3.
-
-  A single <<<[]>>> may be used to end several nested lists at the same
-  time. The indentation of <<<[]>>> may be used to specify exactly which
-  lists should be ended. Example:
-
-+------------------------------------+
-      * List item 1.
-
-      * List item 2.
-
-	    * Sub-list item 1.
-
-	    * Sub-list item 2.
-
-	    []
-
--------------------------------------------------------------------
-Verbatim text contained in list item 2, but not in sub-list item 2
--------------------------------------------------------------------
-+------------------------------------+
-
-  There are three kind of lists, the bulleted lists we have already described,
-  the numbered lists and the definition lists.
-
-+-----------------------------------------+
-      [[1]] Numbered item 1.
-
-                [[A]] Numbered item A.
-
-                [[B]] Numbered item B.
-
-      [[2]] Numbered item 2.
-+-----------------------------------------+
-
-  A numbered list item begins with a label beetween two square brackets. The
-  label of the first item establishes the numbering scheme for the whole list:
-
-      [<<<[[1\]\]>>>] Decimal numbering: 1, 2, 3, 4, etc.
-
-      [<<<[[a\]\]>>>] Lower-alpha numbering: a, b, c, d, etc.
-
-      [<<<[[A\]\]>>>] Upper-alpha numbering: A, B, C, D, etc.
-
-      [<<<[[i\]\]>>>] Lower-roman numbering: i, ii, iii, iv, etc.
-
-      [<<<[[I\]\]>>>] Upper-roman numbering: I, II, III, IV, etc.
-
-  The labels of the items other than the first one are ignored. It is
-  recommended to take the time to type the correct label for each item in
-  order to keep the APT source document readable.
-
-+-------------------------------------------+
-      [Defined term 1] of definition list 2.
-
-      [Defined term 2] of definition list 2.
-+-------------------------------------------+
-
-  A definition list item begins with a defined term: text between square
-  brackets.
-
-*** Verbatim text
-~~~~~~~~~~~~~~~~~
-
-+----------------------------------------+
-----------------------------------------
-Verbatim 
-	 text,
-		preformatted,
-				escaped.
-----------------------------------------
-+----------------------------------------+
-
-  A verbatim block is not indented. It begins with a non indented line
-  containing at least 3 dashes (<<<--->>>). It ends with a similar line.
-
-  <<<+-->>> instead of <<<--->>> draws a box around verbatim text.
-
-  Like in HTML, verbatim text is preformatted. Unlike HTML, verbatim text is
-  escaped: inside a verbatim display, markup is not interpreted by the APT
-  processor.
-
-*** Figure
-~~~~~~~~~~
-
-+---------------------------+
-[Figure name] Figure caption
-+---------------------------+
-
-  A figure block is not indented. It begins with the figure name between
-  square brackets. The figure name is optionally followed by some text: the
-  figure caption.
-
-  The figure name is the pathname of the file containing the figure but
-  without an extension. Example: if your figure is contained in
-  <<</home/joe/docs/mylogo.jpeg>>>, the figure name is
-  <<</home/joe/docs/mylogo>>>.
-
-  If the figure name comes from a relative pathname (recommended practice)
-  rather than from an absolute pathname, this relative pathname is taken to be
-  relative to the directory of the current APT document (a la HTML)
-  rather than relative to the current working directory.
-
-  Why not leave the file extension in the figure name? This is better
-  explained by an example. You need to convert an APT document to PostScript
-  and your figure name is <<</home/joe/docs/mylogo>>>. A APT processor will
-  first try to load <<</home/joe/docs/mylogo.eps>>>. When the desired format
-  is not found, a APT processor tries to convert one of the existing
-  formats. In our example, the APT processor tries to convert
-  <<</home/joe/docs/mylogo.jpeg>>> to encapsulated PostScript.
-
-*** Table
-~~~~~~~~~
-
-  A table block is not indented. It begins with a non indented line containing
-  an asterisk and at least 2 dashes (<<<*-->>>). It ends with a
-  similar line.
-
-  The first line is not only used to recognize a table but also to specify
-  column justification. In the following example, 
-
-      * the second asterisk (<<<*>>>) is used to specify that column 1 is
-        centered,
-
-      * the plus sign (<<<+>>>) specifies that column 2 is left aligned, 
-
-      * the colon (<<<:>>>) specifies that column 3 is right aligned.
-
-      []
-
-+---------------------------------------------+
-*----------*--------------+----------------:
-| Centered | Left-aligned | Right-aligned  |
-| cell 1,1 | cell 1,2     | cell 1,3       |
-*----------*--------------+----------------:
-| cell 2,1 | cell 2,2     | cell 2,3       |
-*----------*--------------+----------------:
-Table caption
-+---------------------------------------------+
-
-  Rows are separated by a non indented line beginning with <<<*-->>>.
-
-  An optional table caption (non indented text) may immediately follow the
-  table.
-
-  Rows may contain single line or multiple line cells. Each line of cell text
-  is separated from the adjacent cell by the pipe character (<<<|>>>).
-  (<<<|>>> may be used in the cell text if quoted: <<<\\|>>>.)
-
-  The last <<<|>>> is only used to make the table nicer.  The first <<<|>>> is
-  not only used to make the table nicer, but also to specify that a grid is to
-  be drawn around table cells.
-
-  The following example shows a simple table with no grid and no caption.
-
-+---------------+
-*-----*------*
- cell | cell
-*-----*------*
- cell | cell
-*-----*------*
-+---------------+
-
-*** Horizontal rule
-~~~~~~~~~~~~~~~~~~~
-
-+---------------------+
-=====================
-+---------------------+
-
-  A non indented line containing at least 3 equal signs (<<<===>>>).
-
-*** Page break
-~~~~~~~~~~~~~~
-
-+---+
-^L
-+---+
-
-  A non indented line containing a single form feed character (Control-L).
-
-** Text level elements
-~~~~~~~~~~~~~~~~~~~~~~
-
-*** Font
-~~~~~~~~
-
-+-----------------------------------------------------+
-  <Italic> font. <<Bold>> font. <<<Monospaced>>> font.
-+-----------------------------------------------------+
-
-  Text between \< and > must be rendered in italic. Text between \<\< and >>
-  must be rendered in bold. Text between \<\<\< and >>> must be rendered using
-  a monospaced, typewriter-like font.
-
-  Font elements may appear anywhere except inside other font elements.
-
-  It is not recommended to use font elements inside titles, section titles,
-  links and defined terms because a APT processor automatically applies
-  appropriate font styles to these elements.
-
-*** Anchor and link
-~~~~~~~~~~~~~~~~~~~
-
-+-----------------------------------------------------------------+
-  {Anchor}. Link to {{anchor}}. Link to {{http://www.pixware.fr}}. 
-  Link to {{{anchor}showing alternate text}}.
-  Link to {{{http://www.pixware.fr}Pixware home page}}.
-+-----------------------------------------------------------------+
-
-  Text between curly braces (<<<\{}>>>) specifies an anchor. Text between
-  double curly braces (<<<\{\{}}>>>) specifies a link.
-
-  It is an error to create a link element that does not refer to an anchor of
-  the same name. The name of an anchor/link is its text with all non
-  alphanumeric characters stripped.
-
-  This rule does not apply to links to <external> anchors. Text beginning
-  with <<<http:/>>>, <<<https:/>>>, <<<ftp:/>>>, <<<file:/>>>, <<<mailto:>>>,
-  <<<../>>>, <<<./>>> (<<<..\\>>> and <<<.\\>>> on Windows) is recognized as
-  an external anchor name.
-
-  When the construct <<\{\{\{>><name><<}>><text><<}}>> is used, the link text
-  <text> may differ from the link name <name>.
-
-  Anchor/link elements may appear anywhere except inside other anchor/link
-  elements.
-
-  Section titles are implicitly defined anchors.
-
-*** Line break
-~~~~~~~~~~~~~~
-
-+-------------+
-  Force line\
-  break.
-+-------------+
-
-  A backslash character (<<<\\>>>) followed by a newline character.
-
-  Line breaks must not be used inside titles and tables (which are line
-  oriented blocks with implicit line breaks).
-
-*** Non breaking space
-~~~~~~~~~~~~~~~~~~~~~~
-
-+----------------------+
-  Non\ breaking\ space.
-+----------------------+
-
-  A backslash character (<<<\\>>>) followed by a space character.
-
-*** Special character
-~~~~~~~~~~~~~~~~~~~~~
-
-+---------------------------------------------------------------------------+
-  Escaped special characters: \~, \=, \-, \+, \*, \[, \], \<, \>, \{, \}, \\.
-+---------------------------------------------------------------------------+
-
-  In certain contexts, these characters have a special meaning and therefore
-  must be escaped if needed as is. They are escaped by adding a backslash in
-  front of them. The backslash may itself be escaped by adding another
-  backslash in front of it.
-
-  Note that an asterisk, for example, needs to be escaped only if its begins a
-  paragraph. (<<<*>>> has no special meaning in the middle of a paragraph.)
-
-+--------------------------------------+
-  Copyright symbol: \251, \xA9, \u00a9.
-+--------------------------------------+
-
-  Latin-1 characters (whatever is the encoding of the APT document) may be
-  specified by their codes using a backslash followed by one to three octal
-  digits or by using the <<<\x>>><NN> notation, where <NN> are two hexadecimal
-  digits.
-
-  Unicode characters may be specified by their codes using the <<<\u>>><NNNN>
-  notation, where <NNNN> are four hexadecimal digits.
-
-*** Comment
-~~~~~~~~~~~
-
-+---------------+
-~~Commented out.
-+---------------+
-
-  Text found after two tildes (<<<\~~>>>) is ignored up to the end of line.
-
-  A line of <<<~>>> is often used to ``underline'' section titles in order to
-  make them stand out of other paragraphs.
-
-
-* The APT format at a glance
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-------------------------------------------------------------------------------
-				    ------
-				    Title
-				    ------
-				    Author
-				    ------
-				     Date
-
-  Paragraph 1, line 1.
-  Paragraph 1, line 2.
-
-  Paragraph 2, line 1.
-  Paragraph 2, line 2.
-
-Section title
-
-* Sub-section title
-
-** Sub-sub-section title
-
-*** Sub-sub-sub-section title
-
-**** Sub-sub-sub-sub-section title
-
-      * List item 1.
-
-      * List item 2.
-
-	Paragraph contained in list item 2.
-
-	    * Sub-list item 1.
-
-	    * Sub-list item 2.
-
-      * List item 3.
-        Force end of list:
-
-      []
-
-+------------------------------------------+
-Verbatim text not contained in list item 3
-+------------------------------------------+
-
-      [[1]] Numbered item 1.
-
-                [[A]] Numbered item A.
-
-                [[B]] Numbered item B.
-
-      [[2]] Numbered item 2.
-
-  List numbering schemes: [[1]], [[a]], [[A]], [[i]], [[I]].
-
-      [Defined term 1] of definition list.
-
-      [Defined term 2] of definition list.
-
-+-------------------------------+
-Verbatim text
-			in a box	
-+-------------------------------+
-
-  --- instead of +-- suppresses the box around verbatim text.
-
-[Figure name] Figure caption
-
-*----------*--------------+----------------:
-| Centered | Left-aligned | Right-aligned  |
-| cell 1,1 | cell 1,2     | cell 1,3       |
-*----------*--------------+----------------:
-| cell 2,1 | cell 2,2     | cell 2,3       |
-*----------*--------------+----------------:
-Table caption
-
-  No grid, no caption:
-
-*-----*------*
- cell | cell
-*-----*------*
- cell | cell
-*-----*------*
-
-  Horizontal line:
-
-=======================================================================
-
-^L
-  New page.
-
-  <Italic> font. <<Bold>> font. <<<Monospaced>>> font.
-
-  {Anchor}. Link to {{anchor}}. Link to {{http://www.pixware.fr}}. 
-  Link to {{{anchor}showing alternate text}}.
-  Link to {{{http://www.pixware.fr}Pixware home page}}.
-
-  Force line\
-  break.
-
-  Non\ breaking\ space.
-
-  Escaped special characters: \~, \=, \-, \+, \*, \[, \], \<, \>, \{, \}, \\.
-
-  Copyright symbol: \251, \xA9, \u00a9.
-
-~~Commented out.
-
-------------------------------------------------------------------------------
-
diff --git a/src/site/fr/apt/index.apt b/src/site/fr/apt/index.apt
deleted file mode 100644
index e5f8c18..0000000
--- a/src/site/fr/apt/index.apt
+++ /dev/null
@@ -1,17 +0,0 @@
- -----
- Le Site
- -----
- L'?quipe Maven
- -----
-
-Site Maven pour votre projet
-
- F?licitations!  Si vous regardez cette page alors vous avez
- g?n?r? avec succ?s un mod?le de site en utilisant l'arch?type
- de site et vous avez lanc? :
-  
-+-----+
-
-m2 site:site
-
-+-----+
diff --git a/src/site/fr/fml/faq.fml b/src/site/fr/fml/faq.fml
deleted file mode 100644
index 1f50c35..0000000
--- a/src/site/fr/fml/faq.fml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<faqs id="FAQ G?n?ral">
-  <part id="General">
-    <faq id="where">
-      <question>D'o? vient Maven</question>
-      <answer>
-        <p>
-          Maven was created by a group of software developers who were tired
-          of wasting their time fiddling around with builds and wanted to get
-          down to brass tacks and actually develop software!
-        </p>
-      </answer>
-    </faq>
-    <faq id="why">
-      <question>Pourquoi Maven est-il si populaire?</question>
-      <answer>
-        <p>
-          Maven saves you so much time in your software development efforts that
-          you will have time to learn a second language, relax ten hours a
-          day, and train for that marathon you've always wanted to run!
-        </p>
-      </answer>
-    </faq>
-  </part>
-</faqs>
diff --git a/src/site/fr/xdoc/xdoc.xml b/src/site/fr/xdoc/xdoc.xml
deleted file mode 100644
index f9c869c..0000000
--- a/src/site/fr/xdoc/xdoc.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<document>
-  <properties>
-    <title>Bienvenue</title>
-    <author email="dev@maven.apache.org">The Maven Team</author>
-  </properties>
-  <body>
-    <section name="Bienvenue dans un fichier XDOC!">
-      <p>
-        Ceci est du texte pour le fichier xdoc.
-      </p>
-    </section>
-  </body>
-</document>
-
diff --git a/src/site/site.xml b/src/site/site.xml
deleted file mode 100644
index 803a830..0000000
--- a/src/site/site.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<project name="Maven">
-  <bannerLeft>
-    <name>Maven</name>
-    <src>http://maven.apache.org/images/apache-maven-project.png</src>
-    <href>http://maven.apache.org/</href>
-  </bannerLeft>
-  <bannerRight>
-    <src>http://maven.apache.org/images/maven-small.gif</src>
-  </bannerRight>
-  <body>
-    <links>
-      <item name="Apache" href="http://www.apache.org/" />
-      <item name="Maven 1.0" href="http://maven.apache.org/"/>
-      <item name="Maven 2" href="http://maven.apache.org/maven2/"/>
-    </links>
-
-    <menu name="Maven 2.0">
-      <item name="APT Format" href="format.html"/>
-      <item name="FAQ" href="faq.html"/>
-      <item name="Xdoc Example" href="xdoc.html"/>      
-    </menu>
-  </body>
-</project>
diff --git a/src/site/site_fr.xml b/src/site/site_fr.xml
deleted file mode 100644
index 9ed5732..0000000
--- a/src/site/site_fr.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<project name="Maven">
-  <bannerLeft>
-    <name>Maven</name>
-    <src>http://maven.apache.org/images/apache-maven-project.png</src>
-    <href>http://maven.apache.org/</href>
-  </bannerLeft>
-  <bannerRight>
-    <src>http://maven.apache.org/images/maven-small.gif</src>
-  </bannerRight>
-  <body>
-    <links>
-      <item name="Apache" href="http://www.apache.org/" />
-      <item name="Maven 1.0" href="http://maven.apache.org/"/>
-      <item name="Maven 2" href="http://maven.apache.org/maven2/"/>
-    </links>
-
-    <menu name="Maven 2.0">
-      <item name="Format APT" href="format.html"/>
-      <item name="FAQ" href="faq.html"/>
-      <item name="Exemple Xdoc" href="xdoc.html"/>      
-    </menu>
-  </body>
-</project>
diff --git a/src/site/xdoc/xdoc.xml b/src/site/xdoc/xdoc.xml
deleted file mode 100644
index 1b3e4f6..0000000
--- a/src/site/xdoc/xdoc.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<document>
-  <properties>
-    <title>Welcome</title>
-    <author email="dev@maven.apache.org">The Maven Team</author>
-  </properties>
-  <body>
-    <section name="Welcome to an XDOC file!">
-      <p>
-        This is some text for the xdoc file.
-      </p>
-    </section>
-  </body>
-</document>
-
