From 175f91a7fdf488beaf107372e6df065cfec932d0 Mon Sep 17 00:00:00 2001 From: Maarten Mulders Date: Wed, 23 Dec 2020 19:27:11 +0100 Subject: [PATCH 1/6] [MNG-4660] Increase usefulness of logging --- .../apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java index c246b666c..2ef1a38fb 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java @@ -106,7 +106,7 @@ public void testShouldWarnWhenPackagedArtifactIsOutdated() throws Exception verifier3.verifyErrorFreeLog(); try { - verifier3.verifyTextInLog( "Packaged artifact for module-a is not up-to-date" ); + verifier3.verifyTextInLog( "The file module-a/target/classes/example.properties is more recent than the packaged artifact for module-a; using module-a/target/classes instead" ); } catch ( VerificationException e ) { From 2b823adf5862324777df5e9c372fb85c9e364fe8 Mon Sep 17 00:00:00 2001 From: Maarten Mulders Date: Wed, 23 Dec 2020 21:28:50 +0100 Subject: [PATCH 2/6] [MNG-4660] Not intereted in directories --- .../apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java index 2ef1a38fb..6bb19fd5e 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java @@ -106,7 +106,7 @@ public void testShouldWarnWhenPackagedArtifactIsOutdated() throws Exception verifier3.verifyErrorFreeLog(); try { - verifier3.verifyTextInLog( "The file module-a/target/classes/example.properties is more recent than the packaged artifact for module-a; using module-a/target/classes instead" ); + verifier3.verifyTextInLog( "File module-a/target/classes/example.properties is more recent than the packaged artifact for module-a; using module-a/target/classes instead" ); } catch ( VerificationException e ) { From 9a345a63cec1fd092487fd4d9e7d8647ba04e138 Mon Sep 17 00:00:00 2001 From: Maarten Mulders Date: Wed, 23 Dec 2020 22:20:24 +0100 Subject: [PATCH 3/6] [MNG-4660] Print more details when test fails --- ...avenITmng4660OutdatedPackagedArtifact.java | 58 +++++++++++++++++-- 1 file changed, 52 insertions(+), 6 deletions(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java index 6bb19fd5e..2d14a1253 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java @@ -23,13 +23,19 @@ import org.apache.maven.shared.utils.io.FileUtils; import java.io.File; +import java.io.IOException; +import java.nio.file.FileVisitResult; +import java.nio.file.FileVisitor; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.attribute.BasicFileAttributes; import static org.junit.Assert.assertThat; import static org.hamcrest.Matchers.greaterThan; +import static java.nio.file.FileVisitResult.CONTINUE; + /** * This is a test case for a new check introduced with MNG-4660. * That check verifies if a packaged artifact within the Reactor is up-to-date with the outputDirectory of the same project. @@ -110,12 +116,52 @@ public void testShouldWarnWhenPackagedArtifactIsOutdated() throws Exception } catch ( VerificationException e ) { - String message = e.getMessage() + System.lineSeparator(); - message += " " + module1Jar.getFileName() + " -> " + Files.getLastModifiedTime( module1Jar ) - + System.lineSeparator(); - message += " " + module1PropertiesFile.getFileName() + " -> " + Files.getLastModifiedTime( module1PropertiesFile ) - + System.lineSeparator(); - throw new VerificationException( message, e.getCause() ); + final StringBuilder message = new StringBuilder( e.getMessage() ); + message.append( System.lineSeparator() ); + + message.append( " " ) + .append( module1Jar.toAbsolutePath() ) + .append( " -> " ) + .append( Files.getLastModifiedTime( module1Jar ) ) + .append( System.lineSeparator() ); + + message.append( System.lineSeparator() ); + + Path outputDirectory = Paths.get( testDir.toString(), "module-a", "target", "classes" ); + + Files.walkFileTree( outputDirectory, new FileVisitor() + { + @Override + public FileVisitResult preVisitDirectory( Path dir, BasicFileAttributes attrs ) + { + return CONTINUE; + } + + @Override + public FileVisitResult visitFile( Path file, BasicFileAttributes attrs ) + { + message.append( " " ) + .append( file.toAbsolutePath() ) + .append( " -> " ) + .append( attrs.lastModifiedTime() ) + .append( System.lineSeparator() ); + return CONTINUE; + } + + @Override + public FileVisitResult visitFileFailed( Path file, IOException exc ) + { + return CONTINUE; + } + + @Override + public FileVisitResult postVisitDirectory( Path dir, IOException exc ) + { + return CONTINUE; + } + } ); + + throw new VerificationException( message.toString(), e.getCause() ); } verifier3.resetStreams(); } From 6add0b743a711d8fe5c1cfe4a6c4ca6a49731096 Mon Sep 17 00:00:00 2001 From: Maarten Mulders Date: Thu, 24 Dec 2020 21:33:00 +0100 Subject: [PATCH 4/6] [MNG-4660] Add single quotes --- .../apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java index 2d14a1253..f4f911259 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java @@ -112,7 +112,7 @@ public void testShouldWarnWhenPackagedArtifactIsOutdated() throws Exception verifier3.verifyErrorFreeLog(); try { - verifier3.verifyTextInLog( "File module-a/target/classes/example.properties is more recent than the packaged artifact for module-a; using module-a/target/classes instead" ); + verifier3.verifyTextInLog( "File 'module-a/target/classes/example.properties' is more recent than the packaged artifact for 'module-a'; using 'module-a/target/classes' instead" ); } catch ( VerificationException e ) { From 93b723a861cbe8e8ecc4fd4bdf4ce2b0d7c7c748 Mon Sep 17 00:00:00 2001 From: Maarten Mulders Date: Thu, 24 Dec 2020 22:12:09 +0100 Subject: [PATCH 5/6] [MNG-4660] Make test pass on Windows --- .../maven/it/MavenITmng4660OutdatedPackagedArtifact.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java index f4f911259..d35bddaaa 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java @@ -112,7 +112,9 @@ public void testShouldWarnWhenPackagedArtifactIsOutdated() throws Exception verifier3.verifyErrorFreeLog(); try { - verifier3.verifyTextInLog( "File 'module-a/target/classes/example.properties' is more recent than the packaged artifact for 'module-a'; using 'module-a/target/classes' instead" ); + Path path = Paths.get( "module-a", "target", "classes", "example.properties" ); + verifier3.verifyTextInLog( "File '" + path.toString() + "' is more recent than the packaged artifact for 'module-a'; " + + "using 'module-a/target/classes' instead" ); } catch ( VerificationException e ) { From 4d907ecbd7bca0af7b77b14c3f99e9ca2b7ae1d8 Mon Sep 17 00:00:00 2001 From: Maarten Mulders Date: Fri, 25 Dec 2020 11:04:53 +0100 Subject: [PATCH 6/6] [MNG-4660] Make test pass on Windows --- .../it/MavenITmng4660OutdatedPackagedArtifact.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java index d35bddaaa..52650f9c6 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java @@ -112,9 +112,13 @@ public void testShouldWarnWhenPackagedArtifactIsOutdated() throws Exception verifier3.verifyErrorFreeLog(); try { - Path path = Paths.get( "module-a", "target", "classes", "example.properties" ); - verifier3.verifyTextInLog( "File '" + path.toString() + "' is more recent than the packaged artifact for 'module-a'; " - + "using 'module-a/target/classes' instead" ); + verifier3.verifyTextInLog( "File '" + + Paths.get( "module-a", "target", "classes", "example.properties" ) + + "' is more recent than the packaged artifact for 'module-a'; " + + "using '" + + Paths.get( "module-a", "target","classes" ) + + "' instead" + ); } catch ( VerificationException e ) {