diff --git a/maven-model-builder/pom.xml b/maven-model-builder/pom.xml
index d447d6c0198a..a087c36a811e 100644
--- a/maven-model-builder/pom.xml
+++ b/maven-model-builder/pom.xml
@@ -71,9 +71,13 @@ under the License.
test
- xmlunit
- xmlunit
- 1.6
+ org.xmlunit
+ xmlunit-core
+ test
+
+
+ org.xmlunit
+ xmlunit-matchers
test
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
index 68dd71ea8bf4..cabe1a5331e0 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
@@ -21,21 +21,16 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.building.SimpleProblemCollector;
-import org.apache.maven.model.io.ModelParseException;
import org.apache.maven.model.io.ModelReader;
import org.apache.maven.model.io.ModelWriter;
import org.codehaus.plexus.PlexusTestCase;
-import org.custommonkey.xmlunit.XMLAssert;
-import org.custommonkey.xmlunit.XMLUnit;
-import junit.framework.AssertionFailedError;
+import org.xmlunit.matchers.CompareMatcher;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.nio.charset.StandardCharsets;
+
+import static org.junit.Assert.assertThat;
/**
* @author Hervé Boutemy
@@ -66,7 +61,7 @@ private File getPom( String name )
}
private Model getModel( String name )
- throws ModelParseException, IOException
+ throws IOException
{
return reader.read( getPom( name ), null );
}
@@ -80,7 +75,7 @@ public void testPluginConfiguration()
/**
* Check most classical urls inheritance: directory structure where parent POM in parent directory
* and child directory == artifactId
- * @throws Exception
+ * @throws IOException Model read problem
*/
public void testUrls()
throws Exception
@@ -90,10 +85,10 @@ public void testUrls()
/**
* Flat directory structure: parent & child POMs in sibling directories, child directory == artifactId.
- * @throws Exception
+ * @throws IOException Model read problem
*/
public void testFlatUrls()
- throws Exception
+ throws IOException
{
testInheritance( "flat-urls" );
}
@@ -112,10 +107,10 @@ public void testNoAppendUrls()
* Tricky case: flat directory structure, but child directory != artifactId.
* Model interpolation does not give same result when calculated from build or from repo...
* This is why MNG-5000 fix in code is marked as bad practice (uses file names)
- * @throws Exception
+ * @throws IOException Model read problem
*/
public void testFlatTrickyUrls()
- throws Exception
+ throws IOException
{
// parent references child with artifactId (which is not directory name)
// then relative path calculation will fail during build from disk but success when calculated from repo
@@ -125,46 +120,49 @@ public void testFlatTrickyUrls()
testInheritance( "tricky-flat-artifactId-urls", false );
//fail( "should have failed since module reference == artifactId != directory name" );
}
- catch ( AssertionFailedError afe )
+ catch ( AssertionError afe )
{
// expected failure: wrong relative path calculation
assertTrue( afe.getMessage(),
- afe.getMessage().contains( "http://www.apache.org/path/to/parent/child-artifact-id/" ) );
+ afe.getMessage().contains(
+ "Expected text value 'http://www.apache.org/path/to/parent/child-artifact-id/' but was " +
+ "'http://www.apache.org/path/to/parent/../child-artifact-id/'" ) );
}
// but ok from repo: local disk is ignored
testInheritance( "tricky-flat-artifactId-urls", true );
// parent references child with directory name (which is not artifact id)
- // then relative path calculation will success during build from disk but failwhen calculated from repo
+ // then relative path calculation will success during build from disk but fail when calculated from repo
testInheritance( "tricky-flat-directory-urls", false );
try
{
testInheritance( "tricky-flat-directory-urls", true );
fail( "should have failed since module reference == directory name != artifactId" );
}
- catch ( AssertionFailedError afe )
+ catch ( AssertionError afe )
{
// expected failure
- assertTrue( afe.getMessage(),
- afe.getMessage().contains( "http://www.apache.org/path/to/parent/child-artifact-id/" ) );
+ assertTrue( afe.getMessage(), afe.getMessage().contains(
+ "Expected text value 'http://www.apache.org/path/to/parent/../child-artifact-id/' but was " +
+ "'http://www.apache.org/path/to/parent/child-artifact-id/'" ) );
}
}
public void testWithEmptyUrl()
- throws Exception
+ throws IOException
{
testInheritance( "empty-urls", false );
}
public void testInheritance( String baseName )
- throws Exception
+ throws IOException
{
testInheritance( baseName, false );
testInheritance( baseName, true );
}
public void testInheritance( String baseName, boolean fromRepo )
- throws Exception
+ throws IOException
{
Model parent = getModel( baseName + "-parent" );
@@ -189,17 +187,12 @@ public void testInheritance( String baseName, boolean fromRepo )
// check with getPom( baseName + "-expected" )
File expected = getPom( baseName + "-expected" );
- try ( Reader control = new InputStreamReader( new FileInputStream( expected ), StandardCharsets.UTF_8 );
- Reader test = new InputStreamReader( new FileInputStream( actual ), StandardCharsets.UTF_8 ) )
- {
- XMLUnit.setIgnoreComments( true );
- XMLUnit.setIgnoreWhitespace( true );
- XMLAssert.assertXMLEqual( control, test );
- }
- }
+
+ assertThat( actual, CompareMatcher.isIdenticalTo( expected ).ignoreComments().ignoreWhitespace() );
+ }
public void testModulePathNotArtifactId()
- throws Exception
+ throws IOException
{
Model parent = getModel( "module-path-not-artifactId-parent" );
@@ -215,12 +208,7 @@ public void testModulePathNotArtifactId()
// check with getPom( "module-path-not-artifactId-effective" )
File expected = getPom( "module-path-not-artifactId-expected" );
- try ( Reader control = new InputStreamReader( new FileInputStream( expected ), StandardCharsets.UTF_8 );
- Reader test = new InputStreamReader( new FileInputStream( actual ), StandardCharsets.UTF_8 ) )
- {
- XMLUnit.setIgnoreComments( true );
- XMLUnit.setIgnoreWhitespace( true );
- XMLAssert.assertXMLEqual( control, test );
- }
+
+ assertThat( actual, CompareMatcher.isIdenticalTo(expected).ignoreComments().ignoreWhitespace() );
}
}
diff --git a/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-expected.xml b/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-expected.xml
index 00a21f3ddefc..318ee4488a62 100644
--- a/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-expected.xml
+++ b/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-expected.xml
@@ -34,9 +34,9 @@ under the License.
parent
- post@mailing.list.com
subscribe@mailing.list.com
unsubscribe@mailing.list.com
+ post@mailing.list.com
diff --git a/pom.xml b/pom.xml
index 4e370c01fd54..be6cd4adff18 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,7 @@ under the License.
1.3
1.1.1
1.7.25
+ 2.2.1
true
apache-maven
@@ -401,6 +402,18 @@ under the License.
${mockitoVersion}
test
+
+ org.xmlunit
+ xmlunit-core
+ ${xmlunitVersion}
+ test
+
+
+ org.xmlunit
+ xmlunit-matchers
+ ${xmlunitVersion}
+ test
+