diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3379ParallelArtifactDownloadsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3379ParallelArtifactDownloadsTest.java
index 47057d6..1f1306f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3379ParallelArtifactDownloadsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3379ParallelArtifactDownloadsTest.java
@@ -65,7 +65,7 @@
         assertArtifact( verifier, gid + "a", "x", "0.2-SNAPSHOT", "", "jar",
             "69c041c12f35894230c7c23c49cd245886c6fb6f" );
         assertArtifact( verifier, gid + "a", "x", "0.2-SNAPSHOT", "", "pom",
-            "10235b64a161e86e91cc6ff7245a4b9c6fdc7d5d" );
+            "f0abcb2aa6d99f045c013ecb2671a3a3e71bd715" );
         assertArtifact( verifier, gid + "a", "x", "0.2-SNAPSHOT", "tests", "jar",
             "69c041c12f35894230c7c23c49cd245886c6fb6f" );
         assertArtifact( verifier, gid + "a", "x", "0.2-SNAPSHOT", "sources", "jar",
@@ -78,7 +78,7 @@
         assertArtifact( verifier, gid + "b", "x", "0.2-SNAPSHOT", "", "jar",
             "efb7c4046565774cd7e44645e02f06ecdf91098d" );
         assertArtifact( verifier, gid + "b", "x", "0.2-SNAPSHOT", "", "pom",
-            "1c816cc9eaaca1272f24887c461aa359503394f5" );
+            "a057baebe5cdae3978b530c0bfea8b523b3d4506" );
         assertArtifact( verifier, gid + "b", "x", "0.2-SNAPSHOT", "tests", "jar",
             "efb7c4046565774cd7e44645e02f06ecdf91098d" );
         assertArtifact( verifier, gid + "b", "x", "0.2-SNAPSHOT", "sources", "jar",
@@ -93,7 +93,7 @@
         assertArtifact( verifier, gid + "c", "x", "0.2-SNAPSHOT", "", "jar",
             "1eb0d5a421b3074e8a69b0dcca7e325c0636a932" );
         assertArtifact( verifier, gid + "c", "x", "0.2-SNAPSHOT", "", "pom",
-            "bd9a24117d3ce4f8ef3b8fcfe79a08e5ea141a9b" );
+            "9c993bdebc7bd1b673891f203511fed9085996f3" );
         assertArtifact( verifier, gid + "c", "x", "0.2-SNAPSHOT", "tests", "jar",
             "1eb0d5a421b3074e8a69b0dcca7e325c0636a932" );
         assertArtifact( verifier, gid + "c", "x", "0.2-SNAPSHOT", "sources", "jar",
@@ -108,7 +108,7 @@
         assertArtifact( verifier, gid + "d", "x", "0.2-SNAPSHOT", "", "jar",
             "3d606c564625a594165bcbbe4a24c8f11b18b5a0" );
         assertArtifact( verifier, gid + "d", "x", "0.2-SNAPSHOT", "", "pom",
-            "70a3c9795b2871fdd8a66e8fe312359f08d77c7d" );
+            "e7b6322cea42970e61316b161f79da690f042f7e" );
         assertArtifact( verifier, gid + "d", "x", "0.2-SNAPSHOT", "tests", "jar",
             "3d606c564625a594165bcbbe4a24c8f11b18b5a0" );
         assertArtifact( verifier, gid + "d", "x", "0.2-SNAPSHOT", "sources", "jar",
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4679SnapshotUpdateInPluginTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4679SnapshotUpdateInPluginTest.java
index 5c825e1..f0854ca 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4679SnapshotUpdateInPluginTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4679SnapshotUpdateInPluginTest.java
@@ -63,7 +63,7 @@
         verifier.verifyErrorFreeLog();
 
         assertChecksum( verifier, "jar", "2ea5c3d713bbaba7b87746449b91cd00e876703d" );
-        assertChecksum( verifier, "pom", "7de357a948a8bb2357759c7c585adb504e579bad" );
+        assertChecksum( verifier, "pom", "0b58dbbc61f81b85a70692ffdce88cf1892a8da4" );
 
         filterProps.setProperty( "@repo@", "repo-2" );
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
@@ -76,7 +76,7 @@
         verifier.resetStreams();
 
         assertChecksum( verifier, "jar", "f3d46277c2ab45ff9bbd97605c942bed7fc27f97" );
-        assertChecksum( verifier, "pom", "8f17048dee72cc6ec33e9ab30fa00a910e1d6997" );
+        assertChecksum( verifier, "pom", "127f0dc26035352bb54890315ad7d2ada067756a" );
     }
 
     private void assertChecksum( Verifier verifier, String ext, String checksum )
diff --git a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom
index b153e09..781e775 100644
--- a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.maven.its.it0010</groupId>
-    <artifactId>parent</artifactId>
-    <version>1.0</version>
-  </parent>
-
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.its.it0010</groupId>
+    <artifactId>parent</artifactId>
+    <version>1.0</version>
+  </parent>
+
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom.md5
index 78d6ed6..802c183 100644
--- a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-392dfb8c0b1fbd83008144bed4f4428b
\ No newline at end of file
+b678765583002b3465f621e64a5e94ba
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom.sha1
index 85daf18..f5ff027 100644
--- a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-d1cca2147bbafd402e9a04d9c1a0871e2791e71c
\ No newline at end of file
+cbfa37acb8e5d922d3d7f393ddf4f51ce45d40f1
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom
index 2b4cf5f..07f3ae5 100644
--- a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom
+++ b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0010</groupId>
-  <artifactId>b</artifactId>
-  <version>0.2</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0010</groupId>
+  <artifactId>b</artifactId>
+  <version>0.2</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom.md5 b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom.md5
index 453ad58..4408703 100644
--- a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom.md5
+++ b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom.md5
@@ -1 +1 @@
-281783ed97ca0549f73b43cfc6f0f29b
\ No newline at end of file
+20f9280c03298a7318f8fecaeb52ce2a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom.sha1 b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom.sha1
index 8019bc6..1a77dd3 100644
--- a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom.sha1
+++ b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/b/0.2/b-0.2.pom.sha1
@@ -1 +1 @@
-fad7d387fae006435dddeb65a9bc4a482e087fd5
\ No newline at end of file
+4503c0dbe4ee6d4f12c177956140cd02ce5821f2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom
index 6ba23e2..b0a1919 100644
--- a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom
+++ b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom
@@ -1,48 +1,48 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0010</groupId>
-  <artifactId>parent</artifactId>
-  <version>1.0</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.it0010</groupId>
-      <artifactId>b</artifactId>
-      <version>0.2</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0010</groupId>
+  <artifactId>parent</artifactId>
+  <version>1.0</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.it0010</groupId>
+      <artifactId>b</artifactId>
+      <version>0.2</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom.md5 b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom.md5
index c5053b6..3388d35 100644
--- a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom.md5
+++ b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom.md5
@@ -1 +1 @@
-10d4d9cd5ed37afcb29e5e91ca708cff
\ No newline at end of file
+08161950288ff6e77f932b39f412a3c3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom.sha1 b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom.sha1
index 87be0c2..084a5b1 100644
--- a/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom.sha1
+++ b/core-it-suite/src/test/resources/it0010/repo/org/apache/maven/its/it0010/parent/1.0/parent-1.0.pom.sha1
@@ -1 +1 @@
-08fa00268649f4e4ed8eab692b14f73c5247da78
\ No newline at end of file
+138bdc85796d28b299afb7d8874611c377cc1cbb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom
index 8bcec72..36db751 100644
--- a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0011</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0011</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom.md5
index ed797dc..de671b2 100644
--- a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-1c442beacd007df0d17b0b4bd3e80f69
\ No newline at end of file
+8ec23fa49020dfe329bcc171a7299edd
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom.sha1
index 06ebe73..55b85df 100644
--- a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-cc41aff945d4e73257325a216586d51329f4ee49
\ No newline at end of file
+6b227649fd500d821bb9d3b357c34e12181c67ed
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom
index d49c25d..034bbd8 100644
--- a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom
+++ b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0011</groupId>
-  <artifactId>b</artifactId>
-  <version>0.2</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0011</groupId>
+  <artifactId>b</artifactId>
+  <version>0.2</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom.md5 b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom.md5
index 362b049..6f455e0 100644
--- a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom.md5
+++ b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom.md5
@@ -1 +1 @@
-427fe60edaa02f513c78c1f52fcd2552
\ No newline at end of file
+68697ba8fb5dd79e39402a540514e48b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom.sha1 b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom.sha1
index 47c78a4..9ed0286 100644
--- a/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom.sha1
+++ b/core-it-suite/src/test/resources/it0011/repo/org/apache/maven/its/it0011/b/0.2/b-0.2.pom.sha1
@@ -1 +1 @@
-bb5bf18228b2ea50b90b0efb3fea3b079eba142e
\ No newline at end of file
+32fe211b1b5e5097678a12b48413f3c82310e67e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/managed-dep/1.0.3/managed-dep-1.0.3.pom b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/managed-dep/1.0.3/managed-dep-1.0.3.pom
index 8890d41..52b1ad1 100644
--- a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/managed-dep/1.0.3/managed-dep-1.0.3.pom
+++ b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/managed-dep/1.0.3/managed-dep-1.0.3.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0018</groupId>
-  <artifactId>managed-dep</artifactId>
-  <version>1.0.3</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>it0018</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0018</groupId>
+  <artifactId>managed-dep</artifactId>
+  <version>1.0.3</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>it0018</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/managed-dep/1.0.3/managed-dep-1.0.3.pom.sha1 b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/managed-dep/1.0.3/managed-dep-1.0.3.pom.sha1
index 8ea5e01..3498a67 100644
--- a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/managed-dep/1.0.3/managed-dep-1.0.3.pom.sha1
+++ b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/managed-dep/1.0.3/managed-dep-1.0.3.pom.sha1
@@ -1 +1 @@
-f1bf07a984c1e6b98829c23a6a2a6effd2bdd7ba
\ No newline at end of file
+eefbcaee8308ce6c2c2245352b72f53d20efcd80
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom
index 5600465..3da3a85 100644
--- a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom
+++ b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom
@@ -1,50 +1,50 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0018</groupId>
-  <artifactId>parent</artifactId>
-  <version>1</version>
-  <packaging>pom</packaging>
-
-  <modules>
-    <module>sub-project</module>
-  </modules>
-
-  <distributionManagement>
-    <repository>
-      <id>it0018</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.maven.its.it0018</groupId>
-        <artifactId>managed-dep</artifactId>
-        <version>1.0.3</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0018</groupId>
+  <artifactId>parent</artifactId>
+  <version>1</version>
+  <packaging>pom</packaging>
+
+  <modules>
+    <module>sub-project</module>
+  </modules>
+
+  <distributionManagement>
+    <repository>
+      <id>it0018</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.maven.its.it0018</groupId>
+        <artifactId>managed-dep</artifactId>
+        <version>1.0.3</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom.md5 b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom.md5
index e848aa5..834aea6 100644
--- a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom.md5
+++ b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom.md5
@@ -1 +1 @@
-66cb8fca769881525257daecbf8a0e20
\ No newline at end of file
+e44b4a024aff5ff8986767683739e912
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom.sha1 b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom.sha1
index 42da601..6dddf8f 100644
--- a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/parent/1/parent-1.pom.sha1
@@ -1 +1 @@
-44586adf8825654ae9562495e0a41deef5d0b1ce
\ No newline at end of file
+8050da20383b07a61d6a7f7636771c13012d6591
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom
index 1a5300c..d319266 100644
--- a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom
+++ b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom
@@ -1,46 +1,46 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.maven.its.it0018</groupId>
-    <artifactId>parent</artifactId>
-    <version>1</version>
-  </parent>
-
-  <artifactId>sub-project</artifactId>
-
-  <distributionManagement>
-    <repository>
-      <id>it0018</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.it0018</groupId>
-      <artifactId>managed-dep</artifactId>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.its.it0018</groupId>
+    <artifactId>parent</artifactId>
+    <version>1</version>
+  </parent>
+
+  <artifactId>sub-project</artifactId>
+
+  <distributionManagement>
+    <repository>
+      <id>it0018</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.it0018</groupId>
+      <artifactId>managed-dep</artifactId>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom.md5 b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom.md5
index a436f8a..110e449 100644
--- a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom.md5
+++ b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom.md5
@@ -1 +1 @@
-39c49fb7d860e1d7aedbfcd57d2d60e9
\ No newline at end of file
+4b6b21b02d074b054c7fa0224d7302a8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom.sha1 b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom.sha1
index 86511a9..2470221 100644
--- a/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0018/repo/org/apache/maven/its/it0018/sub-project/1/sub-project-1.pom.sha1
@@ -1 +1 @@
-371461cbe34e7f569a464b2ea36c0dbebb8eeee3
\ No newline at end of file
+3f57a48663ea070b7d3600a91c2859873674298a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom
index 9d69937..b768a71 100644
--- a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0021</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0021</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom.md5
index 7cb4532..5ce305e 100644
--- a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-576fd6c3ece8fc4a7a925da67f368118
\ No newline at end of file
+68a49c775fd53b50c2c9598b7c7db2fc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom.sha1
index 3852f9a..28cc35e 100644
--- a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-3257cd147091f5b3b36d8751054f002dad837800
\ No newline at end of file
+8778b38a1e0c8077a7771888dbe71db270a37712
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom
index c07eddf..c6a3372 100644
--- a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0021</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0021</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom.md5
index 802b5f3..5d520b8 100644
--- a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-480d98dbfe80db5b4cd08c24af2803a5
\ No newline at end of file
+043f4fdef5294af22a27bb83de3e5026
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom.sha1
index 268ff29..356b404 100644
--- a/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0021/repo/org/apache/maven/its/it0021/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-f6e62918097d67461944f5e4b955a3a15eb12dd6
\ No newline at end of file
+fc3ff0c3dbc2bea5c168c7b73a469457f4376ccf
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom
index 0a0b978..06915bb 100644
--- a/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom
@@ -1,46 +1,46 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0085</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.it0085</groupId>
-      <artifactId>system</artifactId>
-      <version>0.2</version>
-      <scope>system</scope>
-      <systemPath>${test.home}/system.jar</systemPath>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0085</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.it0085</groupId>
+      <artifactId>system</artifactId>
+      <version>0.2</version>
+      <scope>system</scope>
+      <systemPath>${test.home}/system.jar</systemPath>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom.md5
index 5cf8cf3..eb4fd62 100644
--- a/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-5a6d8d1e0bc547cceb67040c8bbda155
\ No newline at end of file
+fc8be5fdb23d353abb562915fbd3938d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom.sha1
index 95ac7d2..5664234 100644
--- a/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0085/repo/org/apache/maven/its/it0085/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-afa3ef86659f25803c1102c3520c7719dc619bdc
\ No newline at end of file
+b146a6d91d259cdbb92e3a5e1c0142cb78a257f3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom b/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom
index e6fed1c..a988b84 100644
--- a/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom
+++ b/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom
@@ -1,49 +1,49 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0087</groupId>
-  <artifactId>dep</artifactId>
-  <version>1.3</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>src</directory>
-        <targetPath>src</targetPath>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0087</groupId>
+  <artifactId>dep</artifactId>
+  <version>1.3</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>src</directory>
+        <targetPath>src</targetPath>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom.md5 b/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom.md5
index 525581f..a08db87 100644
--- a/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom.md5
+++ b/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom.md5
@@ -1 +1 @@
-930917d1486ebe6238ab1b222746a61a
\ No newline at end of file
+394cdbab4196f4190f9bd78e6c56870b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom.sha1 b/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom.sha1
index 619a067..54a9249 100644
--- a/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom.sha1
+++ b/core-it-suite/src/test/resources/it0087/repo/org/apache/maven/its/it0087/dep/1.3/dep-1.3.pom.sha1
@@ -1 +1 @@
-67ed815f70f32c8f5c39e2a8345db1c17b788a3a
\ No newline at end of file
+f230dd8405a5d2cd2bfb1f1f2628340306757f5c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom
index c00c79e..7035949 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0142</groupId>
-  <artifactId>compile</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0142</groupId>
+  <artifactId>compile</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom.md5 b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom.md5
index 5c33551..80c5c32 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom.md5
@@ -1 +1 @@
-12e73e3f0b6f02d0fd3e45021c031a63
\ No newline at end of file
+9982951d56d4e85df4ae52e38f68f14a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom.sha1
index 9d69e50..b3a9efc 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/compile/0.1/compile-0.1.pom.sha1
@@ -1 +1 @@
-541b23b234610716f08a3e5ebff3b662a98de5e9
\ No newline at end of file
+c4a41c6ca809755039112e7ef6982b757f6d6834
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom
index 3fc44ef..1ea546e 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0142</groupId>
-  <artifactId>provided</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0142</groupId>
+  <artifactId>provided</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom.md5 b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom.md5
index 445c109..a3c683a 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom.md5
@@ -1 +1 @@
-f65a24600ff164ca70d003e4139c516e
\ No newline at end of file
+8608664dd8e3c303dd13d76f1901c1a0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom.sha1
index bfc2ee4..93fb759 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/provided/0.1/provided-0.1.pom.sha1
@@ -1 +1 @@
-b37750f21add743611976c98f94fd994341713cf
\ No newline at end of file
+d7a738b6e244e7c8924c78f08ba4e53b7527920c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom
index 8521cd5..3be172b 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0142</groupId>
-  <artifactId>runtime</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0142</groupId>
+  <artifactId>runtime</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom.md5 b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom.md5
index cc25d56..0cb2f88 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom.md5
@@ -1 +1 @@
-478535e66894b275260fac04931fcd28
\ No newline at end of file
+f33b32bf448606e3f26ce5dc04b863f6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom.sha1
index e1c11c2..31fa2b8 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/runtime/0.1/runtime-0.1.pom.sha1
@@ -1 +1 @@
-f09b95939d89e508fd9396d9f9944640a11e90d8
\ No newline at end of file
+5791b23826668ac3b1c4ac02409a315890b13fbb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom
index ee2726d..b2673ea 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0142</groupId>
-  <artifactId>test</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0142</groupId>
+  <artifactId>test</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom.md5 b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom.md5
index b20445b..0e5e8d9 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom.md5
@@ -1 +1 @@
-d77293953c1a6e01df4b2365f47c5e72
\ No newline at end of file
+ff5b88ffec8d0e1aae63f6fd5a0388ea
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom.sha1
index 8738f4b..caed7f8 100644
--- a/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0142/repo/org/apache/maven/its/it0142/test/0.1/test-0.1.pom.sha1
@@ -1 +1 @@
-5f9fb4ad442e113123802adf9c5ab7a1cd6f230f
\ No newline at end of file
+3b389f30316d89543e0ad1a189b6e7fcb098e7f0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom
index 7d80e0b..e453065 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0143</groupId>
-  <artifactId>compile</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateRelaseInfo>true</updateRelaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0143</groupId>
+  <artifactId>compile</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateRelaseInfo>true</updateRelaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom.md5 b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom.md5
index bc37c4c..bbc162a 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom.md5
@@ -1 +1 @@
-08df7a478994dee6fdec1780315b9ce6
\ No newline at end of file
+6db50d60ce02802834b6f777521e7c73
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom.sha1
index e9c8bf1..9d01262 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/compile/0.1/compile-0.1.pom.sha1
@@ -1 +1 @@
-4462da2c0ee00da057f3fd5dbef2b27a85bf178b
\ No newline at end of file
+918d1f833f0503917d2e17983f904f0266d119bc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom
index eecaf1b..83d68fd 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom
@@ -1,83 +1,83 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0143</groupId>
-  <artifactId>direct</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateRelaseInfo>true</updateRelaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.it0143</groupId>
-      <artifactId>compile</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.it0143</groupId>
-      <artifactId>provided</artifactId>
-      <version>0.1</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.it0143</groupId>
-      <artifactId>runtime</artifactId>
-      <version>0.1</version>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.it0143</groupId>
-      <artifactId>test</artifactId>
-      <version>0.1</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0143</groupId>
+  <artifactId>direct</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateRelaseInfo>true</updateRelaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.it0143</groupId>
+      <artifactId>compile</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.it0143</groupId>
+      <artifactId>provided</artifactId>
+      <version>0.1</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.it0143</groupId>
+      <artifactId>runtime</artifactId>
+      <version>0.1</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.it0143</groupId>
+      <artifactId>test</artifactId>
+      <version>0.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom.md5 b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom.md5
index d60a056..772f328 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom.md5
@@ -1 +1 @@
-a34b2c05093701601c9c7f8e8db9b040
\ No newline at end of file
+be4736dae124e0fc567cb4a847b2b60d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom.sha1
index b55acd6..9e4059f 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/direct/0.1/direct-0.1.pom.sha1
@@ -1 +1 @@
-ea041b2973ef88aad042ff3af044b6d016bbf45e
\ No newline at end of file
+ab4571873a3694e4a0b9381e0d37a3585d8b4ed5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom
index 9c189ff..ba33867 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0143</groupId>
-  <artifactId>provided</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateRelaseInfo>true</updateRelaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0143</groupId>
+  <artifactId>provided</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateRelaseInfo>true</updateRelaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom.md5 b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom.md5
index adba608..e822b07 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom.md5
@@ -1 +1 @@
-50873ebc5de1bbeb4b4d62f35e2f0add
\ No newline at end of file
+a2f939f13a0637e7286e607b377f6c15
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom.sha1
index 08ea724..f5d9284 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/provided/0.1/provided-0.1.pom.sha1
@@ -1 +1 @@
-f93799a8271cc85fff8f7a906c266242e5db4036
\ No newline at end of file
+8710042993dc0f662b444a693a9d9e93cbe58b2a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom
index 9029df2..2b68ca0 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0143</groupId>
-  <artifactId>runtime</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateRelaseInfo>true</updateRelaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0143</groupId>
+  <artifactId>runtime</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateRelaseInfo>true</updateRelaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom.md5 b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom.md5
index ee98020..309cd62 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom.md5
@@ -1 +1 @@
-08344b7b954534e33dc31a05df4d8b13
\ No newline at end of file
+ee85d92a4347391ad7f2363f644f4bda
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom.sha1
index 5394a8d..724c29b 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/runtime/0.1/runtime-0.1.pom.sha1
@@ -1 +1 @@
-6d5f1b6fc22d2be5082bf4d1b4b0ccbd516ab51f
\ No newline at end of file
+57f1d0978fddabe2eb61ffa550da8f318d64a3e8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom
index 30109e7..482f3fb 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0143</groupId>
-  <artifactId>test</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateRelaseInfo>true</updateRelaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0143</groupId>
+  <artifactId>test</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateRelaseInfo>true</updateRelaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom.md5 b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom.md5
index c3d3694..88f8567 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom.md5
@@ -1 +1 @@
-e7dc627129bb08a20ae63c6d42daba42
\ No newline at end of file
+1f5de78a6ad165443d511e0971f73836
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom.sha1 b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom.sha1
index d6e073b..bbdcfe5 100644
--- a/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/it0143/repo/org/apache/maven/its/it0143/test/0.1/test-0.1.pom.sha1
@@ -1 +1 @@
-cf986039ec52f9665c8286d03ec2b4a872debf1e
\ No newline at end of file
+786f3decb5dc97962065a1d65af5fbd34b3f46df
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/it0146/repo/org/apache/maven/its/it0146/dep/0.1-SNAPSHOT/dep-0.1-20110726.105319-1.pom b/core-it-suite/src/test/resources/it0146/repo/org/apache/maven/its/it0146/dep/0.1-SNAPSHOT/dep-0.1-20110726.105319-1.pom
index 976fdd6..b4e61a5 100644
--- a/core-it-suite/src/test/resources/it0146/repo/org/apache/maven/its/it0146/dep/0.1-SNAPSHOT/dep-0.1-20110726.105319-1.pom
+++ b/core-it-suite/src/test/resources/it0146/repo/org/apache/maven/its/it0146/dep/0.1-SNAPSHOT/dep-0.1-20110726.105319-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0146</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0146</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0377/repo/org/apache/maven/its/mng0377/maven-it-plugin-prefix/0.1/maven-it-plugin-prefix-0.1.pom b/core-it-suite/src/test/resources/mng-0377/repo/org/apache/maven/its/mng0377/maven-it-plugin-prefix/0.1/maven-it-plugin-prefix-0.1.pom
index 25aa955..d1687ab 100644
--- a/core-it-suite/src/test/resources/mng-0377/repo/org/apache/maven/its/mng0377/maven-it-plugin-prefix/0.1/maven-it-plugin-prefix-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0377/repo/org/apache/maven/its/mng0377/maven-it-plugin-prefix/0.1/maven-it-plugin-prefix-0.1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0377</groupId>
-  <artifactId>maven-it-plugin-prefix</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0377</groupId>
+  <artifactId>maven-it-plugin-prefix</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-a/0.1/maven-it-plugin-a-0.1.pom b/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-a/0.1/maven-it-plugin-a-0.1.pom
index d3e7fd7..c65c678 100644
--- a/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-a/0.1/maven-it-plugin-a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-a/0.1/maven-it-plugin-a-0.1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0449</groupId>
-  <artifactId>maven-it-plugin-a</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0449</groupId>
+  <artifactId>maven-it-plugin-a</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-a/0.2-SNAPSHOT/maven-it-plugin-a-0.2-20090306.154319-1.pom b/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-a/0.2-SNAPSHOT/maven-it-plugin-a-0.2-20090306.154319-1.pom
index 7b19a46..1f67272 100644
--- a/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-a/0.2-SNAPSHOT/maven-it-plugin-a-0.2-20090306.154319-1.pom
+++ b/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-a/0.2-SNAPSHOT/maven-it-plugin-a-0.2-20090306.154319-1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0449</groupId>
-  <artifactId>maven-it-plugin-a</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0449</groupId>
+  <artifactId>maven-it-plugin-a</artifactId>
+  <version>0.2-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-b/0.1/maven-it-plugin-b-0.1.pom b/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-b/0.1/maven-it-plugin-b-0.1.pom
index 03d6783..a2afe41 100644
--- a/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-b/0.1/maven-it-plugin-b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0449/repo/org/apache/maven/its/mng0449/maven-it-plugin-b/0.1/maven-it-plugin-b-0.1.pom
@@ -1,80 +1,80 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0449</groupId>
-  <artifactId>maven-it-plugin-b</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Packaging</name>
-  <description>
-    A test plugin that defines a custom artifact handler ("it-artifact") and a new packaging type ("it-packaging").
-  </description>
-  <inceptionYear>2006</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-    <dependency>
-      <!--
-      NOTE: This is a dummy dependency whose contents doesn't matter. All that matters is that the plugin has at least
-      one dependency that is not excluded by the artifact filter of the core. This makes our IT plugin more closely
-      resemble a real-world plugin and in particular makes sure the extension manager does not consider the plugin
-      artifact as a standalone resource package. This subtle difference is crucial to reproduce MNG-2831.
-      -->
-      <groupId>org.apache.maven.its</groupId>
-      <artifactId>maven-core-it-support</artifactId>
-      <version>1.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0449</groupId>
+  <artifactId>maven-it-plugin-b</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Packaging</name>
+  <description>
+    A test plugin that defines a custom artifact handler ("it-artifact") and a new packaging type ("it-packaging").
+  </description>
+  <inceptionYear>2006</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <!--
+      NOTE: This is a dummy dependency whose contents doesn't matter. All that matters is that the plugin has at least
+      one dependency that is not excluded by the artifact filter of the core. This makes our IT plugin more closely
+      resemble a real-world plugin and in particular makes sure the extension manager does not consider the plugin
+      artifact as a standalone resource package. This subtle difference is crucial to reproduce MNG-2831.
+      -->
+      <groupId>org.apache.maven.its</groupId>
+      <artifactId>maven-core-it-support</artifactId>
+      <version>1.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/a-parent/0.1-SNAPSHOT/a-parent-0.1-20100824.153316-1.pom b/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/a-parent/0.1-SNAPSHOT/a-parent-0.1-20100824.153316-1.pom
index 9d577a4..6b6fa9c 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/a-parent/0.1-SNAPSHOT/a-parent-0.1-20100824.153316-1.pom
+++ b/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/a-parent/0.1-SNAPSHOT/a-parent-0.1-20100824.153316-1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0479</groupId>
-  <artifactId>a-parent</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng0479</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1-SNAPSHOT</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0479</groupId>
+  <artifactId>a-parent</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng0479</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/a/0.1-SNAPSHOT/a-0.1-20100824.153354-1.pom b/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/a/0.1-SNAPSHOT/a-0.1-20100824.153354-1.pom
index 05c8ef4..f177e25 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/a/0.1-SNAPSHOT/a-0.1-20100824.153354-1.pom
+++ b/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/a/0.1-SNAPSHOT/a-0.1-20100824.153354-1.pom
@@ -1,42 +1,42 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.maven.its.mng0479</groupId>
-    <artifactId>a-parent</artifactId>
-    <version>0.1-SNAPSHOT</version>
-  </parent>
-
-  <groupId>org.apache.maven.its.mng0479</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.its.mng0479</groupId>
+    <artifactId>a-parent</artifactId>
+    <version>0.1-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.apache.maven.its.mng0479</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/b/0.1-SNAPSHOT/b-0.1-20100824.153125-1.pom b/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/b/0.1-SNAPSHOT/b-0.1-20100824.153125-1.pom
index 8d3761d..82d16c4 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/b/0.1-SNAPSHOT/b-0.1-20100824.153125-1.pom
+++ b/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/b/0.1-SNAPSHOT/b-0.1-20100824.153125-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0479</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0479</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/maven-mng0479-plugin/0.1-SNAPSHOT/maven-mng0479-plugin-0.1-20100824.154413-1.pom b/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/maven-mng0479-plugin/0.1-SNAPSHOT/maven-mng0479-plugin-0.1-20100824.154413-1.pom
index dcde3e0..38f6e73 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/maven-mng0479-plugin/0.1-SNAPSHOT/maven-mng0479-plugin-0.1-20100824.154413-1.pom
+++ b/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/maven-mng0479-plugin/0.1-SNAPSHOT/maven-mng0479-plugin-0.1-20100824.154413-1.pom
@@ -1,63 +1,63 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0479</groupId>
-  <artifactId>maven-mng0479-plugin</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0479</groupId>
+  <artifactId>maven-mng0479-plugin</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/parent/0.1-SNAPSHOT/parent-0.1-20100824.154512-1.pom b/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/parent/0.1-SNAPSHOT/parent-0.1-20100824.154512-1.pom
index e835848..106b8d7 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/parent/0.1-SNAPSHOT/parent-0.1-20100824.154512-1.pom
+++ b/core-it-suite/src/test/resources/mng-0479/test-1/repo/org/apache/maven/its/mng0479/parent/0.1-SNAPSHOT/parent-0.1-20100824.154512-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0479</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0479</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0479/test-2/repo/org/apache/maven/its/mng0479/parent/0.1/parent-0.1.pom b/core-it-suite/src/test/resources/mng-0479/test-2/repo/org/apache/maven/its/mng0479/parent/0.1/parent-0.1.pom
index 3935d6d..87f61ac 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-2/repo/org/apache/maven/its/mng0479/parent/0.1/parent-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0479/test-2/repo/org/apache/maven/its/mng0479/parent/0.1/parent-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0479</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0479</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0479/test-2/repo/org/apache/maven/its/mng0479/parent/0.1/parent-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0479/test-2/repo/org/apache/maven/its/mng0479/parent/0.1/parent-0.1.pom.sha1
index 2e4a5af..5090761 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-2/repo/org/apache/maven/its/mng0479/parent/0.1/parent-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0479/test-2/repo/org/apache/maven/its/mng0479/parent/0.1/parent-0.1.pom.sha1
@@ -1 +1 @@
-f38f7d572ae74797c11e036859613bec6ba7ca34
\ No newline at end of file
+3d8b0b613c6bde1d4e00e81bf626edd76598f0b5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom
index 3bbe9dc..4f48123 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0479</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0479</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom.md5
index 376178e..6c95656 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-6d8185078179ea653bc12aa018f44847
\ No newline at end of file
+103608352a6f34762c8a611bc1bc0a85
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom.sha1
index c708608..06b034f 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0479/test-3/repo/org/apache/maven/its/mng0479/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-818cb5f5ec23789fb5380bc3c91dfbb3ac0fdbc7
\ No newline at end of file
+e6fb937faf450313c5f28309109d3e99ecf50fd7
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/a/0.2-SNAPSHOT/a-0.2-20100824.163154-1.pom b/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/a/0.2-SNAPSHOT/a-0.2-20100824.163154-1.pom
index 4c44543..11d5367 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/a/0.2-SNAPSHOT/a-0.2-20100824.163154-1.pom
+++ b/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/a/0.2-SNAPSHOT/a-0.2-20100824.163154-1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0479</groupId>
-  <artifactId>a</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng0479</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0479</groupId>
+  <artifactId>a</artifactId>
+  <version>0.2-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng0479</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom
index c8d091f..3da94d3 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0479</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0479</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom.md5
index 89a022b..28c1323 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-dd9f7e40fac0f2e02721813e69d67841
\ No newline at end of file
+c2f58da94cdf997bd1cd663898c8af74
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom.sha1
index 5e716a2..e71a55c 100644
--- a/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0479/test-4/repo/org/apache/maven/its/mng0479/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-f7c2dd3e727ab59a88ec480e6c243eaa8313164a
\ No newline at end of file
+4ca2a6c406f659bad3cf3c954ac99723d4c07a62
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom
index 0b5dcdd..3083c52 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0505</groupId>
-  <artifactId>a</artifactId>
-  <version>1.0</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0505</groupId>
+  <artifactId>a</artifactId>
+  <version>1.0</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom.md5 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom.md5
index d47ce41..cc6048f 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom.md5
@@ -1 +1 @@
-21502158ab5a320ec175bc1940bf16ad
\ No newline at end of file
+ea541e9d5d6d6e62c8073fca9bd3f94a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom.sha1 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom.sha1
index fdabe77..a1088bd 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.0/a-1.0.pom.sha1
@@ -1 +1 @@
-5f24c5bdb7b6e975110ace03db7121177e628d5b
\ No newline at end of file
+39b2942a7cf7bedbae9253723850013b9118181a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom
index 0e24b4a..3793882 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0505</groupId>
-  <artifactId>a</artifactId>
-  <version>1.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0505</groupId>
+  <artifactId>a</artifactId>
+  <version>1.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom.md5 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom.md5
index 1874dc7..df05273 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom.md5
@@ -1 +1 @@
-b7014c30bffd8c12ed3bd0a4643a1a50
\ No newline at end of file
+0b642b963ec9031e610ad6e69f90c90e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom.sha1
index 2b81a9f..3f75b7b 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/a/1.1/a-1.1.pom.sha1
@@ -1 +1 @@
-c32fbcc6acfd47249ee07d5a4d0cfcb686b3da86
\ No newline at end of file
+5d59123a66118899629081bc70c91d98761f8817
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom
index 7d83e21..0c626f9 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0505</groupId>
-  <artifactId>b</artifactId>
-  <version>1.0</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0505</groupId>
+  <artifactId>b</artifactId>
+  <version>1.0</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom.md5 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom.md5
index 19a023e..48e42c1 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom.md5
@@ -1 +1 @@
-8b624d077763049207d60e0987020ecc
\ No newline at end of file
+27efb4cfd8231b3a393d63d08d648143
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom.sha1 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom.sha1
index 9421c56..d9ca9c5 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.0/b-1.0.pom.sha1
@@ -1 +1 @@
-c3bd1262830ebdc32ff44adf570a187f41e10d9c
\ No newline at end of file
+19ec32ae90c8a3ccf03e28b8c3dbbabe898a7fff
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom
index 68a1422..7ace21d 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0505</groupId>
-  <artifactId>b</artifactId>
-  <version>1.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0505</groupId>
+  <artifactId>b</artifactId>
+  <version>1.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom.md5 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom.md5
index 7dcb400..39348af 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom.md5
@@ -1 +1 @@
-4f775a0501fe9ebf13f0aa4e5de6d82d
\ No newline at end of file
+d8fb4615e4e7c0705a2d9e06f48429c4
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom.sha1
index 4a1a200..b15a6e7 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/b/1.1/b-1.1.pom.sha1
@@ -1 +1 @@
-2301c92a9c8333694ea457438159e9d12a3b3be5
\ No newline at end of file
+32d4ed98e3227caa44869a7b3a1319b79be4042c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom
index b270a2e..12975c0 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0505</groupId>
-  <artifactId>c</artifactId>
-  <version>3.7</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0505</groupId>
+  <artifactId>c</artifactId>
+  <version>3.7</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom.md5 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom.md5
index e6bddff..cccac84 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom.md5
@@ -1 +1 @@
-58ff51c6011b71f2dc162768087f5a50
\ No newline at end of file
+f595500108762ef7c9130ef56c5a4000
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom.sha1 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom.sha1
index 0cde75e..168b9d8 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.7/c-3.7.pom.sha1
@@ -1 +1 @@
-c6b2a9cf53da7837fa049faf771a6a0cfc14629d
\ No newline at end of file
+c9a5582984d765a6dea3ddb777f59feeddbeb5ec
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom
index 2766716..20cf946 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0505</groupId>
-  <artifactId>c</artifactId>
-  <version>3.8.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0505</groupId>
+  <artifactId>c</artifactId>
+  <version>3.8.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom.md5 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom.md5
index daecfe6..96f1dbe 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom.md5
@@ -1 +1 @@
-19637559b1ee564bac04c9ad029bc0e8
\ No newline at end of file
+d4a09f7744a9295913d078cd614e4595
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom.sha1
index 32a4b0f..69030ea 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8.1/c-3.8.1.pom.sha1
@@ -1 +1 @@
-8bf43f6c508a727090e6c63d6268087566f04b16
\ No newline at end of file
+9be2f0e5855328a134ea94358361d953a67be5ae
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom
index 480ffa0..5df4402 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0505</groupId>
-  <artifactId>c</artifactId>
-  <version>3.8</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0505</groupId>
+  <artifactId>c</artifactId>
+  <version>3.8</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom.md5 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom.md5
index a3dd93c..21fe67f 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom.md5
@@ -1 +1 @@
-cb42961ac1405c1e2e87a47cd751bf7a
\ No newline at end of file
+27d0253f927207395d88cd2ba1d78dfb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom.sha1 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom.sha1
index a077870..e714218 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/c/3.8/c-3.8.pom.sha1
@@ -1 +1 @@
-e8b99f6ffbcbb95216ed8c7089ab415bf350816d
\ No newline at end of file
+f5a51f76acde2d25d31e6d8aac732ec9db33e5a5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom
index fbc0683..af32f89 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0505</groupId>
-  <artifactId>d</artifactId>
-  <version>2.0</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0505</groupId>
+  <artifactId>d</artifactId>
+  <version>2.0</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom.md5 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom.md5
index c411ef4..6319a03 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom.md5
@@ -1 +1 @@
-bb5942636adc5f6af949429b9f411484
\ No newline at end of file
+04981937db5d04dc629b0294fc63050e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom.sha1 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom.sha1
index 15596cd..aa11c2f 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.0/d-2.0.pom.sha1
@@ -1 +1 @@
-32b66d35b35d63ff0130147d6c6f36ac12f5d7a8
\ No newline at end of file
+1c1b42dbb2030c4393ed91a0bd3180e3e69caa40
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom
index 2f617df..380690a 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0505</groupId>
-  <artifactId>d</artifactId>
-  <version>2.1.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0505</groupId>
+  <artifactId>d</artifactId>
+  <version>2.1.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom.md5 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom.md5
index f076d08..483908d 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom.md5
@@ -1 +1 @@
-ada15f3a9054a8c486ff785ba389187a
\ No newline at end of file
+83a6c963741a2e6b882f670120911ac1
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom.sha1
index edc2773..22c64fd 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1.1/d-2.1.1.pom.sha1
@@ -1 +1 @@
-cceba5fb6723bf91e16f897221331452e6dd67ce
\ No newline at end of file
+a69e1b530dfde1e5ece1a44a3043309a78005cb3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom
index ccabe30..42be6dd 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0505</groupId>
-  <artifactId>d</artifactId>
-  <version>2.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0505</groupId>
+  <artifactId>d</artifactId>
+  <version>2.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom.md5 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom.md5
index abf5e25..49c228b 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom.md5
@@ -1 +1 @@
-fe08177ba40608e8e8ce0161e21ce314
\ No newline at end of file
+868d49dce78d113e4ecb87753adefcdf
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom.sha1
index 2884563..f258301 100644
--- a/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0505/repo/org/apache/maven/its/mng0505/d/2.1/d-2.1.pom.sha1
@@ -1 +1 @@
-23adae7af514163dc227c9bbcb3c20e43ae3ce8b
\ No newline at end of file
+1c8d0eae866141f15fbe59c0c15e30495e729784
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0553/repo/org/apache/maven/its/mng0553/a/0.1-SNAPSHOT/a-0.1-20090812.131911-1.pom b/core-it-suite/src/test/resources/mng-0553/repo/org/apache/maven/its/mng0553/a/0.1-SNAPSHOT/a-0.1-20090812.131911-1.pom
index cbca4ea..84c077c 100644
--- a/core-it-suite/src/test/resources/mng-0553/repo/org/apache/maven/its/mng0553/a/0.1-SNAPSHOT/a-0.1-20090812.131911-1.pom
+++ b/core-it-suite/src/test/resources/mng-0553/repo/org/apache/maven/its/mng0553/a/0.1-SNAPSHOT/a-0.1-20090812.131911-1.pom
@@ -1,41 +1,41 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0553</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-553</name>
-  <description>
-    Test support for encrypted passwords in settings.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0553</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-553</name>
+  <description>
+    Test support for encrypted passwords in settings.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom
index 25087ba..3e38a0b 100644
--- a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0080</groupId>
-  <artifactId>jar</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0080</groupId>
+  <artifactId>jar</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom.md5
index 0d52af3..c2b5f00 100644
--- a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom.md5
@@ -1 +1 @@
-ff028be44d57bdcbc5a73744a9970e4d
\ No newline at end of file
+f414025383af7f6d788e4b6beb2dc258
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom.sha1
index 5e4c0f1..8add0fd 100644
--- a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/jar/0.1/jar-0.1.pom.sha1
@@ -1 +1 @@
-dcd0130a15064ca01dc09086b21963211e63a386
\ No newline at end of file
+ae3af5d58e2eeaf5b4a696cd8267127b5d4c21e2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom
index 50d8c26..7fe4a85 100644
--- a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom
@@ -1,64 +1,64 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0080</groupId>
-  <artifactId>war</artifactId>
-  <version>0.1</version>
-  <packaging>war</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.it0080</groupId>
-      <artifactId>jar</artifactId>
-      <version>0.1</version>
-      <type>jar</type>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0080</groupId>
+  <artifactId>war</artifactId>
+  <version>0.1</version>
+  <packaging>war</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.it0080</groupId>
+      <artifactId>jar</artifactId>
+      <version>0.1</version>
+      <type>jar</type>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom.md5
index 679c052..d49c51f 100644
--- a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom.md5
@@ -1 +1 @@
-a6d9c9cda641d9d1e4863f7c77f3eef0
\ No newline at end of file
+b78c27b32e9af0d6504b255b53062905
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom.sha1
index 0117746..8611851 100644
--- a/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0818/repo/org/apache/maven/its/it0080/war/0.1/war-0.1.pom.sha1
@@ -1 +1 @@
-5d5c50017ef4999ff0e545ac7d398e4b12b7540e
\ No newline at end of file
+eae05c1dde06fb246142f7b68c68c61dbc799d5b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom
index 8a81340..41b6af4 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0820</groupId>
-  <artifactId>a</artifactId>
-  <version>1.0</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0820</groupId>
+  <artifactId>a</artifactId>
+  <version>1.0</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom.md5 b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom.md5
index 5baf88d..d9168d0 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom.md5
@@ -1 +1 @@
-aba85d2c294364d1be8f68ab5e2deeab
\ No newline at end of file
+309b591d3f60d16644adc6f8990de7ec
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom.sha1 b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom.sha1
index c08850a..f960576 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/a/1.0/a-1.0.pom.sha1
@@ -1 +1 @@
-c97c940fe47f273f69fe6ae29caabd71170436d5
\ No newline at end of file
+c311783d6ba59f3d2de5d384284f4177bc404192
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom
index 798da8c..60edecd 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0820</groupId>
-  <artifactId>b</artifactId>
-  <version>1.0</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0820</groupId>
+  <artifactId>b</artifactId>
+  <version>1.0</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom.md5 b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom.md5
index 6b4037e..8fe59cb 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom.md5
@@ -1 +1 @@
-b847859313d5f25ce02a308e3ef1f6f3
\ No newline at end of file
+47d32622cad1543de582ebcfc270d97c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom.sha1 b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom.sha1
index a995502..ef277bf 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/b/1.0/b-1.0.pom.sha1
@@ -1 +1 @@
-b2d56ce1d7faf269c623a168d55e46fccda15271
\ No newline at end of file
+04c0a844c20271e35184ec9213bb2d7c567b890a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom
index 3cf6447..b4975aa 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom
@@ -1,48 +1,48 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0820</groupId>
-  <artifactId>c</artifactId>
-  <version>1.3</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng0820</groupId>
-      <artifactId>b</artifactId>
-      <version>1.0</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0820</groupId>
+  <artifactId>c</artifactId>
+  <version>1.3</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng0820</groupId>
+      <artifactId>b</artifactId>
+      <version>1.0</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom.md5 b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom.md5
index e37b586..6c9281f 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom.md5
@@ -1 +1 @@
-5addbb775b94625796d8500e40e827c8
\ No newline at end of file
+8ca0fab4b22adb77adf41337dd068766
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom.sha1 b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom.sha1
index a2d158a..91dfe74 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.3/c-1.3.pom.sha1
@@ -1 +1 @@
-893ab8ab2fa747c54effaa871ac0d82c31322e0d
\ No newline at end of file
+af015cb18a22c7dcf3091871ce213045211a91cb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom
index a9bd78f..3cc56e8 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom
@@ -1,48 +1,48 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0820</groupId>
-  <artifactId>c</artifactId>
-  <version>1.4</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng0820</groupId>
-      <artifactId>a</artifactId>
-      <version>1.0</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0820</groupId>
+  <artifactId>c</artifactId>
+  <version>1.4</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng0820</groupId>
+      <artifactId>a</artifactId>
+      <version>1.0</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom.md5 b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom.md5
index 2f58ba3..2e2c216 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom.md5
@@ -1 +1 @@
-db4651021568d6018deb96c5ae456515
\ No newline at end of file
+8bf589cf41a0e93b5b294d96200718be
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom.sha1 b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom.sha1
index 1e02033..8085228 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/c/1.4/c-1.4.pom.sha1
@@ -1 +1 @@
-558c596016c8b2a38e0ff9aa4bfe33caf41e1405
\ No newline at end of file
+1c80342eb998b05560f171183edca65eeb9ccd81
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom
index f19de33..56c25e2 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom
@@ -1,48 +1,48 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0820</groupId>
-  <artifactId>d</artifactId>
-  <version>2.0</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng0820</groupId>
-      <artifactId>c</artifactId>
-      <version>1.3</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0820</groupId>
+  <artifactId>d</artifactId>
+  <version>2.0</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng0820</groupId>
+      <artifactId>c</artifactId>
+      <version>1.3</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom.md5 b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom.md5
index 5d3c050..3eac3d9 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom.md5
@@ -1 +1 @@
-620f521f81916e98dbfe65ae1bc46a51
\ No newline at end of file
+1df4a901b0114c99951b48dcf41bc4e5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom.sha1 b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom.sha1
index 2b3a823..b5a158e 100644
--- a/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0820/repo/org/apache/maven/its/mng0820/d/2.0/d-2.0.pom.sha1
@@ -1 +1 @@
-a01b2c07423b03eb22fdf48d81bbdf12824745ba
\ No newline at end of file
+15b6fbc8f17a9c94170141154675234d989eb77c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom b/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom
index 011d17f..b17b989 100644
--- a/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom
@@ -1,65 +1,65 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng836</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.maven</groupId>
-        <artifactId>maven-plugin-api</artifactId>
-        <version>2.0</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng836</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-plugin-api</artifactId>
+        <version>2.0</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom.md5
index e463c4a..9af4a25 100644
--- a/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom.md5
@@ -1 +1 @@
-02c323e3c1894a4b85c4f5479d2ad75b
\ No newline at end of file
+8a6e1f8a46879d674872eaaacede1db2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom.sha1
index 8bcb154..27e7f48 100644
--- a/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0836/repo-0/org/apache/maven/its/mng836/parent/0.1/parent-0.1.pom.sha1
@@ -1 +1 @@
-63a6e73e0f6329ec1157702c4dadcd14c042899c
\ No newline at end of file
+fba97a36a5301cd7733dc2f91bafd11e254cac97
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0836/repo-1/org/apache/maven/its/mng836/plugin/0.1-SNAPSHOT/plugin-0.1-SNAPSHOT.pom b/core-it-suite/src/test/resources/mng-0836/repo-1/org/apache/maven/its/mng836/plugin/0.1-SNAPSHOT/plugin-0.1-SNAPSHOT.pom
index 0a61864..d670629 100644
--- a/core-it-suite/src/test/resources/mng-0836/repo-1/org/apache/maven/its/mng836/plugin/0.1-SNAPSHOT/plugin-0.1-SNAPSHOT.pom
+++ b/core-it-suite/src/test/resources/mng-0836/repo-1/org/apache/maven/its/mng836/plugin/0.1-SNAPSHOT/plugin-0.1-SNAPSHOT.pom
@@ -1,70 +1,70 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.maven.its.mng836</groupId>
-    <artifactId>parent</artifactId>
-    <version>0.1</version>
-  </parent>
-
-  <groupId>org.apache.maven.its.mng836</groupId>
-  <artifactId>plugin</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>false</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <!-- NOTE: Version managed from parent to make sure this build does not silently pass with a stub parent model. -->
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.its.mng836</groupId>
+    <artifactId>parent</artifactId>
+    <version>0.1</version>
+  </parent>
+
+  <groupId>org.apache.maven.its.mng836</groupId>
+  <artifactId>plugin</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>false</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <!-- NOTE: Version managed from parent to make sure this build does not silently pass with a stub parent model. -->
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom
index 4cb0949..27bd9ed 100644
--- a/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0870</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0870</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom.md5
index e881f68..3e6c7f7 100644
--- a/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-66a657c567b348342320841728fdeaee
\ No newline at end of file
+a5ae2c400f39e8976a0edac72c64179e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom.sha1
index 39fc2a1..4198372 100644
--- a/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0870/repo/org/apache/maven/its/mng0870/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-a7f5b5bc8821d7f560df74f912820b39570d8448
\ No newline at end of file
+4adcb8cb0f1c7451021a8b54cd19d8734cce9519
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom
index bfbc7ef..baef383 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0947</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0947</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom.md5
index 182ddb4..d07c8ac 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-df3a43dfdf9d2de92442d148613c25cc
\ No newline at end of file
+f16822c5140fa20a124e1ffa4035f8cb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom.sha1
index a411853..125ba2d 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-c3b5819d88d2fbb03b3842793a0c5127bf22c86f
\ No newline at end of file
+e60d63bca4287b95de098f861c48d3b728d8b90b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom
index b537189..9fb6d5c 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0947</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0947</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom.md5
index 2bd15fc..31b77e9 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-ec947ba99cb6f4209f52ac301d2d8e95
\ No newline at end of file
+ddc184cc6f0425c8a3c4db0f8830ba30
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom.sha1
index 59ae48e..2c81c72 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-060c0866f1ef7cc9594a3141059d0f489269edd2
\ No newline at end of file
+78d2828dbd20067748fb6c5b6e3e4973fb7af563
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom
index 8ee149f..b34786b 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom
@@ -1,53 +1,53 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0947</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng0947</groupId>
-      <artifactId>a</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng0947</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1</version>
-      <scope>runtime</scope>
-      <optional>true</optional>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0947</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng0947</groupId>
+      <artifactId>a</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng0947</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1</version>
+      <scope>runtime</scope>
+      <optional>true</optional>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom.md5
index 384c108..e3d0881 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-55b485f9725ab1f2653e0f277094bf56
\ No newline at end of file
+7b25011963539c0079668ed02f987f85
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom.sha1
index 8fca0ca..4901862 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-de8873c01f87d69c70716b2b527f73f44368c724
\ No newline at end of file
+589ecd1d73d9c229cf02c8695dabc97f5aad084d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom
index 0d2c1a9..68e6a89 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0947</groupId>
-  <artifactId>d</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0947</groupId>
+  <artifactId>d</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom.md5
index 4ae1d8a..d79c529 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom.md5
@@ -1 +1 @@
-33d3f7e9ff0ddee6ffdd9df7bcf0adff
\ No newline at end of file
+c27622be02b76c9da11cc3c7967727a7
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom.sha1
index 702d05c..bcb784a 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/d/0.1/d-0.1.pom.sha1
@@ -1 +1 @@
-d96623689bacb3de0b80f26924478d84643d9b26
\ No newline at end of file
+0fa8da083870d67992f6626ea4fa4fef6d1c6222
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom
index 9b680c1..0bf2652 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng0947</groupId>
-  <artifactId>e</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng0947</groupId>
-      <artifactId>d</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng0947</groupId>
+  <artifactId>e</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng0947</groupId>
+      <artifactId>d</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom.md5
index fb2fba4..66511b6 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom.md5
@@ -1 +1 @@
-b0e340609b80ead69c4172e42639682d
\ No newline at end of file
+47bd23c820b11ef07e8492c7aec3502f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom.sha1
index 9209d24..2e5f14d 100644
--- a/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0947/repo/org/apache/maven/its/mng0947/e/0.1/e-0.1.pom.sha1
@@ -1 +1 @@
-80a67ddf005abc7d2a110a893947f555407df124
\ No newline at end of file
+d9ff62bdb2a4959f1d798906b5a8c27ce14f7c33
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-0956/repo/org/apache/maven/its/mng0956/component/0.1/component-0.1.pom b/core-it-suite/src/test/resources/mng-0956/repo/org/apache/maven/its/mng0956/component/0.1/component-0.1.pom
index ac4f2d4..a152060 100644
--- a/core-it-suite/src/test/resources/mng-0956/repo/org/apache/maven/its/mng0956/component/0.1/component-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-0956/repo/org/apache/maven/its/mng0956/component/0.1/component-0.1.pom
@@ -1,71 +1,71 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0081</groupId>
-  <artifactId>component</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-maven-plugin</artifactId>
-        <version>1.3.8</version>
-        <executions>
-          <execution>
-            <id>create-component-descriptor</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>descriptor</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0081</groupId>
+  <artifactId>component</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-maven-plugin</artifactId>
+        <version>1.3.8</version>
+        <executions>
+          <execution>
+            <id>create-component-descriptor</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>descriptor</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-0956/repo/org/apache/maven/its/mng0956/component/0.1/component-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-0956/repo/org/apache/maven/its/mng0956/component/0.1/component-0.1.pom.sha1
index 0029c3b..4d3b171 100644
--- a/core-it-suite/src/test/resources/mng-0956/repo/org/apache/maven/its/mng0956/component/0.1/component-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-0956/repo/org/apache/maven/its/mng0956/component/0.1/component-0.1.pom.sha1
@@ -1 +1 @@
-cb3af17405a407f82b13b1762d50c9243fc3ba26
\ No newline at end of file
+c29d6c0240798dc6d81231394d479e135077b9e9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1088/repo/org/apache/maven/its/mng1088/p/0.1-SNAPSHOT/p-0.1-SNAPSHOT.pom b/core-it-suite/src/test/resources/mng-1088/repo/org/apache/maven/its/mng1088/p/0.1-SNAPSHOT/p-0.1-SNAPSHOT.pom
index 0be6c48..dc79c49 100644
--- a/core-it-suite/src/test/resources/mng-1088/repo/org/apache/maven/its/mng1088/p/0.1-SNAPSHOT/p-0.1-SNAPSHOT.pom
+++ b/core-it-suite/src/test/resources/mng-1088/repo/org/apache/maven/its/mng1088/p/0.1-SNAPSHOT/p-0.1-SNAPSHOT.pom
@@ -1,64 +1,64 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1088</groupId>
-  <artifactId>p</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>false</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1088</groupId>
+  <artifactId>p</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>false</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1088/repo/org/apache/maven/its/mng1088/p/0.1-SNAPSHOT/p-0.1-SNAPSHOT.pom.sha1 b/core-it-suite/src/test/resources/mng-1088/repo/org/apache/maven/its/mng1088/p/0.1-SNAPSHOT/p-0.1-SNAPSHOT.pom.sha1
index f90e919..adad6b7 100644
--- a/core-it-suite/src/test/resources/mng-1088/repo/org/apache/maven/its/mng1088/p/0.1-SNAPSHOT/p-0.1-SNAPSHOT.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1088/repo/org/apache/maven/its/mng1088/p/0.1-SNAPSHOT/p-0.1-SNAPSHOT.pom.sha1
@@ -1 +1 @@
-85e760be9b7bec5d6d0d8faeb16827f7d79004d3
\ No newline at end of file
+e79dfeb01c32972511795752f860e2cf986c48aa
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom
index 89b00e1..7f63b04 100644
--- a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom
+++ b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1142</groupId>
-  <artifactId>a</artifactId>
-  <version>1.1.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1142</groupId>
+  <artifactId>a</artifactId>
+  <version>1.1.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom.md5 b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom.md5
index 80966d9..7e91f44 100644
--- a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom.md5
@@ -1 +1 @@
-f75818f937d5895ee5dc01ee5ace3198
\ No newline at end of file
+e19503a5aac772bd55f9015ccfeb73ff
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom.sha1
index 1711fa4..373335e 100644
--- a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.1/a-1.1.1.pom.sha1
@@ -1 +1 @@
-916884ffdfb1b5857b646639345bb5afbabf6a11
\ No newline at end of file
+baee2883248cba03cf136df19363d79a94311b97
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom
index aae8260..28ec908 100644
--- a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom
+++ b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1142</groupId>
-  <artifactId>a</artifactId>
-  <version>1.1.2</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1142</groupId>
+  <artifactId>a</artifactId>
+  <version>1.1.2</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom.md5 b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom.md5
index d0afa20..682fd04 100644
--- a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom.md5
@@ -1 +1 @@
-af924c1b425d0c12d350656ccf109a0b
\ No newline at end of file
+ac6997948756bfb23931418541ff3c9b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom.sha1 b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom.sha1
index 167b893..857c12b 100644
--- a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/a/1.1.2/a-1.1.2.pom.sha1
@@ -1 +1 @@
-56073992affda8b911cc93504eedd3af171fb1de
\ No newline at end of file
+5b14220c625e4a1ed34d38faf43b1ab3646a7703
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom
index a158571..1b6246e 100644
--- a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1142</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng1142</groupId>
-      <artifactId>a</artifactId>
-      <version>[1.0,1.1.2)</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1142</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng1142</groupId>
+      <artifactId>a</artifactId>
+      <version>[1.0,1.1.2)</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom.md5
index f48d677..5c82b78 100644
--- a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-7b5069a9bd0d468d8f08b8e9eaf29794
\ No newline at end of file
+68086df4a53da00b8b0effa6f7e37652
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom.sha1
index 38fab34..e489538 100644
--- a/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1142/repo/org/apache/maven/its/mng1142/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-d14d0ac5bbe852c6fa261ed7f8d7d2bad414fb44
\ No newline at end of file
+d640277511f13f611a741d84059784b43cce0548
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/direct-dep/0.1/direct-dep-0.1.pom b/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/direct-dep/0.1/direct-dep-0.1.pom
index 271769e..04f04d3 100644
--- a/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/direct-dep/0.1/direct-dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/direct-dep/0.1/direct-dep-0.1.pom
@@ -1,64 +1,64 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0083</groupId>
-  <artifactId>direct-dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.it0083</groupId>
-      <artifactId>trans-dep</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0083</groupId>
+  <artifactId>direct-dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.it0083</groupId>
+      <artifactId>trans-dep</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/direct-dep/0.1/direct-dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/direct-dep/0.1/direct-dep-0.1.pom.sha1
index 97dab24..24b261b 100644
--- a/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/direct-dep/0.1/direct-dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/direct-dep/0.1/direct-dep-0.1.pom.sha1
@@ -1 +1 @@
-6ab7d262bd1b4ad735825291d0ffaf0563c827da
\ No newline at end of file
+e7e0d08c70748c259406ac0631291db2481d6735
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/trans-dep/0.1/trans-dep-0.1.pom b/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/trans-dep/0.1/trans-dep-0.1.pom
index bdff303..1c06971 100644
--- a/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/trans-dep/0.1/trans-dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/trans-dep/0.1/trans-dep-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.it0083</groupId>
-  <artifactId>trans-dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.it0083</groupId>
+  <artifactId>trans-dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/trans-dep/0.1/trans-dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/trans-dep/0.1/trans-dep-0.1.pom.sha1
index 3339ff7..6083543 100644
--- a/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/trans-dep/0.1/trans-dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1233/repo/org/apache/maven/its/it0083/trans-dep/0.1/trans-dep-0.1.pom.sha1
@@ -1 +1 @@
-21f04bc08fe406046fa595561dd757ad4a1d43da
\ No newline at end of file
+35f047b00cdf88116bf4ac282da2e85f9fb93031
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom
index 15b7b80..a976af8 100644
--- a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1323</groupId>
-  <artifactId>dep-a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1323</groupId>
+  <artifactId>dep-a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom.md5
index 92f9e13..60dc191 100644
--- a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom.md5
@@ -1 +1 @@
-34a6b9425a764b91893b1d6a41b27f9f
\ No newline at end of file
+0224377709b72f6f00d340d19c5a6944
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom.sha1
index ac1e58a..876f2d8 100644
--- a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-a/0.1/dep-a-0.1.pom.sha1
@@ -1 +1 @@
-8331b87c8f6dda23343bdd0afa1fc59d92732e80
\ No newline at end of file
+7c002cd3c793f70c18fa31f63ecb326f7461c2bd
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom
index 85958c6..f1b48b7 100644
--- a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1323</groupId>
-  <artifactId>dep-b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1323</groupId>
+  <artifactId>dep-b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom.md5
index ddec44d..cf26a49 100644
--- a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom.md5
@@ -1 +1 @@
-f3d960edbcd8575b1c05084e585b5915
\ No newline at end of file
+7d897ea24e30b8b0df2640d2e5d2304d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom.sha1
index da3d909..fe3b8ca 100644
--- a/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1323/repo/org/apache/maven/its/mng1323/dep-b/0.1/dep-b-0.1.pom.sha1
@@ -1 +1 @@
-8f7e9ea1c3bb154da2b280311608ac5e998fc73b
\ No newline at end of file
+0916a0988bf606971f981f24a5d1d3853a71873f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom
index 8cae54f..de56c57 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1349</groupId>
-  <artifactId>md5-a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1349</groupId>
+  <artifactId>md5-a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom.md5
index 2c869f1..147f191 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom.md5
@@ -1 +1 @@
-2925e36266ed0cc9edd59e92ffe7213f
\ No newline at end of file
+6d5bd47b09e7feb33e738d0ce89e5b80
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom.sha1
index 8ddcc17..1e04584 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-a/0.1/md5-a-0.1.pom.sha1
@@ -1 +1 @@
-240af09a33d3e9aa3819dcbb76e1cffe8669f19d
\ No newline at end of file
+bda4e9f59a08769da6b84e657f18cf90670b19f5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom
index dde8665..a92c648 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1349</groupId>
-  <artifactId>md5-b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1349</groupId>
+  <artifactId>md5-b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom.md5
index 4dcc52b..df89fe4 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom.md5
@@ -1 +1 @@
-9c0f7234fb37eb72fac6dea5d8496773 *md5-b-0.1.pom
\ No newline at end of file
+4628ea6e170516b7a4bbeb0dfd185bd0 *md5-b-0.1.pom
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom.sha1
index 6341773..f67f3b3 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-b/0.1/md5-b-0.1.pom.sha1
@@ -1 +1 @@
-06d832f5bbfabe743efbba6de713929aeb4da08c
\ No newline at end of file
+53ef19349ce21c5bee432a24aed55c7b7135fbf6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom
index 829e67c..b5dcba6 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1349</groupId>
-  <artifactId>md5-c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1349</groupId>
+  <artifactId>md5-c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom.md5
index 11a1f59..e978605 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom.md5
@@ -1 +1 @@
-MD5 (md5-c-0.1.pom)= 5b5974da6cb1374fff2937fc9d209292
\ No newline at end of file
+MD5 (md5-c-0.1.pom)= c0440488ea352d6b911221106ae2c0e0
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom.sha1
index 1933cd7..80cec01 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/md5-c/0.1/md5-c-0.1.pom.sha1
@@ -1 +1 @@
-cc2e2dc68b5acf61dc5aca8d0298c6a11e43df2c
\ No newline at end of file
+ced2f2c0f6480aca0dbafbc6aa3058608620cbc3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom
index 4107f60..6f9b919 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1349</groupId>
-  <artifactId>sha1-a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1349</groupId>
+  <artifactId>sha1-a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom.md5
index 5e4c4b9..2589d75 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom.md5
@@ -1 +1 @@
-cef63b474c607c51140cb0d3b3fbb973
\ No newline at end of file
+9f687a640df654b5f87b8c4b92c4838a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom.sha1
index 5127c72..34c4969 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-a/0.1/sha1-a-0.1.pom.sha1
@@ -1 +1 @@
-f37252b2660f562fdb039e92d27c916aa42d9bdc
\ No newline at end of file
+fd2c1e5d00a8b0aa0dfdb13a39c1b0fa8ace01c8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom
index 25874f7..a538986 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1349</groupId>
-  <artifactId>sha1-b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1349</groupId>
+  <artifactId>sha1-b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom.md5
index ec6a2f1..c3416b9 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom.md5
@@ -1 +1 @@
-cae38ec4b4c647bc3c0d5d094c19fd0b
\ No newline at end of file
+636be7dcc3f117b1bd56e7b5b3151012
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom.sha1
index b766e18..3386fce 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-b/0.1/sha1-b-0.1.pom.sha1
@@ -1 +1 @@
-7a9982d2198026decb5cfde6639bff4eb2940f51 *sha1-b-0.1.pom
\ No newline at end of file
+cfde75cc4e9439b28916bd244bd2f9e9b1a8dd1f *sha1-b-0.1.pom
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom
index 4e02e91..d017343 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1349</groupId>
-  <artifactId>sha1-c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1349</groupId>
+  <artifactId>sha1-c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom.md5
index 5c2760a..3267a61 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom.md5
@@ -1 +1 @@
-3f71041eec0171a96005c3405dca36b7
\ No newline at end of file
+96b3a54bdac1785308a82486936d6897
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom.sha1
index 83553ab..1cbd954 100644
--- a/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1349/repo/org/apache/maven/its/mng1349/sha1-c/0.1/sha1-c-0.1.pom.sha1
@@ -1 +1 @@
-SHA1(sha1-c-0.1.pom)= 440453144728b23a084d147e54e64c75f644a3b7
\ No newline at end of file
+SHA1(sha1-c-0.1.pom)= 0e59e5edd6526dd5b5549ed3e0986921609454ce
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom
index 45b4adf..34ada56 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1412</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1412</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom.md5
index b1e68d8..1e1d16f 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-20b058f80a7b628079268bd166962945
\ No newline at end of file
+cc3b8f0138a44f29dbc7680fe5be00bd
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom.sha1
index 1736d61..b54b1f0 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-fda3f6d911503a90c706cafcbe4302733b3ce360
\ No newline at end of file
+2804ae7d30469987ca87c751f79ba4cc68ba14c8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom
index 20ecfb9..89e19bb 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1412</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1412</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom.md5
index 1d1ebf7..a0c603c 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-831c5da8103d3875e02d6b4b78150946
\ No newline at end of file
+937030b021dabf1ed6f41f82cf74037c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom.sha1
index 2e45b26..51098fe 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-5eda2eba89aa1032203460f287589c182a008832
\ No newline at end of file
+6e893a95d687b32169e50f9d3b1c634e33c3b768
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom
index 0e53bef..f84f411 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1412</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1412</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom.md5
index 131cd68..36611ca 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-a4f5a039f4500c594391d00c939e1805
\ No newline at end of file
+4c62bf2132792d300fe4137f5eab8109
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom.sha1
index 8648995..b0e390a 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-909d4743af05190769d0465fddede01d7ef7a30b
\ No newline at end of file
+453899935dd10f05197ff7573e54bd812fec589d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom
index 8605d44..af87910 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1412</groupId>
-  <artifactId>d</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1412</groupId>
+  <artifactId>d</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom.md5
index c82e21d..80a4ac9 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom.md5
@@ -1 +1 @@
-4471b98a9c4818c0f85849e927a90b8a
\ No newline at end of file
+227044c9500b0c994048daff6964f7f1
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom.sha1
index 412dcdb..ea4e5b9 100644
--- a/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1412/repo/org/apache/maven/its/mng1412/d/0.1/d-0.1.pom.sha1
@@ -1 +1 @@
-87674ee7781133cf84f775464323d7209daa21a1
\ No newline at end of file
+a3d9b639e11d362aae428eb2befc755722a1570c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom
index db9cb68..8254c5b 100644
--- a/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom
@@ -1,49 +1,49 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1703</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>src</directory>
-        <targetPath>src</targetPath>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1703</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>src</directory>
+        <targetPath>src</targetPath>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom.md5
index 8ac5039..dbd0d99 100644
--- a/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-6f3bf4279cdf488b88e1c8fa95587edd
\ No newline at end of file
+73d48a3506bbfe2cbdb99e2511ea7ae3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom.sha1
index cc11d1f..1fa7640 100644
--- a/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1703/child/repo/org/apache/maven/its/mng1703/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-123384087a95effd7f73f9323278b838fbcddb9d
\ No newline at end of file
+c32ed959040e236b179c016354ab8882b05c4af9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1751/repo/org/apache/maven/its/mng1751/dep/0.1-SNAPSHOT/dep-0.1-20100409.125524-1.pom b/core-it-suite/src/test/resources/mng-1751/repo/org/apache/maven/its/mng1751/dep/0.1-SNAPSHOT/dep-0.1-20100409.125524-1.pom
index 3d86325..4575efe 100644
--- a/core-it-suite/src/test/resources/mng-1751/repo/org/apache/maven/its/mng1751/dep/0.1-SNAPSHOT/dep-0.1-20100409.125524-1.pom
+++ b/core-it-suite/src/test/resources/mng-1751/repo/org/apache/maven/its/mng1751/dep/0.1-SNAPSHOT/dep-0.1-20100409.125524-1.pom
@@ -1,67 +1,67 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1751</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-1751 :: Dependency</name>
-  <description>
-    Verify that deployment always updates the metadata even if its remote timestamp currently refers to
-    the future.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/../repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.its.plugins</groupId>
-        <artifactId>maven-it-plugin-artifact</artifactId>
-        <version>2.1-SNAPSHOT</version>
-        <configuration>
-          <mainFile>pom.xml</mainFile>
-        </configuration>
-        <executions>
-          <execution>
-            <id>test</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>set</goal>
-              <goal>attach-pom</goal>
-              <goal>install</goal>
-              <goal>deploy</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1751</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-1751 :: Dependency</name>
+  <description>
+    Verify that deployment always updates the metadata even if its remote timestamp currently refers to
+    the future.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/../repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.its.plugins</groupId>
+        <artifactId>maven-it-plugin-artifact</artifactId>
+        <version>2.1-SNAPSHOT</version>
+        <configuration>
+          <mainFile>pom.xml</mainFile>
+        </configuration>
+        <executions>
+          <execution>
+            <id>test</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>set</goal>
+              <goal>attach-pom</goal>
+              <goal>install</goal>
+              <goal>deploy</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom
index 4b21ad6..0ae59b1 100644
--- a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1895</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1895</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom.sha1
index 9d5dede..5ca31ef 100644
--- a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-7caf7265d5dd88b0f224d6b50a629457b3b3e2e3
\ No newline at end of file
+1e47b58bd156eee00a32da85e7bd6095a48c7b2b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom
index 9a060a3..1ff8fcb 100644
--- a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1895</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1895</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom.sha1
index a015a29..ea7b640 100644
--- a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-d1a7574e85e7671605cd37dee4b00ee0e3b653e4
\ No newline at end of file
+99a1240548169c0701e9666ad5ba9df5839e8a17
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom
index 2fe5158..eb4d8fa 100644
--- a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1895</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1895</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom.sha1
index 5f00dfe..144b998 100644
--- a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-54eed22052d39d34d280ebc752bd0f2f4bb46dee
\ No newline at end of file
+20f7371b5a4791ced18b7e8ce4f1c103a22a562b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/d/0.1/d-0.1.pom b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/d/0.1/d-0.1.pom
index 2bd4e8f..1aa3a25 100644
--- a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/d/0.1/d-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/d/0.1/d-0.1.pom
@@ -1,57 +1,57 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1895</groupId>
-  <artifactId>d</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng1895</groupId>
-      <artifactId>a</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng1895</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng1895</groupId>
-      <artifactId>c</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1895</groupId>
+  <artifactId>d</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng1895</groupId>
+      <artifactId>a</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng1895</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng1895</groupId>
+      <artifactId>c</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/d/0.1/d-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/d/0.1/d-0.1.pom.sha1
index 0646465..4a5a168 100644
--- a/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/d/0.1/d-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1895/direct-vs-indirect/repo/org/apache/maven/its/mng1895/d/0.1/d-0.1.pom.sha1
@@ -1 +1 @@
-5d2405c0f6450d121febd417c4a119e351da5ef2
\ No newline at end of file
+24b4a6f0d3ab63f99a7758205704735cbfa0d725
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom
index f21727f..07213e9 100644
--- a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1895</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng1895</groupId>
-      <artifactId>x</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1895</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng1895</groupId>
+      <artifactId>x</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom.sha1
index 09593d6..bb3301b 100644
--- a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-87767d70153a03391c8bbd36332b728fc98448e2
\ No newline at end of file
+bea7705db90d9a62f315f3e59ae2eff29e9c3fa3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom
index 30c37c5..281700c 100644
--- a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1895</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng1895</groupId>
-      <artifactId>c</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1895</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng1895</groupId>
+      <artifactId>c</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom.sha1
index 9f29490..d09d4b8 100644
--- a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-8be2e0ad12731b68dd8c5e08f446f49811b70958
\ No newline at end of file
+75473fa81ab4601e75ccff4b4c7b1cd7623e684a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom
index 3f70fe9..dc7df5f 100644
--- a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1895</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng1895</groupId>
-      <artifactId>x</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1895</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng1895</groupId>
+      <artifactId>x</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom.sha1
index c9faf27..f3f0002 100644
--- a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-6d2e291d843ce177520b3aa44c68be65d98ff706
\ No newline at end of file
+8ee1a423b812cd372bd5c1dc627014f08ae6d4bc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/x/0.1/x-0.1.pom b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/x/0.1/x-0.1.pom
index 3c4bb38..96b4cff 100644
--- a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/x/0.1/x-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/x/0.1/x-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng1895</groupId>
-  <artifactId>x</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng1895</groupId>
+  <artifactId>x</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/x/0.1/x-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/x/0.1/x-0.1.pom.sha1
index d6280b4..4311578 100644
--- a/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/x/0.1/x-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-1895/strong-vs-weak/repo/org/apache/maven/its/mng1895/x/0.1/x-0.1.pom.sha1
@@ -1 +1 @@
-1dfae4506aec26ad2509e42ae5ca789cd9a3d0e7
\ No newline at end of file
+a1597bfc0c58e602bc7dc6de710a270d2e7b244e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom
index e6a679a..f2791e7 100644
--- a/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom
@@ -1,42 +1,42 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2098</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-2098 :: Dependency</name>
-  <description>
-    
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2098</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-2098 :: Dependency</name>
+  <description>
+    
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom.md5
index 32bd9fd..d5b8212 100644
--- a/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-ddf9f6f5b179ed6349f3e65455ea1a21
\ No newline at end of file
+83e6e0f219fbc28a5ea4f33acf9fd3a3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom.sha1
index 868c199..a3ec04d 100644
--- a/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2098/repo-1/org/apache/maven/its/mng2098/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-5bbec266ca6d1e46dd1c5f5c16f793b8693d9bc0
\ No newline at end of file
+fd2ec08973099584df598314fdd136b16daa0ef9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom
index e8667ec..cd7285c 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2123</groupId>
-  <artifactId>common</artifactId>
-  <version>3.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2123</groupId>
+  <artifactId>common</artifactId>
+  <version>3.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom.md5 b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom.md5
index 74c646e..19c2b00 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom.md5
@@ -1 +1 @@
-78d79385c885cc28103adced0ef7b5c2
\ No newline at end of file
+acc6ec3eaa03d8675eb19c710fc35b1a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom.sha1
index 57e3116..6e1ce69 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.1/common-3.1.pom.sha1
@@ -1 +1 @@
-d0a1a4f0ba30b8f8d289bf89d8f278df234c46be
\ No newline at end of file
+3ab5dcf792cd1a646f0ebfe21c402c9ec63d124f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom
index f3bfb13..0afd78b 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2123</groupId>
-  <artifactId>common</artifactId>
-  <version>3.2</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2123</groupId>
+  <artifactId>common</artifactId>
+  <version>3.2</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom.md5 b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom.md5
index 2f90a39..d1134cf 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom.md5
@@ -1 +1 @@
-300333484ac2f616e7e976ff437036d4
\ No newline at end of file
+39d5032ffdea8fdb4b14753b0ae4c1cb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom.sha1 b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom.sha1
index ae05bef..2d6885f 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/common/3.2/common-3.2.pom.sha1
@@ -1 +1 @@
-e7be88447b404ad9af6e54c09c9689fed02a9de6
\ No newline at end of file
+ca6802f6478947f0b0efc581a920f004ef49f21b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom
index 8f887d2..4fbce4e 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2123</groupId>
-  <artifactId>fixed</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng2123</groupId>
-      <artifactId>common</artifactId>
-      <!-- NOTE: Here we use a fixed (but soft) version -->
-      <version>3.2</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2123</groupId>
+  <artifactId>fixed</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng2123</groupId>
+      <artifactId>common</artifactId>
+      <!-- NOTE: Here we use a fixed (but soft) version -->
+      <version>3.2</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom.md5
index 0726972..ac199c6 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom.md5
@@ -1 +1 @@
-042c9944098159b4b4ee92a24fefe36a
\ No newline at end of file
+a56b22716659c36e34c811cace9f42cb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom.sha1
index 57f577d..cebf83a 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/fixed/0.1/fixed-0.1.pom.sha1
@@ -1 +1 @@
-80ffcfa67a0a311421073d928b4ae424f80635ab
\ No newline at end of file
+bd1083ce2f5ccb3ccc1cc280eec25052216170e4
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom
index 4ab2584..93ea395 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2123</groupId>
-  <artifactId>range</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng2123</groupId>
-      <artifactId>common</artifactId>
-      <!-- NOTE: Here we use a (hard) version range -->
-      <version>[2.0,3.1.99]</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2123</groupId>
+  <artifactId>range</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng2123</groupId>
+      <artifactId>common</artifactId>
+      <!-- NOTE: Here we use a (hard) version range -->
+      <version>[2.0,3.1.99]</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom.md5
index 1556960..249b5fd 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom.md5
@@ -1 +1 @@
-e6c99dced53b32363ca96166be82461a
\ No newline at end of file
+2e2d736689c9039e9f5f73c056dacac6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom.sha1
index 3b91e24..370bcaa 100644
--- a/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2123/repo/org/apache/maven/its/mng2123/range/0.1/range-0.1.pom.sha1
@@ -1 +1 @@
-5dc55789af2a9350c3c58cce6b4afa7811b350d3
\ No newline at end of file
+50669194021f6b8423e9fe80d057bc2ad608ff53
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom
index 86acd22..a8b215d 100644
--- a/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2174</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2174</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom.md5
index 3b89d7f..616d335 100644
--- a/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-e6ceb6940fbeb3331458115c46ba5ae1
\ No newline at end of file
+034150ffff645974973680e71ff96064
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom.sha1
index 05c99cd..fdcb713 100644
--- a/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2174/sub/repo/org/apache/maven/its/mng2174/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-b5385c8d45429e7b282f20b18bf72fb956fe36b3
\ No newline at end of file
+12bcfa12fe04f7bb31699e6485979996e3932214
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom b/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom
index 16d5292..cc41c72 100644
--- a/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2228</groupId>
-  <artifactId>api</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2228</groupId>
+  <artifactId>api</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom.md5
index 8d84180..e883ee1 100644
--- a/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom.md5
@@ -1 +1 @@
-71c949b531e2719c5c1a6a33dc087641
\ No newline at end of file
+1613d22c76a67ab57e67031d2a21ab76
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom.sha1
index 00382ba..249ccd3 100644
--- a/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/api/0.1/api-0.1.pom.sha1
@@ -1 +1 @@
-bccb432062c8533ba498d948c64fd62792619bf8
\ No newline at end of file
+e00d5aeeeb7c700d002b58af98516374476aff75
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/component/0.1/component-0.1.pom b/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/component/0.1/component-0.1.pom
index 5cfc5a9..d68765e 100644
--- a/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/component/0.1/component-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/component/0.1/component-0.1.pom
@@ -1,79 +1,79 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2228</groupId>
-  <artifactId>component</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng2228</groupId>
-      <artifactId>api</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-maven-plugin</artifactId>
-        <version>1.3.8</version>
-        <executions>
-          <execution>
-            <id>create-component-descriptor</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>descriptor</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2228</groupId>
+  <artifactId>component</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng2228</groupId>
+      <artifactId>api</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-maven-plugin</artifactId>
+        <version>1.3.8</version>
+        <executions>
+          <execution>
+            <id>create-component-descriptor</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>descriptor</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/component/0.1/component-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/component/0.1/component-0.1.pom.sha1
index 8830e18..00b9e6f 100644
--- a/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/component/0.1/component-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2228/repo/org/apache/maven/its/mng2228/component/0.1/component-0.1.pom.sha1
@@ -1 +1 @@
-8e148ff2a9b941b8a90640171b62f47c94af866d
\ No newline at end of file
+1d948de662e7644d3b4cc9a3ac98ad7361886fb8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2432/repo/org/apache/maven/its/mng2432/pom/it-maven-plugin/0.1/it-maven-plugin-0.1.pom b/core-it-suite/src/test/resources/mng-2432/repo/org/apache/maven/its/mng2432/pom/it-maven-plugin/0.1/it-maven-plugin-0.1.pom
index e57cb20..68631b3 100644
--- a/core-it-suite/src/test/resources/mng-2432/repo/org/apache/maven/its/mng2432/pom/it-maven-plugin/0.1/it-maven-plugin-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2432/repo/org/apache/maven/its/mng2432/pom/it-maven-plugin/0.1/it-maven-plugin-0.1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2432.pom</groupId>
-  <artifactId>it-maven-plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2432.pom</groupId>
+  <artifactId>it-maven-plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2432/repo/org/apache/maven/its/mng2432/settings/it-maven-plugin/0.1/it-maven-plugin-0.1.pom b/core-it-suite/src/test/resources/mng-2432/repo/org/apache/maven/its/mng2432/settings/it-maven-plugin/0.1/it-maven-plugin-0.1.pom
index 6b6c76a..1bc67fe 100644
--- a/core-it-suite/src/test/resources/mng-2432/repo/org/apache/maven/its/mng2432/settings/it-maven-plugin/0.1/it-maven-plugin-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2432/repo/org/apache/maven/its/mng2432/settings/it-maven-plugin/0.1/it-maven-plugin-0.1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2432.settings</groupId>
-  <artifactId>it-maven-plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2432.settings</groupId>
+  <artifactId>it-maven-plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2695/repo/org/apache/maven/its/mng2695/plugin-a/0.1-SNAPSHOT/plugin-a-0.1-SNAPSHOT.pom b/core-it-suite/src/test/resources/mng-2695/repo/org/apache/maven/its/mng2695/plugin-a/0.1-SNAPSHOT/plugin-a-0.1-SNAPSHOT.pom
index 6d3a6b3..e7f142c 100644
--- a/core-it-suite/src/test/resources/mng-2695/repo/org/apache/maven/its/mng2695/plugin-a/0.1-SNAPSHOT/plugin-a-0.1-SNAPSHOT.pom
+++ b/core-it-suite/src/test/resources/mng-2695/repo/org/apache/maven/its/mng2695/plugin-a/0.1-SNAPSHOT/plugin-a-0.1-SNAPSHOT.pom
@@ -1,64 +1,64 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2695</groupId>
-  <artifactId>plugin-a</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>false</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2695</groupId>
+  <artifactId>plugin-a</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>false</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2695/repo/org/apache/maven/its/mng2695/plugin-b/0.1-SNAPSHOT/plugin-b-0.1-20081021.184238-1.pom b/core-it-suite/src/test/resources/mng-2695/repo/org/apache/maven/its/mng2695/plugin-b/0.1-SNAPSHOT/plugin-b-0.1-20081021.184238-1.pom
index 6857658..05be326 100644
--- a/core-it-suite/src/test/resources/mng-2695/repo/org/apache/maven/its/mng2695/plugin-b/0.1-SNAPSHOT/plugin-b-0.1-20081021.184238-1.pom
+++ b/core-it-suite/src/test/resources/mng-2695/repo/org/apache/maven/its/mng2695/plugin-b/0.1-SNAPSHOT/plugin-b-0.1-20081021.184238-1.pom
@@ -1,64 +1,64 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2695</groupId>
-  <artifactId>plugin-b</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>true</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2695</groupId>
+  <artifactId>plugin-b</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>true</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom
index 72047a7..ee1f9b8 100644
--- a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom
+++ b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom
@@ -1,11 +1,11 @@
-<?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">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.maven.its.mng2744</groupId>
-  <artifactId>a</artifactId>
-  <packaging>jar</packaging>
-  <version>1</version>
-</project>
+<?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">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.its.mng2744</groupId>
+  <artifactId>a</artifactId>
+  <packaging>jar</packaging>
+  <version>1</version>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom.md5 b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom.md5
index 858f6a8..85d61bc 100644
--- a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom.md5
@@ -1 +1 @@
-d293f73e9d9740059eee072e8790c8ca
\ No newline at end of file
+c826e8032b74c0eb898451bc56b4f57a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom.sha1 b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom.sha1
index c005a2c..84e152c 100644
--- a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/a/1/a-1.pom.sha1
@@ -1 +1 @@
-AEDDC7DB6C6D28079D6B84D875CD456F327DE010
\ No newline at end of file
+92DDD975160B31FD6D1103712ED3C9E2BE1C692E
diff --git a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom
index 3de5247..3458073 100644
--- a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom
+++ b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom
@@ -1,11 +1,11 @@
-<?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">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.maven.its.mng2744</groupId>
-  <artifactId>b</artifactId>
-  <packaging>jar</packaging>
-  <version>1</version>
-</project>
+<?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">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.its.mng2744</groupId>
+  <artifactId>b</artifactId>
+  <packaging>jar</packaging>
+  <version>1</version>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom.md5 b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom.md5
index 5fdd1bf..0e8bacb 100644
--- a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom.md5
@@ -1 +1 @@
-6ade73d0ba0812e4b799b89db7a8d336
\ No newline at end of file
+f8d2e21d2ad141009db624f0e4a91648
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom.sha1 b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom.sha1
index ea65456..e5f63de 100644
--- a/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2744/repo/org/apache/maven/its/mng2744/b/1/b-1.pom.sha1
@@ -1 +1 @@
-FE9A315948C64B2C0F944B5C9AC2F87FBF2A51BB
\ No newline at end of file
+7D042A96FCC8F919A02991A3E6A2CF57ABD14A56
diff --git a/core-it-suite/src/test/resources/mng-2749/repo/org/apache/maven/its/mng2749/extension/0.1/extension-0.1.pom b/core-it-suite/src/test/resources/mng-2749/repo/org/apache/maven/its/mng2749/extension/0.1/extension-0.1.pom
index 6f5aaf9..cbf0c3d 100644
--- a/core-it-suite/src/test/resources/mng-2749/repo/org/apache/maven/its/mng2749/extension/0.1/extension-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2749/repo/org/apache/maven/its/mng2749/extension/0.1/extension-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2749</groupId>
-  <artifactId>extension</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2749</groupId>
+  <artifactId>extension</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2749/repo/org/apache/maven/its/mng2749/extension/0.1/extension-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2749/repo/org/apache/maven/its/mng2749/extension/0.1/extension-0.1.pom.sha1
index 94aec56..8ce7dc0 100644
--- a/core-it-suite/src/test/resources/mng-2749/repo/org/apache/maven/its/mng2749/extension/0.1/extension-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2749/repo/org/apache/maven/its/mng2749/extension/0.1/extension-0.1.pom.sha1
@@ -1 +1 @@
-49a4a07bed9a9187a0dbcc7d0b491d61eb4de46d
\ No newline at end of file
+b2db3fb52267b492906da84ab8824f6299bb31a8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/1.2/project-1.2.pom b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/1.2/project-1.2.pom
index 7dc8ac8..e7e201e 100644
--- a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/1.2/project-1.2.pom
+++ b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/1.2/project-1.2.pom
@@ -1,16 +1,16 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.maven.its.mng2861.new</groupId>
-  <artifactId>project</artifactId>
-  <packaging>jar</packaging>
-  <version>1.2</version>
-  <name>project</name>
-  <url>http://maven.apache.org</url>
-  <distributionManagement>
-    <repository>
-      <id>id</id>
-      <url>file://localhost/${basedir}/../repository</url>
-    </repository>
-  </distributionManagement>
-</project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.its.mng2861.new</groupId>
+  <artifactId>project</artifactId>
+  <packaging>jar</packaging>
+  <version>1.2</version>
+  <name>project</name>
+  <url>http://maven.apache.org</url>
+  <distributionManagement>
+    <repository>
+      <id>id</id>
+      <url>file://localhost/${basedir}/../repository</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/1.2/project-1.2.pom.sha1 b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/1.2/project-1.2.pom.sha1
index efc4519..23aa8a5 100644
--- a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/1.2/project-1.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/1.2/project-1.2.pom.sha1
@@ -1 +1 @@
-f1cab4a3cd104b6d44ffbb2a12c6b57d63ab95c1
\ No newline at end of file
+00083a3503d7c4b3e5cec7a1b3c5b7ea9f50e076
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/2.0/project-2.0.pom b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/2.0/project-2.0.pom
index d4deadb..9f3ed6e 100644
--- a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/2.0/project-2.0.pom
+++ b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/2.0/project-2.0.pom
@@ -1,16 +1,16 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.maven.its.mng2861.new</groupId>
-  <artifactId>project</artifactId>
-  <packaging>jar</packaging>
-  <version>2.0</version>
-  <name>project</name>
-  <url>http://maven.apache.org</url>
-  <distributionManagement>
-    <repository>
-      <id>id</id>
-      <url>file://localhost/${basedir}/../repository</url>
-    </repository>
-  </distributionManagement>
-</project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.its.mng2861.new</groupId>
+  <artifactId>project</artifactId>
+  <packaging>jar</packaging>
+  <version>2.0</version>
+  <name>project</name>
+  <url>http://maven.apache.org</url>
+  <distributionManagement>
+    <repository>
+      <id>id</id>
+      <url>file://localhost/${basedir}/../repository</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/2.0/project-2.0.pom.sha1 b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/2.0/project-2.0.pom.sha1
index b2f1fcc..626aff8 100644
--- a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/2.0/project-2.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/new/project/2.0/project-2.0.pom.sha1
@@ -1 +1 @@
-eaf095f4e07138b54b64d852169224d3e63bb798
\ No newline at end of file
+eade24a0d2684625f830291bb66d9adc354fabec
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.0/project-1.0.pom b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.0/project-1.0.pom
index 0f72f44..18fc414 100644
--- a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.0/project-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.0/project-1.0.pom
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="UTF-8"?><project>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.maven.its.mng2861.old</groupId>
-  <artifactId>project</artifactId>
-  <name>project</name>
-  <version>1.0</version>
-  <url>http://maven.apache.org</url>
-  <distributionManagement>
-    <repository>
-      <id>id</id>
-      <url>file://localhost/${basedir}/../repository</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?xml version="1.0" encoding="UTF-8"?><project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.its.mng2861.old</groupId>
+  <artifactId>project</artifactId>
+  <name>project</name>
+  <version>1.0</version>
+  <url>http://maven.apache.org</url>
+  <distributionManagement>
+    <repository>
+      <id>id</id>
+      <url>file://localhost/${basedir}/../repository</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.0/project-1.0.pom.sha1 b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.0/project-1.0.pom.sha1
index a66c5ce..1150740 100644
--- a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.0/project-1.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.0/project-1.0.pom.sha1
@@ -1 +1 @@
-5ae44fce32f84a51870dd6d2be1ce1d8523b64e8
\ No newline at end of file
+91fbd9b9824d100a07e15e9652612160836d55c0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.1/project-1.1.pom b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.1/project-1.1.pom
index 8911083..0786183 100644
--- a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.1/project-1.1.pom
+++ b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.1/project-1.1.pom
@@ -1,16 +1,16 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.maven.its.mng2861.old</groupId>
-  <artifactId>project</artifactId>
-  <packaging>jar</packaging>
-  <version>1.1</version>
-  <name>project</name>
-  <url>http://maven.apache.org</url>
-  <distributionManagement>
-    <repository>
-      <id>id</id>
-      <url>file://localhost/${basedir}/../repository</url>
-    </repository>
-  </distributionManagement>
-</project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.its.mng2861.old</groupId>
+  <artifactId>project</artifactId>
+  <packaging>jar</packaging>
+  <version>1.1</version>
+  <name>project</name>
+  <url>http://maven.apache.org</url>
+  <distributionManagement>
+    <repository>
+      <id>id</id>
+      <url>file://localhost/${basedir}/../repository</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.1/project-1.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.1/project-1.1.pom.sha1
index c798682..b358ae0 100644
--- a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.1/project-1.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.1/project-1.1.pom.sha1
@@ -1 +1 @@
-bffb06b8267e7f94597b3766db1181f5233a7974
\ No newline at end of file
+712c02ec742f031ac168cd9f27af96bc6b737d69
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.2/project-1.2.pom b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.2/project-1.2.pom
index 842f0be..cda3aa3 100644
--- a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.2/project-1.2.pom
+++ b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.2/project-1.2.pom
@@ -1,19 +1,19 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.maven.its.mng2861.old</groupId>
-  <artifactId>project</artifactId>
-  <packaging>jar</packaging>
-  <version>1.2</version>
-  <name>project12</name>
-  <url>http://maven.apache.org</url>
-  <distributionManagement>
-    <repository>
-      <id>id</id>
-      <url>file://localhost/${basedir}/../repository</url>
-    </repository>
-    <relocation>
-      <groupId>org.apache.maven.its.mng2861.new</groupId>
-    </relocation>
-  </distributionManagement>
-</project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.its.mng2861.old</groupId>
+  <artifactId>project</artifactId>
+  <packaging>jar</packaging>
+  <version>1.2</version>
+  <name>project12</name>
+  <url>http://maven.apache.org</url>
+  <distributionManagement>
+    <repository>
+      <id>id</id>
+      <url>file://localhost/${basedir}/../repository</url>
+    </repository>
+    <relocation>
+      <groupId>org.apache.maven.its.mng2861.new</groupId>
+    </relocation>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.2/project-1.2.pom.sha1 b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.2/project-1.2.pom.sha1
index 1437837..78f2b72 100644
--- a/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.2/project-1.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2861/repo/org/apache/maven/its/mng2861/old/project/1.2/project-1.2.pom.sha1
@@ -1 +1 @@
-0346e16e0d36c67c3e838c9dafcd06e2da727ec7
\ No newline at end of file
+674438f3dcd247266405d05240a48df1b9f3e18d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom
index 5b1af3f..6f6138e 100644
--- a/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2865</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2865</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom.md5
index 3432ca2..8736222 100644
--- a/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-47151ab1db440fa0a5e8c2271c119bc4
\ No newline at end of file
+7146085572aa4ad0464e4f80f2a17302
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom.sha1
index ed20629..de17b2d 100644
--- a/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2865/repo/org/apache/maven/its/mng2865/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-f2b0d6047f952be2c6003550c8478b58c286ff3b
\ No newline at end of file
+2ddc2ec19cccaf4c012a042223e3029afd96a8c6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2892/repo/org/codehaus/plexus/plexus-utils/0.1-mng2892/plexus-utils-0.1-mng2892.pom b/core-it-suite/src/test/resources/mng-2892/repo/org/codehaus/plexus/plexus-utils/0.1-mng2892/plexus-utils-0.1-mng2892.pom
index bc41762..928192f 100644
--- a/core-it-suite/src/test/resources/mng-2892/repo/org/codehaus/plexus/plexus-utils/0.1-mng2892/plexus-utils-0.1-mng2892.pom
+++ b/core-it-suite/src/test/resources/mng-2892/repo/org/codehaus/plexus/plexus-utils/0.1-mng2892/plexus-utils-0.1-mng2892.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.codehaus.plexus</groupId>
-  <artifactId>plexus-utils</artifactId>
-  <version>0.1-mng2892</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-utils</artifactId>
+  <version>0.1-mng2892</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom
index 2737313..6c82f15 100644
--- a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom
@@ -1,67 +1,67 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng2926</groupId>
-  <artifactId>mng-2926</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-	<name>Maven Integration Test :: MNG-2926 :: Custom Plugin</name> 
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>false</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng2926</groupId>
+  <artifactId>mng-2926</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+	<name>Maven Integration Test :: MNG-2926 :: Custom Plugin</name> 
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>false</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom.md5
index d7ce266..39e38c8 100644
--- a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom.md5
@@ -1 +1 @@
-be21d296a246ecc1699f822f17f18a92
\ No newline at end of file
+9ef265ff34988afe1ae54550d98fce95
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom.sha1
index 6c7f928..d50de71 100644
--- a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/its/mng2926/mng-2926/0.1/mng-2926-0.1.pom.sha1
@@ -1 +1 @@
-14f82a6463fa9045edf41662c606f28885b5c007
\ No newline at end of file
+6b191a5a51c8ffea883494f3e4aa6ee81df945e9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom
index b46d24a..7a4dc2c 100644
--- a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom
@@ -1,67 +1,67 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.plugins</groupId>
-  <artifactId>mng-2926</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-	<name>Maven Integration Test :: MNG-2926 :: Apache Plugin</name> 
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>false</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugins</groupId>
+  <artifactId>mng-2926</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+	<name>Maven Integration Test :: MNG-2926 :: Apache Plugin</name> 
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>false</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom.md5
index 4cf18be..8571f80 100644
--- a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom.md5
@@ -1 +1 @@
-f6f2b949c71aefad6301a7392d64f240
\ No newline at end of file
+9d53b040c08f1fb4d6d75813cf2201fa
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom.sha1
index 907c87c..ad1645f 100644
--- a/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2926/repo/org/apache/maven/plugins/mng-2926/0.1/mng-2926-0.1.pom.sha1
@@ -1 +1 @@
-350c5fe9b4363735a71a7ab823e2b1f9cb293f4a
\ No newline at end of file
+bb9d09466b0b57c2b5a84ba75025dc63816560fb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom b/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom
index 1701b54..f273de1 100644
--- a/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom
@@ -1,67 +1,67 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.codehaus.mojo</groupId>
-  <artifactId>mng-2926</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-	<name>Maven Integration Test :: MNG-2926 :: Codehaus Plugin</name> 
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>false</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.mojo</groupId>
+  <artifactId>mng-2926</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+	<name>Maven Integration Test :: MNG-2926 :: Codehaus Plugin</name> 
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>false</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom.md5
index d75b154..b835d65 100644
--- a/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom.md5
@@ -1 +1 @@
-22fea95e1e555a8605c6e8ad02ce29c6
\ No newline at end of file
+799b226d8dc265e00fa22c48554a0c58
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom.sha1
index f33aa6d..c9f4b9f 100644
--- a/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-2926/repo/org/codehaus/mojo/mng-2926/0.1/mng-2926-0.1.pom.sha1
@@ -1 +1 @@
-12de44d7808b37d793f51a1bff3214ce09a5dcdc
\ No newline at end of file
+0d4781225b049636d9240c6d1d48a331c58f5768
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-2972/test1/repo/org/apache/maven/its/plugins/class-loader/dep-b/0.2-mng-2972/dep-b-0.2-mng-2972.pom b/core-it-suite/src/test/resources/mng-2972/test1/repo/org/apache/maven/its/plugins/class-loader/dep-b/0.2-mng-2972/dep-b-0.2-mng-2972.pom
index d1b72fd..caa6d7f 100644
--- a/core-it-suite/src/test/resources/mng-2972/test1/repo/org/apache/maven/its/plugins/class-loader/dep-b/0.2-mng-2972/dep-b-0.2-mng-2972.pom
+++ b/core-it-suite/src/test/resources/mng-2972/test1/repo/org/apache/maven/its/plugins/class-loader/dep-b/0.2-mng-2972/dep-b-0.2-mng-2972.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.plugins.class-loader</groupId>
-  <artifactId>dep-b</artifactId>
-  <version>0.2-mng-2972</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.plugins.class-loader</groupId>
+  <artifactId>dep-b</artifactId>
+  <version>0.2-mng-2972</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-2972/test2/repo/org/apache/maven/its/plugins/class-loader/dep-b/9.9-MNG-2972/dep-b-9.9-MNG-2972.pom b/core-it-suite/src/test/resources/mng-2972/test2/repo/org/apache/maven/its/plugins/class-loader/dep-b/9.9-MNG-2972/dep-b-9.9-MNG-2972.pom
index f72a26c..09aee06 100644
--- a/core-it-suite/src/test/resources/mng-2972/test2/repo/org/apache/maven/its/plugins/class-loader/dep-b/9.9-MNG-2972/dep-b-9.9-MNG-2972.pom
+++ b/core-it-suite/src/test/resources/mng-2972/test2/repo/org/apache/maven/its/plugins/class-loader/dep-b/9.9-MNG-2972/dep-b-9.9-MNG-2972.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.plugins.class-loader</groupId>
-  <artifactId>dep-b</artifactId>
-  <version>9.9-MNG-2972</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.plugins.class-loader</groupId>
+  <artifactId>dep-b</artifactId>
+  <version>9.9-MNG-2972</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3012/repo/org/codehaus/plexus/plexus-utils/0.1-mng3012/plexus-utils-0.1-mng3012.pom b/core-it-suite/src/test/resources/mng-3012/repo/org/codehaus/plexus/plexus-utils/0.1-mng3012/plexus-utils-0.1-mng3012.pom
index 40153ad..d8023e4 100644
--- a/core-it-suite/src/test/resources/mng-3012/repo/org/codehaus/plexus/plexus-utils/0.1-mng3012/plexus-utils-0.1-mng3012.pom
+++ b/core-it-suite/src/test/resources/mng-3012/repo/org/codehaus/plexus/plexus-utils/0.1-mng3012/plexus-utils-0.1-mng3012.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.codehaus.plexus</groupId>
-  <artifactId>plexus-utils</artifactId>
-  <version>0.1-mng3012</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-utils</artifactId>
+  <version>0.1-mng3012</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3052/repo-d/org/apache/maven/its/mng3052/direct/0.1-SNAPSHOT/template.pom b/core-it-suite/src/test/resources/mng-3052/repo-d/org/apache/maven/its/mng3052/direct/0.1-SNAPSHOT/template.pom
index 4c06f93..407fb07 100644
--- a/core-it-suite/src/test/resources/mng-3052/repo-d/org/apache/maven/its/mng3052/direct/0.1-SNAPSHOT/template.pom
+++ b/core-it-suite/src/test/resources/mng-3052/repo-d/org/apache/maven/its/mng3052/direct/0.1-SNAPSHOT/template.pom
@@ -1,57 +1,57 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3052</groupId>
-  <artifactId>direct</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3052</groupId>
-      <artifactId>trans</artifactId>
-      <version>0.1-SNAPSHOT</version>
-    </dependency>
-  </dependencies>
-
-  <repositories>
-    <repository>
-      <id>maven-core-it-repo-t</id>
-      <url>@baseurl@/repo-t</url>
-      <releases>
-        <checksumPolicy>ignore</checksumPolicy>
-      </releases>
-      <snapshots>
-        <checksumPolicy>ignore</checksumPolicy>
-      </snapshots>
-    </repository>
-  </repositories>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3052</groupId>
+  <artifactId>direct</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3052</groupId>
+      <artifactId>trans</artifactId>
+      <version>0.1-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+
+  <repositories>
+    <repository>
+      <id>maven-core-it-repo-t</id>
+      <url>@baseurl@/repo-t</url>
+      <releases>
+        <checksumPolicy>ignore</checksumPolicy>
+      </releases>
+      <snapshots>
+        <checksumPolicy>ignore</checksumPolicy>
+      </snapshots>
+    </repository>
+  </repositories>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3052/repo-d/org/apache/maven/its/mng3052/direct/0.1-SNAPSHOT/template.pom.sha1 b/core-it-suite/src/test/resources/mng-3052/repo-d/org/apache/maven/its/mng3052/direct/0.1-SNAPSHOT/template.pom.sha1
index f2c233c..76be164 100644
--- a/core-it-suite/src/test/resources/mng-3052/repo-d/org/apache/maven/its/mng3052/direct/0.1-SNAPSHOT/template.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3052/repo-d/org/apache/maven/its/mng3052/direct/0.1-SNAPSHOT/template.pom.sha1
@@ -1 +1 @@
-084950ae2aac6e20eb899ebfc43621eaf5edab83
\ No newline at end of file
+35770aebda6bee4c09134a07c04d3a21b711dfa4
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3052/repo-t/org/apache/maven/its/mng3052/trans/0.1-SNAPSHOT/trans-0.1-20090517.132833-1.pom b/core-it-suite/src/test/resources/mng-3052/repo-t/org/apache/maven/its/mng3052/trans/0.1-SNAPSHOT/trans-0.1-20090517.132833-1.pom
index 88abbe1..6b42549 100644
--- a/core-it-suite/src/test/resources/mng-3052/repo-t/org/apache/maven/its/mng3052/trans/0.1-SNAPSHOT/trans-0.1-20090517.132833-1.pom
+++ b/core-it-suite/src/test/resources/mng-3052/repo-t/org/apache/maven/its/mng3052/trans/0.1-SNAPSHOT/trans-0.1-20090517.132833-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3052</groupId>
-  <artifactId>trans</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3052</groupId>
+  <artifactId>trans</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom
index d151739..0988102 100644
--- a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom
+++ b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3092</groupId>
-  <artifactId>a</artifactId>
-  <version>1.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3092</groupId>
+  <artifactId>a</artifactId>
+  <version>1.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom.md5 b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom.md5
index b21db5b..84e7845 100644
--- a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom.md5
@@ -1 +1 @@
-01650f12afadf436d50c39ae6e71da80
\ No newline at end of file
+f8c93a3ef1568a223c2f88e6e9f09272
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom.sha1
index 089303a..cc3cccc 100644
--- a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.1/a-1.1.pom.sha1
@@ -1 +1 @@
-c147b8cb1a7ed67e3c4990d9b57dbb534dd1a198
\ No newline at end of file
+e4ae7c798e0b76f475b2f4a41fcba78316f2bb58
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.2-SNAPSHOT/a-1.2-20100408.111215-1.pom b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.2-SNAPSHOT/a-1.2-20100408.111215-1.pom
index 96b020d..27d5c58 100644
--- a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.2-SNAPSHOT/a-1.2-20100408.111215-1.pom
+++ b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/a/1.2-SNAPSHOT/a-1.2-20100408.111215-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3092</groupId>
-  <artifactId>a</artifactId>
-  <version>1.2-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3092</groupId>
+  <artifactId>a</artifactId>
+  <version>1.2-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/b/1.0-SNAPSHOT/b-1.0-20100408.111303-1.pom b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/b/1.0-SNAPSHOT/b-1.0-20100408.111303-1.pom
index ce2016f..48465f8 100644
--- a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/b/1.0-SNAPSHOT/b-1.0-20100408.111303-1.pom
+++ b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/b/1.0-SNAPSHOT/b-1.0-20100408.111303-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3092</groupId>
-  <artifactId>b</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3092</groupId>
+  <artifactId>b</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/c/1.1-SNAPSHOT/c-1.1-20100408.111330-1.pom b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/c/1.1-SNAPSHOT/c-1.1-20100408.111330-1.pom
index b840111..7ed49c1 100644
--- a/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/c/1.1-SNAPSHOT/c-1.1-20100408.111330-1.pom
+++ b/core-it-suite/src/test/resources/mng-3092/repo/org/apache/maven/its/mng3092/c/1.1-SNAPSHOT/c-1.1-20100408.111330-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3092</groupId>
-  <artifactId>c</artifactId>
-  <version>1.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3092</groupId>
+  <artifactId>c</artifactId>
+  <version>1.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3099/repo/org/apache/maven/its/mng3099/maven-mng3099-plugin/0.1/maven-mng3099-plugin-0.1.pom b/core-it-suite/src/test/resources/mng-3099/repo/org/apache/maven/its/mng3099/maven-mng3099-plugin/0.1/maven-mng3099-plugin-0.1.pom
index f24f0e2..161724b 100644
--- a/core-it-suite/src/test/resources/mng-3099/repo/org/apache/maven/its/mng3099/maven-mng3099-plugin/0.1/maven-mng3099-plugin-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3099/repo/org/apache/maven/its/mng3099/maven-mng3099-plugin/0.1/maven-mng3099-plugin-0.1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3099</groupId>
-  <artifactId>maven-mng3099-plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3099</groupId>
+  <artifactId>maven-mng3099-plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom b/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom
index 4449fdb..9411049 100644
--- a/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3139</groupId>
-  <artifactId>artifact</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3139</groupId>
+  <artifactId>artifact</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom.md5
index 3f0b6c6..aa955a4 100644
--- a/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom.md5
@@ -1 +1 @@
-e15d6b83d209e66ae0d2d40dee15e98c
\ No newline at end of file
+e917e4b36acb9ddf4e3d8567c4aaf386
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom.sha1
index 60f5fea..68d239f 100644
--- a/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3139/repo/org/apache/maven/its/mng3139/artifact/0.1/artifact-0.1.pom.sha1
@@ -1 +1 @@
-479e4fd40392188cbd614e717242b4af57ece056
\ No newline at end of file
+d08d3934114e9329f9931f5d53d1d3b344aca271
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3217/repo/org/apache/maven/its/mng3217/maven-it-plugin-touch/0.1/maven-it-plugin-touch-0.1.pom b/core-it-suite/src/test/resources/mng-3217/repo/org/apache/maven/its/mng3217/maven-it-plugin-touch/0.1/maven-it-plugin-touch-0.1.pom
index 9af1061..d579cf4 100644
--- a/core-it-suite/src/test/resources/mng-3217/repo/org/apache/maven/its/mng3217/maven-it-plugin-touch/0.1/maven-it-plugin-touch-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3217/repo/org/apache/maven/its/mng3217/maven-it-plugin-touch/0.1/maven-it-plugin-touch-0.1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3217</groupId>
-  <artifactId>maven-it-plugin-touch</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2008</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3217</groupId>
+  <artifactId>maven-it-plugin-touch</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2008</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3217/repo/org/apache/maven/its/mng3217/maven-it-plugin-touch/0.2/maven-it-plugin-touch-0.2.pom b/core-it-suite/src/test/resources/mng-3217/repo/org/apache/maven/its/mng3217/maven-it-plugin-touch/0.2/maven-it-plugin-touch-0.2.pom
index 53409e4..46db279 100644
--- a/core-it-suite/src/test/resources/mng-3217/repo/org/apache/maven/its/mng3217/maven-it-plugin-touch/0.2/maven-it-plugin-touch-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-3217/repo/org/apache/maven/its/mng3217/maven-it-plugin-touch/0.2/maven-it-plugin-touch-0.2.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3217</groupId>
-  <artifactId>maven-it-plugin-touch</artifactId>
-  <version>0.2</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2008</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3217</groupId>
+  <artifactId>maven-it-plugin-touch</artifactId>
+  <version>0.2</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2008</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom b/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom
index 2fd36f9..e266ea7 100644
--- a/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom
+++ b/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom
@@ -1,47 +1,47 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3220</groupId>
-  <artifactId>dm-pom</artifactId>
-  <version>1</version>
-  <packaging>pom</packaging>
-  
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>3.8.2</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3220</groupId>
+  <artifactId>dm-pom</artifactId>
+  <version>1</version>
+  <packaging>pom</packaging>
+  
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>3.8.2</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom.md5 b/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom.md5
index 8eecaa2..c2ae26d 100644
--- a/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom.md5
@@ -1 +1 @@
-60ea4d87b22222480a0a4cae367d15fe
\ No newline at end of file
+a10de8543248f05ce6919425e30ba07d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom.sha1 b/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom.sha1
index 860255d..1c5cac2 100644
--- a/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3220/repo/org/apache/maven/its/mng3220/dm-pom/1/dm-pom-1.pom.sha1
@@ -1 +1 @@
-802e0963cecfb2767ab5b0caafeae5e9095cbd53
\ No newline at end of file
+2e9d168d25208d0967b4a07b9941fbd769c15853
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3284/repo/org/apache/maven/its/mng3284/maven-it-plugin-version/0.1/maven-it-plugin-version-0.1.pom b/core-it-suite/src/test/resources/mng-3284/repo/org/apache/maven/its/mng3284/maven-it-plugin-version/0.1/maven-it-plugin-version-0.1.pom
index e43efc7..ef6c25a 100644
--- a/core-it-suite/src/test/resources/mng-3284/repo/org/apache/maven/its/mng3284/maven-it-plugin-version/0.1/maven-it-plugin-version-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3284/repo/org/apache/maven/its/mng3284/maven-it-plugin-version/0.1/maven-it-plugin-version-0.1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3284</groupId>
-  <artifactId>maven-it-plugin-version</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Version</name>
-  <description>
-    A test plugin that creates a file with some hard-coded name (including the plugin version) in a user-specified directory.
-  </description>
-  <inceptionYear>2008</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3284</groupId>
+  <artifactId>maven-it-plugin-version</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Version</name>
+  <description>
+    A test plugin that creates a file with some hard-coded name (including the plugin version) in a user-specified directory.
+  </description>
+  <inceptionYear>2008</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3284/repo/org/apache/maven/its/mng3284/maven-it-plugin-version/0.2/maven-it-plugin-version-0.2.pom b/core-it-suite/src/test/resources/mng-3284/repo/org/apache/maven/its/mng3284/maven-it-plugin-version/0.2/maven-it-plugin-version-0.2.pom
index 2e2f316..d6c8d22 100644
--- a/core-it-suite/src/test/resources/mng-3284/repo/org/apache/maven/its/mng3284/maven-it-plugin-version/0.2/maven-it-plugin-version-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-3284/repo/org/apache/maven/its/mng3284/maven-it-plugin-version/0.2/maven-it-plugin-version-0.2.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3284</groupId>
-  <artifactId>maven-it-plugin-version</artifactId>
-  <version>0.2</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Version</name>
-  <description>
-    A test plugin that creates a file with some hard-coded name (including the plugin version) in a user-specified directory.
-  </description>
-  <inceptionYear>2008</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3284</groupId>
+  <artifactId>maven-it-plugin-version</artifactId>
+  <version>0.2</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Version</name>
+  <description>
+    A test plugin that creates a file with some hard-coded name (including the plugin version) in a user-specified directory.
+  </description>
+  <inceptionYear>2008</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3314/repo/org/apache/maven/its/mng3314/dep-a/0.1-SNAPSHOT/dep-a-0.1-SNAPSHOT.pom b/core-it-suite/src/test/resources/mng-3314/repo/org/apache/maven/its/mng3314/dep-a/0.1-SNAPSHOT/dep-a-0.1-SNAPSHOT.pom
index ed6b782..9a90c9a 100644
--- a/core-it-suite/src/test/resources/mng-3314/repo/org/apache/maven/its/mng3314/dep-a/0.1-SNAPSHOT/dep-a-0.1-SNAPSHOT.pom
+++ b/core-it-suite/src/test/resources/mng-3314/repo/org/apache/maven/its/mng3314/dep-a/0.1-SNAPSHOT/dep-a-0.1-SNAPSHOT.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3314</groupId>
-  <artifactId>dep-a</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>false</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3314</groupId>
+  <artifactId>dep-a</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>false</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3314/repo/org/apache/maven/its/mng3314/dep-b/0.1-SNAPSHOT/dep-b-0.1-20081021.172508-1.pom b/core-it-suite/src/test/resources/mng-3314/repo/org/apache/maven/its/mng3314/dep-b/0.1-SNAPSHOT/dep-b-0.1-20081021.172508-1.pom
index f9ed79d..116b3dc 100644
--- a/core-it-suite/src/test/resources/mng-3314/repo/org/apache/maven/its/mng3314/dep-b/0.1-SNAPSHOT/dep-b-0.1-20081021.172508-1.pom
+++ b/core-it-suite/src/test/resources/mng-3314/repo/org/apache/maven/its/mng3314/dep-b/0.1-SNAPSHOT/dep-b-0.1-20081021.172508-1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3314</groupId>
-  <artifactId>dep-b</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>true</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3314</groupId>
+  <artifactId>dep-b</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>true</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/a/x/0.2-SNAPSHOT/x-0.2-20100119.121141-1.pom b/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/a/x/0.2-SNAPSHOT/x-0.2-20100119.121141-1.pom
index 8ff8d7c..c2d4d4d 100644
--- a/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/a/x/0.2-SNAPSHOT/x-0.2-20100119.121141-1.pom
+++ b/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/a/x/0.2-SNAPSHOT/x-0.2-20100119.121141-1.pom
@@ -1,80 +1,80 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3379.a</groupId>
-  <artifactId>x</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <properties>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>2.2</version>
-        <executions>
-          <execution>
-            <id>tests</id>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-source-plugin</artifactId>
-        <version>2.0.4</version>
-        <executions>
-          <execution>
-            <id>sources</id>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.5</version>
-        <executions>
-          <execution>
-            <id>apidocs</id>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3379.a</groupId>
+  <artifactId>x</artifactId>
+  <version>0.2-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <properties>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.2</version>
+        <executions>
+          <execution>
+            <id>tests</id>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-source-plugin</artifactId>
+        <version>2.0.4</version>
+        <executions>
+          <execution>
+            <id>sources</id>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>2.5</version>
+        <executions>
+          <execution>
+            <id>apidocs</id>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/b/x/0.2-SNAPSHOT/x-0.2-20100119.121231-1.pom b/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/b/x/0.2-SNAPSHOT/x-0.2-20100119.121231-1.pom
index 415835f..92c5fc6 100644
--- a/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/b/x/0.2-SNAPSHOT/x-0.2-20100119.121231-1.pom
+++ b/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/b/x/0.2-SNAPSHOT/x-0.2-20100119.121231-1.pom
@@ -1,80 +1,80 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3379.b</groupId>
-  <artifactId>x</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <properties>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>2.2</version>
-        <executions>
-          <execution>
-            <id>tests</id>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-source-plugin</artifactId>
-        <version>2.0.4</version>
-        <executions>
-          <execution>
-            <id>sources</id>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.5</version>
-        <executions>
-          <execution>
-            <id>apidocs</id>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3379.b</groupId>
+  <artifactId>x</artifactId>
+  <version>0.2-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <properties>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.2</version>
+        <executions>
+          <execution>
+            <id>tests</id>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-source-plugin</artifactId>
+        <version>2.0.4</version>
+        <executions>
+          <execution>
+            <id>sources</id>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>2.5</version>
+        <executions>
+          <execution>
+            <id>apidocs</id>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/c/x/0.2-SNAPSHOT/x-0.2-20100119.121243-1.pom b/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/c/x/0.2-SNAPSHOT/x-0.2-20100119.121243-1.pom
index b55fd93..cd000d8 100644
--- a/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/c/x/0.2-SNAPSHOT/x-0.2-20100119.121243-1.pom
+++ b/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/c/x/0.2-SNAPSHOT/x-0.2-20100119.121243-1.pom
@@ -1,80 +1,80 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3379.c</groupId>
-  <artifactId>x</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <properties>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>2.2</version>
-        <executions>
-          <execution>
-            <id>tests</id>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-source-plugin</artifactId>
-        <version>2.0.4</version>
-        <executions>
-          <execution>
-            <id>sources</id>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.5</version>
-        <executions>
-          <execution>
-            <id>apidocs</id>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3379.c</groupId>
+  <artifactId>x</artifactId>
+  <version>0.2-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <properties>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.2</version>
+        <executions>
+          <execution>
+            <id>tests</id>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-source-plugin</artifactId>
+        <version>2.0.4</version>
+        <executions>
+          <execution>
+            <id>sources</id>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>2.5</version>
+        <executions>
+          <execution>
+            <id>apidocs</id>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/d/x/0.2-SNAPSHOT/x-0.2-20100119.121254-1.pom b/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/d/x/0.2-SNAPSHOT/x-0.2-20100119.121254-1.pom
index 6bee722..766070c 100644
--- a/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/d/x/0.2-SNAPSHOT/x-0.2-20100119.121254-1.pom
+++ b/core-it-suite/src/test/resources/mng-3379/repo/org/apache/maven/its/mng3379/d/x/0.2-SNAPSHOT/x-0.2-20100119.121254-1.pom
@@ -1,80 +1,80 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3379.d</groupId>
-  <artifactId>x</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <properties>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>2.2</version>
-        <executions>
-          <execution>
-            <id>tests</id>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-source-plugin</artifactId>
-        <version>2.0.4</version>
-        <executions>
-          <execution>
-            <id>sources</id>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.5</version>
-        <executions>
-          <execution>
-            <id>apidocs</id>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3379.d</groupId>
+  <artifactId>x</artifactId>
+  <version>0.2-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <properties>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.2</version>
+        <executions>
+          <execution>
+            <id>tests</id>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-source-plugin</artifactId>
+        <version>2.0.4</version>
+        <executions>
+          <execution>
+            <id>sources</id>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>2.5</version>
+        <executions>
+          <execution>
+            <id>apidocs</id>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom
index c889c23..58f77fe 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom
@@ -1,63 +1,63 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3380</groupId>
-  <artifactId>direct</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3380.old</groupId>
-      <artifactId>transitive</artifactId>
-      <version>1</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3380</groupId>
+  <artifactId>direct</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3380.old</groupId>
+      <artifactId>transitive</artifactId>
+      <version>1</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom.md5 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom.md5
index 78da730..d41e3fe 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom.md5
@@ -1 +1 @@
-8caafac1f379093807740effa86e3c68
\ No newline at end of file
+c9f560b6e53d6219af8451b6541da284
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom.sha1 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom.sha1
index 558b1fc..97f545e 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/direct/1/direct-1.pom.sha1
@@ -1 +1 @@
-bd64a606a4006ddc5496d1c2b892ea830df23889
\ No newline at end of file
+84ade1cd883efec99213bf670e6fe98b28235ca9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/1/transitive-1.pom b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/1/transitive-1.pom
index 04e067c..14d4acd 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/1/transitive-1.pom
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/1/transitive-1.pom
@@ -1,68 +1,68 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3380.new</groupId>
-  <artifactId>transitive</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3380.other</groupId>
-      <artifactId>a</artifactId>
-      <version>1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3380.other</groupId>
-      <artifactId>c</artifactId>
-      <version>1</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3380.new</groupId>
+  <artifactId>transitive</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3380.other</groupId>
+      <artifactId>a</artifactId>
+      <version>1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3380.other</groupId>
+      <artifactId>c</artifactId>
+      <version>1</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/1/transitive-1.pom.sha1 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/1/transitive-1.pom.sha1
index d40883c..695674a 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/1/transitive-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/1/transitive-1.pom.sha1
@@ -1 +1 @@
-1a94555f4b9c0dbd7810c0d92ae6588b813895bd
\ No newline at end of file
+713454182433f27395b93560edbe21642e9db0d3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/2/transitive-2.pom b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/2/transitive-2.pom
index c81914b..41406da 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/2/transitive-2.pom
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/2/transitive-2.pom
@@ -1,68 +1,68 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3380.new</groupId>
-  <artifactId>transitive</artifactId>
-  <version>2</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3380.other</groupId>
-      <artifactId>a</artifactId>
-      <version>1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3380.other</groupId>
-      <artifactId>b</artifactId>
-      <version>1</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3380.new</groupId>
+  <artifactId>transitive</artifactId>
+  <version>2</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3380.other</groupId>
+      <artifactId>a</artifactId>
+      <version>1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3380.other</groupId>
+      <artifactId>b</artifactId>
+      <version>1</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/2/transitive-2.pom.sha1 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/2/transitive-2.pom.sha1
index 1b0db42..aa2517a 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/2/transitive-2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/new/transitive/2/transitive-2.pom.sha1
@@ -1 +1 @@
-9c9a8dfac7089724a63f895fffa227a81c642097
\ No newline at end of file
+8f1ceac1a83cc58bc8518afc7a1b1d403eee5951
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/old/transitive/1/transitive-1.pom b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/old/transitive/1/transitive-1.pom
index d5b981a..b89584a 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/old/transitive/1/transitive-1.pom
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/old/transitive/1/transitive-1.pom
@@ -1,43 +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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3380.old</groupId>
-  <artifactId>transitive</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-    <relocation>
-      <groupId>org.apache.maven.its.mng3380.new</groupId>
-    </relocation>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3380.old</groupId>
+  <artifactId>transitive</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+    <relocation>
+      <groupId>org.apache.maven.its.mng3380.new</groupId>
+    </relocation>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/old/transitive/1/transitive-1.pom.sha1 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/old/transitive/1/transitive-1.pom.sha1
index e0ad1b5..4f53605 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/old/transitive/1/transitive-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/old/transitive/1/transitive-1.pom.sha1
@@ -1 +1 @@
-4ea4940f83838b487b0465efe6c68bc80d46c5aa
\ No newline at end of file
+2cb9c09021bb5b91205b4893978c09dcba3df4b5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom
index a9f663b..d16ed45 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3380.other</groupId>
-  <artifactId>a</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3380.other</groupId>
+  <artifactId>a</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom.md5 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom.md5
index 877f553..59c158d 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom.md5
@@ -1 +1 @@
-756e686f0d599c96d03640edb2b996c3
\ No newline at end of file
+7caf2de8074138c26fcf7a7cd7bfa4bb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom.sha1 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom.sha1
index 3b367f9..7d86106 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/a/1/a-1.pom.sha1
@@ -1 +1 @@
-d29c5f534cd14bdbc626257b038d2d0186891fd0
\ No newline at end of file
+475a856324af693023882132a1e424d982978e3e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom
index 818bb93..3ddc3ef 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3380.other</groupId>
-  <artifactId>b</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3380.other</groupId>
+  <artifactId>b</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom.md5 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom.md5
index 7dcc6b4..28b8157 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom.md5
@@ -1 +1 @@
-46c2107f5c6eb37fa6afe9b0a0c37f3b
\ No newline at end of file
+d069a0f983c7946efbdc169d0ea9bc0d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom.sha1 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom.sha1
index 3786e2f..fc36125 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/b/1/b-1.pom.sha1
@@ -1 +1 @@
-dbc4f3303c0298f7c095676518e58f48a2c258cf
\ No newline at end of file
+0eb21541328075af40dafa36975cafc3fa05be3f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom
index 978d0bc..c03441c 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3380.other</groupId>
-  <artifactId>c</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3380.other</groupId>
+  <artifactId>c</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom.md5 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom.md5
index e97190d..e487202 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom.md5
@@ -1 +1 @@
-fb67df438c51825908b0bf4221f341fc
\ No newline at end of file
+2a4ba371e9f61b4c2d0add8477e226e9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom.sha1 b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom.sha1
index bcfacf1..2c7df93 100644
--- a/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3380/repo/org/apache/maven/its/mng3380/other/c/1/c-1.pom.sha1
@@ -1 +1 @@
-f1e6bc5d299cbdb26ca6020a29e3c960fadc7e9e
\ No newline at end of file
+1f152eafabe2d21b4529d61ed222f65e0426c019
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom
index e74086e..76133c8 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3461</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3461</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5
index 7432001..ec77e50 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-176e060812d53b1dc28a5ead32245c7a
\ No newline at end of file
+919e246c669ea3862f179e80ebef08bc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1
index 23128a4..83031c9 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3461/test-1/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-ed6abbe0bf1e7166fdbf2521265777b5fb20ab76
\ No newline at end of file
+d9cc192914e575aa615de03a2d726d5b389f3592
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom
index e74086e..76133c8 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3461</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3461</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5
index 7432001..ec77e50 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-176e060812d53b1dc28a5ead32245c7a
\ No newline at end of file
+919e246c669ea3862f179e80ebef08bc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1
index 23128a4..83031c9 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3461/test-2/repo-1/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-ed6abbe0bf1e7166fdbf2521265777b5fb20ab76
\ No newline at end of file
+d9cc192914e575aa615de03a2d726d5b389f3592
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom
index 7da4307..6bfe765 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3461</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3461</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom.md5
index 5fe1b56..7f1d62b 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-006e997b6a9c03dd5549702af171f238
\ No newline at end of file
+fbce2f0f2adb0ac756c9c14c91ec168e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom.sha1
index 8993da9..715e593 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3461/test-2/repo-3/org/apache/maven/its/mng3461/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-5b02d5ae6adfb0e9ee56876a1c8af4a3b8439bc1
\ No newline at end of file
+2b55b67243ac9b721e8e60a61f7c1ac37940564e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom
index e74086e..76133c8 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3461</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3461</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5
index 7432001..ec77e50 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-176e060812d53b1dc28a5ead32245c7a
\ No newline at end of file
+919e246c669ea3862f179e80ebef08bc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1
index 23128a4..83031c9 100644
--- a/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3461/test-3/repo/org/apache/maven/its/mng3461/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-ed6abbe0bf1e7166fdbf2521265777b5fb20ab76
\ No newline at end of file
+d9cc192914e575aa615de03a2d726d5b389f3592
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3470/repo/org/apache/maven/its/mng3470/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-3470/repo/org/apache/maven/its/mng3470/dep/0.1/dep-0.1.pom
index 9131114..8f2045c 100644
--- a/core-it-suite/src/test/resources/mng-3470/repo/org/apache/maven/its/mng3470/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3470/repo/org/apache/maven/its/mng3470/dep/0.1/dep-0.1.pom
@@ -1,40 +1,40 @@
-<?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.
--->
-
-<!-- NOTE: It's crucial part of the test that the checksums don't match this POM -->
-
-<project>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3470</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-3470</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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.
+-->
+
+<!-- NOTE: It's crucial part of the test that the checksums don't match this POM -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3470</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-3470</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3586/test-1/repo/org/apache/maven/its/mng3586/plugin/0.1/plugin-0.1.pom b/core-it-suite/src/test/resources/mng-3586/test-1/repo/org/apache/maven/its/mng3586/plugin/0.1/plugin-0.1.pom
index ac0e39c..46c7c5e 100644
--- a/core-it-suite/src/test/resources/mng-3586/test-1/repo/org/apache/maven/its/mng3586/plugin/0.1/plugin-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3586/test-1/repo/org/apache/maven/its/mng3586/plugin/0.1/plugin-0.1.pom
@@ -1,77 +1,77 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3586</groupId>
-  <artifactId>plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: System Scope</name>
-  <description>
-    A test plugin that has a dependency with scope system.
-  </description>
-  <inceptionYear>2008</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3586</groupId>
-      <artifactId>tools</artifactId>
-      <version>1.5.0</version>
-      <scope>system</scope>
-      <systemPath>${test.home}/tools.jar</systemPath>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3586</groupId>
+  <artifactId>plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: System Scope</name>
+  <description>
+    A test plugin that has a dependency with scope system.
+  </description>
+  <inceptionYear>2008</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3586</groupId>
+      <artifactId>tools</artifactId>
+      <version>1.5.0</version>
+      <scope>system</scope>
+      <systemPath>${test.home}/tools.jar</systemPath>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3586/test-1/repo/org/apache/maven/its/mng3586/plugin/0.1/plugin-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3586/test-1/repo/org/apache/maven/its/mng3586/plugin/0.1/plugin-0.1.pom.sha1
index d6785ef..93b94a3 100644
--- a/core-it-suite/src/test/resources/mng-3586/test-1/repo/org/apache/maven/its/mng3586/plugin/0.1/plugin-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3586/test-1/repo/org/apache/maven/its/mng3586/plugin/0.1/plugin-0.1.pom.sha1
@@ -1 +1 @@
-bbd93d660fc34bf4721a0c80eaa7c83fc1d1d59b
\ No newline at end of file
+ae019be8f2ccab0cad22de5d75acf3ce5e55feed
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom
index 8e7f3c6..b52f9b2 100644
--- a/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom
@@ -1,32 +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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <!--
-  NOTE: It's the essential part of this test that the coordinates in this POM are all wrong, i.e. don't match
-  the deployed artifact.
-  -->
-  <groupId>org.apache.maven.its.mng3667.bad</groupId>
-  <artifactId>dep-bad</artifactId>
-  <version>0.1-SNAPSHOT</version>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <!--
+  NOTE: It's the essential part of this test that the coordinates in this POM are all wrong, i.e. don't match
+  the deployed artifact.
+  -->
+  <groupId>org.apache.maven.its.mng3667.bad</groupId>
+  <artifactId>dep-bad</artifactId>
+  <version>0.1-SNAPSHOT</version>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom.md5
index 2ec6a15..bfbd75c 100644
--- a/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-1b1cd02b4eceeca9f573b57babedeecd
\ No newline at end of file
+5ee71e1a3e7cb23200afbee57a262574
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom.sha1
index 9da0f46..46bc4d7 100644
--- a/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3667/repo/org/apache/maven/its/mng3667/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-d624a8de0c7da19bc23f420766529c7fb9f8e832
\ No newline at end of file
+f23a7db2d3e7ea10d0c8672b1aa99f08d03e604a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom b/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom
index 1302093..cd1ccf6 100644
--- a/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom
@@ -1,57 +1,57 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3680</groupId>
-  <artifactId>direct</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3680</groupId>
-      <artifactId>transitive</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-
-  <!--
-  This is an invalid repositories section (missing <repository> element), which would trip up the model parser 
-  if it were used in strict mode, or if the handling of the strict-mode flag 
-  doesn't apply to association lists.
-
-  Dependency POMs should always be parsed in non-strict mode, so this
-  shouldn't prevent the inclusion of the above dependency.
-  -->
-  <repositories>
-    <id>imaginary-repo</id>
-    <url>https://repository.imaginary/</url>
-  </repositories>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3680</groupId>
+  <artifactId>direct</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3680</groupId>
+      <artifactId>transitive</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <!--
+  This is an invalid repositories section (missing <repository> element), which would trip up the model parser 
+  if it were used in strict mode, or if the handling of the strict-mode flag 
+  doesn't apply to association lists.
+
+  Dependency POMs should always be parsed in non-strict mode, so this
+  shouldn't prevent the inclusion of the above dependency.
+  -->
+  <repositories>
+    <id>imaginary-repo</id>
+    <url>https://repository.imaginary/</url>
+  </repositories>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom.md5
index 9cbd727..bd746f1 100644
--- a/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom.md5
@@ -1 +1 @@
-bc6835f0c5e3805dffd8cb378c640179
\ No newline at end of file
+9c9f1bf16b052c0a7a2c77b479b7a5dc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom.sha1
index 2ec4898..1d2373b 100644
--- a/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/direct/0.1/direct-0.1.pom.sha1
@@ -1 +1 @@
-a3632b465c2b2b4f469482ec881dc560be4a7edf
\ No newline at end of file
+6dd49307f0f6c20eaabf749231880e3948c34ef3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/transitive/0.1/transitive-0.1.pom b/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/transitive/0.1/transitive-0.1.pom
index 132b4c0..41348a7 100644
--- a/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/transitive/0.1/transitive-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/transitive/0.1/transitive-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3680</groupId>
-  <artifactId>transitive</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3680</groupId>
+  <artifactId>transitive</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/transitive/0.1/transitive-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/transitive/0.1/transitive-0.1.pom.sha1
index 6d08aed..4986659 100644
--- a/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/transitive/0.1/transitive-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3680/repo/org/apache/maven/its/mng3680/transitive/0.1/transitive-0.1.pom.sha1
@@ -1 +1 @@
-cec37866abe700249be80d07504ac39ca6dd5dda
\ No newline at end of file
+a559fa34b12aa737652493bcebed9a1b7e3ec32f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom
index 77cc9e6..4b12f26 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3775</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3775</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3775</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3775</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom.md5
index 5cca3c3..1e73af0 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-3a99ef2d1f4931d23679e1523127afe9
\ No newline at end of file
+9a780b15147e02a198b21c2172a4f3f6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom.sha1
index 653f0f4..5a52685 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-02d008cb43ad1df4c462f51cc766a3e167239a79
\ No newline at end of file
+9e5452412e4c92fecee11f28efdc54985cadc8bb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom
index 0b69222..a9aeedf 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3775</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3775</groupId>
-      <artifactId>x</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3775</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3775</groupId>
+      <artifactId>x</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom.md5
index 8e490c7..29f0f98 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-e4a6b8a5866aa8ea5f46f2e6940e94a2
\ No newline at end of file
+d11e798bc77a60e3c4224a56fd3ecccb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom.sha1
index acf2ce4..89c5d69 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-836cf8015dafe5933b3cb9724144a3a97ea31798
\ No newline at end of file
+fb9d4420d4ab12c2e6ccf416893be7d1520805e1
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom
index b9a40b8..3df8912 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3775</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3775</groupId>
-      <artifactId>x</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3775</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3775</groupId>
+      <artifactId>x</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom.md5
index 4a9957c..687a417 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-4e000c8084fe06e005de897e18a0958e
\ No newline at end of file
+3a3fb3b008c2fcc2268496dcbe1dfa4e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom.sha1
index fdd4559..5e43862 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-9646c4a110f22fe071b3527aa267d9c31fc7c921
\ No newline at end of file
+aba28715555811655682822ba5c03cd6f92a0c4f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom
index fc25721..1f37604 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3775</groupId>
-  <artifactId>x</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3775</groupId>
+  <artifactId>x</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom.md5
index a808a91..df79fac 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom.md5
@@ -1 +1 @@
-6f26d97b7713fe535a58e0f7cc2fdeda
\ No newline at end of file
+fde4ab22ef011e3f7161f663001e1a5a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom.sha1
index 2b8f49b..de71bc2 100644
--- a/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3775/repo/org/apache/maven/its/mng3775/x/0.1/x-0.1.pom.sha1
@@ -1 +1 @@
-1deb290d9ab7e1fe882770563de9c86cce31ae25
\ No newline at end of file
+250a197992e8caea3f3cf83233a011388dfa3b71
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom
index 4bc42f0..b60d978 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3805</groupId>
-  <artifactId>dep-a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3805</groupId>
+  <artifactId>dep-a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom.md5
index 6e88a0f..d47dc66 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom.md5
@@ -1 +1 @@
-cc349af83ec4e5437cf0065dcdd0de5d
\ No newline at end of file
+9b5b4559ec0e4473faaa42ebbf3df3aa
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom.sha1
index 9159ceb..10537c5 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-a/0.1/dep-a-0.1.pom.sha1
@@ -1 +1 @@
-ff48cf6e5dbe18da466064c6e5a20a875a4a41d1
\ No newline at end of file
+e920886fa2ed68a50a2943109fad8e31f6763fab
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom
index fced351..97177be 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3805</groupId>
-  <artifactId>dep-b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3805</groupId>
+  <artifactId>dep-b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom.md5
index 4a733aa..2fab47d 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom.md5
@@ -1 +1 @@
-21e388873d0b85bd115753058241237a
\ No newline at end of file
+d206d99b313ddce2b2611a01165d9dd2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom.sha1
index 6606a8d..b9dedd3 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-b/0.1/dep-b-0.1.pom.sha1
@@ -1 +1 @@
-17328c2cc91858da5c8e563c3e8749c69e11296f
\ No newline at end of file
+40948e0ec17e225bd3a882cd042a0a278691ddd2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom
index 76dd97f..f79c48c 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3805</groupId>
-  <artifactId>dep-c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3805</groupId>
+  <artifactId>dep-c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom.md5
index 346a698..8d6f398 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom.md5
@@ -1 +1 @@
-fc934f3061717d45b45320593e733b0b
\ No newline at end of file
+5c8b2b3e8c7a086e8a882264093bbe02
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom.sha1
index d7adf5a..a2d3a51 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-c/0.1/dep-c-0.1.pom.sha1
@@ -1 +1 @@
-5c9e2769711463e1455045747a69d7af3d15af8d
\ No newline at end of file
+cefd70de191be1359f80976fb41a7a1d8ffaa2a3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom
index c831b10..4956240 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3805</groupId>
-  <artifactId>dep-d</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3805</groupId>
+  <artifactId>dep-d</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom.md5
index 8624b1a..8578924 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom.md5
@@ -1 +1 @@
-1053a179526f914dc81bc049e96a8a52
\ No newline at end of file
+6b97b0d08e49743e5efd93911d74d3d2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom.sha1
index 44b7d68..7ac5f6a 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/dep-d/0.1/dep-d-0.1.pom.sha1
@@ -1 +1 @@
-bbb3155c5e7c6509e9779a9f79f01c918595337e
\ No newline at end of file
+4a1756417c74b8ceb6486f77810c2882b68cfce7
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom
index 3c0e05a..609a36f 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom
@@ -1,101 +1,101 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3805</groupId>
-  <artifactId>wagon-a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.wagon</groupId>
-      <artifactId>wagon-provider-api</artifactId>
-      <version>1.0-beta-2</version>
-    </dependency>
-    <!--
-    NOTE: The following dependencies all provide the same resource file to check their ordering on the class path
-    -->
-    <dependency>
-      <groupId>org.apache.maven.its.mng3805</groupId>
-      <artifactId>dep-a</artifactId>
-      <version>0.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3805</groupId>
-      <artifactId>dep-b</artifactId>
-      <version>0.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3805</groupId>
-      <artifactId>dep-c</artifactId>
-      <version>0.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3805</groupId>
-      <artifactId>dep-d</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-maven-plugin</artifactId>
-        <version>1.3.8</version>
-        <executions>
-          <execution>
-            <id>descriptor</id>
-            <goals>
-              <goal>descriptor</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3805</groupId>
+  <artifactId>wagon-a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.wagon</groupId>
+      <artifactId>wagon-provider-api</artifactId>
+      <version>1.0-beta-2</version>
+    </dependency>
+    <!--
+    NOTE: The following dependencies all provide the same resource file to check their ordering on the class path
+    -->
+    <dependency>
+      <groupId>org.apache.maven.its.mng3805</groupId>
+      <artifactId>dep-a</artifactId>
+      <version>0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3805</groupId>
+      <artifactId>dep-b</artifactId>
+      <version>0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3805</groupId>
+      <artifactId>dep-c</artifactId>
+      <version>0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3805</groupId>
+      <artifactId>dep-d</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-maven-plugin</artifactId>
+        <version>1.3.8</version>
+        <executions>
+          <execution>
+            <id>descriptor</id>
+            <goals>
+              <goal>descriptor</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom.md5
index 9c4e6fa..e2393bf 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom.md5
@@ -1 +1 @@
-05eee181e6dc524aa18f8080d1734a76
\ No newline at end of file
+d402050263b248be06d209bd64da1dd9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom.sha1
index 2753d32..0ad142b 100644
--- a/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3805/repo/org/apache/maven/its/mng3805/wagon-a/0.1/wagon-a-0.1.pom.sha1
@@ -1 +1 @@
-0326bff4d62d87ad76f909c94471a2cf531e9844
\ No newline at end of file
+72e34f69a1652e932ac2e3410a18c8e2f512c65f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom
index f5ada7e..bde4881 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom
@@ -1,79 +1,79 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3813</groupId>
-  <artifactId>dep-a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <!-- NOTE: Dependencies are deliberately not in alpha order to detect their accidental sorting. -->
-    <dependency>
-      <groupId>org.apache.maven.its.mng3813</groupId>
-      <artifactId>dep-aa</artifactId>
-      <version>0.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3813</groupId>
-      <artifactId>dep-ac</artifactId>
-      <version>0.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3813</groupId>
-      <artifactId>dep-ab</artifactId>
-      <version>0.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3813</groupId>
-      <artifactId>dep-ad</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3813</groupId>
+  <artifactId>dep-a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <!-- NOTE: Dependencies are deliberately not in alpha order to detect their accidental sorting. -->
+    <dependency>
+      <groupId>org.apache.maven.its.mng3813</groupId>
+      <artifactId>dep-aa</artifactId>
+      <version>0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3813</groupId>
+      <artifactId>dep-ac</artifactId>
+      <version>0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3813</groupId>
+      <artifactId>dep-ab</artifactId>
+      <version>0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3813</groupId>
+      <artifactId>dep-ad</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom.md5
index 4e46dc5..79fb5f3 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom.md5
@@ -1 +1 @@
-efd17bd04f59c6b0d52939c0a582f415
\ No newline at end of file
+48ab78f561bd2b633cacc697f7947bbd
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom.sha1
index f0b8fd4..be58161 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom.sha1
@@ -1 +1 @@
-6026b4f812c93bdd60f58e7827b86f6864a860ec
\ No newline at end of file
+8555d174a1a1f758485aeb94affe3d9a2afeb637
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom
index 968ce14..29ca2eb 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3813</groupId>
-  <artifactId>dep-aa</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3813</groupId>
+  <artifactId>dep-aa</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom.md5
index 17dbe02..f9731b1 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom.md5
@@ -1 +1 @@
-bf095efa2fe3b8d56c65b55ac4e9f644
\ No newline at end of file
+59537b545fca93f60c014da3c1bc1b22
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom.sha1
index 880e925..e9994b5 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom.sha1
@@ -1 +1 @@
-50f131dba99dcc8dfea5e1698aae2848101aad3b
\ No newline at end of file
+77829dd4f2307e3d97634350a90f1f3d9a4fb1c2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom
index a1d861f..8f63c1c 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3813</groupId>
-  <artifactId>dep-ab</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3813</groupId>
+  <artifactId>dep-ab</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom.md5
index f718b0a..a4c4348 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom.md5
@@ -1 +1 @@
-3d76e4f37a48550ac25d53d10b690575
\ No newline at end of file
+85d899d206dfaa48611662d4d99cf9e5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom.sha1
index 1e186da..2febc25 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom.sha1
@@ -1 +1 @@
-6543fc74b7e87a9dd82f4fc4d69f059ea8629a94
\ No newline at end of file
+1575ab4896f791119a7500ac6053de958b947f7a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom
index 5d639d8..c6ab7a8 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3813</groupId>
-  <artifactId>dep-ac</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3813</groupId>
+  <artifactId>dep-ac</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom.md5
index d5afdcd..305293b 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom.md5
@@ -1 +1 @@
-0708adaddf7bef8819a3c1e64636dd6a
\ No newline at end of file
+ca5ec324f478307fd35edd4e41835c1e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom.sha1
index f106193..3090a76 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom.sha1
@@ -1 +1 @@
-05e4e968adcfd8c46ba03d92bac5638b4ca4ac19
\ No newline at end of file
+65685892bef71c3c3e483836ca98813d03bcccec
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom
index 6a1d6d7..ddf6e1b 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3813</groupId>
-  <artifactId>dep-ad</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3813</groupId>
+  <artifactId>dep-ad</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom.md5
index 17d0dcf..9c16758 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom.md5
@@ -1 +1 @@
-468123874e7de7647905fbf8d5db4338
\ No newline at end of file
+c8031e67b5e273530db65737395f4ee9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom.sha1
index 4313275..9337f48 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom.sha1
@@ -1 +1 @@
-b6b7e56baa4b5f58e91ddb3d143c280cc741dc02
\ No newline at end of file
+3a17359247ae0770e370c63a3497f426f1fd4cc2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom
index 8ee0979..324725a 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3813</groupId>
-  <artifactId>dep-b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3813</groupId>
+  <artifactId>dep-b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom.md5
index 0643fe5..6a3f612 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom.md5
@@ -1 +1 @@
-d164e53c3d9034270936c26402b0741b
\ No newline at end of file
+2e22b7c0d3385dd9b11272c90574640a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom.sha1
index 43ec2ca..48590e0 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom.sha1
@@ -1 +1 @@
-0c1a41442214ec072954ea0e9b80ffccc4132f27
\ No newline at end of file
+65e560ee81152ebe464602e2989688ccc92233ba
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom
index fb8e69f..4b8dbd4 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3813</groupId>
-  <artifactId>dep-c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3813</groupId>
+  <artifactId>dep-c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom.md5
index 06906d6..034e563 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom.md5
@@ -1 +1 @@
-f9d819c96d5ae4ac98ccfb9e7edefdcd
\ No newline at end of file
+3022ed1699406eb63585f39c2aa2dd01
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom.sha1
index db7b79e..2bf63e0 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom.sha1
@@ -1 +1 @@
-cff12bc0869e246ac6b8f7a770704e839b3b8017
\ No newline at end of file
+a5afbfd3dce4600efdf222620c173c8c9d103542
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom
index aeef246..75b009d 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3813</groupId>
-  <artifactId>dep-d</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3813</groupId>
+  <artifactId>dep-d</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom.md5
index adac896..d591a8a 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom.md5
@@ -1 +1 @@
-63575821ac5a3df0480f81c7233e0554
\ No newline at end of file
+685b30031fb684eca3f0fa467739a17a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom.sha1
index 94485e5..874c915 100644
--- a/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3813/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom.sha1
@@ -1 +1 @@
-32439e7ca823f14c9503545bb0107bccaa1518ba
\ No newline at end of file
+505ca43c019eebbd01bd00c9ffc318763d5799ef
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3814/repo/org/apache/maven/its/mng3814/maven-mng3814a-plugin/1.0/maven-mng3814a-plugin-1.0.pom b/core-it-suite/src/test/resources/mng-3814/repo/org/apache/maven/its/mng3814/maven-mng3814a-plugin/1.0/maven-mng3814a-plugin-1.0.pom
index e055c1d..2ae7ebc 100644
--- a/core-it-suite/src/test/resources/mng-3814/repo/org/apache/maven/its/mng3814/maven-mng3814a-plugin/1.0/maven-mng3814a-plugin-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-3814/repo/org/apache/maven/its/mng3814/maven-mng3814a-plugin/1.0/maven-mng3814a-plugin-1.0.pom
@@ -1,63 +1,63 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3814</groupId>
-  <artifactId>maven-mng3814a-plugin</artifactId>
-  <version>1.0</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3814</groupId>
+  <artifactId>maven-mng3814a-plugin</artifactId>
+  <version>1.0</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3814/repo/org/apache/maven/its/mng3814/maven-mng3814b-plugin/1.0/maven-mng3814b-plugin-1.0.pom b/core-it-suite/src/test/resources/mng-3814/repo/org/apache/maven/its/mng3814/maven-mng3814b-plugin/1.0/maven-mng3814b-plugin-1.0.pom
index 1941381..7bdab29 100644
--- a/core-it-suite/src/test/resources/mng-3814/repo/org/apache/maven/its/mng3814/maven-mng3814b-plugin/1.0/maven-mng3814b-plugin-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-3814/repo/org/apache/maven/its/mng3814/maven-mng3814b-plugin/1.0/maven-mng3814b-plugin-1.0.pom
@@ -1,63 +1,63 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3814</groupId>
-  <artifactId>maven-mng3814b-plugin</artifactId>
-  <version>1.0</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3814</groupId>
+  <artifactId>maven-mng3814b-plugin</artifactId>
+  <version>1.0</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom
index 84c4c59..c8ced69 100644
--- a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom
@@ -1,42 +1,42 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3872</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-3872 :: Dependency</name>
-  <description>
-    Verify that profiles are activated in relocated POMs
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3872</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-3872 :: Dependency</name>
+  <description>
+    Verify that profiles are activated in relocated POMs
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom.md5
index d93b4fd..ef77d6a 100644
--- a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-2b4d6ba2f87a7b56ff236a1d7a1260c3
\ No newline at end of file
+a99381a8c04552b0c3b3f8d1c32e8159
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom.sha1
index 3cbd2df..d71e8fd 100644
--- a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-62991e0e9326c73cdfa15ab0ed13e77325cb2289
\ No newline at end of file
+344ec6e1b20e9e1dea1facc46c47827a096990c3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom
index 883e91e..d8c5f36 100644
--- a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom
@@ -1,57 +1,57 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3872</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-3872 :: Relocated</name>
-  <description>
-    Verify that profiles are activated in relocated POMs.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <profiles>
-    <profile>
-      <id>maven-core-it</id>
-      <activation>
-        <activeByDefault>true</activeByDefault>
-      </activation>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.maven.its.mng3872</groupId>
-          <artifactId>a</artifactId>
-          <version>0.1</version>
-        </dependency>
-      </dependencies>
-    </profile>
-  </profiles>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3872</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-3872 :: Relocated</name>
+  <description>
+    Verify that profiles are activated in relocated POMs.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <profiles>
+    <profile>
+      <id>maven-core-it</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <dependencies>
+        <dependency>
+          <groupId>org.apache.maven.its.mng3872</groupId>
+          <artifactId>a</artifactId>
+          <version>0.1</version>
+        </dependency>
+      </dependencies>
+    </profile>
+  </profiles>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom.md5
index 68caf66..81db7d1 100644
--- a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-a65168e37f8956178318bcc3779556b9
\ No newline at end of file
+a3f2d2dd027733c41b9174ef2fd4f12a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom.sha1
index b3354f8..6383683 100644
--- a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-abd90a02dc88d082094fe02582c703ce6d966dd7
\ No newline at end of file
+97c58dc4252c8e42fcce91144f84dbe1f09b10f1
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom
index 460a9ad..7d29ef7 100644
--- a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3872</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-3872 :: Relocation</name>
-  <description>
-    Verify that profiles are activated in relocated POMs.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-    <relocation>
-      <artifactId>b</artifactId>
-    </relocation>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3872</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-3872 :: Relocation</name>
+  <description>
+    Verify that profiles are activated in relocated POMs.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+    <relocation>
+      <artifactId>b</artifactId>
+    </relocation>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom.md5
index d6b73c9..8ba45fd 100644
--- a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-4e7c5f279d6b216e044f54211b910e6e
\ No newline at end of file
+2226cf23dd1ee12ce965cec3070667a4
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom.sha1
index 6cdf91b..e66ff5a 100644
--- a/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3872/repo/org/apache/maven/its/mng3872/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-a0bcce84d8af894e6b7b1151c16e49804d3da8ea
\ No newline at end of file
+64cec3ce29197cd3341df79b98d502a338885ec7
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom
index c96c1bc..b398668 100644
--- a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom
@@ -1,60 +1,60 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3890</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>true</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3890</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>true</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom.md5
index 4d25b36..fd8447b 100644
--- a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-9ce617a4f049482ba7590df54ae1b48e
\ No newline at end of file
+a5d0af6ec9e5dc4e78252fea44d398a5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom.sha1
index cb9ed82..1eb0c3e 100644
--- a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-d8358f6628822b4412e77a944f7d2195ae9c1b8b
\ No newline at end of file
+3384341e524aa9c15ec309cce4523f89f8172e2b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom
index 78699ab..b3f6fb1 100644
--- a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom
@@ -1,66 +1,66 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3890</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>true</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3890</groupId>
-      <artifactId>a</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3890</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>true</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3890</groupId>
+      <artifactId>a</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom.md5
index ecb07a4..af13d87 100644
--- a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-47ba1e6c5a4164f90b1f9698a0d585b9
\ No newline at end of file
+9cc206757a4c46ba64578a5248f82963
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom.sha1
index 4085cd9..4f42b14 100644
--- a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-c1e07d78b825d2d7b9fa4172d8600bdb6aed9a3c
\ No newline at end of file
+558b72cf56f4746eb17bb1f8037d4aff1f30eac6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom
index e965ab4..6468d8f 100644
--- a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom
@@ -1,72 +1,72 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3890</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>true</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3890</groupId>
-      <artifactId>a</artifactId>
-      <version>0.1</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng3890</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3890</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>true</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3890</groupId>
+      <artifactId>a</artifactId>
+      <version>0.1</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng3890</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom.md5
index 27f4c97..b09b839 100644
--- a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-8c7466b5d05e1b2b8c722e1f4bbddb9d
\ No newline at end of file
+9d9044163022841b48e0d6fe8098a175
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom.sha1
index be39a29..879d987 100644
--- a/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3890/repo/org/apache/maven/its/mng3890/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-a2e10d76035bd39b52eb245679fd36877f513dd6
\ No newline at end of file
+8fdd05c6952d0037fd264077071b54115c03dfda
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom
index 1db1f3b..2cb35b2 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3899</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3899</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom.md5
index 8f14599..e129a2a 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-90b65517448f0f2e435a40bf9c624fb0
\ No newline at end of file
+7a5e47eb63102dc3b4517a8912e07802
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom.sha1
index c6ca7bc..608fb44 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-38f0bb35b15f0db7f1dbb7c9a43b2aec3504601e
\ No newline at end of file
+1b0d3a69ec58cd8487511e9c21bb83678d9a7336
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom
index 4d12ee8..e98ead2 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3899</groupId>
-  <artifactId>a</artifactId>
-  <version>0.2</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3899</groupId>
+  <artifactId>a</artifactId>
+  <version>0.2</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom.md5 b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom.md5
index c8ec408..580fb2a 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom.md5
@@ -1 +1 @@
-dcebddb014788ef38c57498fc0085623
\ No newline at end of file
+e1f53f01deeeb3d7f8c7f6a862df678e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom.sha1 b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom.sha1
index 0abc6f5..a187352 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/a/0.2/a-0.2.pom.sha1
@@ -1 +1 @@
-1247528029c158aaa2fe877047ba8b2e74b1b16f
\ No newline at end of file
+145bf5403a8232e227f78f5ef236d138e1c223de
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom
index 9e559e5..509eb01 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3899</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3899</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom.md5
index dc95e70..de567ef 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-ea8bbb4da72da7c12d1b3172eb3e0a6c
\ No newline at end of file
+45bd74849c9add2b406e5f19159acd30
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom.sha1
index afe4aad..775f103 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-13f7f653af77043f6c1f987bcbbf5767e5d6c9ad
\ No newline at end of file
+58eebcf3e17efcfce542f7faf7a66a264596e4ca
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom
index 4985e55..ff23ef4 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3899</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3899</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom.md5
index 183e426..c9cbd7f 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-50dcc91101caf8ee64eb84b461a6f3b6
\ No newline at end of file
+527dca2d343e61d5053eb6c47b72150f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom.sha1
index aeefddb..0bfef9c 100644
--- a/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3899/sub/repo/org/apache/maven/its/mng3899/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-c8b0024b449911667c881034cdf16dcdd0edcf9a
\ No newline at end of file
+b526600e6541113849159437655c4a50a2ce42ad
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom
index 2f417d4..ed095b2 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3906</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3906</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom.md5
index 1e257f2..2c9f133 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-84406efa581a5767438fe647f03f4a4d
\ No newline at end of file
+4cccfe5441fd129d9db2b116feef508c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom.sha1
index 3cd4034..138f98a 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-86de51b6ffdfdaf12f2f8c9956e7f1d7bcf45502
\ No newline at end of file
+ec44e7f578ccbeb8cfcd00e3e820decd947db7c8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom
index 83c0c85..cb5373b 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3906</groupId>
-  <artifactId>a</artifactId>
-  <version>0.2</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3906</groupId>
+  <artifactId>a</artifactId>
+  <version>0.2</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom.md5 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom.md5
index ae24d5e..9cfe25d 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom.md5
@@ -1 +1 @@
-8e2d03fdc3ab0ed47c30f42d71655d11
\ No newline at end of file
+1a797f5a1f9f09d530d3c46ad5d9a0f6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom.sha1 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom.sha1
index df4cad6..e426c27 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom.sha1
@@ -1 +1 @@
-32b4e65a07af95c9a8ee19ac1dd169cece3c470b
\ No newline at end of file
+d31fc9a660c5d40c450db3c5a7297cd9ab565fd1
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom
index 6477579..d4dbbb7 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3906</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3906</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom.md5
index f0f50eb..c50737d 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-5c04405f258d8b9dd99af7b45b8e4f65
\ No newline at end of file
+1d86190a5c94ad3ac7d15f17cdf65530
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom.sha1
index a41ec0a..9ad8234 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-58d98e8188878461a117ada676a50a2a6e2f1f48
\ No newline at end of file
+02df24d5dd8b55e6d421abe8c7bfc2b9b0de6191
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom
index c3577ad..afc967c 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3906</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3906</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom.md5
index 0ec62b2..f45c5f6 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-006e7998d4e39b89ae894c057f5fedc1
\ No newline at end of file
+24fe98c4294a0946cef1369940f12c0e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom.sha1
index d6137a5..a6acc6a 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-5f5d0fb9a38c52dd8c7a6d77216e9a0f9d21e3bf
\ No newline at end of file
+089eabbd61131217e58fad6a0f7b2f163d703d03
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom
index a0140be..bfd077c 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3906</groupId>
-  <artifactId>d</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3906</groupId>
+  <artifactId>d</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom.md5
index cc26fee..142a37c 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom.md5
@@ -1 +1 @@
-7c923f919c1950085799f490c1ce4f41
\ No newline at end of file
+760de69d436582158e135a92fea0c106
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom.sha1
index cc22f5c..2967680 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom.sha1
@@ -1 +1 @@
-7d2e190792a4b3391e3bc3931bcb47cc918703a2
\ No newline at end of file
+253319f60757f25c5bc2f3a9471e20a1666e8d82
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom
index 55b09ea..24f2705 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3906</groupId>
-  <artifactId>e</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3906</groupId>
+  <artifactId>e</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom.md5
index fadb551..45b72fe 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom.md5
@@ -1 +1 @@
-402f00e7c5c1376686ac3ce3120e8285
\ No newline at end of file
+26be43a2284acad53bace00f10d7cd87
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom.sha1
index 3ca2859..17b3218 100644
--- a/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3906/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom.sha1
@@ -1 +1 @@
-bd81f9ca4d23277457ae1462993902c8037ce89f
\ No newline at end of file
+2f164767c977e3800bcf5b9bda3888aecaacc69e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3948/test-1/repo/org/apache/maven/its/mng3948/parent/0.1/parent-0.1.pom b/core-it-suite/src/test/resources/mng-3948/test-1/repo/org/apache/maven/its/mng3948/parent/0.1/parent-0.1.pom
index 26fa786..11b4999 100644
--- a/core-it-suite/src/test/resources/mng-3948/test-1/repo/org/apache/maven/its/mng3948/parent/0.1/parent-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3948/test-1/repo/org/apache/maven/its/mng3948/parent/0.1/parent-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3948</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <parentProperty>PASSED</parentProperty>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3948</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <parentProperty>PASSED</parentProperty>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3948/test-1/repo/org/apache/maven/its/mng3948/parent/0.1/parent-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3948/test-1/repo/org/apache/maven/its/mng3948/parent/0.1/parent-0.1.pom.sha1
index e447e33..dc42b3f 100644
--- a/core-it-suite/src/test/resources/mng-3948/test-1/repo/org/apache/maven/its/mng3948/parent/0.1/parent-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3948/test-1/repo/org/apache/maven/its/mng3948/parent/0.1/parent-0.1.pom.sha1
@@ -1 +1 @@
-f71b1db0107110a2093b030061e9b14c30160bb8
\ No newline at end of file
+ae1b10f0aab0b3be4e9a2491da486f0dfaf4af77
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3948/test-2/repo/org/apache/maven/its/mng3948/parent/0.2/parent-0.2.pom b/core-it-suite/src/test/resources/mng-3948/test-2/repo/org/apache/maven/its/mng3948/parent/0.2/parent-0.2.pom
index e70a632..9b98a6b 100644
--- a/core-it-suite/src/test/resources/mng-3948/test-2/repo/org/apache/maven/its/mng3948/parent/0.2/parent-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-3948/test-2/repo/org/apache/maven/its/mng3948/parent/0.2/parent-0.2.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3948</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.2</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <parentProperty>PASSED</parentProperty>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3948</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.2</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <parentProperty>PASSED</parentProperty>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3948/test-2/repo/org/apache/maven/its/mng3948/parent/0.2/parent-0.2.pom.sha1 b/core-it-suite/src/test/resources/mng-3948/test-2/repo/org/apache/maven/its/mng3948/parent/0.2/parent-0.2.pom.sha1
index 4bfaaf3..708d977 100644
--- a/core-it-suite/src/test/resources/mng-3948/test-2/repo/org/apache/maven/its/mng3948/parent/0.2/parent-0.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3948/test-2/repo/org/apache/maven/its/mng3948/parent/0.2/parent-0.2.pom.sha1
@@ -1 +1 @@
-e58d677b3919f1e5e524f689ad165ad90334d4af
\ No newline at end of file
+f006f47d37366d94fb08387ac944a6595b5198bc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom
index e82a011..6a9e06c 100644
--- a/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3970</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3970</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5
index 7a7a917..ef287d8 100644
--- a/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-4c425a3fdf1422f681ea85c09cc1dbfe
\ No newline at end of file
+99258b15fcde499d98095c379f6d4306
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1
index d10c2c4..c8a9b8e 100644
--- a/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3970/test-1/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-a472b5da03cfd8b50440d14659ccb20ba50c60a3
\ No newline at end of file
+b74ff1b0a3f26edd3766555322fb4e16d5b980cf
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom
index e82a011..6a9e06c 100644
--- a/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3970</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3970</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5
index 7a7a917..ef287d8 100644
--- a/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-4c425a3fdf1422f681ea85c09cc1dbfe
\ No newline at end of file
+99258b15fcde499d98095c379f6d4306
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1
index d10c2c4..c8a9b8e 100644
--- a/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3970/test-2/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-a472b5da03cfd8b50440d14659ccb20ba50c60a3
\ No newline at end of file
+b74ff1b0a3f26edd3766555322fb4e16d5b980cf
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom
index e82a011..6a9e06c 100644
--- a/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3970</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3970</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5
index 7a7a917..ef287d8 100644
--- a/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-4c425a3fdf1422f681ea85c09cc1dbfe
\ No newline at end of file
+99258b15fcde499d98095c379f6d4306
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1
index d10c2c4..c8a9b8e 100644
--- a/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3970/test-3/repo/org/apache/maven/its/mng3970/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-a472b5da03cfd8b50440d14659ccb20ba50c60a3
\ No newline at end of file
+b74ff1b0a3f26edd3766555322fb4e16d5b980cf
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom
index 7b6f733..96a1085 100644
--- a/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3974</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3974</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom.md5
index a80d425..4be8d46 100644
--- a/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-6687c53ed185b23d652fd45e22ecea7a
\ No newline at end of file
+60cb1da74d1f50b2cc08ee79a33e6be3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom.sha1
index 9d1a896..1146f6f 100644
--- a/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3974/repo-1/org/apache/maven/its/mng3974/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-56f50c07448a55f13a6e3f138f6ef1c7fdab76db
\ No newline at end of file
+541169be93bcfe57b5bc058a3eac1ea5600bdd33
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom
index 2dbe823..583a1b1 100644
--- a/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3974</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3974</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom.md5
index 8b3f715..800db3b 100644
--- a/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-0534effd371710589c52685f407ddab3
\ No newline at end of file
+7f19f14fc3b4b89f08ae0b454320cc2b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom.sha1
index 4b88ead..44bef32 100644
--- a/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3974/repo-2/org/apache/maven/its/mng3974/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-4495b8b196423e580e64eb6766392a36bad0cc74
\ No newline at end of file
+7c64070cb7027b5860fcf0dca1c751556a6ded08
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom b/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom
index 7b25b5f..a9a12a9 100644
--- a/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom
@@ -1,65 +1,65 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3983</groupId>
-  <artifactId>p</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>false</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3983</groupId>
+  <artifactId>p</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>false</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5
index b3dc31f..2a85cd3 100644
--- a/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5
@@ -1 +1 @@
-7699fddf1cdbb9ad322eadaf310930d2
\ No newline at end of file
+5284920d13f5a7d4e6e9447d0f49c8ef
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1
index 84695a0..43e2ec0 100644
--- a/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3983/test-1/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1
@@ -1 +1 @@
-bc3e6692a6eef5a051c136eb436a0a35e1f62fe1
\ No newline at end of file
+5c974fa4ba711b87f5524a169fece8500cc44fcf
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom b/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom
index 7b25b5f..a9a12a9 100644
--- a/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom
@@ -1,65 +1,65 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3983</groupId>
-  <artifactId>p</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>false</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3983</groupId>
+  <artifactId>p</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>false</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5
index b3dc31f..2a85cd3 100644
--- a/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5
@@ -1 +1 @@
-7699fddf1cdbb9ad322eadaf310930d2
\ No newline at end of file
+5284920d13f5a7d4e6e9447d0f49c8ef
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1
index 84695a0..43e2ec0 100644
--- a/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3983/test-2/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1
@@ -1 +1 @@
-bc3e6692a6eef5a051c136eb436a0a35e1f62fe1
\ No newline at end of file
+5c974fa4ba711b87f5524a169fece8500cc44fcf
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom b/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom
index 7b25b5f..a9a12a9 100644
--- a/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom
@@ -1,65 +1,65 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng3983</groupId>
-  <artifactId>p</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <uniqueVersion>false</uniqueVersion>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng3983</groupId>
+  <artifactId>p</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <uniqueVersion>false</uniqueVersion>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5
index b3dc31f..2a85cd3 100644
--- a/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.md5
@@ -1 +1 @@
-7699fddf1cdbb9ad322eadaf310930d2
\ No newline at end of file
+5284920d13f5a7d4e6e9447d0f49c8ef
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1
index 84695a0..43e2ec0 100644
--- a/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-3983/test-3/repo/org/apache/maven/its/mng3983/p/0.1/p-0.1.pom.sha1
@@ -1 +1 @@
-bc3e6692a6eef5a051c136eb436a0a35e1f62fe1
\ No newline at end of file
+5c974fa4ba711b87f5524a169fece8500cc44fcf
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4036/default/repo/org/apache/maven/its/mng4036/parent/0.2/parent-0.2.pom b/core-it-suite/src/test/resources/mng-4036/default/repo/org/apache/maven/its/mng4036/parent/0.2/parent-0.2.pom
index 44bd326..c5ccff9 100644
--- a/core-it-suite/src/test/resources/mng-4036/default/repo/org/apache/maven/its/mng4036/parent/0.2/parent-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-4036/default/repo/org/apache/maven/its/mng4036/parent/0.2/parent-0.2.pom
@@ -1,41 +1,41 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4036</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.2</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <layout>default</layout>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4036</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.2</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <layout>default</layout>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4036/default/repo/org/apache/maven/its/mng4036/parent/0.2/parent-0.2.pom.sha1 b/core-it-suite/src/test/resources/mng-4036/default/repo/org/apache/maven/its/mng4036/parent/0.2/parent-0.2.pom.sha1
index bf06a8a..8eae227 100644
--- a/core-it-suite/src/test/resources/mng-4036/default/repo/org/apache/maven/its/mng4036/parent/0.2/parent-0.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4036/default/repo/org/apache/maven/its/mng4036/parent/0.2/parent-0.2.pom.sha1
@@ -1 +1 @@
-9cfc596b910925265c86d27c1d4f41441bd22bd5
\ No newline at end of file
+af31e05015b202ae9576d7308f137839e69283b1
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom b/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom
index bc8e24c..a169101 100644
--- a/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom
@@ -1,41 +1,41 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4036</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-      <layout>legacy</layout>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4036</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+      <layout>legacy</layout>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom.md5
index 1afce64..0b1b25c 100644
--- a/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom.md5
@@ -1 +1 @@
-41e2c40ff46609d52b7e07a089a7d503
\ No newline at end of file
+7d21a018952b6bc8ee0d329f1483722e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom.sha1
index 5665c6f..070697a 100644
--- a/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4036/legacy/repo/org.apache.maven.its.mng4036/poms/parent-0.1.pom.sha1
@@ -1 +1 @@
-6cd8388aa295d93776763f4248ec7a36e6fcbb2d
\ No newline at end of file
+8e67c391f80694f5bc7a5187c18453b943993c79
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom
index 2a48a36..f38967a 100644
--- a/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4068</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4068</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom.md5
index 96f0074..fb537ea 100644
--- a/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-17b47211f0ddbb5717217acc2cfb9431
\ No newline at end of file
+75b2af462acc0026c3c5472c82cafdf9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom.sha1
index ba6632d..b20df4c 100644
--- a/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-be4864ba3a654295d461957984ad919fef75af73
\ No newline at end of file
+b1ed3615b7282b3e105387af40c1b7dc9c710e6d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/b/0.1-SNAPSHOT/b-0.1-20090305.203819-1.pom b/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/b/0.1-SNAPSHOT/b-0.1-20090305.203819-1.pom
index d00b273..3849ee9 100644
--- a/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/b/0.1-SNAPSHOT/b-0.1-20090305.203819-1.pom
+++ b/core-it-suite/src/test/resources/mng-4068/repo/org/apache/maven/its/mng4068/b/0.1-SNAPSHOT/b-0.1-20090305.203819-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4068</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4068</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom
index 6e4cac3..b120a64 100644
--- a/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom
@@ -1,43 +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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <!-- NOTE: The ugly formatting with the whitespace around the id values is essential part of this test! -->
-  <groupId>
-    org.apache.maven.its.mng4070
-  </groupId>
-  <artifactId>
-    a
-  </artifactId>
-  <version>
-    0.1
-  </version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <!-- NOTE: The ugly formatting with the whitespace around the id values is essential part of this test! -->
+  <groupId>
+    org.apache.maven.its.mng4070
+  </groupId>
+  <artifactId>
+    a
+  </artifactId>
+  <version>
+    0.1
+  </version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom.md5
index fb83696..97184ea 100644
--- a/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-02c91d0a2bdf0ecec2675f65b70fcc4c
\ No newline at end of file
+ee4dfeec7cbac9036867aed7a59fee4d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom.sha1
index 6d98c10..6cdf3a7 100644
--- a/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4070/sub/repo/org/apache/maven/its/mng4070/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-43410b80a5d3dd7fbc47ebb5828929db24bc68e2
\ No newline at end of file
+4182b95205974e22e0d12e9c607844171e85b234
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom
index ad69cf3..939a2dd 100644
--- a/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4072</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4072</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom.md5
index ad72d35..2eda52f 100644
--- a/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-6ff2e2c780e9a007ab3c11a54272bf8e
\ No newline at end of file
+1497c1ab7e8061f5c8fa1f8384c26af8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom.sha1
index e5e154c..65b7fd8 100644
--- a/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4072/repo/org/apache/maven/its/mng4072/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-7c3c7aff62eb4b6194e1916a4497d93227912a3b
\ No newline at end of file
+2dbf4909a451dd09f5502135bf27fb6e14e7ea93
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4086/repo/org/apache/maven/its/mng4086/maven-it-plugin-a/0.1/maven-it-plugin-a-0.1.pom b/core-it-suite/src/test/resources/mng-4086/repo/org/apache/maven/its/mng4086/maven-it-plugin-a/0.1/maven-it-plugin-a-0.1.pom
index 7b6d9f4..82b59c8 100644
--- a/core-it-suite/src/test/resources/mng-4086/repo/org/apache/maven/its/mng4086/maven-it-plugin-a/0.1/maven-it-plugin-a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4086/repo/org/apache/maven/its/mng4086/maven-it-plugin-a/0.1/maven-it-plugin-a-0.1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4086</groupId>
-  <artifactId>maven-it-plugin-a</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4086</groupId>
+  <artifactId>maven-it-plugin-a</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4086/repo/org/apache/maven/its/mng4086/maven-it-plugin-a/0.2-SNAPSHOT/maven-it-plugin-a-0.2-20090315.124508-1.pom b/core-it-suite/src/test/resources/mng-4086/repo/org/apache/maven/its/mng4086/maven-it-plugin-a/0.2-SNAPSHOT/maven-it-plugin-a-0.2-20090315.124508-1.pom
index d8813cc..45721de 100644
--- a/core-it-suite/src/test/resources/mng-4086/repo/org/apache/maven/its/mng4086/maven-it-plugin-a/0.2-SNAPSHOT/maven-it-plugin-a-0.2-20090315.124508-1.pom
+++ b/core-it-suite/src/test/resources/mng-4086/repo/org/apache/maven/its/mng4086/maven-it-plugin-a/0.2-SNAPSHOT/maven-it-plugin-a-0.2-20090315.124508-1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4086</groupId>
-  <artifactId>maven-it-plugin-a</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4086</groupId>
+  <artifactId>maven-it-plugin-a</artifactId>
+  <version>0.2-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom
index 946abff..d843561 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4150</groupId>
-  <artifactId>a</artifactId>
-  <version>1.0</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4150</groupId>
+  <artifactId>a</artifactId>
+  <version>1.0</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom.md5 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom.md5
index 6d6c9cb..b5d02c4 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom.md5
@@ -1 +1 @@
-d9c5a84d994963716b3d4b054483ddf8
\ No newline at end of file
+c5456b56261cdcf7abfc56720fadcec8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom.sha1 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom.sha1
index a65ad74..d8e6681 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.0/a-1.0.pom.sha1
@@ -1 +1 @@
-fe947451efb9ec3f9a8ff0b0f9b3c32ef39287be
\ No newline at end of file
+fd0666cee2208bb8738648e92ae375aa047d9dae
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom
index 3ca7309..b65a914 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4150</groupId>
-  <artifactId>a</artifactId>
-  <version>1.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4150</groupId>
+  <artifactId>a</artifactId>
+  <version>1.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom.md5 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom.md5
index 152d95c..f3f8ba8 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom.md5
@@ -1 +1 @@
-0b33c2bb7440bcf94bcef8cf39622aef
\ No newline at end of file
+622556a071cfac688ffa711a40a106c4
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom.sha1
index ac9580d..d66c73a 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/a/1.1/a-1.1.pom.sha1
@@ -1 +1 @@
-3ed0a98f1b068878d799b8883078b879792637fe
\ No newline at end of file
+c7e8c5914e10d2f29370a1c6767ff44e15267abe
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom
index 4b5d079..8bc9892 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4150</groupId>
-  <artifactId>b</artifactId>
-  <version>1.0</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4150</groupId>
+  <artifactId>b</artifactId>
+  <version>1.0</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom.md5 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom.md5
index d121128..425f22c 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom.md5
@@ -1 +1 @@
-351cd01f29498e61e6bee8bfdec413d2
\ No newline at end of file
+1d7923b9d35ab4c5bd8d9bf7d90d1423
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom.sha1 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom.sha1
index ce8f6b5..68b7c0b 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.0/b-1.0.pom.sha1
@@ -1 +1 @@
-bc254b993b37f815572ed484394cb4ce0a3ac99e
\ No newline at end of file
+2b152585b6a3dad96d4fa553574f1cb06100cfb8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom
index 6237b59..2f4f973 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4150</groupId>
-  <artifactId>b</artifactId>
-  <version>1.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4150</groupId>
+  <artifactId>b</artifactId>
+  <version>1.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom.md5 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom.md5
index acbc73a..48723bf 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom.md5
@@ -1 +1 @@
-7e6ca6c1fa8026bead7ac421e07c4f74
\ No newline at end of file
+bf25d0be23cfb2d236b554f72e265765
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom.sha1
index ab0b268..759a1b2 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/b/1.1/b-1.1.pom.sha1
@@ -1 +1 @@
-3be1004e6f8439c0edeea69a3092f06fad361031
\ No newline at end of file
+bde4784b2ff1cacaffd33f3e854b69383cda4201
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom
index b0c96da..a696c8f 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4150</groupId>
-  <artifactId>c</artifactId>
-  <version>3.7</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4150</groupId>
+  <artifactId>c</artifactId>
+  <version>3.7</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom.md5 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom.md5
index 7c1fddb..f22e5cb 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom.md5
@@ -1 +1 @@
-06a5e2c21d023e2619bd127f95e8da8e
\ No newline at end of file
+d6e1a1f5bb91bc71e7a6c92e242568e0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom.sha1 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom.sha1
index 20075c4..acc48d3 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.7/c-3.7.pom.sha1
@@ -1 +1 @@
-7950da7d2e0a73e602b02efbc3439fa8deed69fe
\ No newline at end of file
+d481e1cf0501c0cb25713c06f7c11308e1b4f127
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom
index 83a1353..70131fa 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4150</groupId>
-  <artifactId>c</artifactId>
-  <version>3.8.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4150</groupId>
+  <artifactId>c</artifactId>
+  <version>3.8.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom.md5 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom.md5
index ff7745a..6e4cf9c 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom.md5
@@ -1 +1 @@
-845222ce47576d51c3c6de7b05cd3d4a
\ No newline at end of file
+4f48bd4b1545a9c0154b8d62730dcf52
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom.sha1
index a5c64c2..ffd8fec 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8.1/c-3.8.1.pom.sha1
@@ -1 +1 @@
-cc0debce659aa0bdb628a39abed0a0a82b81c940
\ No newline at end of file
+bec680b30650fc98e78e5a9011e025540ca120bc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom
index b26cf32..9083d06 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4150</groupId>
-  <artifactId>c</artifactId>
-  <version>3.8</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4150</groupId>
+  <artifactId>c</artifactId>
+  <version>3.8</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom.md5 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom.md5
index ee389b5..0a24f6e 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom.md5
@@ -1 +1 @@
-43ccde374def6ebb66b55274ced0cd34
\ No newline at end of file
+51e0f7d8643d47bff2e39a6c1b555096
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom.sha1 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom.sha1
index 6ea3418..534f2f9 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/c/3.8/c-3.8.pom.sha1
@@ -1 +1 @@
-cf5a08ec52fb2b773baddf9991a89406bda4b36f
\ No newline at end of file
+f3c02788e09813972b232f8514c2bde11df7c179
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom
index 2c76211..b4b0e90 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4150</groupId>
-  <artifactId>d</artifactId>
-  <version>2.0</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4150</groupId>
+  <artifactId>d</artifactId>
+  <version>2.0</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom.md5 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom.md5
index bce3efa..f30b320 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom.md5
@@ -1 +1 @@
-6a415d30233a5e453c6978ab8aac745c
\ No newline at end of file
+9c3273466e35febac7b9b3760549c8cd
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom.sha1 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom.sha1
index 7ad2b5d..b1948ba 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.0/d-2.0.pom.sha1
@@ -1 +1 @@
-b4bf73a692fb024902015eb3ca49dcd1d1eab6f1
\ No newline at end of file
+8bd794dd6ee21fa6c9e3428cd422f67d29b36080
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom
index f9a182e..b81c2ce 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4150</groupId>
-  <artifactId>d</artifactId>
-  <version>2.1.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4150</groupId>
+  <artifactId>d</artifactId>
+  <version>2.1.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom.md5 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom.md5
index a2c52d3..fce7e5b 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom.md5
@@ -1 +1 @@
-2b4131f45bc7c3d9acee213cf3c8da95
\ No newline at end of file
+de266cd7df1a052813863b3b85bf9ec6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom.sha1
index 5bb40d6..248eee2 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1.1/d-2.1.1.pom.sha1
@@ -1 +1 @@
-bd042fc42a275fbca2a33c53a68e860d07ca8b2a
\ No newline at end of file
+d1b67aa5afd318f88f82b63ba552bae6cdd47b05
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom
index 9ec402b..016b279 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4150</groupId>
-  <artifactId>d</artifactId>
-  <version>2.1</version>
-  <packaging>jar</packaging>
-
-  <properties>
-    <updateReleaseInfo>true</updateReleaseInfo>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4150</groupId>
+  <artifactId>d</artifactId>
+  <version>2.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <updateReleaseInfo>true</updateReleaseInfo>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom.md5 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom.md5
index 79b70b2..108ac60 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom.md5
@@ -1 +1 @@
-5627e35b0bb16c0132ee132f4209866d
\ No newline at end of file
+b72768c7f1652423eb04b42e2326c23e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom.sha1
index 63b0b8a..ac55534 100644
--- a/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4150/repo/org/apache/maven/its/mng4150/d/2.1/d-2.1.pom.sha1
@@ -1 +1 @@
-9d49a57362979975385c39c098003bd088ae0ca5
\ No newline at end of file
+e5f40f7a5800004b9e72c72b9fb3000f5d0a4c0c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom b/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom
index 17b6346..1a9ccb4 100644
--- a/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom
+++ b/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>commons-cli</groupId>
-  <artifactId>commons-cli</artifactId>
-  <version>0.1.4166</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4166 :: Plexus Utils Stub</name>
-  <description>
-    A stub version of commons-cli, must have the same groupId:artifactId as the real thing.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>commons-cli</groupId>
+  <artifactId>commons-cli</artifactId>
+  <version>0.1.4166</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4166 :: Plexus Utils Stub</name>
+  <description>
+    A stub version of commons-cli, must have the same groupId:artifactId as the real thing.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom.md5 b/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom.md5
index 4d29551..cdd8704 100644
--- a/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom.md5
@@ -1 +1 @@
-b52783b085ac637a8a931f5894cef416
\ No newline at end of file
+1301bb5202c0ab876fa964bb0dbd4859
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom.sha1 b/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom.sha1
index 0885c30..624db61 100644
--- a/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4166/repo/commons-cli/commons-cli/0.1.4166/commons-cli-0.1.4166.pom.sha1
@@ -1 +1 @@
-12f74855afe3e8fc73c891c3f5c51d6fb2f2b4f8
\ No newline at end of file
+cb493510352277142669b93c127f2a24059f3f66
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom
index 4a9430f..242afe9 100644
--- a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4180</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4180</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom.md5
index 7c31425..40cb74c 100644
--- a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-d4d4d0d7ec439cef2eb3b17a97c26872
\ No newline at end of file
+eb33ce1f99a9a37b7cc3026b7f6a7e6b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom.sha1
index f6f3818..994c62a 100644
--- a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-1cdaca5962fe243072c353b4616e411f6d7bb7ae
\ No newline at end of file
+58f4cc9613e423689dd2b539862c47852c86c9ef
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom
index d903e98..c31fa5b 100644
--- a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4180</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4180</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom.md5
index 024a6b5..1f7f905 100644
--- a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-bcf92113e930564c911b7fdb66720e99
\ No newline at end of file
+27346fad27be6af70fd5b5cb928d0af2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom.sha1
index 6ae12d0..542806a 100644
--- a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-75e184864906c007394a8bbbd70caed70b35f1f9
\ No newline at end of file
+2d64ddf367a7d3dfb1cad949abe0165deaf14d24
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom
index 44401a1..28cbe1f 100644
--- a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4180</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4180</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4180</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4180</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom.md5
index cfa6d0e..74cbd49 100644
--- a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-f8fa29bf30656283db2f863bf950dc2d
\ No newline at end of file
+1ce1a5b877845f97b34ce6881a597207
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom.sha1
index d57a499..f6eb114 100644
--- a/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4180/repo/org/apache/maven/its/mng4180/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-69a3cf17573162ed6443217571b76d2bc0884b04
\ No newline at end of file
+79f0f6b9895c1f49b63c5181ec80a7a85ec9fbad
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom
index d7254f0..dd87eee 100644
--- a/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4190</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4190</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom.md5
index b24a016..b61727b 100644
--- a/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-70e36374c202f0c93e5ce127c4f9767f
\ No newline at end of file
+ffb7823cdf9bae07a566737db2d89cfa
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom.sha1
index 9dfdb9e..45ce590 100644
--- a/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-cc2bfb99cb0a90b404b90f45c641daec91185a57
\ No newline at end of file
+ef37b7bc3a3944147bfece782df53270b46411a7
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/b/0.1-SNAPSHOT/b-0.1-20090611.185723-1.pom b/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/b/0.1-SNAPSHOT/b-0.1-20090611.185723-1.pom
index e033c45..b3ec2c2 100644
--- a/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/b/0.1-SNAPSHOT/b-0.1-20090611.185723-1.pom
+++ b/core-it-suite/src/test/resources/mng-4190/repo/org/apache/maven/its/mng4190/b/0.1-SNAPSHOT/b-0.1-20090611.185723-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4190</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4190</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom
index c9b0f71..4e07f26 100644
--- a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4199</groupId>
-  <artifactId>compile</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4199</groupId>
+  <artifactId>compile</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom.md5
index 7c6cf1a..d99f835 100644
--- a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom.md5
@@ -1 +1 @@
-ca91690df3d6163f6b002030a88d4450
\ No newline at end of file
+03b8f991904ec661057381a5283df79b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom.sha1
index 01e606f..4bbc18c 100644
--- a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/compile/0.1/compile-0.1.pom.sha1
@@ -1 +1 @@
-572f8f76eca8a3decae5f3b2f874ada56ae29ab1
\ No newline at end of file
+42ba864fbd24e56a54003b9d89a06a751b9122c6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom
index 1be17ef..6f8c9f1 100644
--- a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4199</groupId>
-  <artifactId>provided</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4199</groupId>
+  <artifactId>provided</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom.md5
index 7d93b0c..661f809 100644
--- a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom.md5
@@ -1 +1 @@
-a7a7deac4311cdcc817aa37dd7dffa9e
\ No newline at end of file
+743e41435a53c1825f41e93fb9f29480
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom.sha1
index a9dbf56..0ca8b27 100644
--- a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/provided/0.1/provided-0.1.pom.sha1
@@ -1 +1 @@
-0be67e9e7a7c0bfeae22382a19253b438f8b5130
\ No newline at end of file
+22c6e5f1289aeb8bf47e1ac1f817edfb47f11f8e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom
index e854bd7..f352bea 100644
--- a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4199</groupId>
-  <artifactId>runtime</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4199</groupId>
+  <artifactId>runtime</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom.md5
index d31dbbe..18c8561 100644
--- a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom.md5
@@ -1 +1 @@
-79bc3fb9fdf9ff2f24c98206917a2245
\ No newline at end of file
+d52b98c543bef041041a9ad9d50df184
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom.sha1
index 7de9066..d6d6380 100644
--- a/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4199/repo/org/apache/maven/its/mng4199/runtime/0.1/runtime-0.1.pom.sha1
@@ -1 +1 @@
-b227a79ce30be30576648980934d6302acea26a4
\ No newline at end of file
+f303fb919df27657bbbd7b44b6240cb4f5ad81dc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom
index 7f1da47..b0f7d16 100644
--- a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4203</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4203</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom.md5
index 0474c09..a794c47 100644
--- a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-b423801dce8f55037acd1e05f033dd5c
\ No newline at end of file
+1ca233317b23726ad77af9b99d255abb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom.sha1
index 379c89d..7d35460 100644
--- a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-508091b9b74c87e6150f1a9bb05c18793bcc0ab2
\ No newline at end of file
+b24252e469a955ba5c7d5ab1f50c3d292b5e5b6d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom
index 404a37f..582c45a 100644
--- a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4203</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4203</groupId>
-      <artifactId>a</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4203</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4203</groupId>
+      <artifactId>a</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom.md5
index 9fbbea9..e1cf99f 100644
--- a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-dc3c2a272f135c35639f4e925e54aa65
\ No newline at end of file
+f9676d9ea0ab23209b79b724865b01a4
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom.sha1
index 21aec81..9437a0d 100644
--- a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-1a3d29ada184d568dec5878ae0089eea117b1388
\ No newline at end of file
+c6ea67c0caf5ef4eebebdb0411002ed65f5f5a71
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom
index df614b7..f939c29 100644
--- a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4203</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4203</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4203</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4203</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom.md5
index c8bd111..3963b38 100644
--- a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-497374bedfa54fd88bbe75ea1588fe2d
\ No newline at end of file
+0811e119230c86fa65598e7780e63a96
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom.sha1
index 50b08d9..5dfdd58 100644
--- a/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4203/repo/org/apache/maven/its/mng4203/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-cb2572e129c4c35076706cbf6409ed5ffb0ac680
\ No newline at end of file
+1c440683af79a9bae7c1db5d2fc5504c0884b36b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom b/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom
index 4fa0eef..ea8bc71 100644
--- a/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4214</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4214</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom.md5
index 0fe12eb..47b338b 100644
--- a/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom.md5
@@ -1 +1 @@
-291044ecec88a232d9ed72b684b0a183
\ No newline at end of file
+672a43fb2b54364585f15e82da8445d6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom.sha1
index e5690af..024435f 100644
--- a/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4214/repo/org/apache/maven/its/mng4214/parent/0.1/parent-0.1.pom.sha1
@@ -1 +1 @@
-8a5b4a552cffab957677bd65e36b20c7347a4291
\ No newline at end of file
+2ed85440d06370c1fad0dd72a5c7246c9fea2487
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4231/repo-1/org/apache/maven/its/mng4231/a/0.1-SNAPSHOT/a-0.1-20090708.185037-1.pom b/core-it-suite/src/test/resources/mng-4231/repo-1/org/apache/maven/its/mng4231/a/0.1-SNAPSHOT/a-0.1-20090708.185037-1.pom
index fdc0a9d..a5525eb 100644
--- a/core-it-suite/src/test/resources/mng-4231/repo-1/org/apache/maven/its/mng4231/a/0.1-SNAPSHOT/a-0.1-20090708.185037-1.pom
+++ b/core-it-suite/src/test/resources/mng-4231/repo-1/org/apache/maven/its/mng4231/a/0.1-SNAPSHOT/a-0.1-20090708.185037-1.pom
@@ -1,31 +1,31 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4231</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4231</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4231/repo-2/org/apache/maven/its/mng4231/a/0.1-SNAPSHOT/a-0.1-20090708.185113-2.pom b/core-it-suite/src/test/resources/mng-4231/repo-2/org/apache/maven/its/mng4231/a/0.1-SNAPSHOT/a-0.1-20090708.185113-2.pom
index 86b177c..c8f5efd 100644
--- a/core-it-suite/src/test/resources/mng-4231/repo-2/org/apache/maven/its/mng4231/a/0.1-SNAPSHOT/a-0.1-20090708.185113-2.pom
+++ b/core-it-suite/src/test/resources/mng-4231/repo-2/org/apache/maven/its/mng4231/a/0.1-SNAPSHOT/a-0.1-20090708.185113-2.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4231</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4231</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1-SNAPSHOT</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4231</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4231</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4231/repo-2/org/apache/maven/its/mng4231/b/0.1-SNAPSHOT/b-0.1-20091110.190117-1.pom b/core-it-suite/src/test/resources/mng-4231/repo-2/org/apache/maven/its/mng4231/b/0.1-SNAPSHOT/b-0.1-20091110.190117-1.pom
index 13b2341..560ccdf 100644
--- a/core-it-suite/src/test/resources/mng-4231/repo-2/org/apache/maven/its/mng4231/b/0.1-SNAPSHOT/b-0.1-20091110.190117-1.pom
+++ b/core-it-suite/src/test/resources/mng-4231/repo-2/org/apache/maven/its/mng4231/b/0.1-SNAPSHOT/b-0.1-20091110.190117-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4231</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4231</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4269/repo/org/apache/maven/its/mng4269/maven-mng4269-plugin/0.1/maven-mng4269-plugin-0.1.pom b/core-it-suite/src/test/resources/mng-4269/repo/org/apache/maven/its/mng4269/maven-mng4269-plugin/0.1/maven-mng4269-plugin-0.1.pom
index d7f00ce..9ec3d61 100644
--- a/core-it-suite/src/test/resources/mng-4269/repo/org/apache/maven/its/mng4269/maven-mng4269-plugin/0.1/maven-mng4269-plugin-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4269/repo/org/apache/maven/its/mng4269/maven-mng4269-plugin/0.1/maven-mng4269-plugin-0.1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4269</groupId>
-  <artifactId>maven-mng4269-plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4269</groupId>
+  <artifactId>maven-mng4269-plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4274/repo/org/apache/maven/maven-core/2.0.4274/maven-core-2.0.4274.pom b/core-it-suite/src/test/resources/mng-4274/repo/org/apache/maven/maven-core/2.0.4274/maven-core-2.0.4274.pom
index 8cc9c73..c1b85a0 100644
--- a/core-it-suite/src/test/resources/mng-4274/repo/org/apache/maven/maven-core/2.0.4274/maven-core-2.0.4274.pom
+++ b/core-it-suite/src/test/resources/mng-4274/repo/org/apache/maven/maven-core/2.0.4274/maven-core-2.0.4274.pom
@@ -1,51 +1,51 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven</groupId>
-  <artifactId>maven-core</artifactId>
-  <version>2.0.4274</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4274 :: Maven Core Stub</name>
-  <description>
-    A stub version of some Maven core artifact, i.e. an artifact to be excluded from a plugin realm, that itself
-    depends on the stub version of plexus-utils. This mimics the dependency of maven-project:2.0 on
-    plexus-utils:1.0.4 for instance.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
-      <version>1.1.4274</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-core</artifactId>
+  <version>2.0.4274</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4274 :: Maven Core Stub</name>
+  <description>
+    A stub version of some Maven core artifact, i.e. an artifact to be excluded from a plugin realm, that itself
+    depends on the stub version of plexus-utils. This mimics the dependency of maven-project:2.0 on
+    plexus-utils:1.0.4 for instance.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>1.1.4274</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4274/repo/org/apache/maven/maven-core/2.0.4274/maven-core-2.0.4274.pom.sha1 b/core-it-suite/src/test/resources/mng-4274/repo/org/apache/maven/maven-core/2.0.4274/maven-core-2.0.4274.pom.sha1
index af9f01a..965ae67 100644
--- a/core-it-suite/src/test/resources/mng-4274/repo/org/apache/maven/maven-core/2.0.4274/maven-core-2.0.4274.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4274/repo/org/apache/maven/maven-core/2.0.4274/maven-core-2.0.4274.pom.sha1
@@ -1 +1 @@
-80a70f0f38955a7acb20506a132cc1186d749f6e
\ No newline at end of file
+7ed744d7d6a7fe4c76674fefc98713a895de2ecb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4274/repo/org/codehaus/plexus/plexus-utils/1.1.4274/plexus-utils-1.1.4274.pom b/core-it-suite/src/test/resources/mng-4274/repo/org/codehaus/plexus/plexus-utils/1.1.4274/plexus-utils-1.1.4274.pom
index f05fd85..4a09bbd 100644
--- a/core-it-suite/src/test/resources/mng-4274/repo/org/codehaus/plexus/plexus-utils/1.1.4274/plexus-utils-1.1.4274.pom
+++ b/core-it-suite/src/test/resources/mng-4274/repo/org/codehaus/plexus/plexus-utils/1.1.4274/plexus-utils-1.1.4274.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.codehaus.plexus</groupId>
-  <artifactId>plexus-utils</artifactId>
-  <version>1.1.4274</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4274 :: Plexus Utils Stub</name>
-  <description>
-    A stub version of plexus-utils, must have the same groupId:artifactId as the real thing.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-utils</artifactId>
+  <version>1.1.4274</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4274 :: Plexus Utils Stub</name>
+  <description>
+    A stub version of plexus-utils, must have the same groupId:artifactId as the real thing.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom
index 02d36b4..4eb2722 100644
--- a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom
+++ b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4275</groupId>
-  <artifactId>relocated</artifactId>
-  <version>1</version>
-  
-  <name>relocated</name>
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4275</groupId>
+  <artifactId>relocated</artifactId>
+  <version>1</version>
+  
+  <name>relocated</name>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom.md5 b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom.md5
index 7279a97..0cc614c 100644
--- a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom.md5
@@ -1 +1 @@
-ad323ae0d6aa1f9d8f117b2d78bb8aa0
\ No newline at end of file
+8e7b985b0eb31c1becd1a1c695f05afa
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom.sha1 b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom.sha1
index b0721c9..89baeba 100644
--- a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocated/1/relocated-1.pom.sha1
@@ -1 +1 @@
-4b03a7c55873021e5519e2764037e88c6b6716b8
\ No newline at end of file
+ad86ceb5eea5982a6b711fc61dd52f96bd3324bd
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom
index 83ce4d6..ac8e77b 100644
--- a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom
+++ b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4275</groupId>
-  <artifactId>relocation</artifactId>
-  <version>1</version>
-
-  <distributionManagement>
-    <relocation>
-      <groupId>org.apache.maven.its.mng4275</groupId>
-      <artifactId>relocated</artifactId>
-      <version>1</version>
-      <message>Relocation Test!</message>
-    </relocation>
-  </distributionManagement>
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4275</groupId>
+  <artifactId>relocation</artifactId>
+  <version>1</version>
+
+  <distributionManagement>
+    <relocation>
+      <groupId>org.apache.maven.its.mng4275</groupId>
+      <artifactId>relocated</artifactId>
+      <version>1</version>
+      <message>Relocation Test!</message>
+    </relocation>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom.md5 b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom.md5
index d7ee9ab..145ab33 100644
--- a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom.md5
@@ -1 +1 @@
-79239370025cdcb5a43f02526a95269a
\ No newline at end of file
+4571f4cf84c82ab6e4fd865d6fa362b7
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom.sha1 b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom.sha1
index ae77a89..f783fa3 100644
--- a/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4275/repo/org/apache/maven/its/mng4275/relocation/1/relocation-1.pom.sha1
@@ -1 +1 @@
-4773499fc3e26c93ef1c7335ce644a6aa60b7901
\ No newline at end of file
+0a17242398555c276fa0e2d9e11b5d088fb11322
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom
index 8a8eecb..8399da3 100644
--- a/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom
@@ -1,49 +1,49 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4276</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4276 :: Plugin Dependency</name>
-  <description>
-    An ordinary dependency that depends on our stub version of plexus-utils.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
-      <version>1.1.4276</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4276</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4276 :: Plugin Dependency</name>
+  <description>
+    An ordinary dependency that depends on our stub version of plexus-utils.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>1.1.4276</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom.md5
index e8b63b1..438327a 100644
--- a/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-10bc6ab8a1e63d6b29199357dcc3a5cc
\ No newline at end of file
+60c47c2d24ee1459fa27659e55132113
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom.sha1
index 54b960e..1e938f4 100644
--- a/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4276/repo/org/apache/maven/its/mng4276/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-aa74a4120dbb8fdcd7cd570a2438156dcfb0979d
\ No newline at end of file
+80b04df2b2bc0be09cbe47d7f4ec21ac2a8b1951
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4276/repo/org/codehaus/plexus/plexus-utils/1.1.4276/plexus-utils-1.1.4276.pom b/core-it-suite/src/test/resources/mng-4276/repo/org/codehaus/plexus/plexus-utils/1.1.4276/plexus-utils-1.1.4276.pom
index 5122485..2d91f02 100644
--- a/core-it-suite/src/test/resources/mng-4276/repo/org/codehaus/plexus/plexus-utils/1.1.4276/plexus-utils-1.1.4276.pom
+++ b/core-it-suite/src/test/resources/mng-4276/repo/org/codehaus/plexus/plexus-utils/1.1.4276/plexus-utils-1.1.4276.pom
@@ -1,56 +1,56 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.codehaus.plexus</groupId>
-  <artifactId>plexus-utils</artifactId>
-  <version>1.1.4276</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4276 :: Plexus Utils Stub</name>
-  <description>
-    A stub version of plexus-utils, must have the same groupId:artifactId as the real thing.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-utils</artifactId>
+  <version>1.1.4276</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4276 :: Plexus Utils Stub</name>
+  <description>
+    A stub version of plexus-utils, must have the same groupId:artifactId as the real thing.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4281/project/repo/org/apache/maven/its/mng4281/dependency/0.1-SNAPSHOT/dependency-0.1-20090804.183632-1.pom b/core-it-suite/src/test/resources/mng-4281/project/repo/org/apache/maven/its/mng4281/dependency/0.1-SNAPSHOT/dependency-0.1-20090804.183632-1.pom
index 0dbecf9..abe7dda 100644
--- a/core-it-suite/src/test/resources/mng-4281/project/repo/org/apache/maven/its/mng4281/dependency/0.1-SNAPSHOT/dependency-0.1-20090804.183632-1.pom
+++ b/core-it-suite/src/test/resources/mng-4281/project/repo/org/apache/maven/its/mng4281/dependency/0.1-SNAPSHOT/dependency-0.1-20090804.183632-1.pom
@@ -1,65 +1,65 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-  
-  <groupId>org.apache.maven.its.mng4281</groupId>
-  <artifactId>dependency</artifactId>
-  <!-- NOTE: It's essential part to use a snapshot version -->
-  <version>0.1-SNAPSHOT</version>
-
-  <name>Maven Integration Test :: MNG-4281 :: Dependency</name> 
-  <description>
-    Test that remote snapshots are not preferred over locally built snapshots.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.its.plugins</groupId>
-        <artifactId>maven-it-plugin-artifact</artifactId>
-        <version>2.1-SNAPSHOT</version>
-        <executions>
-          <execution>
-            <id>install</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>set</goal>
-              <goal>attach-pom</goal>
-              <goal>install</goal>
-            </goals>
-            <configuration>
-              <mainFile>main.jar</mainFile>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+  
+  <groupId>org.apache.maven.its.mng4281</groupId>
+  <artifactId>dependency</artifactId>
+  <!-- NOTE: It's essential part to use a snapshot version -->
+  <version>0.1-SNAPSHOT</version>
+
+  <name>Maven Integration Test :: MNG-4281 :: Dependency</name> 
+  <description>
+    Test that remote snapshots are not preferred over locally built snapshots.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.its.plugins</groupId>
+        <artifactId>maven-it-plugin-artifact</artifactId>
+        <version>2.1-SNAPSHOT</version>
+        <executions>
+          <execution>
+            <id>install</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>set</goal>
+              <goal>attach-pom</goal>
+              <goal>install</goal>
+            </goals>
+            <configuration>
+              <mainFile>main.jar</mainFile>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom
index 019b001..1dd79b9 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4293</groupId>
-  <artifactId>compile</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4293</name>
-  <description>
-    Test support of "@requiresDependencyResolution compile+runtime".
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4293</groupId>
+  <artifactId>compile</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4293</name>
+  <description>
+    Test support of "@requiresDependencyResolution compile+runtime".
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom.md5
index bc8ad1c..2256b85 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom.md5
@@ -1 +1 @@
-2b91606dfd2e770a7eb154ae648b981f
\ No newline at end of file
+9c372f02cd9c282e194bce23438a8b7c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom.sha1
index f4f81f5..584ca1a 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/compile/0.1/compile-0.1.pom.sha1
@@ -1 +1 @@
-326cd02652b1f698bf8caa0063ee786bfcb2a09e
\ No newline at end of file
+334bbf4aa6178454b9189da8a9dcd6fc62664560
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom
index 3a524e0..0ffb070 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4293</groupId>
-  <artifactId>provided</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4293</name>
-  <description>
-    Test support of "@requiresDependencyResolution compile+runtime".
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4293</groupId>
+  <artifactId>provided</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4293</name>
+  <description>
+    Test support of "@requiresDependencyResolution compile+runtime".
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom.md5
index 3179abb..61c3e10 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom.md5
@@ -1 +1 @@
-39845dc6ddbafa180e2754916e13b9f7
\ No newline at end of file
+7ff87a7ff7280570330fcf997dc26ba3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom.sha1
index 2e4c8a2..717b53f 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/provided/0.1/provided-0.1.pom.sha1
@@ -1 +1 @@
-7c3033f38a3a288edb07eaf2af2397b56a236f1e
\ No newline at end of file
+5c913d7a35dd59802ff505182bb51570f8c33ef3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom
index 00733cf..0274e43 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4293</groupId>
-  <artifactId>runtime</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4293</name>
-  <description>
-    Test support of "@requiresDependencyResolution compile+runtime".
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4293</groupId>
+  <artifactId>runtime</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4293</name>
+  <description>
+    Test support of "@requiresDependencyResolution compile+runtime".
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom.md5
index 2987b5d..376dc15 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom.md5
@@ -1 +1 @@
-86733dd8a841f15e1765b1917b9dacc6
\ No newline at end of file
+314daed0ffb5d87403b84d17a5d92bb5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom.sha1
index 151ee1c..a7a20a9 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/runtime/0.1/runtime-0.1.pom.sha1
@@ -1 +1 @@
-f46fb02c604ff2b8d1f68bfa688447c8fa5b39d1
\ No newline at end of file
+45a0513fd8116e98feb49c1996cc100245b8c739
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom
index c5d160f..150aee5 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4293</groupId>
-  <artifactId>test</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4293</name>
-  <description>
-    Test support of "@requiresDependencyResolution compile+runtime".
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4293</groupId>
+  <artifactId>test</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4293</name>
+  <description>
+    Test support of "@requiresDependencyResolution compile+runtime".
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom.md5
index d3f19cf..fb338dd 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom.md5
@@ -1 +1 @@
-cccc2a44bda65a66e3cc6906a0b2f5bf
\ No newline at end of file
+52ad99163ab55c6442adda4816739b3e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom.sha1
index 5ae96ea..98246d1 100644
--- a/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4293/repo/org/apache/maven/its/mng4293/test/0.1/test-0.1.pom.sha1
@@ -1 +1 @@
-e493953a1001a0360a937f67e185113966a6471a
\ No newline at end of file
+d1959c80dc5c62893aa5436576aa6195f680fc9f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4317/repo-2/org/apache/maven/its/mng4317/maven-mng4317-plugin/0.2/maven-mng4317-plugin-0.2.pom b/core-it-suite/src/test/resources/mng-4317/repo-2/org/apache/maven/its/mng4317/maven-mng4317-plugin/0.2/maven-mng4317-plugin-0.2.pom
index dd5b5fe..2459d7c 100644
--- a/core-it-suite/src/test/resources/mng-4317/repo-2/org/apache/maven/its/mng4317/maven-mng4317-plugin/0.2/maven-mng4317-plugin-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-4317/repo-2/org/apache/maven/its/mng4317/maven-mng4317-plugin/0.2/maven-mng4317-plugin-0.2.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4317</groupId>
-  <artifactId>maven-mng4317-plugin</artifactId>
-  <version>0.2</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4317</groupId>
+  <artifactId>maven-mng4317-plugin</artifactId>
+  <version>0.2</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom
index 6c090f7..ff6495b 100644
--- a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4320</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4320</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4320</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4320</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom.md5
index c9de882..0be4333 100644
--- a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-e2501239feed65d48efdc09a0e8c6696
\ No newline at end of file
+bd86114b50c0c255125aa24140615647
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom.sha1
index 38326ff..d2ef8d6 100644
--- a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-6319c51b663a6507e928c17d956da882aac41a8e
\ No newline at end of file
+f0ec7ee0fdf80c2f7a5a0382684347e4db342cd0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom
index 4988552..3c904a2 100644
--- a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4320</groupId>
-  <artifactId>b</artifactId>
-  <version>0.2</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4320</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4320</groupId>
+  <artifactId>b</artifactId>
+  <version>0.2</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4320</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom.md5 b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom.md5
index 6ef2f07..ab2f917 100644
--- a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom.md5
@@ -1 +1 @@
-b4ba7eac306bb4c8730fece9b3d47a68
\ No newline at end of file
+38a96b50948689c909c9f0766c5b1a20
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom.sha1 b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom.sha1
index 2b456b5..c4298c4 100644
--- a/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4320/repo/org/apache/maven/its/mng4320/b/0.2/b-0.2.pom.sha1
@@ -1 +1 @@
-a7b14717ab63487bf01837cf7ce5efafc8491718
\ No newline at end of file
+63cdedaaf8be36d0256aba4caada790229dc9b74
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom
index bb02ce2..04589c6 100644
--- a/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom
@@ -1,39 +1,39 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4335</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4335 :: Dependency</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4335</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4335 :: Dependency</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom.md5
index bff61b2..0b84016 100644
--- a/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-35cdeacbb1ee6aa1f5d19f577213115b
\ No newline at end of file
+c32a5cead036ec683e052afd270f1874
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom.sha1
index a22ca80..8e45779 100644
--- a/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4335/repo/org/apache/maven/its/mng4335/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-0dc5a1301111d4eef204c069bb21122682b5c47e
\ No newline at end of file
+5f7edb7817b1f0072d3d9e211b7a3641a154952f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom
index 43bc265..2449137 100644
--- a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4349</groupId>
-  <artifactId>new</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4349 :: New Artifact Id</name>
-
-  <!--
-  NOTE: That this POM is invalid is the essential part of this test. Nevertheless, Maven should use
-  the JAR corresponding to this POM and not from the original/relocated artifact for dependency resolution.
-  -->
-
-  <!-- bad entity -->
-  &
-
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4349</groupId>
+  <artifactId>new</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4349 :: New Artifact Id</name>
+
+  <!--
+  NOTE: That this POM is invalid is the essential part of this test. Nevertheless, Maven should use
+  the JAR corresponding to this POM and not from the original/relocated artifact for dependency resolution.
+  -->
+
+  <!-- bad entity -->
+  &
+
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom.md5
index d2acce6..64e0ef2 100644
--- a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom.md5
@@ -1 +1 @@
-4e27fee16d54a4af36035d157eb85a1c
\ No newline at end of file
+347ad46e3c3a77e346a8b5b16292408e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom.sha1
index 037b817..94153e6 100644
--- a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/new/0.1/new-0.1.pom.sha1
@@ -1 +1 @@
-3f8c59365c9e859c8ff70136d0921d5d29f6b1a9
\ No newline at end of file
+62b9ad682fb4bca4de1dd3d59564b909d5c622be
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom
index 3651957..7f1db5d 100644
--- a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4349</groupId>
-  <artifactId>old</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4349 :: Old Artifact Id</name>
-  <description>
-    
-  </description>
-
-  <!-- NOTE: Despite the relocation, this artifact has a JAR which Maven should however never touch -->
-
-  <distributionManagement>
-    <relocation>
-      <groupId>org.apache.maven.its.mng4349</groupId>
-      <artifactId>new</artifactId>
-    </relocation>
-  </distributionManagement>
-
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4349</groupId>
+  <artifactId>old</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4349 :: Old Artifact Id</name>
+  <description>
+    
+  </description>
+
+  <!-- NOTE: Despite the relocation, this artifact has a JAR which Maven should however never touch -->
+
+  <distributionManagement>
+    <relocation>
+      <groupId>org.apache.maven.its.mng4349</groupId>
+      <artifactId>new</artifactId>
+    </relocation>
+  </distributionManagement>
+
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom.md5
index 9693619..462901c 100644
--- a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom.md5
@@ -1 +1 @@
-f6c6ffac111f86008bfdd7da4fe18e27
\ No newline at end of file
+24a08e5532bb9cba364e0a0b9e6f6cb0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom.sha1
index a24138b..0fbaaf9 100644
--- a/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4349/repo/org/apache/maven/its/mng4349/old/0.1/old-0.1.pom.sha1
@@ -1 +1 @@
-9a6a6b30580d2bc5fcd27339c7a21250942a3f6a
\ No newline at end of file
+3f42c401a3432afbad48eabe81e2c27203c2945e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4353/repo-1/org/apache/maven/its/mng4353/maven-mng4353-plugin/0.1/template.pom b/core-it-suite/src/test/resources/mng-4353/repo-1/org/apache/maven/its/mng4353/maven-mng4353-plugin/0.1/template.pom
index 6bf2f16..71e048e 100644
--- a/core-it-suite/src/test/resources/mng-4353/repo-1/org/apache/maven/its/mng4353/maven-mng4353-plugin/0.1/template.pom
+++ b/core-it-suite/src/test/resources/mng-4353/repo-1/org/apache/maven/its/mng4353/maven-mng4353-plugin/0.1/template.pom
@@ -1,89 +1,89 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4353</groupId>
-  <artifactId>maven-mng4353-plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test :: MNG-4353 :: Plugin</name>
-  <description>
-    Verify that repos given in a plugin's POM are considered while resolving the plugin dependencies.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <repositories>
-    <repository>
-      <!-- this repo needs to be considered when resolving the plugin dependencies for some build -->
-      <id>maven-core-it-dependency</id>
-      <url>@baseurl@/repo-2</url>
-      <releases>
-        <checksumPolicy>ignore</checksumPolicy>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-    <dependency>
-      <!-- That's the dependency that needs to be resolved from the repo given in this POM -->
-      <groupId>org.apache.maven.its.mng4353</groupId>
-      <artifactId>dependency</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4353</groupId>
+  <artifactId>maven-mng4353-plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test :: MNG-4353 :: Plugin</name>
+  <description>
+    Verify that repos given in a plugin's POM are considered while resolving the plugin dependencies.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <repositories>
+    <repository>
+      <!-- this repo needs to be considered when resolving the plugin dependencies for some build -->
+      <id>maven-core-it-dependency</id>
+      <url>@baseurl@/repo-2</url>
+      <releases>
+        <checksumPolicy>ignore</checksumPolicy>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <!-- That's the dependency that needs to be resolved from the repo given in this POM -->
+      <groupId>org.apache.maven.its.mng4353</groupId>
+      <artifactId>dependency</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4353/repo-2/org/apache/maven/its/mng4353/dependency/0.1/dependency-0.1.pom b/core-it-suite/src/test/resources/mng-4353/repo-2/org/apache/maven/its/mng4353/dependency/0.1/dependency-0.1.pom
index a2b7920..8d2aaba 100644
--- a/core-it-suite/src/test/resources/mng-4353/repo-2/org/apache/maven/its/mng4353/dependency/0.1/dependency-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4353/repo-2/org/apache/maven/its/mng4353/dependency/0.1/dependency-0.1.pom
@@ -1,41 +1,41 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4353</groupId>
-  <artifactId>dependency</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4353 :: Plugin Dependency</name>
-  <description>
-    Verify that repos given in a plugin's POM are considered while resolving the plugin dependencies.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4353</groupId>
+  <artifactId>dependency</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4353 :: Plugin Dependency</name>
+  <description>
+    Verify that repos given in a plugin's POM are considered while resolving the plugin dependencies.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4353/repo-2/org/apache/maven/its/mng4353/dependency/0.1/dependency-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4353/repo-2/org/apache/maven/its/mng4353/dependency/0.1/dependency-0.1.pom.sha1
index a302da8..7cd5950 100644
--- a/core-it-suite/src/test/resources/mng-4353/repo-2/org/apache/maven/its/mng4353/dependency/0.1/dependency-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4353/repo-2/org/apache/maven/its/mng4353/dependency/0.1/dependency-0.1.pom.sha1
@@ -1 +1 @@
-80cae7f1b29a33284120106ec0fbfd05f403ef46
\ No newline at end of file
+64552a4e59e17798e619acc4ac7a0f7d055074ea
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4355/repo/org/apache/maven/its/mng4355/extension/0.1/extension-0.1.pom b/core-it-suite/src/test/resources/mng-4355/repo/org/apache/maven/its/mng4355/extension/0.1/extension-0.1.pom
index 311fc2f..015d718 100644
--- a/core-it-suite/src/test/resources/mng-4355/repo/org/apache/maven/its/mng4355/extension/0.1/extension-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4355/repo/org/apache/maven/its/mng4355/extension/0.1/extension-0.1.pom
@@ -1,47 +1,47 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4355</groupId>
-  <artifactId>extension</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4355 :: Extension</name> 
-  <description>
-    Test that extension declarations in the POM without an explicit version get resolved to the last release
-    version of the extension artifact.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4355</groupId>
+  <artifactId>extension</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4355 :: Extension</name> 
+  <description>
+    Test that extension declarations in the POM without an explicit version get resolved to the last release
+    version of the extension artifact.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4355/repo/org/apache/maven/its/mng4355/extension/0.1/extension-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4355/repo/org/apache/maven/its/mng4355/extension/0.1/extension-0.1.pom.sha1
index 7cb8a73..d7e5ddb 100644
--- a/core-it-suite/src/test/resources/mng-4355/repo/org/apache/maven/its/mng4355/extension/0.1/extension-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4355/repo/org/apache/maven/its/mng4355/extension/0.1/extension-0.1.pom.sha1
@@ -1 +1 @@
-8fc5323cb80dbc5cdeff1044e17376c3303c2356
\ No newline at end of file
+e4d84b20bc61f6ac25de89d0cb37ea5311473bbf
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.1/extension-0.1.pom b/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.1/extension-0.1.pom
index 3d0d6ae..ecf817c 100644
--- a/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.1/extension-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.1/extension-0.1.pom
@@ -1,70 +1,70 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4357</groupId>
-  <artifactId>extension</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test :: MNG-4357 :: Extension</name> 
-  <description>
-    Test that different projects in a reactor build can use different versions of the same extension.
-    This should still hold true if the two versions of the extension provide the same set of components.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4357</groupId>
+  <artifactId>extension</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test :: MNG-4357 :: Extension</name> 
+  <description>
+    Test that different projects in a reactor build can use different versions of the same extension.
+    This should still hold true if the two versions of the extension provide the same set of components.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.1/extension-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.1/extension-0.1.pom.sha1
index 6d3e8a2..d9396f5 100644
--- a/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.1/extension-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.1/extension-0.1.pom.sha1
@@ -1 +1 @@
-81440792c9092e0d48ebc091204797d1acbbef13
\ No newline at end of file
+031ea0226ef9863ef1d56da9e1a74c3286e3bce0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.2/extension-0.2.pom b/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.2/extension-0.2.pom
index 865bc81..c0ab9a0 100644
--- a/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.2/extension-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.2/extension-0.2.pom
@@ -1,70 +1,70 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4357</groupId>
-  <artifactId>extension</artifactId>
-  <version>0.2</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test :: MNG-4357 :: Extension</name> 
-  <description>
-    Test that different projects in a reactor build can use different versions of the same extension.
-    This should still hold true if the two versions of the extension provide the same set of components.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4357</groupId>
+  <artifactId>extension</artifactId>
+  <version>0.2</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test :: MNG-4357 :: Extension</name> 
+  <description>
+    Test that different projects in a reactor build can use different versions of the same extension.
+    This should still hold true if the two versions of the extension provide the same set of components.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.2/extension-0.2.pom.sha1 b/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.2/extension-0.2.pom.sha1
index 1a77707..c4effcf 100644
--- a/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.2/extension-0.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4357/repo/org/apache/maven/its/mng4357/extension/0.2/extension-0.2.pom.sha1
@@ -1 +1 @@
-fef37517ed2e18b0bbab18a2741e339a1656f43d
\ No newline at end of file
+187baec6997b4f6c6226605aa563d457319634b5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4361/repo-1/org/apache/maven/its/mng4361/a/0.1-SNAPSHOT/a-0.1-20090916.163201-1.pom b/core-it-suite/src/test/resources/mng-4361/repo-1/org/apache/maven/its/mng4361/a/0.1-SNAPSHOT/a-0.1-20090916.163201-1.pom
index 3b9549a..f6831cf 100644
--- a/core-it-suite/src/test/resources/mng-4361/repo-1/org/apache/maven/its/mng4361/a/0.1-SNAPSHOT/a-0.1-20090916.163201-1.pom
+++ b/core-it-suite/src/test/resources/mng-4361/repo-1/org/apache/maven/its/mng4361/a/0.1-SNAPSHOT/a-0.1-20090916.163201-1.pom
@@ -1,37 +1,37 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.maven.its.mng4361</groupId>
-    <artifactId>p</artifactId>
-    <version>0.1-SNAPSHOT</version>
-  </parent>
-
-  <groupId>org.apache.maven.its.mng4361</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.its.mng4361</groupId>
+    <artifactId>p</artifactId>
+    <version>0.1-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.apache.maven.its.mng4361</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4361/repo-1/org/apache/maven/its/mng4361/p/0.1-SNAPSHOT/p-0.1-20091110.165254-1.pom b/core-it-suite/src/test/resources/mng-4361/repo-1/org/apache/maven/its/mng4361/p/0.1-SNAPSHOT/p-0.1-20091110.165254-1.pom
index e4db86f..19831fd 100644
--- a/core-it-suite/src/test/resources/mng-4361/repo-1/org/apache/maven/its/mng4361/p/0.1-SNAPSHOT/p-0.1-20091110.165254-1.pom
+++ b/core-it-suite/src/test/resources/mng-4361/repo-1/org/apache/maven/its/mng4361/p/0.1-SNAPSHOT/p-0.1-20091110.165254-1.pom
@@ -1,31 +1,31 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4361</groupId>
-  <artifactId>p</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4361</groupId>
+  <artifactId>p</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/a/0.1-SNAPSHOT/a-0.1-20090916.163243-2.pom b/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/a/0.1-SNAPSHOT/a-0.1-20090916.163243-2.pom
index d1a874b..9a4d529 100644
--- a/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/a/0.1-SNAPSHOT/a-0.1-20090916.163243-2.pom
+++ b/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/a/0.1-SNAPSHOT/a-0.1-20090916.163243-2.pom
@@ -1,51 +1,51 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.maven.its.mng4361</groupId>
-    <artifactId>p</artifactId>
-    <version>0.1-SNAPSHOT</version>
-  </parent>
-
-  <groupId>org.apache.maven.its.mng4361</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <!-- if this POM isn't updated, the dependency below will be missing from the second test run -->
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4361</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1-SNAPSHOT</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.its.mng4361</groupId>
+    <artifactId>p</artifactId>
+    <version>0.1-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.apache.maven.its.mng4361</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <!-- if this POM isn't updated, the dependency below will be missing from the second test run -->
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4361</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/b/0.1-SNAPSHOT/b-0.1-20091110.162600-1.pom b/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/b/0.1-SNAPSHOT/b-0.1-20091110.162600-1.pom
index 1975f76..a348fab 100644
--- a/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/b/0.1-SNAPSHOT/b-0.1-20091110.162600-1.pom
+++ b/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/b/0.1-SNAPSHOT/b-0.1-20091110.162600-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4361</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4361</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/c/0.1-SNAPSHOT/c-0.1-20091110.162600-1.pom b/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/c/0.1-SNAPSHOT/c-0.1-20091110.162600-1.pom
index af70759..52665c8 100644
--- a/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/c/0.1-SNAPSHOT/c-0.1-20091110.162600-1.pom
+++ b/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/c/0.1-SNAPSHOT/c-0.1-20091110.162600-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4361</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4361</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/p/0.1-SNAPSHOT/p-0.1-20091110.165705-2.pom b/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/p/0.1-SNAPSHOT/p-0.1-20091110.165705-2.pom
index 9cd6366..55b7948 100644
--- a/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/p/0.1-SNAPSHOT/p-0.1-20091110.165705-2.pom
+++ b/core-it-suite/src/test/resources/mng-4361/repo-2/org/apache/maven/its/mng4361/p/0.1-SNAPSHOT/p-0.1-20091110.165705-2.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4361</groupId>
-  <artifactId>p</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <!-- if this parent POM isn't updated, the dependency below will be missing from the second test run -->
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4361</groupId>
-      <artifactId>c</artifactId>
-      <version>0.1-SNAPSHOT</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4361</groupId>
+  <artifactId>p</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <!-- if this parent POM isn't updated, the dependency below will be missing from the second test run -->
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4361</groupId>
+      <artifactId>c</artifactId>
+      <version>0.1-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom
index 7b115dc..d1a2b5e 100644
--- a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4363</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4363</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom.md5
index 0ba2d5f..35beb9e 100644
--- a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-9b9726fb07de26a9d9d15a26d88b6df2
\ No newline at end of file
+85d46d73a56d1a7e4ea1901f2230d094
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom.sha1
index ee8cdcd..915aaaf 100644
--- a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-199fd77e500d47e1319edf82429c64420e08a080
\ No newline at end of file
+3b8682fd119dcba204924a6cc7a2309ae31f266e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom
index b0b91bb..ce0478e 100644
--- a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4363</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4363</groupId>
-      <artifactId>a</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4363</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4363</groupId>
+      <artifactId>a</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom.md5
index 5ebdec7..c3ab401 100644
--- a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-f6432324d39b188ed716ef5a985572e5
\ No newline at end of file
+865283846b40949e30f9ed0b08f13f45
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom.sha1
index b39830f..a83b464 100644
--- a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-be668b67add5be5a3565359a4b263adc50ba8bfe
\ No newline at end of file
+3165bf3daa4e14c46666cd9918363d8371f9ab93
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom
index ba71666..7aa8562 100644
--- a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4363</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4363</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom.md5
index eae9463..e7ac856 100644
--- a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-1f2502d881ad84d9174bdd6e34b2c4b2
\ No newline at end of file
+eafadc883c94001c5f529735ad2257df
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom.sha1
index 4e2fdfd..99710ca 100644
--- a/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4363/repo/org/apache/maven/its/mng4363/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-20f44ae66c886ae0deb6df4df3010dd05c83f6c7
\ No newline at end of file
+6e4029f0288d4c435620d419950825288502edcb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom
index eb8ab09..b0ea680 100644
--- a/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom
@@ -1,42 +1,42 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4367</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4367</name>
-  <description>
-    
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4367</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4367</name>
+  <description>
+    
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom.md5
index 1ee2484..be5c4fd 100644
--- a/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-1cbe969346569ac71693df06bc325a20
\ No newline at end of file
+d2801d0b94b3908ad7615067e6bfadbb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom.sha1
index 4822c42..37a1215 100644
--- a/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4367/repo/org/apache/maven/its/mng4367/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-1f50244b3d8400dfe2e706a68baa6b206399a031
\ No newline at end of file
+a7debc92946e588bc661a57518912529a5c351c5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom
index 74e33ff..70a5daf 100644
--- a/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom
@@ -1,48 +1,48 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4379</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4379</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4379</groupId>
-      <artifactId>sys</artifactId>
-      <version>0.2</version>
-      <scope>system</scope>
-      <systemPath>${env.MNG_4379_HOME}/pom.xml</systemPath>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4379</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4379</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4379</groupId>
+      <artifactId>sys</artifactId>
+      <version>0.2</version>
+      <scope>system</scope>
+      <systemPath>${env.MNG_4379_HOME}/pom.xml</systemPath>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom.md5
index 67ea0f3..b15458f 100644
--- a/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-1718747280b22f294bd4186100805569
\ No newline at end of file
+e620f4fd097ee98e3fb92cc275e430dc
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom.sha1
index c2e92e4..22b66d8 100644
--- a/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4379/repo/org/apache/maven/its/mng4379/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-022125755b78972912de07a4656e4740d86d2b55
\ No newline at end of file
+a8304a689078dfb783eb237f5b6a60f5d93796f0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom b/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom
index 00ddf33..ca02753 100644
--- a/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom
@@ -1,37 +1,37 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4393</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <name>Maven Integration Test :: MNG-4393</name>
-  <description>
-    Verify that parent POMs get parsed in lenient mode when resolved from the repository.
-  </description>
-
-  <!-- This illegal element should not impose build failures on child projects that inherit from this parent -->
-  <unknown/>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4393</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <name>Maven Integration Test :: MNG-4393</name>
+  <description>
+    Verify that parent POMs get parsed in lenient mode when resolved from the repository.
+  </description>
+
+  <!-- This illegal element should not impose build failures on child projects that inherit from this parent -->
+  <unknown/>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom.md5
index fa12b4c..941bef0 100644
--- a/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom.md5
@@ -1 +1 @@
-b3b359f0c0df0bda26425cf5f0646c9c
\ No newline at end of file
+06054b02d5de8990a281bf48dc17aef7
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom.sha1
index 8b1d29d..b0f2e26 100644
--- a/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4393/repo/org/apache/maven/its/mng4393/parent/0.1/parent-0.1.pom.sha1
@@ -1 +1 @@
-34fdb2c3e084c33b8e4439e9273e77debf342281
\ No newline at end of file
+45f60a9b71c08bdbe24aa632048d85c5e68dac78
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom
index 0e61b0e..a9d1795 100644
--- a/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4400</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-
-  <name>Maven Integration Test :: MNG-4400</name>
-  <description>
-    Verify that repositories are accessed in their declaration order.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4400</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+
+  <name>Maven Integration Test :: MNG-4400</name>
+  <description>
+    Verify that repositories are accessed in their declaration order.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.md5
index 707746c..41984d7 100644
--- a/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-3f2999b45e7faa6e4dadacb431cc625f
\ No newline at end of file
+15e70d45d8db4c5991ecb5fb2a7590e6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.sha1
index 87e1dbe..ac0b2da 100644
--- a/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4400/repo-1/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-c45a3dbbf0177d96ee23adc346321e16c13929e1
\ No newline at end of file
+6e9eff1590a8b82a68af6b441739623b5113b953
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom
index 0e61b0e..a9d1795 100644
--- a/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom
@@ -1,40 +1,40 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4400</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-
-  <name>Maven Integration Test :: MNG-4400</name>
-  <description>
-    Verify that repositories are accessed in their declaration order.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4400</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+
+  <name>Maven Integration Test :: MNG-4400</name>
+  <description>
+    Verify that repositories are accessed in their declaration order.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.md5
index 707746c..41984d7 100644
--- a/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-3f2999b45e7faa6e4dadacb431cc625f
\ No newline at end of file
+15e70d45d8db4c5991ecb5fb2a7590e6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.sha1
index 87e1dbe..ac0b2da 100644
--- a/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4400/repo-2/org/apache/maven/its/mng4400/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-c45a3dbbf0177d96ee23adc346321e16c13929e1
\ No newline at end of file
+6e9eff1590a8b82a68af6b441739623b5113b953
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom b/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom
index b63a3f7..acd2e17 100644
--- a/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom
@@ -1,64 +1,64 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4401</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <name>Maven Integration Test :: MNG-4401</name>
-  <description>
-    Verify that the implicit default repo (central) is tried after explicitly declared repos during parent POM
-    resolution.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.its.plugins</groupId>
-        <artifactId>maven-it-plugin-log-file</artifactId>
-        <version>2.1-SNAPSHOT</version>
-        <configuration>
-          <logFile>target/passed.txt</logFile>
-        </configuration>
-        <executions>
-          <execution>
-            <id>test</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>reset</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4401</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <name>Maven Integration Test :: MNG-4401</name>
+  <description>
+    Verify that the implicit default repo (central) is tried after explicitly declared repos during parent POM
+    resolution.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.its.plugins</groupId>
+        <artifactId>maven-it-plugin-log-file</artifactId>
+        <version>2.1-SNAPSHOT</version>
+        <configuration>
+          <logFile>target/passed.txt</logFile>
+        </configuration>
+        <executions>
+          <execution>
+            <id>test</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>reset</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.md5
index 9730b81..e1613bd 100644
--- a/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.md5
@@ -1 +1 @@
-0a843f5ee98fafe5f691df893b24569c
\ No newline at end of file
+e5237b2af58971b6dbea11a62e93b6ce
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.sha1
index 0e6989c..6fa36ce 100644
--- a/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4401/repo-1/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.sha1
@@ -1 +1 @@
-556f62aa9671c822f665fb97d71095437789bd43
\ No newline at end of file
+da4787eb81052c612e4b2d4cb0c727fd8d261b3b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom b/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom
index 1460647..8227e14 100644
--- a/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom
@@ -1,64 +1,64 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4401</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <name>Maven Integration Test :: MNG-4401</name>
-  <description>
-    Verify that the implicit default repo (central) is tried after explicitly declared repos during parent POM
-    resolution.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.its.plugins</groupId>
-        <artifactId>maven-it-plugin-log-file</artifactId>
-        <version>2.1-SNAPSHOT</version>
-        <configuration>
-          <logFile>target/failed.txt</logFile>
-        </configuration>
-        <executions>
-          <execution>
-            <id>test</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>reset</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4401</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <name>Maven Integration Test :: MNG-4401</name>
+  <description>
+    Verify that the implicit default repo (central) is tried after explicitly declared repos during parent POM
+    resolution.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.its.plugins</groupId>
+        <artifactId>maven-it-plugin-log-file</artifactId>
+        <version>2.1-SNAPSHOT</version>
+        <configuration>
+          <logFile>target/failed.txt</logFile>
+        </configuration>
+        <executions>
+          <execution>
+            <id>test</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>reset</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.md5
index 3b12317..8c6809d 100644
--- a/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.md5
@@ -1 +1 @@
-2dc492467a09715e5fca8f51d07ab292
\ No newline at end of file
+30548e7075b28ec9708237c71e994a3e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.sha1
index 1cefef4..b1f2d26 100644
--- a/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4401/repo-2/org/apache/maven/its/mng4401/parent/0.1/parent-0.1.pom.sha1
@@ -1 +1 @@
-a54c6b9b782096de23e811a5893a45e3e56d2b1d
\ No newline at end of file
+d8eb65822f01b22db0ce71700545fc4f871207b4
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom
index 10f1c9b..bbdc851 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4403</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4403</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom.md5
index 1563b5f..e39a98b 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-aea0570d0f04c718ed534e4357ed9300
\ No newline at end of file
+e877f43a051796e4900e11339ba99d8b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom.sha1
index 900ea29..2496295 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-f523c07bf8266c6fc861c0fbe6722e34c18f10e6
\ No newline at end of file
+a9d77d7fe7c8b299cd20460f2bd4b1bc31272d34
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom
index 8ffdd82..28ed21f 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom
@@ -1,197 +1,197 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <!-- invalid parent -->
-    <groupId>org.apache.maven.its.mng4403</groupId>
-    <artifactId>bp</artifactId>
-    <version>0.1</version>
-  </parent>
-
-  <groupId>org.apache.maven.its.mng4403</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <!-- reserved id (MNG-4418) -->
-      <id>local</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-    <!-- remote-only field (MNG-4430) -->
-    <status>deployed</status>
-  </distributionManagement>
-
-  <!-- if the model builder rejected this POM, the test will miss its (compile-time) dependencies -->
-
-  <dependencyManagement>
-    <dependencies>
-      <!-- duplicate managed dependencies (MNG-4005), both declarations apply in POM order, i.e. their effects get merged, using first-wins for values -->
-      <dependency>
-        <groupId>org.apache.maven.its.mng4403</groupId>
-        <artifactId>c</artifactId>
-        <version>0.1</version>
-        <scope>compile</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.maven.its.mng4403</groupId>
-        <artifactId>c</artifactId>
-        <version>0.2</version>
-        <scope>test</scope>
-        <exclusions>
-          <exclusion>
-            <groupId>org.apache.maven.its.mng4403</groupId>
-            <artifactId>cc</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4403</groupId>
-      <artifactId>a</artifactId>
-      <version>0.2</version>
-    </dependency>
-    <dependency>
-      <!-- duplicate dependency with different version (MNG-4005), last declaration wins -->
-      <groupId>org.apache.maven.its.mng4403</groupId>
-      <artifactId>a</artifactId>
-      <!-- deprecated expression prefix (MNG-4421) -->
-      <version>${pom.version}</version>
-    </dependency>
-    <dependency>
-      <!-- dependency managed by duplicate declarations -->
-      <groupId>org.apache.maven.its.mng4403</groupId>
-      <artifactId>c</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4403</groupId>
-      <artifactId>x</artifactId>
-      <!-- unresolvable property in dependency version (MNG-4383) -->
-      <version>${missing.property}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4403</groupId>
-      <artifactId>y</artifactId>
-      <version>0.1</version>
-      <!-- invalid dependency scope (MNG-3991) -->
-      <scope>invalid</scope>
-      <optional>true</optional>
-    </dependency>
-  </dependencies>
-
-  <!-- unknown/misplaced element -->
-  <unknownElement/>
-
-  <repositories>
-    <!-- duplicate repository id's (MNG-4193) -->
-    <repository>
-      <id>non-unique-id</id>
-      <url>https://repo1.maven.org</url>
-    </repository>
-    <repository>
-      <id>non-unique-id</id>
-      <url>https://repo2.maven.org</url>
-    </repository>
-  </repositories>
-  <pluginRepositories>
-    <pluginRepository>
-      <id>non-unique-id</id>
-      <url>https://repo1.maven.org</url>
-    </pluginRepository>
-    <pluginRepository>
-      <id>non-unique-id</id>
-      <url>https://repo2.maven.org</url>
-    </pluginRepository>
-  </pluginRepositories>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <!-- internal field (MNG-4945) -->
-        <mergeId>bad</mergeId>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.its.mng4405</groupId>
-        <artifactId>a</artifactId>
-        <!-- unresolvable property in plugin version (MNG-4405) -->
-        <version>${missing.property}</version>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.its.mng4405</groupId>
-        <artifactId>a</artifactId>
-        <!-- missing plugin version -->
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.its.mng1701</groupId>
-        <artifactId>b</artifactId>
-        <version>1.0</version>
-      </plugin>
-      <plugin>
-        <!-- duplicate plugin declaration (MNG-1701) -->
-        <groupId>org.apache.maven.its.mng1701</groupId>
-        <artifactId>b</artifactId>
-        <version>1.0</version>
-      </plugin>
-    </plugins>
-  </build>
-
-  <profiles>
-    <profile>
-      <id>non-unique-id</id>
-      <repositories>
-        <!-- duplicate repository id's (MNG-4193) -->
-        <repository>
-          <id>non-unique-id</id>
-          <url>https://repo1.maven.org</url>
-        </repository>
-        <repository>
-          <id>non-unique-id</id>
-          <url>https://repo2.maven.org</url>
-        </repository>
-      </repositories>
-      <pluginRepositories>
-        <pluginRepository>
-          <id>non-unique-id</id>
-          <url>https://repo1.maven.org</url>
-        </pluginRepository>
-        <pluginRepository>
-          <id>non-unique-id</id>
-          <url>https://repo2.maven.org</url>
-        </pluginRepository>
-      </pluginRepositories>
-    </profile>
-    <profile>
-      <!-- non-unique profile id (MNG-4404) -->
-      <id>non-unique-id</id>
-    </profile>
-  </profiles>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <!-- invalid parent -->
+    <groupId>org.apache.maven.its.mng4403</groupId>
+    <artifactId>bp</artifactId>
+    <version>0.1</version>
+  </parent>
+
+  <groupId>org.apache.maven.its.mng4403</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <!-- reserved id (MNG-4418) -->
+      <id>local</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+    <!-- remote-only field (MNG-4430) -->
+    <status>deployed</status>
+  </distributionManagement>
+
+  <!-- if the model builder rejected this POM, the test will miss its (compile-time) dependencies -->
+
+  <dependencyManagement>
+    <dependencies>
+      <!-- duplicate managed dependencies (MNG-4005), both declarations apply in POM order, i.e. their effects get merged, using first-wins for values -->
+      <dependency>
+        <groupId>org.apache.maven.its.mng4403</groupId>
+        <artifactId>c</artifactId>
+        <version>0.1</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven.its.mng4403</groupId>
+        <artifactId>c</artifactId>
+        <version>0.2</version>
+        <scope>test</scope>
+        <exclusions>
+          <exclusion>
+            <groupId>org.apache.maven.its.mng4403</groupId>
+            <artifactId>cc</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4403</groupId>
+      <artifactId>a</artifactId>
+      <version>0.2</version>
+    </dependency>
+    <dependency>
+      <!-- duplicate dependency with different version (MNG-4005), last declaration wins -->
+      <groupId>org.apache.maven.its.mng4403</groupId>
+      <artifactId>a</artifactId>
+      <!-- deprecated expression prefix (MNG-4421) -->
+      <version>${pom.version}</version>
+    </dependency>
+    <dependency>
+      <!-- dependency managed by duplicate declarations -->
+      <groupId>org.apache.maven.its.mng4403</groupId>
+      <artifactId>c</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4403</groupId>
+      <artifactId>x</artifactId>
+      <!-- unresolvable property in dependency version (MNG-4383) -->
+      <version>${missing.property}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4403</groupId>
+      <artifactId>y</artifactId>
+      <version>0.1</version>
+      <!-- invalid dependency scope (MNG-3991) -->
+      <scope>invalid</scope>
+      <optional>true</optional>
+    </dependency>
+  </dependencies>
+
+  <!-- unknown/misplaced element -->
+  <unknownElement/>
+
+  <repositories>
+    <!-- duplicate repository id's (MNG-4193) -->
+    <repository>
+      <id>non-unique-id</id>
+      <url>https://repo1.maven.org</url>
+    </repository>
+    <repository>
+      <id>non-unique-id</id>
+      <url>https://repo2.maven.org</url>
+    </repository>
+  </repositories>
+  <pluginRepositories>
+    <pluginRepository>
+      <id>non-unique-id</id>
+      <url>https://repo1.maven.org</url>
+    </pluginRepository>
+    <pluginRepository>
+      <id>non-unique-id</id>
+      <url>https://repo2.maven.org</url>
+    </pluginRepository>
+  </pluginRepositories>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <!-- internal field (MNG-4945) -->
+        <mergeId>bad</mergeId>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.its.mng4405</groupId>
+        <artifactId>a</artifactId>
+        <!-- unresolvable property in plugin version (MNG-4405) -->
+        <version>${missing.property}</version>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.its.mng4405</groupId>
+        <artifactId>a</artifactId>
+        <!-- missing plugin version -->
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.its.mng1701</groupId>
+        <artifactId>b</artifactId>
+        <version>1.0</version>
+      </plugin>
+      <plugin>
+        <!-- duplicate plugin declaration (MNG-1701) -->
+        <groupId>org.apache.maven.its.mng1701</groupId>
+        <artifactId>b</artifactId>
+        <version>1.0</version>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>non-unique-id</id>
+      <repositories>
+        <!-- duplicate repository id's (MNG-4193) -->
+        <repository>
+          <id>non-unique-id</id>
+          <url>https://repo1.maven.org</url>
+        </repository>
+        <repository>
+          <id>non-unique-id</id>
+          <url>https://repo2.maven.org</url>
+        </repository>
+      </repositories>
+      <pluginRepositories>
+        <pluginRepository>
+          <id>non-unique-id</id>
+          <url>https://repo1.maven.org</url>
+        </pluginRepository>
+        <pluginRepository>
+          <id>non-unique-id</id>
+          <url>https://repo2.maven.org</url>
+        </pluginRepository>
+      </pluginRepositories>
+    </profile>
+    <profile>
+      <!-- non-unique profile id (MNG-4404) -->
+      <id>non-unique-id</id>
+    </profile>
+  </profiles>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom.md5
index d01c44a..54fb184 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-0340539ee33647a93ff294ac4adab479
\ No newline at end of file
+7715ed576590b23bd48ffe59fb765592
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom.sha1
index e97f4a3..c7bb4ba 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-92723cb8a64da48300ac8f5253f882b1aa282f0d
\ No newline at end of file
+e4ca48b3c2c97cbe74dc167a57338d62f13f0ce5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom
index 0c8d5c2..062ce82 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4403</groupId>
-  <artifactId>bp</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <!-- invalid/unexpected text content (MNG-4643) -->
-  foo
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <modules>
-    <!-- duplicate child module (MNG-4402) -->
-    <module>child</module>
-    <module>child</module>
-  </modules>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4403</groupId>
+  <artifactId>bp</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <!-- invalid/unexpected text content (MNG-4643) -->
+  foo
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <modules>
+    <!-- duplicate child module (MNG-4402) -->
+    <module>child</module>
+    <module>child</module>
+  </modules>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom.md5
index 056503f..3816adc 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom.md5
@@ -1 +1 @@
-5ce0c8a4677d934b3a47b576fa0af20b
\ No newline at end of file
+46f7d254fff1ca2506e0924a5bf72fcb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom.sha1
index 74c2ffa..3e76a0a 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/bp/0.1/bp-0.1.pom.sha1
@@ -1 +1 @@
-35df562af6391ef6b4b0465aaf7f09d3cd5b74be
\ No newline at end of file
+09c7d2124e152c7d23504a2c2360842e0cc3cc28
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom
index d3ca45e..73d1ea3 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4403</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4403</groupId>
-      <artifactId>cc</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4403</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4403</groupId>
+      <artifactId>cc</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom.md5
index 236e2ed..503094b 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-594ed9a55d0702116b995205ce739f49
\ No newline at end of file
+a1859123e0e3f058fdb1779d79c019f2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom.sha1
index 7237b75..708f576 100644
--- a/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4403/repo/org/apache/maven/its/mng4403/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-97ea83e2ba875151732ac2ec1309841f2d25fedf
\ No newline at end of file
+87a49d9543f3b4bba62490c68db3bd642db7a02b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom
index d2c6b7d..14a1b0b 100644
--- a/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom
@@ -1,41 +1,41 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4412</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4412</name>
-  <description>
-    Dummy Artifact.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4412</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4412</name>
+  <description>
+    Dummy Artifact.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom.md5
index 4fca1a5..ed97aa9 100644
--- a/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-eee6bfc7f495b19629a3715d77220f66
\ No newline at end of file
+2dbfd4ef3e094d95dd279cbc19eaa814
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom.sha1
index 5dbc77b..6b20713 100644
--- a/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4412/repo/org/apache/maven/its/mng4412/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-9aa4488ac9af33abac1af481adec79ace75116ac
\ No newline at end of file
+aed4157624dc0d89e7e1a3e395f1b8a633b02575
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom
index 801015a..fcbcff8 100644
--- a/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4413</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4413</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4413</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4413</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom.md5
index f91c763..43a6c90 100644
--- a/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-a9873a93b395c81a694c835c4f22a365
\ No newline at end of file
+65e9e2a4e02ec1ff1126a7974da5d42d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom.sha1
index 684ba37..1575e40 100644
--- a/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4413/repo-a/org/apache/maven/its/mng4413/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-b7ecdff0904acc30e2eb63e7648712ec899afbc2
\ No newline at end of file
+cc6c4a05b007b31e5f55f4360184659e29c15812
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom
index b12e056..285bfc6 100644
--- a/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom
@@ -1,60 +1,60 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4413</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4413</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <repositories>
-    <repository>
-      <id>maven-core-it-repo-a</id>
-      <name>Repository hosing a, must be mirrored</name>
-      <url>http://bad.host/maven2/</url>
-      <releases>
-        <checksumPolicy>ignore</checksumPolicy>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4413</groupId>
-      <artifactId>a</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4413</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4413</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <repositories>
+    <repository>
+      <id>maven-core-it-repo-a</id>
+      <name>Repository hosing a, must be mirrored</name>
+      <url>http://bad.host/maven2/</url>
+      <releases>
+        <checksumPolicy>ignore</checksumPolicy>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4413</groupId>
+      <artifactId>a</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom.md5
index 905e6c2..7d508ff 100644
--- a/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-83db328dd4a7e29c4738f874ff74235f
\ No newline at end of file
+755ede7b6083e7fb71f50694a8d6cce8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom.sha1
index 80af082..28d3daf 100644
--- a/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4413/repo-b/org/apache/maven/its/mng4413/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-f3eaa75602ba050b72eb3537e9c1b09e7dd170b5
\ No newline at end of file
+7a8ad9ccbb3cb682693d48e20e40e3ae905482d3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4433/repo-1/org/apache/maven/its/mng4433/parent/0.1-SNAPSHOT/parent-0.1-20091110.180207-1.pom b/core-it-suite/src/test/resources/mng-4433/repo-1/org/apache/maven/its/mng4433/parent/0.1-SNAPSHOT/parent-0.1-20091110.180207-1.pom
index ba6ad71..7cf2787 100644
--- a/core-it-suite/src/test/resources/mng-4433/repo-1/org/apache/maven/its/mng4433/parent/0.1-SNAPSHOT/parent-0.1-20091110.180207-1.pom
+++ b/core-it-suite/src/test/resources/mng-4433/repo-1/org/apache/maven/its/mng4433/parent/0.1-SNAPSHOT/parent-0.1-20091110.180207-1.pom
@@ -1,53 +1,53 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4433</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.its.plugins</groupId>
-        <artifactId>maven-it-plugin-log-file</artifactId>
-        <version>2.1-SNAPSHOT</version>
-        <executions>
-          <execution>
-            <id>test</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>reset</goal>
-            </goals>
-            <configuration>
-              <logFile>target/old.txt</logFile>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4433</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.its.plugins</groupId>
+        <artifactId>maven-it-plugin-log-file</artifactId>
+        <version>2.1-SNAPSHOT</version>
+        <executions>
+          <execution>
+            <id>test</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>reset</goal>
+            </goals>
+            <configuration>
+              <logFile>target/old.txt</logFile>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4433/repo-2/org/apache/maven/its/mng4433/parent/0.1-SNAPSHOT/parent-0.1-20091110.180316-3.pom b/core-it-suite/src/test/resources/mng-4433/repo-2/org/apache/maven/its/mng4433/parent/0.1-SNAPSHOT/parent-0.1-20091110.180316-3.pom
index 6ba7396..91f8827 100644
--- a/core-it-suite/src/test/resources/mng-4433/repo-2/org/apache/maven/its/mng4433/parent/0.1-SNAPSHOT/parent-0.1-20091110.180316-3.pom
+++ b/core-it-suite/src/test/resources/mng-4433/repo-2/org/apache/maven/its/mng4433/parent/0.1-SNAPSHOT/parent-0.1-20091110.180316-3.pom
@@ -1,58 +1,58 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4433</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.its.plugins</groupId>
-        <artifactId>maven-it-plugin-log-file</artifactId>
-        <version>2.1-SNAPSHOT</version>
-        <executions>
-          <execution>
-            <id>test</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>reset</goal>
-            </goals>
-            <configuration>
-              <logFile>target/new.txt</logFile>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4433</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.its.plugins</groupId>
+        <artifactId>maven-it-plugin-log-file</artifactId>
+        <version>2.1-SNAPSHOT</version>
+        <executions>
+          <execution>
+            <id>test</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>reset</goal>
+            </goals>
+            <configuration>
+              <logFile>target/new.txt</logFile>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4465/repo/org/apache/maven/its/mng4465/maven-mng4465-plugin/0.1/maven-mng4465-plugin-0.1.pom b/core-it-suite/src/test/resources/mng-4465/repo/org/apache/maven/its/mng4465/maven-mng4465-plugin/0.1/maven-mng4465-plugin-0.1.pom
index 456a161..abea5ec 100644
--- a/core-it-suite/src/test/resources/mng-4465/repo/org/apache/maven/its/mng4465/maven-mng4465-plugin/0.1/maven-mng4465-plugin-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4465/repo/org/apache/maven/its/mng4465/maven-mng4465-plugin/0.1/maven-mng4465-plugin-0.1.pom
@@ -1,66 +1,66 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4465</groupId>
-  <artifactId>maven-mng4465-plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test :: MNG-4465 :: Plugin</name>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4465</groupId>
+  <artifactId>maven-mng4465-plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test :: MNG-4465 :: Plugin</name>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom b/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom
index 4bdebc5..b4d3725 100644
--- a/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom
@@ -1,62 +1,62 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4479</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4479 :: Plugin Dependency</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.plugins</groupId>
-      <artifactId>maven-it-plugin-parameter-implementation</artifactId>
-      <version>2.1-SNAPSHOT</version>
-      <scope>provided</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4479</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4479 :: Plugin Dependency</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.plugins</groupId>
+      <artifactId>maven-it-plugin-parameter-implementation</artifactId>
+      <version>2.1-SNAPSHOT</version>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom.md5
index 1d4f542..42cf178 100644
--- a/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom.md5
@@ -1 +1 @@
-55745a2f278f07da4034cd0d923016c2
\ No newline at end of file
+5568ea5b0f81059a5a9a834148c8a37a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom.sha1
index f674216..83d0265 100644
--- a/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4479/repo/org/apache/maven/its/mng4479/dep/0.1/dep-0.1.pom.sha1
@@ -1 +1 @@
-853f05cd3a60f045bb9eb3aa10685f09d46ab103
\ No newline at end of file
+c94435a1e03ee11926cef6d20f6e320d346026b0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4482/repo-1/org/apache/maven/its/mng4482/extension/0.2-SNAPSHOT/extension-0.2-20091204.195644-1.pom b/core-it-suite/src/test/resources/mng-4482/repo-1/org/apache/maven/its/mng4482/extension/0.2-SNAPSHOT/extension-0.2-20091204.195644-1.pom
index 063e89a..9901b02 100644
--- a/core-it-suite/src/test/resources/mng-4482/repo-1/org/apache/maven/its/mng4482/extension/0.2-SNAPSHOT/extension-0.2-20091204.195644-1.pom
+++ b/core-it-suite/src/test/resources/mng-4482/repo-1/org/apache/maven/its/mng4482/extension/0.2-SNAPSHOT/extension-0.2-20091204.195644-1.pom
@@ -1,50 +1,50 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4482</groupId>
-  <artifactId>extension</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4482</groupId>
+  <artifactId>extension</artifactId>
+  <version>0.2-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4482/repo-1/org/apache/maven/its/mng4482/maven-mng4482-plugin/0.1-SNAPSHOT/maven-mng4482-plugin-0.1-20091204.194743-1.pom b/core-it-suite/src/test/resources/mng-4482/repo-1/org/apache/maven/its/mng4482/maven-mng4482-plugin/0.1-SNAPSHOT/maven-mng4482-plugin-0.1-20091204.194743-1.pom
index 1cff8a2..64bd877 100644
--- a/core-it-suite/src/test/resources/mng-4482/repo-1/org/apache/maven/its/mng4482/maven-mng4482-plugin/0.1-SNAPSHOT/maven-mng4482-plugin-0.1-20091204.194743-1.pom
+++ b/core-it-suite/src/test/resources/mng-4482/repo-1/org/apache/maven/its/mng4482/maven-mng4482-plugin/0.1-SNAPSHOT/maven-mng4482-plugin-0.1-20091204.194743-1.pom
@@ -1,64 +1,64 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4482</groupId>
-  <artifactId>maven-mng4482-plugin</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4482</groupId>
+  <artifactId>maven-mng4482-plugin</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <!-- NOTE: Needs to have different size than other snapshot to avoid optimization pitfall -->
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4482/repo-2/org/apache/maven/its/mng4482/extension/0.2-SNAPSHOT/extension-0.2-20091204.195734-2.pom b/core-it-suite/src/test/resources/mng-4482/repo-2/org/apache/maven/its/mng4482/extension/0.2-SNAPSHOT/extension-0.2-20091204.195734-2.pom
index 92aa33d..e05e187 100644
--- a/core-it-suite/src/test/resources/mng-4482/repo-2/org/apache/maven/its/mng4482/extension/0.2-SNAPSHOT/extension-0.2-20091204.195734-2.pom
+++ b/core-it-suite/src/test/resources/mng-4482/repo-2/org/apache/maven/its/mng4482/extension/0.2-SNAPSHOT/extension-0.2-20091204.195734-2.pom
@@ -1,55 +1,55 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4482</groupId>
-  <artifactId>extension</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4482</groupId>
+  <artifactId>extension</artifactId>
+  <version>0.2-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4482/repo-2/org/apache/maven/its/mng4482/maven-mng4482-plugin/0.1-SNAPSHOT/maven-mng4482-plugin-0.1-20091204.194942-2.pom b/core-it-suite/src/test/resources/mng-4482/repo-2/org/apache/maven/its/mng4482/maven-mng4482-plugin/0.1-SNAPSHOT/maven-mng4482-plugin-0.1-20091204.194942-2.pom
index 2ecb284..e024735 100644
--- a/core-it-suite/src/test/resources/mng-4482/repo-2/org/apache/maven/its/mng4482/maven-mng4482-plugin/0.1-SNAPSHOT/maven-mng4482-plugin-0.1-20091204.194942-2.pom
+++ b/core-it-suite/src/test/resources/mng-4482/repo-2/org/apache/maven/its/mng4482/maven-mng4482-plugin/0.1-SNAPSHOT/maven-mng4482-plugin-0.1-20091204.194942-2.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4482</groupId>
-  <artifactId>maven-mng4482-plugin</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4482</groupId>
+  <artifactId>maven-mng4482-plugin</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom b/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom
index 358b08a..6df0743 100644
--- a/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom
@@ -1,72 +1,72 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4488</groupId>
-  <artifactId>parent</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <name>Maven Integration Test :: MNG-4488</name>
-  <description>
-    Verify that parent POMs get validated in lenient mode when resolved from the repository.
-  </description>
-
-  <!-- The invalid contents should not impose build failures on child projects that inherit from this parent -->
-
-  <repositories>
-    <!-- duplicate repositories -->
-    <repository>
-      <id>mng4488</id>
-      <url>https://repo1.maven.org/maven2</url>
-    </repository>
-    <repository>
-      <id>mng4488</id>
-      <url>https://repo1.maven.org/maven2</url>
-    </repository>
-  </repositories>
-
-  <dependencies>
-    <!-- duplicate dependencies -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.2</version>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.2</version>
-    </dependency>
-  </dependencies>
-
-  <profiles>
-    <!-- duplicate profiles -->
-    <profile>
-      <id>mng4488</id>
-    </profile>
-    <profile>
-      <id>mng4488</id>
-    </profile>
-  </profiles>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4488</groupId>
+  <artifactId>parent</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <name>Maven Integration Test :: MNG-4488</name>
+  <description>
+    Verify that parent POMs get validated in lenient mode when resolved from the repository.
+  </description>
+
+  <!-- The invalid contents should not impose build failures on child projects that inherit from this parent -->
+
+  <repositories>
+    <!-- duplicate repositories -->
+    <repository>
+      <id>mng4488</id>
+      <url>https://repo1.maven.org/maven2</url>
+    </repository>
+    <repository>
+      <id>mng4488</id>
+      <url>https://repo1.maven.org/maven2</url>
+    </repository>
+  </repositories>
+
+  <dependencies>
+    <!-- duplicate dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.2</version>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.2</version>
+    </dependency>
+  </dependencies>
+
+  <profiles>
+    <!-- duplicate profiles -->
+    <profile>
+      <id>mng4488</id>
+    </profile>
+    <profile>
+      <id>mng4488</id>
+    </profile>
+  </profiles>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom.md5
index 45ef886..a4a6c71 100644
--- a/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom.md5
@@ -1 +1 @@
-1050671aed599ae5a6d4f22238575c6d
\ No newline at end of file
+9dd1e043f727a4608a8bddbe049d254f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom.sha1
index 9e2c380..3bfce96 100644
--- a/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4488/repo/org/apache/maven/its/mng4488/parent/0.1/parent-0.1.pom.sha1
@@ -1 +1 @@
-6215e22266819fb05f887508a43b9eb091f23684
\ No newline at end of file
+87f19f2ac9c495b1981d7473904bf1d9f5d77e4a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom b/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom
index 28905b4..37e0b28 100644
--- a/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom
@@ -1,81 +1,81 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4489</groupId>
-  <artifactId>ext</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test :: MNG-4489</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-    <dependency>
-      <!-- this dependency needs to be resolved from the repo in this POM -->
-      <groupId>org.apache.maven.its.mng4489</groupId>
-      <artifactId>ext-dep</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-
-  <repositories>
-    <repository>
-      <!-- this repo needs to be mirrored/proxied for the test to work -->
-      <id>maven-core-it-repo-b</id>
-      <url>http://bad.host/null</url>
-      <releases>
-        <checksumPolicy>ignore</checksumPolicy>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4489</groupId>
+  <artifactId>ext</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test :: MNG-4489</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <!-- this dependency needs to be resolved from the repo in this POM -->
+      <groupId>org.apache.maven.its.mng4489</groupId>
+      <artifactId>ext-dep</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <repositories>
+    <repository>
+      <!-- this repo needs to be mirrored/proxied for the test to work -->
+      <id>maven-core-it-repo-b</id>
+      <url>http://bad.host/null</url>
+      <releases>
+        <checksumPolicy>ignore</checksumPolicy>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom.md5
index b18b14c..b7e6fc4 100644
--- a/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom.md5
@@ -1 +1 @@
-4bc870f8c625ec88df1df18cc7c2641b
\ No newline at end of file
+fbe52fe9d253bf85a70e2d6c452ca9c0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom.sha1
index 6282d7a..c981a11 100644
--- a/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4489/repo-a/org/apache/maven/its/mng4489/ext/0.1/ext-0.1.pom.sha1
@@ -1 +1 @@
-e19670a9120522304a9a1330f7a452035ea0c866
\ No newline at end of file
+e282ebfca01599a9cac2f01464d3de720e22aaf3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom b/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom
index 1829cf1..85332cd 100644
--- a/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4489</groupId>
-  <artifactId>ext-dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4489</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4489</groupId>
+  <artifactId>ext-dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4489</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom.md5
index 919defc..a86cb59 100644
--- a/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom.md5
@@ -1 +1 @@
-6117a8680f591c3b42ef7f9da3c3f692
\ No newline at end of file
+9b85a2801395cf9c2bcb69a1fe81d346
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom.sha1
index 88b380b..0043600 100644
--- a/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4489/repo-b/org/apache/maven/its/mng4489/ext-dep/0.1/ext-dep-0.1.pom.sha1
@@ -1 +1 @@
-4ff79a199b7b73464ae2956013f20f7ee8e171f2
\ No newline at end of file
+d63b5fb021ee72b987163f3cf43f63f8c8251bc2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4498/repo-b/org/apache/maven/its/mng4498/dep/0.1-SNAPSHOT/dep-0.1-20091216.104450-1.pom b/core-it-suite/src/test/resources/mng-4498/repo-b/org/apache/maven/its/mng4498/dep/0.1-SNAPSHOT/dep-0.1-20091216.104450-1.pom
index ecf29ff..1a2e7eb 100644
--- a/core-it-suite/src/test/resources/mng-4498/repo-b/org/apache/maven/its/mng4498/dep/0.1-SNAPSHOT/dep-0.1-20091216.104450-1.pom
+++ b/core-it-suite/src/test/resources/mng-4498/repo-b/org/apache/maven/its/mng4498/dep/0.1-SNAPSHOT/dep-0.1-20091216.104450-1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4498</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4498</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4498</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4498</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4500/repo/org/apache/maven/its/mng4500/dep/0.1-SNAPSHOT/dep-0.1-20091219.230823-1.pom b/core-it-suite/src/test/resources/mng-4500/repo/org/apache/maven/its/mng4500/dep/0.1-SNAPSHOT/dep-0.1-20091219.230823-1.pom
index c26528c..2653186 100644
--- a/core-it-suite/src/test/resources/mng-4500/repo/org/apache/maven/its/mng4500/dep/0.1-SNAPSHOT/dep-0.1-20091219.230823-1.pom
+++ b/core-it-suite/src/test/resources/mng-4500/repo/org/apache/maven/its/mng4500/dep/0.1-SNAPSHOT/dep-0.1-20091219.230823-1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4500</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4500</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4500</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4500</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4522/repo/org/apache/maven/its/mng4522/dep/0.1-SNAPSHOT/dep-0.1-20100123.231127-1.pom b/core-it-suite/src/test/resources/mng-4522/repo/org/apache/maven/its/mng4522/dep/0.1-SNAPSHOT/dep-0.1-20100123.231127-1.pom
index f0ca677..92a4ce9 100644
--- a/core-it-suite/src/test/resources/mng-4522/repo/org/apache/maven/its/mng4522/dep/0.1-SNAPSHOT/dep-0.1-20100123.231127-1.pom
+++ b/core-it-suite/src/test/resources/mng-4522/repo/org/apache/maven/its/mng4522/dep/0.1-SNAPSHOT/dep-0.1-20100123.231127-1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <!-- NOTE: This parent is deliberately missing -->
-    <groupId>org.apache.maven.its.mng4522</groupId>
-    <artifactId>parent</artifactId>
-    <version>0.1-SNAPSHOT</version>
-  </parent>
-
-  <groupId>org.apache.maven.its.mng4522</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4522 :: Dependency</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <!-- NOTE: This parent is deliberately missing -->
+    <groupId>org.apache.maven.its.mng4522</groupId>
+    <artifactId>parent</artifactId>
+    <version>0.1-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.apache.maven.its.mng4522</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4522 :: Dependency</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom
index 749dfb6..30d3d7a 100644
--- a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4526</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4526</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom.md5
index 5732b99..db3a2d5 100644
--- a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-771315020b885483af18982dcd4d5c0f
\ No newline at end of file
+193f2fbe6c1516ca22258584e427099b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom.sha1
index e2ccfe0..234c160 100644
--- a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-e9e44143aaed41bcde6fd0e3abdab5e4ecd76144
\ No newline at end of file
+7d0afc47b4e3f9fa762ddf7758151bb04b60d4a1
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom
index b2c8a9d..4177e32 100644
--- a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4526</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4526</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom.md5
index d8689c6..2ecd21b 100644
--- a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-af5f1719a46438c339d9a8c8b222d313
\ No newline at end of file
+3186799df60b6c0088d9c5a3c8a2ba66
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom.sha1
index 2514bee..eb10c6b 100644
--- a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-4b0da2c24d8a147e0fd71bfacd723e6852b52103
\ No newline at end of file
+176395b2fc03e32f3ed2b69b0112a0ee5b639140
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom
index ef5e039..c94294d 100644
--- a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4526</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4526</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom.md5
index 5235bf2..2390c4d 100644
--- a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-9884c49d2e7f9960ed18f799c51aeff2
\ No newline at end of file
+dc10b2b15fc66a27d4d7917c67d80b2d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom.sha1
index 695ca34..b5a34fc 100644
--- a/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4526/repo/org/apache/maven/its/mng4526/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-2ebddb2020cf3084dbb2e61422e978f0658a6813
\ No newline at end of file
+129396b95207e989bb254ec966caa2234ce8d60e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4553/repo/org/apache/maven/its/mng4553/maven-plugin-api/2.0/maven-plugin-api-2.0.pom b/core-it-suite/src/test/resources/mng-4553/repo/org/apache/maven/its/mng4553/maven-plugin-api/2.0/maven-plugin-api-2.0.pom
index 26d9d68..bf8bbae 100644
--- a/core-it-suite/src/test/resources/mng-4553/repo/org/apache/maven/its/mng4553/maven-plugin-api/2.0/maven-plugin-api-2.0.pom
+++ b/core-it-suite/src/test/resources/mng-4553/repo/org/apache/maven/its/mng4553/maven-plugin-api/2.0/maven-plugin-api-2.0.pom
@@ -1,41 +1,41 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4553</groupId>
-  <artifactId>maven-plugin-api</artifactId>
-  <version>2.0</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4553</name>
-  <description>
-    Verify that the core artifact filter considers both artifact id and group id.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4553</groupId>
+  <artifactId>maven-plugin-api</artifactId>
+  <version>2.0</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4553</name>
+  <description>
+    Verify that the core artifact filter considers both artifact id and group id.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom b/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom
index bdd73e5..65c6a4a 100644
--- a/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom
@@ -1,68 +1,68 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4554</groupId>
-  <artifactId>a-maven-plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4554</groupId>
+  <artifactId>a-maven-plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom.md5
index e5e8ac7..ffb7561 100644
--- a/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom.md5
@@ -1 +1 @@
-2d574de40ceee73a98a6d9e71410e65d
\ No newline at end of file
+3f95d29de76828655789e5785026d174
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom.sha1
index b76c78e..b4696de 100644
--- a/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4554/repo-1/org/apache/maven/its/mng4554/a-maven-plugin/0.1/a-maven-plugin-0.1.pom.sha1
@@ -1 +1 @@
-42c51dfdd6e4bc7fb6fbc7f4d2dd983e8182dd1f
\ No newline at end of file
+c922024196f921779ed781a49cf18935496638d9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom b/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom
index 143a51a..05f51e9 100644
--- a/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom
@@ -1,68 +1,68 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4554</groupId>
-  <artifactId>b-maven-plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4554</groupId>
+  <artifactId>b-maven-plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom.md5
index 793cff7..8b25354 100644
--- a/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom.md5
@@ -1 +1 @@
-019c045bb648ad83ee8193aa2078af24
\ No newline at end of file
+e2ddcf968ff240316b64740be361d49e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom.sha1
index 79ade03..0f138b6 100644
--- a/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4554/repo-2/org/apache/maven/its/mng4554/b-maven-plugin/0.1/b-maven-plugin-0.1.pom.sha1
@@ -1 +1 @@
-111e32c6fb909dd63ee32fd4aefe5676404df036
\ No newline at end of file
+16407d9c8581fb171ed665bc11d02d4f1b4201d9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom b/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom
index 62ab004..c92f603 100644
--- a/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom
@@ -1,81 +1,81 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4561</groupId>
-  <artifactId>plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test :: MNG-4561</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-    <dependency>
-      <!-- this dependency needs to be resolved from the repo in this POM -->
-      <groupId>org.apache.maven.its.mng4561</groupId>
-      <artifactId>plugin-dep</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-
-  <repositories>
-    <repository>
-      <!-- this repo needs to be mirrored/proxied for the test to work -->
-      <id>maven-core-it-repo-b</id>
-      <url>http://bad.host/null</url>
-      <releases>
-        <checksumPolicy>ignore</checksumPolicy>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4561</groupId>
+  <artifactId>plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test :: MNG-4561</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <!-- this dependency needs to be resolved from the repo in this POM -->
+      <groupId>org.apache.maven.its.mng4561</groupId>
+      <artifactId>plugin-dep</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <repositories>
+    <repository>
+      <!-- this repo needs to be mirrored/proxied for the test to work -->
+      <id>maven-core-it-repo-b</id>
+      <url>http://bad.host/null</url>
+      <releases>
+        <checksumPolicy>ignore</checksumPolicy>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom.md5
index b12b790..2726a5b 100644
--- a/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom.md5
@@ -1 +1 @@
-5b67f7f5ec146f0bf41e8c4d488e6ce4
\ No newline at end of file
+d9f35b720abe3f20f21ebca5d596eb38
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom.sha1
index f4851d3..82a8756 100644
--- a/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4561/repo-a/org/apache/maven/its/mng4561/plugin/0.1/plugin-0.1.pom.sha1
@@ -1 +1 @@
-917070e29bd77e25ba66e5b40cdbd72d0b63db9f
\ No newline at end of file
+86c726f0b4a08233df66089c02f0e090a09f712a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4561/repo-b/org/apache/maven/its/mng4561/plugin-dep/0.1/plugin-dep-0.1.pom b/core-it-suite/src/test/resources/mng-4561/repo-b/org/apache/maven/its/mng4561/plugin-dep/0.1/plugin-dep-0.1.pom
index e958be7..b6dd8a2 100644
--- a/core-it-suite/src/test/resources/mng-4561/repo-b/org/apache/maven/its/mng4561/plugin-dep/0.1/plugin-dep-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4561/repo-b/org/apache/maven/its/mng4561/plugin-dep/0.1/plugin-dep-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4561</groupId>
-  <artifactId>plugin-dep</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4561</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4561</groupId>
+  <artifactId>plugin-dep</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4561</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4561/repo-b/org/apache/maven/its/mng4561/plugin-dep/0.1/plugin-dep-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4561/repo-b/org/apache/maven/its/mng4561/plugin-dep/0.1/plugin-dep-0.1.pom.sha1
index 81fc9cd..b30220d 100644
--- a/core-it-suite/src/test/resources/mng-4561/repo-b/org/apache/maven/its/mng4561/plugin-dep/0.1/plugin-dep-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4561/repo-b/org/apache/maven/its/mng4561/plugin-dep/0.1/plugin-dep-0.1.pom.sha1
@@ -1 +1 @@
-b9a7df70c52c575c74cdec3434e061c194e95683
\ No newline at end of file
+2c51962b5b96197c3db591218c392ef543e5efe2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4586/repo/org/apache/maven/its/mng4586/maven-mng4586-plugin/0.1/maven-mng4586-plugin-0.1.pom b/core-it-suite/src/test/resources/mng-4586/repo/org/apache/maven/its/mng4586/maven-mng4586-plugin/0.1/maven-mng4586-plugin-0.1.pom
index 12cf5f4..486747c 100644
--- a/core-it-suite/src/test/resources/mng-4586/repo/org/apache/maven/its/mng4586/maven-mng4586-plugin/0.1/maven-mng4586-plugin-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4586/repo/org/apache/maven/its/mng4586/maven-mng4586-plugin/0.1/maven-mng4586-plugin-0.1.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4586</groupId>
-  <artifactId>maven-mng4586-plugin</artifactId>
-  <version>0.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates an empty file.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4586</groupId>
+  <artifactId>maven-mng4586-plugin</artifactId>
+  <version>0.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates an empty file.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom b/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom
index 12af4bf..2e0c7f8 100644
--- a/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom
@@ -1,49 +1,49 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4590</groupId>
-  <artifactId>import</artifactId>
-  <version>0.1</version>
-
-  <name>Maven Integration Test :: MNG-4590</name>
-  <description>
-    Verify that imported POMs are processed using the same execution properties as the importing POM.
-  </description>
-
-  <properties>
-    <test.version>0.1</test.version>
-  </properties>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.maven.its.mng4590</groupId>
-        <artifactId>dep-a</artifactId>
-        <version>0.1</version>
-        <scope>system</scope>
-        <systemPath>${test.dir}/${test.file}</systemPath>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4590</groupId>
+  <artifactId>import</artifactId>
+  <version>0.1</version>
+
+  <name>Maven Integration Test :: MNG-4590</name>
+  <description>
+    Verify that imported POMs are processed using the same execution properties as the importing POM.
+  </description>
+
+  <properties>
+    <test.version>0.1</test.version>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.maven.its.mng4590</groupId>
+        <artifactId>dep-a</artifactId>
+        <version>0.1</version>
+        <scope>system</scope>
+        <systemPath>${test.dir}/${test.file}</systemPath>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom.md5
index e931bab..cf9854b 100644
--- a/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom.md5
@@ -1 +1 @@
-2106248a9d1e2b1bc4080c36c46d7b2a
\ No newline at end of file
+ce98b64a9e7887ca87e2c40654674950
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom.sha1
index 68836cb..6496b29 100644
--- a/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4590/repo/org/apache/maven/its/mng4590/import/0.1/import-0.1.pom.sha1
@@ -1 +1 @@
-4a6cdf36339a31e0c9bb0a0cae8550e154b32f7a
\ No newline at end of file
+b3b6cf5ee7004bb6818c10d2507e94271293a94f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/direct/0.2/direct-0.2.pom b/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/direct/0.2/direct-0.2.pom
index 50e3e4e..2db4aee 100644
--- a/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/direct/0.2/direct-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/direct/0.2/direct-0.2.pom
@@ -1,46 +1,46 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4600</groupId>
-  <artifactId>direct</artifactId>
-  <version>0.2</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4600 :: Direct Dependency</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4600</groupId>
-      <artifactId>transitive</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4600</groupId>
+  <artifactId>direct</artifactId>
+  <version>0.2</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4600 :: Direct Dependency</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4600</groupId>
+      <artifactId>transitive</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/direct/0.2/direct-0.2.pom.sha1 b/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/direct/0.2/direct-0.2.pom.sha1
index 6752305..65b8acf 100644
--- a/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/direct/0.2/direct-0.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/direct/0.2/direct-0.2.pom.sha1
@@ -1 +1 @@
-25362c78c577ab18bd0fc404e97130f3d05df338
\ No newline at end of file
+6a472c8dcda8b7bc9ece3342226c6c905db1e263
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/transitive/0.1/transitive-0.1.pom b/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/transitive/0.1/transitive-0.1.pom
index 49a7bbb..2a2ad7f 100644
--- a/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/transitive/0.1/transitive-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4600/resolution/repo/org/apache/maven/its/mng4600/transitive/0.1/transitive-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4600</groupId>
-  <artifactId>transitive</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4600 :: Transitive Dependency</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4600</groupId>
+  <artifactId>transitive</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4600 :: Transitive Dependency</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4654/repo/org/apache/maven/its/mng4654/maven-ext-plugin/1.0/maven-ext-plugin-1.0.pom b/core-it-suite/src/test/resources/mng-4654/repo/org/apache/maven/its/mng4654/maven-ext-plugin/1.0/maven-ext-plugin-1.0.pom
index 079ca54..f54daba 100644
--- a/core-it-suite/src/test/resources/mng-4654/repo/org/apache/maven/its/mng4654/maven-ext-plugin/1.0/maven-ext-plugin-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-4654/repo/org/apache/maven/its/mng4654/maven-ext-plugin/1.0/maven-ext-plugin-1.0.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4654</groupId>
-  <artifactId>maven-ext-plugin</artifactId>
-  <version>1.0</version>
-  <packaging>maven-plugin</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4654</groupId>
+  <artifactId>maven-ext-plugin</artifactId>
+  <version>1.0</version>
+  <packaging>maven-plugin</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom
index 236a42e..54aa9b8 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>classworlds</groupId>
-  <artifactId>classworlds</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>classworlds</groupId>
+  <artifactId>classworlds</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom.md5 b/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom.md5
index b74c88f..6b62e30 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom.md5
@@ -1 +1 @@
-c130f7bf5eac9d896bcd01822f7a89c3
\ No newline at end of file
+ea998c65b25ea831d2f0c2cc1f2fb197
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom.sha1 b/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom.sha1
index 6aa6ced..14510c1 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4666/repo/classworlds/classworlds/0.1-stub/classworlds-0.1-stub.pom.sha1
@@ -1 +1 @@
-56244897a5e98668d522ab9e36ecc87f50e1d1c5
\ No newline at end of file
+8987243ccf43c0b79b20cd870e902e43e98c9f57
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-artifact/0.1-stub/maven-artifact-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-artifact/0.1-stub/maven-artifact-0.1-stub.pom
index 7832e38..5aac7ac 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-artifact/0.1-stub/maven-artifact-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-artifact/0.1-stub/maven-artifact-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven</groupId>
-  <artifactId>maven-artifact</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-artifact</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-core/0.1-stub/maven-core-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-core/0.1-stub/maven-core-0.1-stub.pom
index ba75198..6a02e15 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-core/0.1-stub/maven-core-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-core/0.1-stub/maven-core-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven</groupId>
-  <artifactId>maven-core</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-core</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-core/0.1-stub/maven-core-0.1-stub.pom.sha1 b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-core/0.1-stub/maven-core-0.1-stub.pom.sha1
index e9e569c..1f7f27b 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-core/0.1-stub/maven-core-0.1-stub.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-core/0.1-stub/maven-core-0.1-stub.pom.sha1
@@ -1 +1 @@
-e8848bb71569bd95359fa0d19486cd8f7c69ca9a
\ No newline at end of file
+52bc30200fc84773dae76dc5bba98bfa2d6b51ad
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-model/0.1-stub/maven-model-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-model/0.1-stub/maven-model-0.1-stub.pom
index aadff6f..9a07c5e 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-model/0.1-stub/maven-model-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-model/0.1-stub/maven-model-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven</groupId>
-  <artifactId>maven-model</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-model</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-model/0.1-stub/maven-model-0.1-stub.pom.sha1 b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-model/0.1-stub/maven-model-0.1-stub.pom.sha1
index 53ccdd2..83fbf37 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-model/0.1-stub/maven-model-0.1-stub.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-model/0.1-stub/maven-model-0.1-stub.pom.sha1
@@ -1 +1 @@
-21649dfd89823d4ae8a1cb623186800de42dfb26
\ No newline at end of file
+b4040c009adb2d8b53a7fc28271957187a51d3db
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-plugin-api/0.1-stub/maven-plugin-api-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-plugin-api/0.1-stub/maven-plugin-api-0.1-stub.pom
index b68679b..fb43e4d 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-plugin-api/0.1-stub/maven-plugin-api-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-plugin-api/0.1-stub/maven-plugin-api-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven</groupId>
-  <artifactId>maven-plugin-api</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-plugin-api</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-plugin-descriptor/0.1-stub/maven-plugin-descriptor-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-plugin-descriptor/0.1-stub/maven-plugin-descriptor-0.1-stub.pom
index 1812dbb..6337b0f 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-plugin-descriptor/0.1-stub/maven-plugin-descriptor-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-plugin-descriptor/0.1-stub/maven-plugin-descriptor-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven</groupId>
-  <artifactId>maven-plugin-descriptor</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-plugin-descriptor</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-project/0.1-stub/maven-project-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-project/0.1-stub/maven-project-0.1-stub.pom
index 5404329..826191a 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-project/0.1-stub/maven-project-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-project/0.1-stub/maven-project-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven</groupId>
-  <artifactId>maven-project</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-project</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-project/0.1-stub/maven-project-0.1-stub.pom.sha1 b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-project/0.1-stub/maven-project-0.1-stub.pom.sha1
index 704efdd..5c49be7 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-project/0.1-stub/maven-project-0.1-stub.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-project/0.1-stub/maven-project-0.1-stub.pom.sha1
@@ -1 +1 @@
-3951fc7853ae12c937cdbd3670299c0e822ee974
\ No newline at end of file
+cb3030b16f1842830059128203e123b781cec425
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-settings/0.1-stub/maven-settings-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-settings/0.1-stub/maven-settings-0.1-stub.pom
index ed8597e..c8e6b78 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-settings/0.1-stub/maven-settings-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/apache/maven/maven-settings/0.1-stub/maven-settings-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven</groupId>
-  <artifactId>maven-settings</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-settings</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-classworlds/0.1-stub/plexus-classworlds-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-classworlds/0.1-stub/plexus-classworlds-0.1-stub.pom
index def7199..8440d12 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-classworlds/0.1-stub/plexus-classworlds-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-classworlds/0.1-stub/plexus-classworlds-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.codehaus.plexus</groupId>
-  <artifactId>plexus-classworlds</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-classworlds</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-component-api/0.1-stub/plexus-component-api-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-component-api/0.1-stub/plexus-component-api-0.1-stub.pom
index 5b1ad19..4908d02 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-component-api/0.1-stub/plexus-component-api-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-component-api/0.1-stub/plexus-component-api-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.codehaus.plexus</groupId>
-  <artifactId>plexus-component-api</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-component-api</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-container-default/0.1-stub/plexus-container-default-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-container-default/0.1-stub/plexus-container-default-0.1-stub.pom
index 2b8e8d6..1358c02 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-container-default/0.1-stub/plexus-container-default-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-container-default/0.1-stub/plexus-container-default-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.codehaus.plexus</groupId>
-  <artifactId>plexus-container-default</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-container-default</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-utils/0.1-stub/plexus-utils-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-utils/0.1-stub/plexus-utils-0.1-stub.pom
index 315fec5..375a2ec 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-utils/0.1-stub/plexus-utils-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/codehaus/plexus/plexus-utils/0.1-stub/plexus-utils-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.codehaus.plexus</groupId>
-  <artifactId>plexus-utils</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-utils</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-api/0.1-stub/aether-api-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-api/0.1-stub/aether-api-0.1-stub.pom
index 4e42971..4242a9c 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-api/0.1-stub/aether-api-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-api/0.1-stub/aether-api-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.sonatype.aether</groupId>
-  <artifactId>aether-api</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.sonatype.aether</groupId>
+  <artifactId>aether-api</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-api/0.1-stub/aether-api-0.1-stub.pom.sha1 b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-api/0.1-stub/aether-api-0.1-stub.pom.sha1
index 6aa4cbc..875f22e 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-api/0.1-stub/aether-api-0.1-stub.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-api/0.1-stub/aether-api-0.1-stub.pom.sha1
@@ -1 +1 @@
-ca0a547c75d35489e6bbe182dd0ba7a7b3395fc9
\ No newline at end of file
+78d7c0a7cc6f4caa7a66cb28b83d1e612c34ad9e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-impl/0.1-stub/aether-impl-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-impl/0.1-stub/aether-impl-0.1-stub.pom
index 1f17af6..f0d009a 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-impl/0.1-stub/aether-impl-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-impl/0.1-stub/aether-impl-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.sonatype.aether</groupId>
-  <artifactId>aether-impl</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.sonatype.aether</groupId>
+  <artifactId>aether-impl</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-impl/0.1-stub/aether-impl-0.1-stub.pom.sha1 b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-impl/0.1-stub/aether-impl-0.1-stub.pom.sha1
index 3cf69f6..aa6addd 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-impl/0.1-stub/aether-impl-0.1-stub.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-impl/0.1-stub/aether-impl-0.1-stub.pom.sha1
@@ -1 +1 @@
-dc58db0a35d38c2ddb396abc61fdaf63b8a59e10
\ No newline at end of file
+abf6e899ddb06eff2065d288741b1e09f205740f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-spi/0.1-stub/aether-spi-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-spi/0.1-stub/aether-spi-0.1-stub.pom
index 44d20df..964dc0f 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-spi/0.1-stub/aether-spi-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-spi/0.1-stub/aether-spi-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.sonatype.aether</groupId>
-  <artifactId>aether-spi</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.sonatype.aether</groupId>
+  <artifactId>aether-spi</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-spi/0.1-stub/aether-spi-0.1-stub.pom.sha1 b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-spi/0.1-stub/aether-spi-0.1-stub.pom.sha1
index f91a1e2..b2237b2 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-spi/0.1-stub/aether-spi-0.1-stub.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/aether/aether-spi/0.1-stub/aether-spi-0.1-stub.pom.sha1
@@ -1 +1 @@
-4112bc9f7042dbf9041413bbf5b5c7801c2fd578
\ No newline at end of file
+59f7c30a217cb1922e35430aaf8e1feea3bd0874
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/sisu/sisu-inject-plexus/0.1-stub/sisu-inject-plexus-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/sisu/sisu-inject-plexus/0.1-stub/sisu-inject-plexus-0.1-stub.pom
index 9151ad8..d337990 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/sisu/sisu-inject-plexus/0.1-stub/sisu-inject-plexus-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/sisu/sisu-inject-plexus/0.1-stub/sisu-inject-plexus-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.sonatype.sisu</groupId>
-  <artifactId>sisu-inject-plexus</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.sonatype.sisu</groupId>
+  <artifactId>sisu-inject-plexus</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/spice/spice-inject-plexus/0.1-stub/spice-inject-plexus-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/spice/spice-inject-plexus/0.1-stub/spice-inject-plexus-0.1-stub.pom
index 2c6411d..1107c06 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/spice/spice-inject-plexus/0.1-stub/spice-inject-plexus-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/org/sonatype/spice/spice-inject-plexus/0.1-stub/spice-inject-plexus-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.sonatype.spice</groupId>
-  <artifactId>spice-inject-plexus</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.sonatype.spice</groupId>
+  <artifactId>spice-inject-plexus</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4666/repo/plexus/plexus-container-default/0.1-stub/plexus-container-default-0.1-stub.pom b/core-it-suite/src/test/resources/mng-4666/repo/plexus/plexus-container-default/0.1-stub/plexus-container-default-0.1-stub.pom
index 2b8e8d6..1358c02 100644
--- a/core-it-suite/src/test/resources/mng-4666/repo/plexus/plexus-container-default/0.1-stub/plexus-container-default-0.1-stub.pom
+++ b/core-it-suite/src/test/resources/mng-4666/repo/plexus/plexus-container-default/0.1-stub/plexus-container-default-0.1-stub.pom
@@ -1,55 +1,55 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.codehaus.plexus</groupId>
-  <artifactId>plexus-container-default</artifactId>
-  <version>0.1-stub</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-container-default</artifactId>
+  <version>0.1-stub</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4679/repo-1/org/apache/maven/its/mng4679/dep/0.1-SNAPSHOT/dep-0.1-20100518.144321-1.pom b/core-it-suite/src/test/resources/mng-4679/repo-1/org/apache/maven/its/mng4679/dep/0.1-SNAPSHOT/dep-0.1-20100518.144321-1.pom
index 11ea6a2..32219a9 100644
--- a/core-it-suite/src/test/resources/mng-4679/repo-1/org/apache/maven/its/mng4679/dep/0.1-SNAPSHOT/dep-0.1-20100518.144321-1.pom
+++ b/core-it-suite/src/test/resources/mng-4679/repo-1/org/apache/maven/its/mng4679/dep/0.1-SNAPSHOT/dep-0.1-20100518.144321-1.pom
@@ -1,29 +1,29 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4679</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4679</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4679/repo-2/org/apache/maven/its/mng4679/dep/0.1-SNAPSHOT/dep-0.1-20100518.144344-2.pom b/core-it-suite/src/test/resources/mng-4679/repo-2/org/apache/maven/its/mng4679/dep/0.1-SNAPSHOT/dep-0.1-20100518.144344-2.pom
index 5ab5d65..323799d 100644
--- a/core-it-suite/src/test/resources/mng-4679/repo-2/org/apache/maven/its/mng4679/dep/0.1-SNAPSHOT/dep-0.1-20100518.144344-2.pom
+++ b/core-it-suite/src/test/resources/mng-4679/repo-2/org/apache/maven/its/mng4679/dep/0.1-SNAPSHOT/dep-0.1-20100518.144344-2.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4679</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4679</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom
index 29e77bf..d9e36fb 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4690</groupId>
-  <artifactId>a</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4690</groupId>
-      <artifactId>b</artifactId>
-      <version>1</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4690</groupId>
+  <artifactId>a</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4690</groupId>
+      <artifactId>b</artifactId>
+      <version>1</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom.md5 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom.md5
index cd7abaa..20b4faf 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom.md5
@@ -1 +1 @@
-f0c34dc4a6903ce42a1e77fad3a65e30
\ No newline at end of file
+f7a877e5aaa379a0e587691c74d2d789
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom.sha1 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom.sha1
index 2f77760..7402b87 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/a/1/a-1.pom.sha1
@@ -1 +1 @@
-c3bb839a44c7546556e3223e591e3b3b47ffcb74
\ No newline at end of file
+3cf8fc93d371c011ce9be24ac3fca69332fbabd1
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom
index 3df8227..3574ac3 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4690</groupId>
-  <artifactId>b</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4690</groupId>
-      <artifactId>c</artifactId>
-      <version>1</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4690</groupId>
+  <artifactId>b</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4690</groupId>
+      <artifactId>c</artifactId>
+      <version>1</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom.md5 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom.md5
index 719fdfb..9532a93 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom.md5
@@ -1 +1 @@
-ceffb9c313cc3810782aad6697eee93f
\ No newline at end of file
+6dff688b42ba92a4a39231aaa90c9b0d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom.sha1 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom.sha1
index 5a24c95..f1e70ae 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/b/1/b-1.pom.sha1
@@ -1 +1 @@
-a597233a63ac8cd051f58341ad4a0df028cbb101
\ No newline at end of file
+868970228075972173e31af3a7755bff9d0ab9ed
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom
index 4de0bf5..9e0883f 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4690</groupId>
-  <artifactId>c</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4690</groupId>
-      <artifactId>y</artifactId>
-      <version>2</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4690</groupId>
+  <artifactId>c</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4690</groupId>
+      <artifactId>y</artifactId>
+      <version>2</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom.md5 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom.md5
index 3e687ec..11d01a0 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom.md5
@@ -1 +1 @@
-4a5f65d59262d4e555a5ee87893c8dea
\ No newline at end of file
+50f1342596c1d6b069e966d48bcde19c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom.sha1 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom.sha1
index a2f2dea..5e6e797 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/c/1/c-1.pom.sha1
@@ -1 +1 @@
-e5840dd9964e0801a8eb1f0cd6bff302dcd8236f
\ No newline at end of file
+2dad5cdb68ff698cb9521275b4154a4a6dfdfb24
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom
index 48bb6b3..a6bc0a8 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4690</groupId>
-  <artifactId>d</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4690</groupId>
-      <artifactId>x</artifactId>
-      <version>2</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4690</groupId>
+  <artifactId>d</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4690</groupId>
+      <artifactId>x</artifactId>
+      <version>2</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom.md5 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom.md5
index db56be7..d71fae7 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom.md5
@@ -1 +1 @@
-14cb9eefd6d66be1b312cf1b2c5215d4
\ No newline at end of file
+4177e97b98605440bdbc27e3fa1c393f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom.sha1 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom.sha1
index 498b700..030125f 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/d/1/d-1.pom.sha1
@@ -1 +1 @@
-25fffc86db13ccce919a6fae697bbe70399bbf6f
\ No newline at end of file
+00817ec3cb6ced0499599830893420e8f10426cf
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom
index d7c7299..2f8bb5a 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4690</groupId>
-  <artifactId>x</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4690</groupId>
+  <artifactId>x</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom.md5 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom.md5
index 0c7b6c4..5d1f4d7 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom.md5
@@ -1 +1 @@
-66035e6e266a9032ad71e44c509cf388
\ No newline at end of file
+9529b99155e89e74281b362f0b12ff14
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom.sha1 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom.sha1
index 61d331f..ceb470e 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/1/x-1.pom.sha1
@@ -1 +1 @@
-5a693f6a84da9088a3ce68aa0339168ccd3be9bd
\ No newline at end of file
+f8d4bd945dbed8108eef7d5a1a89838499a55467
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom
index 61b9188..943582b 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4690</groupId>
-  <artifactId>x</artifactId>
-  <version>2</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4690</groupId>
-      <artifactId>y</artifactId>
-      <version>1</version>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4690</groupId>
+  <artifactId>x</artifactId>
+  <version>2</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4690</groupId>
+      <artifactId>y</artifactId>
+      <version>1</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom.md5 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom.md5
index 118cb4f..c6f5d4d 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom.md5
@@ -1 +1 @@
-59ab7919ba831ecd86bc46f20f7652f1
\ No newline at end of file
+1fb75f101981b27483def48e90edf039
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom.sha1 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom.sha1
index 65d5340..75f27a5 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/x/2/x-2.pom.sha1
@@ -1 +1 @@
-768550259153ddf72e443a677d53b57a7e62fd26
\ No newline at end of file
+56cd199ea8e108885f7e09caecfab18cbdb9de0c
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom
index 6ae732b..c187478 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4690</groupId>
-  <artifactId>y</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4690</groupId>
+  <artifactId>y</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom.md5 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom.md5
index f20ba99..4cc27eb 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom.md5
@@ -1 +1 @@
-36520335ccd37e86e8cdcec882f8a5df
\ No newline at end of file
+04a439c9ccd69edb905075cb62719bf0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom.sha1 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom.sha1
index 411c4e2..1072085 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/1/y-1.pom.sha1
@@ -1 +1 @@
-6cd91c1e268e7966d7712d9621292a62878ed27d
\ No newline at end of file
+20e315b70a378e0df2e05a12821a54d6eeaa3a44
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom
index 0b4999d..da79ce9 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4690</groupId>
-  <artifactId>y</artifactId>
-  <version>2</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4690</groupId>
+  <artifactId>y</artifactId>
+  <version>2</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom.md5 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom.md5
index 7f6918c..b154833 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom.md5
@@ -1 +1 @@
-68e139da2027653380b75db4353a4fc9
\ No newline at end of file
+feeb46733d599ae149a4399bfe148aa0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom.sha1 b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom.sha1
index e462a17..f638ae5 100644
--- a/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4690/repo/org/apache/maven/its/mng4690/y/2/y-2.pom.sha1
@@ -1 +1 @@
-065e8af02a2f07f9ac3b71d4eabb9d9bd123c2c4
\ No newline at end of file
+6a026eeae64010ecb228dc02372a5242f73ae5ec
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom
index ac6be61..c0318e4 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4696</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4696</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4696</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4696</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom.md5
index 2a30059..6b0f5f3 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-4f119069f3b71fbb8d425a9dc28f0eed
\ No newline at end of file
+e889361255ef4e9734202efea3110693
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom.sha1
index fb3378b..892f8f7 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-c2d41d188fb24ae2f651b71f5b98099370e08941
\ No newline at end of file
+478469cb37e30eb38bf05ce73afe81937371e2db
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom
index 739de95..78a7842 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom
@@ -1,47 +1,47 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4696</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4696</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4696</groupId>
-      <artifactId>a</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4696</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4696</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4696</groupId>
+      <artifactId>a</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom.md5
index 6011448..b51e7c3 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-234553f6da4f1f88b6b45182a9a56ebd
\ No newline at end of file
+c5e881b1779eb31ae4d9016c38c183f8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom.sha1
index aabc490..cd4bcbc 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-7bba4814d6a88e149bdc02704cf88226c9700df8
\ No newline at end of file
+ddde134d9076a0c3015de2b69b8c6c1c8d3429c9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom
index 5e01769..2514b13 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4696</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4696</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4696</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4696</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom.md5
index 94feea2..43db5e1 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-4368d6fcbb48e519175f63f62fa69880
\ No newline at end of file
+539878e97dd0170bc7f664924d874a46
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom.sha1
index 211da11..e651d18 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-bf4d5337aa4ed6f6d17298d26051f6e11cf409dc
\ No newline at end of file
+e0ae17bc39f8fb960cc0b2892edae7ac84cd2d48
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom
index a12a82f..db5ec43 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4696</groupId>
-  <artifactId>d</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4696</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4696</groupId>
+  <artifactId>d</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4696</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom.md5
index 11bf4cb..138973c 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom.md5
@@ -1 +1 @@
-94a4db7dce5e671fade42ac317c2dfc2
\ No newline at end of file
+9b895f11e7bfa2b0be7527492729c66e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom.sha1
index 7c1bbdc..fa07ace 100644
--- a/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4696/repo/org/apache/maven/its/mng4696/d/0.1/d-0.1.pom.sha1
@@ -1 +1 @@
-f7cee92de64eb0c87ce0a8da1db961c7bb7231c4
\ No newline at end of file
+73c0969c44a459286bc10fb3f028ddfdbcaf54c4
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom
index 71eed1c..b7355f6 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom
@@ -1,75 +1,75 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4720</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4720</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.apache.maven.its.mng4720</groupId>
-        <artifactId>c</artifactId>
-        <version>0.1</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.apache.maven.its.mng4720</groupId>
-            <artifactId>d</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4720</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4720</groupId>
-      <artifactId>c</artifactId>
-      <exclusions>
-        <exclusion>
-          <!--
-          NOTE: This exclusion is ineffective by itself, it merely exists to test the interaction/merging with
-          the exclusion given via dependency management.
-          -->
-          <groupId>org.apache.maven.its.mng4720</groupId>
-          <artifactId>void</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4720</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4720</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.maven.its.mng4720</groupId>
+        <artifactId>c</artifactId>
+        <version>0.1</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.apache.maven.its.mng4720</groupId>
+            <artifactId>d</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4720</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4720</groupId>
+      <artifactId>c</artifactId>
+      <exclusions>
+        <exclusion>
+          <!--
+          NOTE: This exclusion is ineffective by itself, it merely exists to test the interaction/merging with
+          the exclusion given via dependency management.
+          -->
+          <groupId>org.apache.maven.its.mng4720</groupId>
+          <artifactId>void</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom.md5
index f0e558e..4561135 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-22eaa4581b51bf9621e27f3022459567
\ No newline at end of file
+6b745f81a005f12158a258e125b8dec9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom.sha1
index ba60dde..75a3610 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-38672c7c97c7b4863d7923f19c3d25d89f0592a2
\ No newline at end of file
+46bee36f33f0960cbd38722d2ee0ee0fc1f21381
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom
index efd0fe5..1c60830 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4720</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4720</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4720</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4720</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom.md5
index b31481d..37ce328 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-2ce1214959ee68889db1b255e08cc96b
\ No newline at end of file
+a0de8edeac0255728ee1cc0ca308492e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom.sha1
index 1d5c897..9eee028 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-6e535d67cdbca8b376c4b2d607a9a14865320ec1
\ No newline at end of file
+562b339654b6471b866c876170a9c75a9d837503
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom
index a380a04..9e39e1c 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom
@@ -1,46 +1,46 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4720</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4720</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4720</groupId>
-      <artifactId>d</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4720</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4720</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4720</groupId>
+      <artifactId>d</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom.md5
index 176bf27..adec6fa 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-90356a5a6f8895e768c7dd1f086ce797
\ No newline at end of file
+f9e055d65d57a5508c66584bbce3c630
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom.sha1
index dccc88a..2f917fc 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-61ac29c35729eb6d5ad1573f38992c0ad1fde8e6
\ No newline at end of file
+7e336a6977df635d2de97e1d30c9ea82d3e1700f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom
index 52cf473..3bb182c 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4720</groupId>
-  <artifactId>d</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4720</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4720</groupId>
+  <artifactId>d</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4720</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom.md5
index 96d7ace..df5a341 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom.md5
@@ -1 +1 @@
-9428f48c208c3cf8810b878c7c23c212
\ No newline at end of file
+7d0cb95a79c22d5d90d66956c763ee4b
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom.sha1
index be15420..12d13c9 100644
--- a/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4720/repo/org/apache/maven/its/mng4720/d/0.1/d-0.1.pom.sha1
@@ -1 +1 @@
-2c8199e9ae9f094ca8423bf3549eee519dd0b99a
\ No newline at end of file
+ff5218967768acd1d80c3c6843d78bbaf46f21ef
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom
index 2b25180..2043e86 100644
--- a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom
@@ -1,47 +1,47 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4721</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4721</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4721</groupId>
-      <artifactId>b</artifactId>
-      <version>0.1</version>
-      <optional>true</optional>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4721</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4721</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4721</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1</version>
+      <optional>true</optional>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom.md5
index 099a917..ba1924e 100644
--- a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-16101d3d051639c4b79513b243e5d586
\ No newline at end of file
+cec43062711de07dc661c426f06fd628
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom.sha1
index b052207..0ae8ddf 100644
--- a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-e93861cbb9615d043da6a6667271ea047c4151df
\ No newline at end of file
+89d4566c74998f7089a3718964b2e0807bf06732
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom
index 4c9def1..9182d07 100644
--- a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom
@@ -1,38 +1,38 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4721</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4721</name>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4721</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4721</name>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom.md5
index 807d195..4462a76 100644
--- a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-a3508b77c4744892cb26749cd443909d
\ No newline at end of file
+c863858741727ce6b938590ccfa45dc1
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom.sha1
index adf19c6..39e1bf9 100644
--- a/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4721/repo/org/apache/maven/its/mng4721/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-c0cb18f493bfc6aa4b2253977500008964456355
\ No newline at end of file
+cbfb061153e3031c6bb8e20591df2a9729d9167e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom
index 31b87d8..e1570bf 100644
--- a/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom
@@ -1,51 +1,51 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.maven.its.mng4729</groupId>
-    <artifactId>p</artifactId>
-    <version>0.1</version>
-  </parent>
-
-  <groupId>org.apache.maven.its.mng4729</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <name>PASSED</name>
-
-  <repositories>
-    <!-- needs to be mirrored, proxied, authed to actually resolve the parent -->
-    <repository>
-      <id>maven-core-it-repo-b</id>
-      <url>@baseurl@/null</url>
-      <releases>
-        <checksumPolicy>ignore</checksumPolicy>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.its.mng4729</groupId>
+    <artifactId>p</artifactId>
+    <version>0.1</version>
+  </parent>
+
+  <groupId>org.apache.maven.its.mng4729</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <name>PASSED</name>
+
+  <repositories>
+    <!-- needs to be mirrored, proxied, authed to actually resolve the parent -->
+    <repository>
+      <id>maven-core-it-repo-b</id>
+      <url>@baseurl@/null</url>
+      <releases>
+        <checksumPolicy>ignore</checksumPolicy>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom.md5
index e3e1f6a..93671c0 100644
--- a/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-702a88f7a66515018e023e28e606c59d
\ No newline at end of file
+18e9cd96180ed2e38965e0e51562518f
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom.sha1
index 1e848b8..1560862 100644
--- a/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4729/repo-a/org/apache/maven/its/mng4729/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-edd88fe6210efbc733006ed710fce424f90abb3b
\ No newline at end of file
+c2dee359ff43b4f8a91b289f6b1c897c182fa7b0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom b/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom
index da7e8e8..7610b9f 100644
--- a/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom
@@ -1,32 +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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4729</groupId>
-  <artifactId>p</artifactId>
-  <version>0.1</version>
-  <packaging>pom</packaging>
-
-  <name>NAME</name>
-  <description>DESC</description>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4729</groupId>
+  <artifactId>p</artifactId>
+  <version>0.1</version>
+  <packaging>pom</packaging>
+
+  <name>NAME</name>
+  <description>DESC</description>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom.md5
index acb3853..298203e 100644
--- a/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom.md5
@@ -1 +1 @@
-c4650ed188afd9ac987a4d77cb091a8e
\ No newline at end of file
+bd653435ba2425538093bee321778221
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom.sha1
index 41d0a61..ad80285 100644
--- a/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4729/repo-b/org/apache/maven/its/mng4729/p/0.1/p-0.1.pom.sha1
@@ -1 +1 @@
-f5d1c787ee3eb64659fdde324452200ff65bed69
\ No newline at end of file
+d6c2873136318e551ded8ce648323cbb64efcdb5
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4745/repo/org/apache/maven/its/mng4745/maven-it-plugin/1.0/maven-it-plugin-1.0.pom b/core-it-suite/src/test/resources/mng-4745/repo/org/apache/maven/its/mng4745/maven-it-plugin/1.0/maven-it-plugin-1.0.pom
index 85cb296..5b9f7fd 100644
--- a/core-it-suite/src/test/resources/mng-4745/repo/org/apache/maven/its/mng4745/maven-it-plugin/1.0/maven-it-plugin-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-4745/repo/org/apache/maven/its/mng4745/maven-it-plugin/1.0/maven-it-plugin-1.0.pom
@@ -1,69 +1,69 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4745</groupId>
-  <artifactId>maven-it-plugin</artifactId>
-  <version>1.0</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates a properties file indicating the plugin version.
-  </description>
-  <inceptionYear>2009</inceptionYear>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4745</groupId>
+  <artifactId>maven-it-plugin</artifactId>
+  <version>1.0</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates a properties file indicating the plugin version.
+  </description>
+  <inceptionYear>2009</inceptionYear>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4745/repo/org/apache/maven/its/mng4745/maven-it-plugin/1.1/maven-it-plugin-1.1.pom b/core-it-suite/src/test/resources/mng-4745/repo/org/apache/maven/its/mng4745/maven-it-plugin/1.1/maven-it-plugin-1.1.pom
index fff0463..d044dd7 100644
--- a/core-it-suite/src/test/resources/mng-4745/repo/org/apache/maven/its/mng4745/maven-it-plugin/1.1/maven-it-plugin-1.1.pom
+++ b/core-it-suite/src/test/resources/mng-4745/repo/org/apache/maven/its/mng4745/maven-it-plugin/1.1/maven-it-plugin-1.1.pom
@@ -1,68 +1,68 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4745</groupId>
-  <artifactId>maven-it-plugin</artifactId>
-  <version>1.1</version>
-  <packaging>maven-plugin</packaging>
-
-  <name>Maven Integration Test Plugin :: Touch</name>
-  <description>
-    A test plugin that creates a properties file indicating the plugin version.
-  </description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <properties>
-    <maven.test.skip>true</maven.test.skip>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>.</directory>
-        <includes>
-          <include>pom.xml</include>
-          <include>src/**</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-  </build>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4745</groupId>
+  <artifactId>maven-it-plugin</artifactId>
+  <version>1.1</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Integration Test Plugin :: Touch</name>
+  <description>
+    A test plugin that creates a properties file indicating the plugin version.
+  </description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <properties>
+    <maven.test.skip>true</maven.test.skip>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>.</directory>
+        <includes>
+          <include>pom.xml</include>
+          <include>src/**</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+  </build>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom
index d5d8204..b25f0f6 100644
--- a/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom
@@ -1,8 +1,8 @@
-<project>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4750</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-</project>
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4750</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom.md5
index 9a96140..e1cbb51 100644
--- a/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-f23df82f82928f2e7b4c5bd6999c83e1
\ No newline at end of file
+cdc972c3722f93829657c64e546b94d2
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom.sha1
index 32c59f9..776aed9 100644
--- a/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4750/repo/org/apache/maven/its/mng4750/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-03009fe6ccae38240813bfbeafb9a7753d3c63f0
\ No newline at end of file
+6782908c5d1f54f0b8f9a61b912835046e29cbb6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom b/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom
index efe378f..b8006d4 100644
--- a/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom
+++ b/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom
@@ -1,67 +1,67 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4755</groupId>
-  <artifactId>dep</artifactId>
-  <version>1</version>
-  <packaging>jar</packaging>
-
-  <name>Maven Integration Test :: MNG-4755</name> 
-  <description>
-    Verify that locally installed artifacts don't suppress fetching of g:a-level remote metadata which is required
-    to locate alternative version (as required by version ranges).
-  </description>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.its.plugins</groupId>
-        <artifactId>maven-it-plugin-artifact</artifactId>
-        <version>2.1-SNAPSHOT</version>
-        <configuration>
-          <mainFile>pom.xml</mainFile>
-        </configuration>
-        <executions>
-          <execution>
-            <id>test</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>set</goal>
-              <goal>attach-pom</goal>
-              <goal>install</goal>
-              <goal>deploy</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4755</groupId>
+  <artifactId>dep</artifactId>
+  <version>1</version>
+  <packaging>jar</packaging>
+
+  <name>Maven Integration Test :: MNG-4755</name> 
+  <description>
+    Verify that locally installed artifacts don't suppress fetching of g:a-level remote metadata which is required
+    to locate alternative version (as required by version ranges).
+  </description>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.its.plugins</groupId>
+        <artifactId>maven-it-plugin-artifact</artifactId>
+        <version>2.1-SNAPSHOT</version>
+        <configuration>
+          <mainFile>pom.xml</mainFile>
+        </configuration>
+        <executions>
+          <execution>
+            <id>test</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>set</goal>
+              <goal>attach-pom</goal>
+              <goal>install</goal>
+              <goal>deploy</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom.md5 b/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom.md5
index 8cc4371..5b5f7c7 100644
--- a/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom.md5
@@ -1 +1 @@
-2230937d34cc7f71121397fe504e490d
\ No newline at end of file
+aa093f17cb07bedac0ba4bff649c01e6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom.sha1 b/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom.sha1
index 5e684ba..233c731 100644
--- a/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4755/test/repo/org/apache/maven/its/mng4755/dep/1/dep-1.pom.sha1
@@ -1 +1 @@
-55c74eac131b5ef83cc9566e2846c7370ada5091
\ No newline at end of file
+3eb844485c13af78facaa1e9affea00f684b955e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom
index 2cde37c..b9dfa07 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4768</groupId>
-  <artifactId>a</artifactId>
-  <version>1.0</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4768</groupId>
+  <artifactId>a</artifactId>
+  <version>1.0</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom.md5 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom.md5
index b2d37d9..e3008e2 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom.md5
@@ -1 +1 @@
-5c52c732b78722a9d63a11c4ccc14424
\ No newline at end of file
+e5051afb26ab15141827189e82f16625
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom.sha1 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom.sha1
index 0cf2caf..de8aab1 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/1.0/a-1.0.pom.sha1
@@ -1 +1 @@
-41b264accbc149151e6be652e0cac555a8dc1174
\ No newline at end of file
+c2a69f9b7ff875a546e25a49fad7bc04ad662769
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom
index c2277b3..b792425 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4768</groupId>
-  <artifactId>a</artifactId>
-  <version>2.0</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4768</groupId>
+  <artifactId>a</artifactId>
+  <version>2.0</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom.md5 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom.md5
index 7a29213..61418ac 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom.md5
@@ -1 +1 @@
-5b927272568088b9dfb79e03949b9ccc
\ No newline at end of file
+1aab6213baab634b85274011a9b8a7b0
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom.sha1 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom.sha1
index 1b61017..ede45a9 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.0/a-2.0.pom.sha1
@@ -1 +1 @@
-e91706cb07f6b37ccd1485806aa86c7c9a932eca
\ No newline at end of file
+8c669f02e0fe38b1c0d98f53c677eb9ac62c08c8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom
index a0fbe80..6c22723 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4768</groupId>
-  <artifactId>a</artifactId>
-  <version>2.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4768</groupId>
+  <artifactId>a</artifactId>
+  <version>2.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom.md5 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom.md5
index a54fc2c..198120c 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom.md5
@@ -1 +1 @@
-d65d8760b28def9b7120b19b6e1712db
\ No newline at end of file
+a565fb7bab8eb0ffdf5a1986a4af2337
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom.sha1
index 3569fd9..14ebc8e 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/a/2.1/a-2.1.pom.sha1
@@ -1 +1 @@
-11fd0f492f791c0dee2957a54ed5c82c58b6b521
\ No newline at end of file
+09269e9745414131bf63085cf3c00b8092b603fe
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom
index f8d06e6..f744027 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4768</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4768</groupId>
-      <artifactId>c</artifactId>
-      <version>0.1</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4768</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4768</groupId>
+      <artifactId>c</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom.md5
index 9116a37..d1fc5ce 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-aff5d2f93c49595cd7efb02dbeef397c
\ No newline at end of file
+7cd28f0bde1ef7c7a88249a5c9dc09d9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom.sha1
index 1212c20..f2ebdee 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-bc10556436602cb6c13d82fa70fb4ecb436d9517
\ No newline at end of file
+0e3aa1e5ea5fadb36de1f352358eaa98001ccb34
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom
index 0252e6a..a33610b 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4768</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4768</groupId>
-      <artifactId>a</artifactId>
-      <version>[2.0,3)</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4768</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4768</groupId>
+      <artifactId>a</artifactId>
+      <version>[2.0,3)</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom.md5
index 8d75e79..bf9c622 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-756b046ac752b9bed9a6805f393d7854
\ No newline at end of file
+37490f224f64e194708ff19348ee0e4d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom.sha1
index 17b1af3..103fd51 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-2648e9accc7b7398fe8d5845aee140be909c86f5
\ No newline at end of file
+8f7c3ed5b76d1f8889fb83119edbef94e28f910d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom
index 786923c..fecb6eb 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom
@@ -1,44 +1,44 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4768</groupId>
-  <artifactId>d</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4768</groupId>
-      <artifactId>a</artifactId>
-      <version>2.0</version>
-    </dependency>
-  </dependencies>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4768</groupId>
+  <artifactId>d</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4768</groupId>
+      <artifactId>a</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom.md5
index 42a456c..5016132 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom.md5
@@ -1 +1 @@
-1d336b1e2455e719874d3cd5b5d416c2
\ No newline at end of file
+2033cc61c65bfe3dce8f92ce498d7f82
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom.sha1
index a489140..afab465 100644
--- a/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4768/repo/org/apache/maven/its/mng4768/d/0.1/d-0.1.pom.sha1
@@ -1 +1 @@
-e8418a6b5ba56e68e46cc5510859bd621640d25c
\ No newline at end of file
+840c66fffda697e9c0d5c62cd7d720971ca9a8aa
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4785/repo/org/apache/maven/its/mng4785/dep/0.1-SNAPSHOT/dep-0.1-20100909.144341-1.pom b/core-it-suite/src/test/resources/mng-4785/repo/org/apache/maven/its/mng4785/dep/0.1-SNAPSHOT/dep-0.1-20100909.144341-1.pom
index 2c8dcec..b9d3c1a 100644
--- a/core-it-suite/src/test/resources/mng-4785/repo/org/apache/maven/its/mng4785/dep/0.1-SNAPSHOT/dep-0.1-20100909.144341-1.pom
+++ b/core-it-suite/src/test/resources/mng-4785/repo/org/apache/maven/its/mng4785/dep/0.1-SNAPSHOT/dep-0.1-20100909.144341-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4785</groupId>
-  <artifactId>dep</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4785</groupId>
+  <artifactId>dep</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom
index c89cadc..6b87b6e 100644
--- a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4789</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4789</groupId>
-      <artifactId>x</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4789</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4789</groupId>
+      <artifactId>x</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom.md5
index 912bb5f..d8a3f21 100644
--- a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-4113426945d28e15173842ffa8bfa421
\ No newline at end of file
+1cbc92c2524272bb6dde20848e2eea06
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom.sha1
index df47fd2..fd21dbb 100644
--- a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-6884b05daae620bc5924cbeda2cf429ba9a48a0c
\ No newline at end of file
+a55a472f1ca108c65375bbac85e828009dbe4404
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom
index cfdc879..2cac708 100644
--- a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4789</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4789</groupId>
-      <artifactId>a</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4789</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4789</groupId>
+      <artifactId>a</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom.md5
index 0f30be7..b3b4825 100644
--- a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-32771ff61622f1a403905c94e725a253
\ No newline at end of file
+f93a8ebd25a304cc032c8c1fe7e933b8
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom.sha1
index b34dcf8..4f628e4 100644
--- a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-5f4c257a568c7e4ce8ee9398cbcee5405010124b
\ No newline at end of file
+c4d7bbef4ed348d15fc2d5ec85bf866da5865510
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom
index 15369b2..534f620 100644
--- a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4789</groupId>
-  <artifactId>x</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4789</groupId>
+  <artifactId>x</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom.md5
index b5b4e7f..110c741 100644
--- a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom.md5
@@ -1 +1 @@
-b09a5903fb6a1aee344b0c949c9ca7d5
\ No newline at end of file
+537539217ad2789a76ca904a63933b7d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom.sha1
index ebab342..fcb8653 100644
--- a/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4789/repo/org/apache/maven/its/mng4789/x/0.1/x-0.1.pom.sha1
@@ -1 +1 @@
-51b616906d6b7cfd3bdd7be89d421087f7de0bf0
\ No newline at end of file
+dfceb6e1136cc2dc9c620c68efa0c14e8a6f053e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4791/repo/org/apache/maven/its/mng4791/a/0.1-SNAPSHOT/a-0.1-20100902.190819-1.pom b/core-it-suite/src/test/resources/mng-4791/repo/org/apache/maven/its/mng4791/a/0.1-SNAPSHOT/a-0.1-20100902.190819-1.pom
index 0c7e192..c3606e5 100644
--- a/core-it-suite/src/test/resources/mng-4791/repo/org/apache/maven/its/mng4791/a/0.1-SNAPSHOT/a-0.1-20100902.190819-1.pom
+++ b/core-it-suite/src/test/resources/mng-4791/repo/org/apache/maven/its/mng4791/a/0.1-SNAPSHOT/a-0.1-20100902.190819-1.pom
@@ -1,39 +1,39 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4791</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <name>MNG-4791</name>
-  <description>PASSED</description>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4791</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <name>MNG-4791</name>
+  <description>PASSED</description>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom
index 2f3bf06..256da54 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4800</groupId>
-  <artifactId>a</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4800</groupId>
-      <artifactId>s</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4800</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4800</groupId>
+      <artifactId>s</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom.md5
index 85d1176..bc06087 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom.md5
@@ -1 +1 @@
-08189eb285ae7607ea25b28713561d40
\ No newline at end of file
+9f72d80e6f49db4a2219daf6c611826e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom.sha1
index 6ec7b10..d165187 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/a/0.1/a-0.1.pom.sha1
@@ -1 +1 @@
-3d7993ff85db2cb1c903dfdc5e6bd353e6661f2b
\ No newline at end of file
+a6502cca3d1be1796f21eb3f8bedc85eff175e6e
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom
index 80e515b..51eca0a 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4800</groupId>
-  <artifactId>b</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4800</groupId>
-      <artifactId>c</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4800</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4800</groupId>
+      <artifactId>c</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom.md5
index d420244..1e43924 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom.md5
@@ -1 +1 @@
-6610a34cdf7d7fec281f49cb4eecd969
\ No newline at end of file
+3454765f57c775473061135210fca26a
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom.sha1
index a4bc125..64c0245 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/b/0.1/b-0.1.pom.sha1
@@ -1 +1 @@
-d8b6fa39da56a1f261cecfe4a6fab733b985108c
\ No newline at end of file
+c86351d7af9a947dc9a232098cef9c88ab2801fb
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom
index 687e111..31c4305 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4800</groupId>
-  <artifactId>c</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4800</groupId>
-      <artifactId>s</artifactId>
-      <version>0.2</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4800</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4800</groupId>
+      <artifactId>s</artifactId>
+      <version>0.2</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom.md5
index 3f2be19..5e1faf8 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom.md5
@@ -1 +1 @@
-d9e7a2eae827e1ea95ca0858cb7abc0b
\ No newline at end of file
+f0f9853599d99b2ead172e2564b5e2cd
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom.sha1
index 45158e4..4b0255e 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/c/0.1/c-0.1.pom.sha1
@@ -1 +1 @@
-c1e2e35023110be12446434f1125ab714910b8b5
\ No newline at end of file
+b1cbc9fe300ac32e5bc57fa5737c81479ef48635
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom
index 22b83ed..518edce 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4800</groupId>
-  <artifactId>s</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4800</groupId>
-      <artifactId>x</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4800</groupId>
+  <artifactId>s</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4800</groupId>
+      <artifactId>x</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom.md5
index d28b199..1f9672f 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom.md5
@@ -1 +1 @@
-5c005af9d3c3f9e51db4249fbb7fd162
\ No newline at end of file
+143d53297f70f622d5e5e9de487aaf33
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom.sha1
index 8458902..14a3810 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.1/s-0.1.pom.sha1
@@ -1 +1 @@
-1c192202a5c03da3be7d1b48611c69ff487f7863
\ No newline at end of file
+66db3046392a4a59d587de3e001d5302090aae98
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom
index 0faddac..13dc593 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom
@@ -1,45 +1,45 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4800</groupId>
-  <artifactId>s</artifactId>
-  <version>0.2</version>
-  <packaging>jar</packaging>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven.its.mng4800</groupId>
-      <artifactId>y</artifactId>
-      <version>0.1</version>
-      <scope>compile</scope>
-    </dependency>
-  </dependencies>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4800</groupId>
+  <artifactId>s</artifactId>
+  <version>0.2</version>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.mng4800</groupId>
+      <artifactId>y</artifactId>
+      <version>0.1</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom.md5 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom.md5
index f88a5a3..618390e 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom.md5
@@ -1 +1 @@
-c0bc90478086b388c8e8635bd13c8e57
\ No newline at end of file
+4ad1851c94dddad0879a1b84556dc05d
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom.sha1 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom.sha1
index c6ed326..8f41549 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/s/0.2/s-0.2.pom.sha1
@@ -1 +1 @@
-1806522cf3d51f5a5e29d1f27cb761e73d641a82
\ No newline at end of file
+a9d567615d2da480258c81f7a273d12e2f9ee7d9
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom
index 9c89a66..d053662 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4800</groupId>
-  <artifactId>x</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4800</groupId>
+  <artifactId>x</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom.md5
index 89c34bd..00c856b 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom.md5
@@ -1 +1 @@
-52c40cf2c79e85ef4af0c9461b2a73ba
\ No newline at end of file
+c0882267715e507587514aed51d4c019
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom.sha1
index 338ce6c..bc66ed6 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/x/0.1/x-0.1.pom.sha1
@@ -1 +1 @@
-a50debecaf26dfed2671e7679cf22997a1088a3e
\ No newline at end of file
+03b6cf1fc6d4adb14fb49c7b5ac515a2762f1f21
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom
index 0595e50..4dd6047 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4800</groupId>
-  <artifactId>y</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4800</groupId>
+  <artifactId>y</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom.md5 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom.md5
index 8e5331f..8663570 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom.md5
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom.md5
@@ -1 +1 @@
-a8ec960c655e39a589787c94a9a8982c
\ No newline at end of file
+0018c2e0e3dca1913d52e7e103db4439
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom.sha1 b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom.sha1
index 84b3cd3..5c9088b 100644
--- a/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom.sha1
+++ b/core-it-suite/src/test/resources/mng-4800/repo/org/apache/maven/its/mng4800/y/0.1/y-0.1.pom.sha1
@@ -1 +1 @@
-63f53bad866fb01e9b934a5471e585145785da3a
\ No newline at end of file
+64a2186b03ac2d0b6fcb22fb0e608079734dfec6
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-4814/repo/org/apache/maven/its/mng4814/producer/0.1-SNAPSHOT/producer-0.1-20100916.215350-1.pom b/core-it-suite/src/test/resources/mng-4814/repo/org/apache/maven/its/mng4814/producer/0.1-SNAPSHOT/producer-0.1-20100916.215350-1.pom
index 2e8eb00..74282ed 100644
--- a/core-it-suite/src/test/resources/mng-4814/repo/org/apache/maven/its/mng4814/producer/0.1-SNAPSHOT/producer-0.1-20100916.215350-1.pom
+++ b/core-it-suite/src/test/resources/mng-4814/repo/org/apache/maven/its/mng4814/producer/0.1-SNAPSHOT/producer-0.1-20100916.215350-1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4814</groupId>
-  <artifactId>producer</artifactId>
-  <version>0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4814</groupId>
+  <artifactId>producer</artifactId>
+  <version>0.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/core-it-suite/src/test/resources/mng-4829/repo/org/apache/maven/its/mng4829/corrupt/0.1/corrupt-0.1.pom b/core-it-suite/src/test/resources/mng-4829/repo/org/apache/maven/its/mng4829/corrupt/0.1/corrupt-0.1.pom
index 81edf38..c629452 100644
--- a/core-it-suite/src/test/resources/mng-4829/repo/org/apache/maven/its/mng4829/corrupt/0.1/corrupt-0.1.pom
+++ b/core-it-suite/src/test/resources/mng-4829/repo/org/apache/maven/its/mng4829/corrupt/0.1/corrupt-0.1.pom
@@ -1,36 +1,36 @@
-<?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>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.its.mng4829</groupId>
-  <artifactId>corrupt</artifactId>
-  <version>0.1</version>
-  <packaging>jar</packaging>
-
-  <distributionManagement>
-    <repository>
-      <id>maven-core-it</id>
-      <url>file:///${basedir}/repo</url>
-    </repository>
-  </distributionManagement>
-</project>
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.mng4829</groupId>
+  <artifactId>corrupt</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
