diff --git a/maven/doxia-tools/site-pom.xml b/maven/doxia-tools/site-pom.xml
new file mode 100644
index 0000000..809c739
--- /dev/null
+++ b/maven/doxia-tools/site-pom.xml
@@ -0,0 +1,43 @@
+<?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.
+-->
+
+<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">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven</groupId>
+    <artifactId>maven-parent.</artifactId>
+    <version>30-SNAPSHOT</version>
+    <relativePath>../site-pom.xml</relativePath>
+  </parent>
+
+  <groupId>org.apache.maven.doxia</groupId>
+  <artifactId>doxia-tools</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Apache Maven Doxia Tools Parent POM</name>
+  <description>This project consists of a POM that contains settings that are likely to be useful to any Maven Doxia Tool that is building and releasing code with Maven.</description>
+
+  <issueManagement>
+    <system>jira</system>
+    <url>http://issues.apache.org/jira/browse/MPOM/component/12328319</url>
+  </issueManagement>
+</project>
diff --git a/maven/doxia-tools/src/site-docs/apt/index.apt.vm b/maven/doxia-tools/src/site-docs/apt/index.apt.vm
new file mode 100644
index 0000000..dbb6d46
--- /dev/null
+++ b/maven/doxia-tools/src/site-docs/apt/index.apt.vm
@@ -0,0 +1,32 @@
+ -----
+ Introduction
+ -----
+ Hervé Boutemy
+ -----
+ 2015-11-21
+ -----
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
+${project.name}
+
+    This POM is the common parent of all of the {{{/doxia/doxia-tools/}Maven Doxia Tools}}
+    in the Apache Maven project.
diff --git a/maven/doxia-tools/src/site-docs/site.xml b/maven/doxia-tools/src/site-docs/site.xml
new file mode 100644
index 0000000..e63243c
--- /dev/null
+++ b/maven/doxia-tools/src/site-docs/site.xml
@@ -0,0 +1,32 @@
+<?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.
+-->
+
+<project xmlns="http://maven.apache.org/DECORATION/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/DECORATION/1.1.0 http://maven.apache.org/xsd/decoration-1.1.0.xsd">
+  <body>
+    <breadcrumbs>
+      <item name="Maven" href="http://maven.apache.org/pom/maven/index.html" />
+      <item name="Doxia Tools" href="http://maven.apache.org/pom/maven/doxia-tools/index.html" />
+    </breadcrumbs>
+
+    <menu ref="parent" />
+  </body>
+</project>
\ No newline at end of file
diff --git a/maven/maven-archetype-bundles/site-pom.xml b/maven/maven-archetype-bundles/site-pom.xml
new file mode 100644
index 0000000..7a5413c
--- /dev/null
+++ b/maven/maven-archetype-bundles/site-pom.xml
@@ -0,0 +1,43 @@
+<?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.
+-->
+
+<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">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven</groupId>
+    <artifactId>maven-parent.</artifactId>
+    <version>30-SNAPSHOT</version>
+    <relativePath>../site-pom.xml</relativePath>
+  </parent>
+
+  <groupId>org.apache.maven.archetypes</groupId>
+  <artifactId>maven-archetypes-bundles</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Apache Maven Archetypes Parent POM</name>
+  <description>This project consists of a POM that contains settings that are likely to be useful to any Maven Archetype that is building and releasing code with Maven.</description>
+
+  <issueManagement>
+    <system>jira</system>
+    <url>http://issues.apache.org/jira/browse/MPOM/component/12328304</url>
+  </issueManagement>
+</project>
diff --git a/maven/maven-archetype-bundles/src/site-docs/apt/index.apt.vm b/maven/maven-archetype-bundles/src/site-docs/apt/index.apt.vm
new file mode 100644
index 0000000..dbb6d46
--- /dev/null
+++ b/maven/maven-archetype-bundles/src/site-docs/apt/index.apt.vm
@@ -0,0 +1,32 @@
+ -----
+ Introduction
+ -----
+ Hervé Boutemy
+ -----
+ 2015-11-21
+ -----
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
+${project.name}
+
+    This POM is the common parent of all of the {{{/doxia/doxia-tools/}Maven Doxia Tools}}
+    in the Apache Maven project.
diff --git a/maven/maven-archetype-bundles/src/site-docs/site.xml b/maven/maven-archetype-bundles/src/site-docs/site.xml
new file mode 100644
index 0000000..5a7b1a8
--- /dev/null
+++ b/maven/maven-archetype-bundles/src/site-docs/site.xml
@@ -0,0 +1,32 @@
+<?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.
+-->
+
+<project xmlns="http://maven.apache.org/DECORATION/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/DECORATION/1.1.0 http://maven.apache.org/xsd/decoration-1.1.0.xsd">
+  <body>
+    <breadcrumbs>
+      <item name="Maven" href="http://maven.apache.org/pom/maven/index.html" />
+      <item name="Archetypes" href="http://maven.apache.org/pom/maven/maven-archetype-bundles/index.html" />
+    </breadcrumbs>
+
+    <menu ref="parent" />
+  </body>
+</project>
\ No newline at end of file
diff --git a/maven/maven-plugins/src/site-docs/resources/download.cgi b/maven/maven-plugins/src/site-docs/resources/download.cgi
deleted file mode 100644
index 1b178d2..0000000
--- a/maven/maven-plugins/src/site-docs/resources/download.cgi
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-#
-# 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.
-#
-# Just call the standard mirrors.cgi script. It will use download.html
-# as the input template.
-exec /www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/maven/maven-plugins/src/site-docs/site.xml b/maven/maven-plugins/src/site-docs/site.xml
index cc15343..938841c 100644
--- a/maven/maven-plugins/src/site-docs/site.xml
+++ b/maven/maven-plugins/src/site-docs/site.xml
@@ -23,8 +23,10 @@
   xsi:schemaLocation="http://maven.apache.org/DECORATION/1.1.0 http://maven.apache.org/xsd/decoration-1.1.0.xsd">
   <body>
     <breadcrumbs>
-      <item name="Parent POMs" href="http://maven.apache.org/pom/index.html" />
-      <item name="Maven Plugins Parent POM" href="http://maven.apache.org/pom/maven-plugin/index.html" />
+      <item name="Maven" href="http://maven.apache.org/pom/maven/index.html" />
+      <item name="Plugins" href="http://maven.apache.org/pom/maven/maven-plugin/index.html" />
     </breadcrumbs>
+
+    <menu ref="parent" />
   </body>
 </project>
\ No newline at end of file
diff --git a/maven/maven-plugins/src/site-docs/xdoc/download.xml.vm b/maven/maven-plugins/src/site-docs/xdoc/download.xml.vm
deleted file mode 100644
index 09d4f42..0000000
--- a/maven/maven-plugins/src/site-docs/xdoc/download.xml.vm
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-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.
--->
-
-<document>
-  <properties>
-    <title>Download ${project.name} Source</title>
-  </properties>
-  <body>
-    <section name="Download ${project.name} ${project.version} Source">
-
-      <p>${project.name} ${project.version} is distributed in source format. Use a source archive if you intend to build
-      ${project.name} yourself. Otherwise, simply use the ready-made binary artifacts from central repository.</p>
-
-      <p>You will be prompted for a mirror - if the file is not found on yours, please be patient, as it may take 24
-      hours to reach all mirrors.<p/>
-
-      <p>In order to guard against corrupted downloads/installations, it is highly recommended to
-      <a href="http://www.apache.org/dev/release-signing#verifying-signature">verify the signature</a>
-      of the release bundles against the public <a href="http://www.apache.org/dist/maven/KEYS">KEYS</a> used by the Apache Maven
-      developers.</p>
-
-      <p>${project.name} is distributed under the <a href="http://www.apache.org/licenses/">Apache License, version 2.0</a>.</p>
-
-      <p></p>We <b>strongly</b> encourage our users to configure a Maven repository mirror closer to their location, please read <a href="/guides/mini/guide-mirror-settings.html">How to Use Mirrors for Repositories</a>.</p>
-
-      <a name="mirror"/>
-      <subsection name="Mirror">
-
-        <p>
-          [if-any logo]
-          <a href="[link]">
-            <img align="right" src="[logo]" border="0"
-                 alt="logo"/>
-          </a>
-          [end]
-          The currently selected mirror is
-          <b>[preferred]</b>.
-          If you encounter a problem with this mirror,
-          please select another mirror.
-          If all mirrors are failing, there are
-          <i>backup</i>
-          mirrors
-          (at the end of the mirrors list) that should be available.
-        </p>
-
-        <form action="[location]" method="get" id="SelectMirror">
-          Other mirrors:
-          <select name="Preferred">
-            [if-any http]
-            [for http]
-            <option value="[http]">[http]</option>
-            [end]
-            [end]
-            [if-any ftp]
-            [for ftp]
-            <option value="[ftp]">[ftp]</option>
-            [end]
-            [end]
-            [if-any backup]
-            [for backup]
-            <option value="[backup]">[backup] (backup)</option>
-            [end]
-            [end]
-          </select>
-          <input type="submit" value="Change"/>
-        </form>
-
-        <p>
-          You may also consult the
-          <a href="http://www.apache.org/mirrors/">complete list of
-            mirrors.</a>
-        </p>
-
-      </subsection>
-      
-      <subsection name="${project.name} ${project.version}">
-        
-      <p>This is the current stable version of ${project.name}.</p>
-        
-      <table>
-        <thead>
-          <tr>
-            <th></th>
-            <th>Link</th>
-            <th>Checksum</th>
-            <th>Signature</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr>
-            <td>${project.name} ${project.version} (Source zip)</td>
-            <td><a href="[preferred]maven/plugins/${project.artifactId}-${project.version}-source-release.zip">maven/plugins/${project.artifactId}-${project.version}-source-release.zip</a></td>
-            <td><a href="http://www.apache.org/dist/maven/plugins/${project.artifactId}-${project.version}-source-release.zip.md5">maven/plugins/${project.artifactId}-${project.version}-source-release.zip.md5</a></td>
-            <td><a href="http://www.apache.org/dist/maven/plugins/${project.artifactId}-${project.version}-source-release.zip.asc">maven/plugins/${project.artifactId}-${project.version}-source-release.zip.asc</a></td>
-          </tr>
-        </tbody>
-      </table>
-      </subsection>
-
-      <subsection name="Previous Versions">
-        
-      <p>Older non-recommended releases can be found on our <a href="http://archive.apache.org/dist/maven/plugins/">archive site</a>.</p>
-
-      </subsection>
-    </section>
-  </body>
-</document>
-
diff --git a/maven/maven-shared-components/site-pom.xml b/maven/maven-shared-components/site-pom.xml
index 63fa70f..9443ce4 100644
--- a/maven/maven-shared-components/site-pom.xml
+++ b/maven/maven-shared-components/site-pom.xml
@@ -29,6 +29,7 @@
     <relativePath>../site-pom.xml</relativePath>
   </parent>
 
+  <groupId>org.apache.maven.shared</groupId>
   <artifactId>maven-shared-components</artifactId>
   <packaging>pom</packaging>
 
diff --git a/maven/maven-shared-components/src/site-docs/resources/download.cgi b/maven/maven-shared-components/src/site-docs/resources/download.cgi
deleted file mode 100644
index 1b178d2..0000000
--- a/maven/maven-shared-components/src/site-docs/resources/download.cgi
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-#
-# 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.
-#
-# Just call the standard mirrors.cgi script. It will use download.html
-# as the input template.
-exec /www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/maven/maven-shared-components/src/site-docs/site.xml b/maven/maven-shared-components/src/site-docs/site.xml
index afe3621..566b6b8 100644
--- a/maven/maven-shared-components/src/site-docs/site.xml
+++ b/maven/maven-shared-components/src/site-docs/site.xml
@@ -23,8 +23,10 @@
   xsi:schemaLocation="http://maven.apache.org/DECORATION/1.1.0 http://maven.apache.org/xsd/decoration-1.1.0.xsd">
   <body>
     <breadcrumbs>
-      <item name="Parent POMs" href="http://maven.apache.org/pom/index.html" />
-      <item name="Maven Shared Components Parent POM" href="http://maven.apache.org/pom/maven-shared-components/index.html" />
+      <item name="Maven" href="http://maven.apache.org/pom/maven/index.html" />
+      <item name="Shared Components" href="http://maven.apache.org/pom/maven/maven-shared-components/index.html" />
     </breadcrumbs>
+
+    <menu ref="parent" />
   </body>
 </project>
\ No newline at end of file
diff --git a/maven/maven-shared-components/src/site-docs/xdoc/download.xml.vm b/maven/maven-shared-components/src/site-docs/xdoc/download.xml.vm
deleted file mode 100644
index 5d1650b..0000000
--- a/maven/maven-shared-components/src/site-docs/xdoc/download.xml.vm
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-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.
--->
-
-<document>
-  <properties>
-    <title>Download ${project.name} Source</title>
-  </properties>
-  <body>
-    <section name="Download ${project.name} ${project.version} Source">
-
-      <p>${project.name} ${project.version} is distributed in source format. Use a source archive if you intend to build
-      ${project.name} yourself. Otherwise, simply use the ready-made binary artifacts from central repository.</p>
-
-      <p>You will be prompted for a mirror - if the file is not found on yours, please be patient, as it may take 24
-      hours to reach all mirrors.<p/>
-
-      <p>In order to guard against corrupted downloads/installations, it is highly recommended to
-      <a href="http://www.apache.org/dev/release-signing#verifying-signature">verify the signature</a>
-      of the release bundles against the public <a href="http://www.apache.org/dist/maven/KEYS">KEYS</a> used by the Apache Maven
-      developers.</p>
-
-      <p>${project.name} is distributed under the <a href="http://www.apache.org/licenses/">Apache License, version 2.0</a>.</p>
-
-      <p></p>We <b>strongly</b> encourage our users to configure a Maven repository mirror closer to their location, please read <a href="/guides/mini/guide-mirror-settings.html">How to Use Mirrors for Repositories</a>.</p>
-
-      <a name="mirror"/>
-      <subsection name="Mirror">
-
-        <p>
-          [if-any logo]
-          <a href="[link]">
-            <img align="right" src="[logo]" border="0"
-                 alt="logo"/>
-          </a>
-          [end]
-          The currently selected mirror is
-          <b>[preferred]</b>.
-          If you encounter a problem with this mirror,
-          please select another mirror.
-          If all mirrors are failing, there are
-          <i>backup</i>
-          mirrors
-          (at the end of the mirrors list) that should be available.
-        </p>
-
-        <form action="[location]" method="get" id="SelectMirror">
-          Other mirrors:
-          <select name="Preferred">
-            [if-any http]
-            [for http]
-            <option value="[http]">[http]</option>
-            [end]
-            [end]
-            [if-any ftp]
-            [for ftp]
-            <option value="[ftp]">[ftp]</option>
-            [end]
-            [end]
-            [if-any backup]
-            [for backup]
-            <option value="[backup]">[backup] (backup)</option>
-            [end]
-            [end]
-          </select>
-          <input type="submit" value="Change"/>
-        </form>
-
-        <p>
-          You may also consult the
-          <a href="http://www.apache.org/mirrors/">complete list of
-            mirrors.</a>
-        </p>
-
-      </subsection>
-      
-      <subsection name="${project.name} ${project.version}">
-        
-      <p>This is the current stable version of ${project.name}.</p>
-        
-      <table>
-        <thead>
-          <tr>
-            <th></th>
-            <th>Link</th>
-            <th>Checksum</th>
-            <th>Signature</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr>
-            <td>${project.name} ${project.version} (Source zip)</td>
-            <td><a href="[preferred]maven/shared/${project.artifactId}-${project.version}-source-release.zip">maven/shared/${project.artifactId}-${project.version}-source-release.zip</a></td>
-            <td><a href="http://www.apache.org/dist/maven/shared/${project.artifactId}-${project.version}-source-release.zip.md5">maven/shared/${project.artifactId}-${project.version}-source-release.zip.md5</a></td>
-            <td><a href="http://www.apache.org/dist/maven/shared/${project.artifactId}-${project.version}-source-release.zip.asc">maven/shared/${project.artifactId}-${project.version}-source-release.zip.asc</a></td>
-          </tr>
-        </tbody>
-      </table>
-      </subsection>
-
-      <subsection name="Previous Versions">
-        
-      <p>Older non-recommended releases can be found on our <a href="http://archive.apache.org/dist/maven/shared/">archive site</a>.</p>
-
-      </subsection>
-    </section>
-  </body>
-</document>
-
diff --git a/maven/maven-skins/site-pom.xml b/maven/maven-skins/site-pom.xml
index 430136f..ffa6d82 100644
--- a/maven/maven-skins/site-pom.xml
+++ b/maven/maven-skins/site-pom.xml
@@ -29,6 +29,7 @@
     <relativePath>../site-pom.xml</relativePath>
   </parent>
 
+  <groupId>org.apache.maven.skins</groupId>
   <artifactId>maven-skins</artifactId>
   <packaging>pom</packaging>
 
diff --git a/maven/maven-skins/src/site-docs/resources/download.cgi b/maven/maven-skins/src/site-docs/resources/download.cgi
deleted file mode 100644
index 1b178d2..0000000
--- a/maven/maven-skins/src/site-docs/resources/download.cgi
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-#
-# 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.
-#
-# Just call the standard mirrors.cgi script. It will use download.html
-# as the input template.
-exec /www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/maven/maven-skins/src/site-docs/site.xml b/maven/maven-skins/src/site-docs/site.xml
index eb51b46..90621a3 100644
--- a/maven/maven-skins/src/site-docs/site.xml
+++ b/maven/maven-skins/src/site-docs/site.xml
@@ -23,15 +23,10 @@
   xsi:schemaLocation="http://maven.apache.org/DECORATION/1.1.0 http://maven.apache.org/xsd/decoration-1.1.0.xsd">
   <body>
     <breadcrumbs>
-      <item name="Parent POMs" href="http://maven.apache.org/pom/index.html" />
-      <item name="Maven Skins Parent POM" href="http://maven.apache.org/pom/skins/index.html" />
+      <item name="Maven" href="http://maven.apache.org/pom/maven/index.html" />
+      <item name="Skins" href="http://maven.apache.org/pom/maven/skins/index.html" />
     </breadcrumbs>
-  
-    <menu name="Overview">
-      <item name="Introduction" href="index.html"/>
-      <!-- According to http://jira.codehaus.org/browse/MNGSITE-152 -->
-      <item name="License" href="http://www.apache.org/licenses/"/>
-      <item name="Download" href="download.html"/>
-    </menu>
+
+    <menu ref="parent" />
   </body>
 </project>
\ No newline at end of file
diff --git a/maven/maven-skins/src/site-docs/xdoc/download.xml.vm b/maven/maven-skins/src/site-docs/xdoc/download.xml.vm
deleted file mode 100644
index 8376eb2..0000000
--- a/maven/maven-skins/src/site-docs/xdoc/download.xml.vm
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-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.
--->
-
-<document>
-  <properties>
-    <title>Download ${project.name} Source</title>
-  </properties>
-  <body>
-    <section name="Download ${project.name} ${project.version} Source">
-
-      <p>${project.name} ${project.version} is distributed in source format. Use a source archive if you intend to build
-      ${project.name} yourself. Otherwise, simply use the ready-made binary artifacts from central repository.</p>
-
-      <p>You will be prompted for a mirror - if the file is not found on yours, please be patient, as it may take 24
-      hours to reach all mirrors.<p/>
-
-      <p>In order to guard against corrupted downloads/installations, it is highly recommended to
-      <a href="http://www.apache.org/dev/release-signing#verifying-signature">verify the signature</a>
-      of the release bundles against the public <a href="http://www.apache.org/dist/maven/KEYS">KEYS</a> used by the Apache Maven
-      developers.</p>
-
-      <p>${project.name} is distributed under the <a href="http://www.apache.org/licenses/">Apache License, version 2.0</a>.</p>
-
-      <p></p>We <b>strongly</b> encourage our users to configure a Maven repository mirror closer to their location, please read <a href="./guides/mini/guide-mirror-settings.html">How to Use Mirrors for Repositories</a>.</p>
-
-      <a name="mirror"/>
-      <subsection name="Mirror">
-
-        <p>
-          [if-any logo]
-          <a href="[link]">
-            <img align="right" src="[logo]" border="0"
-                 alt="logo"/>
-          </a>
-          [end]
-          The currently selected mirror is
-          <b>[preferred]</b>.
-          If you encounter a problem with this mirror,
-          please select another mirror.
-          If all mirrors are failing, there are
-          <i>backup</i>
-          mirrors
-          (at the end of the mirrors list) that should be available.
-        </p>
-
-        <form action="[location]" method="get" id="SelectMirror">
-          Other mirrors:
-          <select name="Preferred">
-            [if-any http]
-            [for http]
-            <option value="[http]">[http]</option>
-            [end]
-            [end]
-            [if-any ftp]
-            [for ftp]
-            <option value="[ftp]">[ftp]</option>
-            [end]
-            [end]
-            [if-any backup]
-            [for backup]
-            <option value="[backup]">[backup] (backup)</option>
-            [end]
-            [end]
-          </select>
-          <input type="submit" value="Change"/>
-        </form>
-
-        <p>
-          You may also consult the
-          <a href="http://www.apache.org/mirrors/">complete list of
-            mirrors.</a>
-        </p>
-
-      </subsection>
-      
-      <subsection name="${project.name} ${project.version}">
-        
-      <p>This is the current stable version of ${project.name}.</p>
-        
-      <table>
-        <thead>
-          <tr>
-            <th></th>
-            <th>Link</th>
-            <th>Checksum</th>
-            <th>Signature</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr>
-            <td>${project.name} ${project.version} (Source zip)</td>
-            <td><a href="[preferred]maven/skins/${project.artifactId}-${project.version}-source-release.zip">maven/skins/${project.artifactId}-${project.version}-source-release.zip</a></td>
-            <td><a href="http://www.apache.org/dist/maven/skins/${project.artifactId}-${project.version}-source-release.zip.md5">maven/skins/${project.artifactId}-${project.version}-source-release.zip.md5</a></td>
-            <td><a href="http://www.apache.org/dist/maven/skins/${project.artifactId}-${project.version}-source-release.zip.asc">maven/skins/${project.artifactId}-${project.version}-source-release.zip.asc</a></td>
-          </tr>
-        </tbody>
-      </table>
-      </subsection>
-
-      <subsection name="Previous Versions">
-        
-      <p>Older non-recommended releases can be found on our <a href="http://archive.apache.org/dist/maven/skins/">archive site</a>.</p>
-
-      </subsection>
-    </section>
-  </body>
-</document>
-
diff --git a/maven/site-pom.xml b/maven/site-pom.xml
index 3f3e063..ba32a30 100644
--- a/maven/site-pom.xml
+++ b/maven/site-pom.xml
@@ -37,11 +37,11 @@
   <url>http://maven.apache.org/pom/maven/</url>
 
   <modules>
-    <!--module>maven-archetype-bundles/site-pom.xml</module-->
+    <module>maven-archetype-bundles/site-pom.xml</module>
     <module>maven-plugins/site-pom.xml</module>
     <module>maven-shared-components/site-pom.xml</module>
     <module>maven-skins/site-pom.xml</module>
-    <!--module>doxia-tools/site-pom.xml</module-->
+    <module>doxia-tools/site-pom.xml</module>
   </modules>
 
   <scm>
diff --git a/maven/src/site-docs/site.xml b/maven/src/site-docs/site.xml
index 792e84e..62bdcc5 100644
--- a/maven/src/site-docs/site.xml
+++ b/maven/src/site-docs/site.xml
@@ -75,6 +75,15 @@
       <item name="Download" href="download.html"/>
     </menu>
 
+    <menu name="Maven Parent POMs">
+      <item name="Maven" href="index.html"/>
+      <item name="Archetypes" href="maven-archetypes-bundles/index.html"/>
+      <item name="Plugins" href="maven-plugins/index.html"/>
+      <item name="Shared Components" href="maven-shared-components/index.html"/>
+      <item name="Skins" href="maven-skins/index.html"/>
+      <item name="Doxia Tools" href="doxia-tools/index.html"/>
+    </menu>
+
     <menu ref="reports" inherit="bottom" />
 
   </body>
