diff --git a/stage/org.apache.james/jars/maven-skin-1.1-SNAPSHOT.jar b/stage/org.apache.james/jars/maven-skin-1.1-SNAPSHOT.jar
deleted file mode 100644
index f22d15c..0000000
--- a/stage/org.apache.james/jars/maven-skin-1.1-SNAPSHOT.jar
+++ /dev/null
Binary files differ
diff --git a/stage/org.apache.james/jars/maven-skin-1.1.jar b/stage/org.apache.james/jars/maven-skin-1.1.jar
new file mode 100644
index 0000000..99d274e
--- /dev/null
+++ b/stage/org.apache.james/jars/maven-skin-1.1.jar
Binary files differ
diff --git a/stage/org.apache.james/poms/james-parent-1.1-SNAPSHOT.pom b/stage/org.apache.james/poms/james-parent-1.1.pom
similarity index 83%
rename from stage/org.apache.james/poms/james-parent-1.1-SNAPSHOT.pom
rename to stage/org.apache.james/poms/james-parent-1.1.pom
index c98d7f9..14b8dea 100644
--- a/stage/org.apache.james/poms/james-parent-1.1-SNAPSHOT.pom
+++ b/stage/org.apache.james/poms/james-parent-1.1.pom
@@ -1,383 +1,385 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <!--
-    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.    
-  -->
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.james</groupId>
-  <artifactId>james-parent</artifactId>
-  <name>Apache JAMES Parent POM</name>
-  <version>1.1-SNAPSHOT</version>
-  <description>
-    The Apache JAMES Parent POM
-  </description>
-
-  <prerequisites>
-    <maven>2.0.5</maven>
-  </prerequisites>
-
-  <url>http://james.apache.org/</url>
-  <inceptionYear>2006</inceptionYear>
-  <packaging>pom</packaging>
-
-  <dependencies>
-  </dependencies>
-
-  <organization>
-    <name>The Apache Software Foundation</name>
-    <url>http://www.apache.org</url>
-  </organization>
-
-  <licenses>
-    <license>
-      <name>Apache License, Version 2.0</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-
-  <issueManagement>
-    <system>JIRA</system>
-    <url>http://issues.apache.org/jira/browse/JAMES</url>
-  </issueManagement>
-
-  <developers>
-    <developer>
-      <id>bago</id>
-      <name>Stefano Bagnara</name>
-      <email>bago at apache.org</email>
-      <timezone>2</timezone>
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <id>norman</id>
-      <name>Norman Maurer</name>
-      <email>norman at apache.org</email>
-      <timezone>2</timezone>
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <id>serge</id>
-      <name>Serge Knystautas</name>
-      <email>sergek at lokitech.com</email>
-      <timezone />
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <id>benrdf</id>
-      <name>Bernd Fondermann</name>
-      <email>bf_jak at brainlounge.de</email>
-      <timezone />
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <id>sbrewin</id>
-      <name>Steve Brewin</name>
-      <email>sbrewin at synsys.com</email>
-      <timezone />
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <id>hilmer</id>
-      <!-- This is not correctly handled by maven release plugin -->
-      <!-- <name>S&#248;ren Hilmer</name> -->
-      <name>Soren Hilmer</name>
-      <email>sh at widetrail.dk</email>
-      <timezone />
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <id>noel</id>
-      <name>Noel J. Bergman</name>
-      <email>noel at devtech.com</email>
-      <timezone />
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <id>danny</id>
-      <name>Danny Angus</name>
-      <email>danny at apache.org</email>
-      <timezone />
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <id>adc</id>
-      <name>Alan D. Cabrera</name>
-      <email>list at toolazydogs.com</email>
-      <timezone>-8</timezone>
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <id>vincenzo</id>
-      <name>Vincenzo Gianferrari Pini</name>
-      <email>vincenzo.gianferraripini at praxis.it</email>
-      <timezone />
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <id>rdonkin</id>
-      <name>Robert Burrell Donkin</name>
-      <email>rdonkin at apache.org</email>
-      <timezone />
-      <roles>
-        <role>Developer</role>
-      </roles>
-    </developer>
-  </developers>
-
-  <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/james/project/trunk/parent</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/james/project/trunk/parent</developerConnection>
-    <url>http://svn.apache.org/viewvc/james/project/trunk/parent</url>
-  </scm>
-
-  <distributionManagement>
-    <repository>
-      <id>apache.releases</id>
-      <name>Apache Release Distribution Repository</name>
-      <url>scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
-    </repository>
-    <snapshotRepository>
-      <id>apache.snapshots</id>
-      <name>Apache Development Snapshot Repository</name>
-      <url>scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</url>
-    </snapshotRepository>
-    <!-- Each project must override this with their own -->
-    <site>
-      <id>james-parent-website</id>
-      <url>scp://minotaur.apache.org/www/james.apache.org/parent/</url>
-    </site>
-  </distributionManagement>
-
-	<!--
-  <pluginRepositories>
-    <pluginRepository>
-      <releases>
-        <updatePolicy>never</updatePolicy>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-      <id>maven-central</id>
-      <name>maven-central</name>
-      <url>http://repo1.maven.org/maven2</url>
-    </pluginRepository>
-  </pluginRepositories>
-   -->
-  
-  <repositories>
-    <repository>
-      <id>central</id>
-      <url>http://repo1.maven.org/maven2</url>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-    <repository>
-      <id>apache.releases</id>
-      <name>Apache Main M2 Repository</name>
-      <url>http://people.apache.org/repo/m2-ibiblio-rsync-repository</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-    <repository>
-      <id>apache.snapshots</id>
-      <name>Apache Snapshot Repository</name>
-      <url>http://people.apache.org/repo/m2-snapshot-repository</url>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-  
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-      <!-- also include license and notice files in all the jars -->
-      <resource>
-        <directory>${basedir}</directory>
-        <includes>
-          <include>NOTICE.txt</include>
-          <include>LICENSE.txt</include>
-        </includes>
-        <targetPath>META-INF</targetPath>
-      </resource>
-    </resources>
-  </build>
-
-  <profiles>
-    <!-- local profile: used to ignore remote repositories in a local build -->
-    <profile>
-      <id>local</id>
-      <repositories>
-        <repository>
-          <id>central</id>
-          <url>http://repo1.maven.org/maven2</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </repository>
-        <repository>
-          <id>apache.releases</id>
-          <name>Apache Main M2 Repository</name>
-          <url>http://people.apache.org/repo/m2-ibiblio-rsync-repository</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </repository>
-        <repository>
-          <id>apache.snapshots</id>
-          <name>Apache Snapshot Repository</name>
-          <url>http://people.apache.org/repo/m2-snapshot-repository</url>
-          <releases>
-            <enabled>false</enabled>
-          </releases>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </repository>
-      </repositories>
-    </profile>
-    <!-- START SNIPPET: release-profile -->
-    <profile>
-      <id>release</id>
-      <build>
-        <plugins>
-          <!-- We want to sign the artifact, the POM, and all attached artifacts -->
-          <plugin>
-            <artifactId>maven-gpg-plugin</artifactId>
-            <version>1.0-alpha-3</version>
-            <configuration>
-              <passphrase>${gpg.passphrase}</passphrase>
-            </configuration>
-            <executions>
-              <execution>
-                <id>sign-artifacts</id>
-                <phase>verify</phase>
-                <goals>
-                  <goal>sign</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-          <!-- We want to deploy the artifact to a staging location for perusal -->
-          <plugin>
-            <inherited>true</inherited>
-            <artifactId>maven-deploy-plugin</artifactId>
-            <version>2.3</version>
-            <configuration>
-              <altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository>
-              <updateReleaseInfo>true</updateReleaseInfo>
-            </configuration>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-source-plugin</artifactId>
-            <version>2.0.2</version>
-            <executions>
-              <execution>
-                <id>attach-sources</id>
-                <goals>
-                  <goal>jar</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-javadoc-plugin</artifactId>
-            <version>2.2</version>
-            <executions>
-              <execution>
-                <id>attach-javadocs</id>
-                <goals>
-                  <goal>jar</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <!-- END SNIPPET: release-profile -->
-  </profiles>  
-
-  <!-- Attempt to use velocity-news plugin (not yet working)
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.velocity.site</groupId>
-        <artifactId>velocity-site-news-plugin</artifactId>
-        <configuration>
-          <baseUrl>http://james.apache.org</baseUrl>
-          <newsfile>news.xml</newsfile>
-        </configuration>
-      </plugin>
-    </plugins>
-  </reporting>
-  
-  <build>
-    <extensions>
-      <extension>
-        <groupId>org.apache.velocity.site</groupId>
-        <artifactId>velocity-site-news-extension</artifactId>
-        <version>1.2.0-SNAPSHOT</version>
-      </extension>
-    </extensions>
-  </build>
-  -->
-  
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <!--
+    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.    
+  -->
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.james</groupId>
+  <artifactId>james-parent</artifactId>
+  <name>Apache JAMES Parent POM</name>
+  <version>1.1</version>
+  <description>
+    The Apache JAMES Parent POM
+  </description>
+
+  <prerequisites>
+    <maven>2.0.6</maven>
+  </prerequisites>
+  
+  <modules>
+    <module>maven-skin</module>
+    <module>project</module>
+  </modules>
+
+  <url>http://james.apache.org/</url>
+  <inceptionYear>2006</inceptionYear>
+  <packaging>pom</packaging>
+
+  <dependencies>
+  </dependencies>
+
+  <organization>
+    <name>The Apache Software Foundation</name>
+    <url>http://www.apache.org</url>
+  </organization>
+
+  <licenses>
+    <license>
+      <name>Apache License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+
+  <issueManagement>
+    <system>JIRA</system>
+    <url>http://issues.apache.org/jira/browse/JAMES</url>
+  </issueManagement>
+
+  <developers>
+    <developer>
+      <id>bago</id>
+      <name>Stefano Bagnara</name>
+      <email>bago at apache.org</email>
+      <timezone>2</timezone>
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>norman</id>
+      <name>Norman Maurer</name>
+      <email>norman at apache.org</email>
+      <timezone>2</timezone>
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>serge</id>
+      <name>Serge Knystautas</name>
+      <email>sergek at lokitech.com</email>
+      <timezone />
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>benrdf</id>
+      <name>Bernd Fondermann</name>
+      <email>bf_jak at brainlounge.de</email>
+      <timezone />
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>sbrewin</id>
+      <name>Steve Brewin</name>
+      <email>sbrewin at synsys.com</email>
+      <timezone />
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>hilmer</id>
+      <!-- This is not correctly handled by maven release plugin -->
+      <!-- <name>S&#248;ren Hilmer</name> -->
+      <name>Soren Hilmer</name>
+      <email>sh at widetrail.dk</email>
+      <timezone />
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>noel</id>
+      <name>Noel J. Bergman</name>
+      <email>noel at devtech.com</email>
+      <timezone />
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>danny</id>
+      <name>Danny Angus</name>
+      <email>danny at apache.org</email>
+      <timezone />
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>adc</id>
+      <name>Alan D. Cabrera</name>
+      <email>list at toolazydogs.com</email>
+      <timezone>-8</timezone>
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>vincenzo</id>
+      <name>Vincenzo Gianferrari Pini</name>
+      <email>vincenzo.gianferraripini at praxis.it</email>
+      <timezone />
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>rdonkin</id>
+      <name>Robert Burrell Donkin</name>
+      <email>rdonkin at apache.org</email>
+      <timezone />
+      <roles>
+        <role>Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <id>niklas</id>
+      <name>Niklas Therning</name>
+      <email>niklas(at)apache(dot)org</email>
+      <organization>Trillian AB</organization>
+    </developer>
+    <developer>
+      <id>jcheng</id>
+      <name>Joe Cheng</name>
+      <email>joe(at)joecheng(dot)com</email>
+      <properties>
+        <description>
+          Former author to the mime4j product
+        </description>
+      </properties>
+    </developer>
+  </developers>
+
+  <contributors>
+    <contributor>
+      <name>Rob Oxspring</name>
+      <properties>
+        <description>
+          Contributed to the mime4j product
+        </description>
+      </properties>
+    </contributor>
+    <contributor>
+      <name>Roger Fullerton</name>
+      <properties>
+        <description>
+          Wrote spfjava, the first spf implementation in java
+        </description>
+      </properties>
+    </contributor>
+  </contributors>
+
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/james/project/tags/james-parent-1.1</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/james/project/tags/james-parent-1.1</developerConnection>
+    <url>http://svn.apache.org/viewvc/james/project/tags/james-parent-1.1</url>
+  </scm>
+
+  <distributionManagement>
+    <repository>
+      <id>apache.releases</id>
+      <name>Apache Release Distribution Repository</name>
+      <url>scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+    </repository>
+    <snapshotRepository>
+      <id>apache.snapshots</id>
+      <name>Apache Development Snapshot Repository</name>
+      <url>scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</url>
+    </snapshotRepository>
+    <!-- Each project must override this with their own -->
+    <site>
+      <id>james-parent-website</id>
+      <url>scp://minotaur.apache.org/www/james.apache.org/parent/</url>
+    </site>
+  </distributionManagement>
+
+  <repositories>
+    <repository>
+      <id>central</id>
+      <url>http://repo1.maven.org/maven2</url>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+    <repository>
+      <id>apache.releases</id>
+      <name>Apache Main M2 Repository</name>
+      <url>http://people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+    <repository>
+      <id>apache.snapshots</id>
+      <name>Apache Snapshot Repository</name>
+      <url>http://people.apache.org/repo/m2-snapshot-repository</url>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+  
+  <profiles>
+    <!-- parent profile: used to find skin dependency in stage -->
+    <profile>
+      <id>parent</id>
+      <repositories>
+        <repository>
+          <id>local-james-parent-stage</id>
+          <name>Apache JAMES parent stage repository folder</name>
+          <url>file://${basedir}/stage</url>
+          <layout>legacy</layout>
+          <releases>
+            <enabled>true</enabled>
+            <checksumPolicy>ignore</checksumPolicy>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+            <checksumPolicy>ignore</checksumPolicy>
+          </snapshots>
+        </repository>
+      </repositories>
+    </profile>
+    <!-- local profile: used to ignore remote repositories in a local build -->
+    <profile>
+      <id>local</id>
+      <repositories>
+        <repository>
+          <id>central</id>
+          <url>http://repo1.maven.org/maven2</url>
+          <releases>
+            <enabled>false</enabled>
+          </releases>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </repository>
+        <repository>
+          <id>apache.releases</id>
+          <name>Apache Main M2 Repository</name>
+          <url>http://people.apache.org/repo/m2-ibiblio-rsync-repository</url>
+          <releases>
+            <enabled>false</enabled>
+          </releases>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </repository>
+        <repository>
+          <id>apache.snapshots</id>
+          <name>Apache Snapshot Repository</name>
+          <url>http://people.apache.org/repo/m2-snapshot-repository</url>
+          <releases>
+            <enabled>false</enabled>
+          </releases>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </repository>
+      </repositories>
+    </profile>
+    <!-- START SNIPPET: release-profile -->
+    <profile>
+      <id>release</id>
+      <build>
+        <plugins>
+          <!-- We want to sign the artifact, the POM, and all attached artifacts -->
+          <plugin>
+            <artifactId>maven-gpg-plugin</artifactId>
+            <version>1.0-alpha-3</version>
+            <configuration>
+              <passphrase>${gpg.passphrase}</passphrase>
+            </configuration>
+            <executions>
+              <execution>
+                <id>sign-artifacts</id>
+                <phase>verify</phase>
+                <goals>
+                  <goal>sign</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+          <!-- We want to deploy the artifact to a staging location for perusal -->
+          <plugin>
+            <inherited>true</inherited>
+            <artifactId>maven-deploy-plugin</artifactId>
+            <version>2.3</version>
+            <configuration>
+              <altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository>
+              <updateReleaseInfo>true</updateReleaseInfo>
+            </configuration>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-source-plugin</artifactId>
+            <version>2.0.2</version>
+            <executions>
+              <execution>
+                <id>attach-sources</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>2.2</version>
+            <executions>
+              <execution>
+                <id>attach-javadocs</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <!-- END SNIPPET: release-profile -->
+  </profiles>  
+
 </project>
\ No newline at end of file
diff --git a/stage/org.apache.james/poms/james-project-1.1-SNAPSHOT.pom b/stage/org.apache.james/poms/james-project-1.1.pom
similarity index 85%
rename from stage/org.apache.james/poms/james-project-1.1-SNAPSHOT.pom
rename to stage/org.apache.james/poms/james-project-1.1.pom
index b7830d4..d614469 100644
--- a/stage/org.apache.james/poms/james-project-1.1-SNAPSHOT.pom
+++ b/stage/org.apache.james/poms/james-project-1.1.pom
@@ -1,77 +1,70 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <!--
-    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.    
-  -->
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.james</groupId>
-  <artifactId>james-project</artifactId>
-  <name>Apache JAMES Project</name>
-  <version>1.1-SNAPSHOT</version>
-  <description>
-    The Apache JAMES Project
-  </description>
-  
-  <parent>
-    <groupId>org.apache.james</groupId>
-    <artifactId>james-parent</artifactId>
-    <version>1.1-SNAPSHOT</version>
-    <relativePath>parent/pom.xml</relativePath>
-  </parent>
-
-  <modules>
-    <module>server</module>
-  </modules>
-  
-  <url>http://james.apache.org/</url>
-  <inceptionYear>2006</inceptionYear>
-  <packaging>pom</packaging>
-
-  <dependencies>
-  </dependencies>
-
-  <issueManagement>
-    <system>JIRA</system>
-    <url>http://issues.apache.org/jira/browse/JAMES</url>
-  </issueManagement>
-
-  <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/james/project/trunk</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/james/project/trunk</developerConnection>
-    <url>http://svn.apache.org/viewvc/james/project/trunk</url>
-  </scm>
-
-  <distributionManagement>
-    <!-- Each project must override this with their own -->
-    <site>
-      <id>james-website</id>
-      <url>scp://minotaur.apache.org/www/james.apache.org/</url>
-    </site>
-  </distributionManagement>
-
-  <mailingLists>
-    <mailingList>
-      <name>Apache James Website Developement</name>
-      <subscribe>site-dev-subscribe@james.apache.org</subscribe>
-      <unsubscribe>site-dev-unsubscribe@james.apache.org</unsubscribe>
-      <post>site-dev@james.apache.org</post>
-      <archive>http://mail-archives.apache.org/mod_mbox/james-site-dev/</archive>
-    </mailingList>
-  </mailingLists>
-  
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <!--
+    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.    
+  -->
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.james</groupId>
+  <artifactId>james-project</artifactId>
+  <name>Apache JAMES Project</name>
+  <version>1.1</version>
+  <description>
+    The Apache JAMES Project
+  </description>
+  
+  <parent>
+    <groupId>org.apache.james</groupId>
+    <artifactId>james-parent</artifactId>
+    <version>1.1</version>
+  </parent>
+
+  <modules>
+    <module>server</module>
+  </modules>
+  
+  <url>http://james.apache.org/</url>
+  <inceptionYear>2006</inceptionYear>
+  <packaging>pom</packaging>
+
+  <dependencies>
+  </dependencies>
+
+  <issueManagement>
+    <system>JIRA</system>
+    <url>http://issues.apache.org/jira/browse/JAMES</url>
+  </issueManagement>
+
+  <distributionManagement>
+    <!-- Each project must override this with their own -->
+    <site>
+      <id>james-website</id>
+      <url>scp://minotaur.apache.org/www/james.apache.org/</url>
+    </site>
+  </distributionManagement>
+
+  <mailingLists>
+    <mailingList>
+      <name>Apache James Website Developement</name>
+      <subscribe>site-dev-subscribe@james.apache.org</subscribe>
+      <unsubscribe>site-dev-unsubscribe@james.apache.org</unsubscribe>
+      <post>site-dev@james.apache.org</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/james-site-dev/</archive>
+    </mailingList>
+  </mailingLists>
+  
 </project>
\ No newline at end of file
diff --git a/stage/org.apache.james/poms/maven-skin-1.1-SNAPSHOT.pom b/stage/org.apache.james/poms/maven-skin-1.1-SNAPSHOT.pom
deleted file mode 100644
index b411947..0000000
--- a/stage/org.apache.james/poms/maven-skin-1.1-SNAPSHOT.pom
+++ /dev/null
@@ -1,51 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-<!--
-  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.    
--->
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.james</groupId>
-  <artifactId>maven-skin</artifactId>
-  <version>1.1-SNAPSHOT</version>
-  <name>JAMES Skin</name>
-  <description>Apache JAMES Official Maven2 Site Skin</description>
-
-  <parent>
-    <groupId>org.apache.james</groupId>
-    <artifactId>james-parent</artifactId>
-    <version>1.1-SNAPSHOT</version>
-    <relativePath>../parent/pom.xml</relativePath>
-  </parent>
-
-
-  <distributionManagement>
-    <site>
-      <id>maven-skin-website</id>
-      <url>scp://minotaur.apache.org/www/james.apache.org/maven-skin</url>
-    </site>
-  </distributionManagement>
-
-
-  <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/james/project/trunk/maven-skin</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/james/project/trunk/maven-skin</developerConnection>
-    <url>http://svn.apache.org/viewvc/james/project/trunk/maven-skin</url>
-  </scm>
-
-</project>
\ No newline at end of file
diff --git a/stage/org.apache.james/poms/maven-skin-1.1.pom b/stage/org.apache.james/poms/maven-skin-1.1.pom
new file mode 100644
index 0000000..d8f19e0
--- /dev/null
+++ b/stage/org.apache.james/poms/maven-skin-1.1.pom
@@ -0,0 +1,66 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+  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.    
+-->
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.james</groupId>
+  <artifactId>maven-skin</artifactId>
+  <version>1.1</version>
+  <name>JAMES Skin</name>
+  <description>Apache JAMES Official Maven2 Site Skin</description>
+
+  <parent>
+    <groupId>org.apache.james</groupId>
+    <artifactId>james-parent</artifactId>
+    <version>1.1</version>
+  </parent>
+
+
+  <distributionManagement>
+    <site>
+      <id>maven-skin-website</id>
+      <url>scp://minotaur.apache.org/www/james.apache.org/maven-skin</url>
+    </site>
+  </distributionManagement>
+
+  <!-- This is here because of http://jira.codehaus.org/browse/MRRESOURCES-6 -->
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <resourceBundles>
+                <resourceBundle>org.apache:apache-jar-resource-bundle:1.2</resourceBundle>
+              </resourceBundles>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>
\ No newline at end of file
diff --git a/stage/org.apache.james/xmls/james-parent-1.1-SNAPSHOT-site.xml b/stage/org.apache.james/xmls/james-parent-1.1-site.xml
similarity index 100%
rename from stage/org.apache.james/xmls/james-parent-1.1-SNAPSHOT-site.xml
rename to stage/org.apache.james/xmls/james-parent-1.1-site.xml
diff --git a/stage/org.apache.james/xmls/james-parent-1.1-site_en.xml b/stage/org.apache.james/xmls/james-parent-1.1-site_en.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/stage/org.apache.james/xmls/james-parent-1.1-site_en.xml
diff --git a/stage/org.apache.james/xmls/james-project-1.1-SNAPSHOT-site.xml b/stage/org.apache.james/xmls/james-project-1.1-site.xml
similarity index 95%
rename from stage/org.apache.james/xmls/james-project-1.1-SNAPSHOT-site.xml
rename to stage/org.apache.james/xmls/james-project-1.1-site.xml
index 03170f2..faa681d 100644
--- a/stage/org.apache.james/xmls/james-project-1.1-SNAPSHOT-site.xml
+++ b/stage/org.apache.james/xmls/james-project-1.1-site.xml
@@ -18,6 +18,7 @@
     <links>
       <item name="JAMES Project" href="/index.html" />
       <item name="Server" href="/server/index.html" />
+      <item name="Mailet API" href="/mailet/index.html" />
       <item name="jSPF" href="/jspf/index.html" />
       <item name="Mime4J" href="/mime4j/index.html" />
       <item name="JSieve" href="/jsieve/index.html" />
@@ -25,6 +26,7 @@
     </links>
     <menu name="Sub Projects">
       <item name="Server" href="/server/index.html" />
+      <item name="Mailet API" href="/mailet/index.html" />
       <item name="jSPF" href="/jspf/index.html" />
       <item name="Mime4J" href="/mime4j/index.html" />
       <item name="JSieve" href="/jsieve/index.html" />
diff --git a/stage/org.apache.james/xmls/james-project-1.1-site_en.xml b/stage/org.apache.james/xmls/james-project-1.1-site_en.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/stage/org.apache.james/xmls/james-project-1.1-site_en.xml
