diff --git a/pom.xml b/pom.xml index 8d70dd47..10a20382 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ under the License. org.apache.maven.extensions maven-extensions - 41 + 44 diff --git a/src/main/java/org/apache/maven/buildcache/hash/HashFactory.java b/src/main/java/org/apache/maven/buildcache/hash/HashFactory.java index 731480a6..ec7197e3 100644 --- a/src/main/java/org/apache/maven/buildcache/hash/HashFactory.java +++ b/src/main/java/org/apache/maven/buildcache/hash/HashFactory.java @@ -28,14 +28,14 @@ * HashFactory */ public enum HashFactory { - SHA1(new SHA("SHA-1")), - SHA256(new SHA("SHA-256")), - SHA384(new SHA("SHA-384")), - SHA512(new SHA("SHA-512")), - XX(new Zah("XX", LongHashFunction.xx(), Zah.MemoryPolicy.Standard)), - XXMM(new Zah("XXMM", LongHashFunction.xx(), Zah.MemoryPolicy.MemoryMappedBuffers)), - METRO(new Zah("METRO", LongHashFunction.metro(), Zah.MemoryPolicy.Standard)), - METRO_MM(new Zah("METRO+MM", LongHashFunction.metro(), Zah.MemoryPolicy.MemoryMappedBuffers)); + sha1(new SHA("SHA-1")), + sha256(new SHA("SHA-256")), + sha384(new SHA("SHA-384")), + sha512(new SHA("SHA-512")), + xx(new Zah("XX", LongHashFunction.xx(), Zah.MemoryPolicy.Standard)), + xxmm(new Zah("XXMM", LongHashFunction.xx(), Zah.MemoryPolicy.MemoryMappedBuffers)), + metro(new Zah("METRO", LongHashFunction.metro(), Zah.MemoryPolicy.Standard)), + metroMm(new Zah("METRO+MM", LongHashFunction.metro(), Zah.MemoryPolicy.MemoryMappedBuffers)); private static final Map LOOKUP = new HashMap<>(); diff --git a/src/test/java/org/apache/maven/buildcache/BuildInfoTest.java b/src/test/java/org/apache/maven/buildcache/BuildInfoTest.java index 76b2be3f..0b3d3014 100644 --- a/src/test/java/org/apache/maven/buildcache/BuildInfoTest.java +++ b/src/test/java/org/apache/maven/buildcache/BuildInfoTest.java @@ -73,7 +73,7 @@ public void name() throws Exception { final org.apache.maven.artifact.Artifact attachedArtifact = new DefaultArtifact("ag", "aa", "av", "as", "at", "ac", new DefaultArtifactHandler()); buildInfo.setAttachedArtifacts(Build.createAttachedArtifacts( - Collections.singletonList(attachedArtifact), HashFactory.XX.createAlgorithm())); + Collections.singletonList(attachedArtifact), HashFactory.xx.createAlgorithm())); buildInfo.setProjectsInputInfo(main); buildInfo.setExecutions(createExecutions()); diff --git a/src/test/java/org/apache/maven/buildcache/checksum/InputExclusionTest.java b/src/test/java/org/apache/maven/buildcache/checksum/InputExclusionTest.java index ec3f2835..9689ddae 100644 --- a/src/test/java/org/apache/maven/buildcache/checksum/InputExclusionTest.java +++ b/src/test/java/org/apache/maven/buildcache/checksum/InputExclusionTest.java @@ -400,20 +400,20 @@ private ExclusionResolver createExclusionResolver( * - other-file.json */ private class FsTree { - public Path txtFileRootFolder; - public Path javaFileRootFolder; - public Path jsonFileRootFolder; - public Path folder1; - public Path txtFileFolder1; - public Path javaFileFolder1; - public Path jsonFileFolder1; - public Path subFolder1; - public Path txtFileSubFolder1; - public Path javaFileSubFolder1; - public Path jsonFileSubFolder1; - public Path folder2; - public Path txtFileFolder2; - public Path javaFileFolder2; - public Path jsonFileFolder2; + private Path txtFileRootFolder; + private Path javaFileRootFolder; + private Path jsonFileRootFolder; + private Path folder1; + private Path txtFileFolder1; + private Path javaFileFolder1; + private Path jsonFileFolder1; + private Path subFolder1; + private Path txtFileSubFolder1; + private Path javaFileSubFolder1; + private Path jsonFileSubFolder1; + private Path folder2; + private Path txtFileFolder2; + private Path javaFileFolder2; + private Path jsonFileFolder2; } } diff --git a/src/test/java/org/apache/maven/buildcache/checksum/SHAHashTest.java b/src/test/java/org/apache/maven/buildcache/checksum/SHAHashTest.java index 68b1ada4..700b73a7 100644 --- a/src/test/java/org/apache/maven/buildcache/checksum/SHAHashTest.java +++ b/src/test/java/org/apache/maven/buildcache/checksum/SHAHashTest.java @@ -42,7 +42,7 @@ import org.apache.maven.buildcache.hash.HashChecksum; import org.junit.jupiter.api.Test; -import static org.apache.maven.buildcache.hash.HashFactory.SHA256; +import static org.apache.maven.buildcache.hash.HashFactory.sha256; import static org.junit.jupiter.api.Assertions.assertEquals; public class SHAHashTest { @@ -56,8 +56,8 @@ public class SHAHashTest { private static final String WORLD_CHECKSUM = "63e5c163c81ee9a3ed99d365ff963ecea340cc455deeac7c4b63ac75b9cf4706"; private static final String FULL_CHECKSUM = "7305db9b2abccd706c256db3d97e5ff48d677cfe4d3a5904afb7da0e3950e1e2"; - private static final HashAlgorithm ALGORITHM = SHA256.createAlgorithm(); - private static final HashChecksum CHECKSUM = SHA256.createChecksum(0); + private static final HashAlgorithm ALGORITHM = sha256.createAlgorithm(); + private static final HashChecksum CHECKSUM = sha256.createChecksum(0); @Test public void testEmptyArray() { diff --git a/src/test/java/org/apache/maven/buildcache/checksum/XXHashTest.java b/src/test/java/org/apache/maven/buildcache/checksum/XXHashTest.java index 6a1f9c89..dd346373 100644 --- a/src/test/java/org/apache/maven/buildcache/checksum/XXHashTest.java +++ b/src/test/java/org/apache/maven/buildcache/checksum/XXHashTest.java @@ -43,8 +43,8 @@ import org.apache.maven.buildcache.hash.HashChecksum; import org.junit.jupiter.api.Test; -import static org.apache.maven.buildcache.hash.HashFactory.XX; -import static org.apache.maven.buildcache.hash.HashFactory.XXMM; +import static org.apache.maven.buildcache.hash.HashFactory.xx; +import static org.apache.maven.buildcache.hash.HashFactory.xxmm; import static org.junit.jupiter.api.Assertions.assertEquals; public class XXHashTest { @@ -60,7 +60,7 @@ public class XXHashTest { private static final String WORLD_CHECKSUM = "cb21505d7a714523"; private static final String FULL_CHECKSUM = "b8ca8fa824d335e9"; - private static final HashAlgorithm ALGORITHM = XX.createAlgorithm(); + private static final HashAlgorithm ALGORITHM = xx.createAlgorithm(); @Test public void testEmptyArray() { @@ -92,32 +92,32 @@ public void testSimpleChecksum() { @Test public void testEmptyBuffer() { - assertEmptyBuffer(XX.createChecksum(0)); - assertEmptyBuffer(XXMM.createChecksum(0)); + assertEmptyBuffer(xx.createChecksum(0)); + assertEmptyBuffer(xxmm.createChecksum(0)); } @Test public void testSingleHash() { - assertSingleHash(XX.createChecksum(1)); - assertSingleHash(XXMM.createChecksum(1)); + assertSingleHash(xx.createChecksum(1)); + assertSingleHash(xxmm.createChecksum(1)); } @Test public void testSingleChecksum() { - assertSingleChecksum(XX.createChecksum(1)); - assertSingleChecksum(XXMM.createChecksum(1)); + assertSingleChecksum(xx.createChecksum(1)); + assertSingleChecksum(xxmm.createChecksum(1)); } @Test public void testNotFullChecksum() { - assertSingleChecksum(XX.createChecksum(2)); - assertSingleChecksum(XXMM.createChecksum(2)); + assertSingleChecksum(xx.createChecksum(2)); + assertSingleChecksum(xxmm.createChecksum(2)); } @Test public void testFullChecksum() { - assertFullChecksum(XX.createChecksum(2)); - assertFullChecksum(XXMM.createChecksum(2)); + assertFullChecksum(xx.createChecksum(2)); + assertFullChecksum(xxmm.createChecksum(2)); } private void assertEmptyBuffer(HashChecksum checksum) { diff --git a/src/test/java/org/apache/maven/buildcache/hash/PerfTest.java b/src/test/java/org/apache/maven/buildcache/hash/PerfTest.java index 3c10f661..65bc1746 100644 --- a/src/test/java/org/apache/maven/buildcache/hash/PerfTest.java +++ b/src/test/java/org/apache/maven/buildcache/hash/PerfTest.java @@ -73,33 +73,33 @@ String doTest(HashFactory hashFactory, HashState state) throws IOException { } @Benchmark - public String SHA1(HashState state) throws IOException { - return doTest(HashFactory.SHA1, state); + public String sha1(HashState state) throws IOException { + return doTest(HashFactory.sha1, state); } @Benchmark - public String SHA256(HashState state) throws IOException { - return doTest(HashFactory.SHA256, state); + public String sha256(HashState state) throws IOException { + return doTest(HashFactory.sha256, state); } @Benchmark - public String XX(HashState state) throws IOException { - return doTest(HashFactory.XX, state); + public String xx(HashState state) throws IOException { + return doTest(HashFactory.xx, state); } @Benchmark - public String XXMM(HashState state) throws IOException { - return doTest(HashFactory.XXMM, state); + public String xxmm(HashState state) throws IOException { + return doTest(HashFactory.xxmm, state); } @Benchmark - public String METRO(HashState state) throws IOException { - return doTest(HashFactory.METRO, state); + public String metro(HashState state) throws IOException { + return doTest(HashFactory.metro, state); } @Benchmark - public String METRO_MM(HashState state) throws IOException { - return doTest(HashFactory.METRO_MM, state); + public String metroMm(HashState state) throws IOException { + return doTest(HashFactory.metroMm, state); } /* diff --git a/src/test/java/org/apache/maven/buildcache/its/CoreExtensionTest.java b/src/test/java/org/apache/maven/buildcache/its/CoreExtensionTest.java index 32142666..4d14222e 100644 --- a/src/test/java/org/apache/maven/buildcache/its/CoreExtensionTest.java +++ b/src/test/java/org/apache/maven/buildcache/its/CoreExtensionTest.java @@ -43,7 +43,7 @@ void simple(Verifier verifier) throws VerificationException { } @Test - void simple_build_change_version_reuse_build_cache(Verifier verifier) throws VerificationException { + void simpleBuildChangeVersionReuseBuildCache(Verifier verifier) throws VerificationException { verifier.setAutoclean(false); verifier.setLogFileName("../log-1.txt"); diff --git a/src/test/java/org/apache/maven/buildcache/its/IncrementalRestoreTest.java b/src/test/java/org/apache/maven/buildcache/its/IncrementalRestoreTest.java index 5656fc04..47f7972c 100644 --- a/src/test/java/org/apache/maven/buildcache/its/IncrementalRestoreTest.java +++ b/src/test/java/org/apache/maven/buildcache/its/IncrementalRestoreTest.java @@ -96,11 +96,24 @@ public class IncrementalRestoreTest { public static final String SKIPPING_PLUGIN_EXECUTION_CACHED_FAILSAFE_VERIFY = "Skipping plugin execution (cached): failsafe:verify"; + private Path jarCacheFile; + private Path jarSourcesCacheFile; + private Path jarJavadocCacheFile; + @Test void simple(Verifier verifier) throws VerificationException, IOException { verifier.setAutoclean(false); verifier.setMavenDebug(true); + initialBuild(verifier); + verifyPackageWithCache(verifier); + verifyWithCache(verifier); + installWithCache(verifier); + deployWithCache(verifier); + replayInstallWithCache(verifier); + } + + private void initialBuild(Verifier verifier) throws VerificationException, IOException { // First build, nothing in cache verifier.setLogFileName("../log-package.txt"); verifier.executeGoal("package"); @@ -116,28 +129,22 @@ void simple(Verifier verifier) throws VerificationException, IOException { verifier.verifyFilePresent(GENERATED_JAR); // First build : all resources are present in the target folder - verifier.verifyFilePresent(EXTRA_OUTPUT_1); - verifier.verifyFilePresent(EXTRA_OUTPUT_2); - verifier.verifyFilePresent(EXTRA_OUTPUT_3); - verifier.verifyFilePresent(EXTRA_OUTPUT_4); - verifier.verifyFilePresent(EXTRA_OUTPUT_5); - verifier.verifyFilePresent(EXTRA_OUTPUT_6); + verifyAllExtraOutputsPresent(verifier); Path buildInfoPath = getSavedBuildInfoPath(verifier); - Path jarCacheFile = buildInfoPath.getParent().resolve(MBUILDCACHE_INCREMENTAL_JAR); - Path jarSourcesCacheFile = buildInfoPath.getParent().resolve(MBUILDCACHE_INCREMENTAL_SOURCES_JAR); - Path jarJavadocCacheFile = buildInfoPath.getParent().resolve(MBUILDCACHE_INCREMENTAL_JAVADOC_JAR); + jarCacheFile = buildInfoPath.getParent().resolve(MBUILDCACHE_INCREMENTAL_JAR); + jarSourcesCacheFile = buildInfoPath.getParent().resolve(MBUILDCACHE_INCREMENTAL_SOURCES_JAR); + jarJavadocCacheFile = buildInfoPath.getParent().resolve(MBUILDCACHE_INCREMENTAL_JAVADOC_JAR); Assertions.assertTrue(Files.exists(jarCacheFile), "Expected artifact saved in build cache."); Assertions.assertFalse( Files.exists(jarSourcesCacheFile), "Not expected sources artifact saved in build cache."); Assertions.assertFalse( Files.exists(jarJavadocCacheFile), "Not expected javadoc artifact saved in build cache."); + } + private void verifyPackageWithCache(Verifier verifier) throws VerificationException { // Verify clean build, with the same goal should be fully restored - verifier.setMavenDebug(false); - verifier.setLogFileName("../log-clean.txt"); - verifier.executeGoal("clean"); - verifier.verifyFileNotPresent(GENERATED_JAR); + cleanBuild(verifier); verifier.setLogFileName("../log-package-2.txt"); verifier.executeGoal("package"); @@ -146,28 +153,15 @@ void simple(Verifier verifier) throws VerificationException, IOException { verifier.verifyTextInLog( "Found cached build, restoring org.apache.maven.caching.test:mbuildcache-incremental from cache by checksum"); verifier.verifyErrorFreeLog(); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_RESOURCES); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_COMPILER_COMPILE); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_TEST_RESOURCES); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_COMPILER_TEST_COMPILE); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_SUREFIRE_TEST); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_JAR_JAR); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_COPY); + verifySkippedPluginExecutions(verifier); verifier.verifyFilePresent(GENERATED_JAR); - // 2nd build with cache : only cached extra resources are present in the target folder - verifier.verifyFilePresent(EXTRA_OUTPUT_1); - verifier.verifyFilePresent(EXTRA_OUTPUT_2); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_3); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_4); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_5); - verifier.verifyFilePresent(EXTRA_OUTPUT_6); + verifyCachedExtraOutputs(verifier); Assertions.assertTrue(Files.exists(jarCacheFile), "Expected artifact saved in build cache."); + } + private void verifyWithCache(Verifier verifier) throws VerificationException { // Next step : verify - verifier.setMavenDebug(false); - verifier.setLogFileName("../log-clean.txt"); - verifier.executeGoal("clean"); - verifier.verifyFileNotPresent(GENERATED_JAR); + cleanBuild(verifier); verifier.setLogFileName("../log-verify.txt"); verifier.executeGoal("verify"); @@ -176,98 +170,52 @@ void simple(Verifier verifier) throws VerificationException, IOException { verifier.verifyTextInLog( "Project org.apache.maven.caching.test:mbuildcache-incremental restored partially. Highest cached goal: package, requested: verify"); verifier.verifyErrorFreeLog(); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_RESOURCES); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_COMPILER_COMPILE); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_TEST_RESOURCES); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_COMPILER_TEST_COMPILE); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_SUREFIRE_TEST); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_JAR_JAR); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_COPY); + verifySkippedPluginExecutions(verifier); verifier.verifyTextInLog(INTEGRATION_TEST_DEFAULT_MBUILDCACHE_INCREMENTAL); verifier.verifyTextInLog(VERIFY_DEFAULT_MBUILDCACHE_INCREMENTAL); verifier.verifyTextInLog(SAVED_BUILD_TO_LOCAL_FILE); verifier.verifyFilePresent(GENERATED_JAR); - // only cached extra resources are present in the target folder - verifier.verifyFilePresent(EXTRA_OUTPUT_1); - verifier.verifyFilePresent(EXTRA_OUTPUT_2); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_3); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_4); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_5); - verifier.verifyFilePresent(EXTRA_OUTPUT_6); + verifyCachedExtraOutputs(verifier); Assertions.assertTrue(Files.exists(jarCacheFile), "Expected artifact saved in build cache."); + } + private void installWithCache(Verifier verifier) throws VerificationException { // Install with clean build, with a higher goal should restore cached mojo executions and apply increments - verifier.setMavenDebug(false); - verifier.setLogFileName("../log-clean.txt"); - verifier.executeGoal("clean"); - verifier.verifyFileNotPresent(GENERATED_JAR); + cleanBuild(verifier); verifier.setLogFileName("../log-install.txt"); verifier.executeGoal("install"); verifier.verifyErrorFreeLog(); verifier.verifyTextInLog( "Project org.apache.maven.caching.test:mbuildcache-incremental restored partially. Highest cached goal: verify, requested: install"); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_RESOURCES); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_COMPILER_COMPILE); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_TEST_RESOURCES); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_COMPILER_TEST_COMPILE); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_SUREFIRE_TEST); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_JAR_JAR); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_COPY); + verifySkippedPluginExecutions(verifier); verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_FAILSAFE_INTEGRATION_TEST); verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_FAILSAFE_VERIFY); - verifyNoTextInLog(verifier, RESOURCES_DEFAULT_RESOURCES_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, COMPILE_DEFAULT_COMPILE_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, TEST_RESOURCES_DEFAULT_TEST_RESOURCES_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, TEST_COMPILE_DEFAULT_TEST_COMPILE_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, TEST_DEFAULT_TEST_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, JAR_DEFAULT_JAR_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, INTEGRATION_TEST_DEFAULT_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, VERIFY_DEFAULT_MBUILDCACHE_INCREMENTAL); + verifyNoCachedPluginExecutions(verifier); verifier.verifyTextInLog(INSTALL_DEFAULT_INSTALL_MBUILDCACHE_INCREMENTAL); final String installToLocalRepoString = "Installing " + verifier.getBasedir() + File.separatorChar + EXTRA_OUTPUT_1 + " to "; verifier.verifyTextInLog(installToLocalRepoString); verifier.verifyTextInLog(SAVED_BUILD_TO_LOCAL_FILE); verifier.verifyFilePresent(GENERATED_JAR); - // only cached extra resources are present in the target folder - verifier.verifyFilePresent(EXTRA_OUTPUT_1); - verifier.verifyFilePresent(EXTRA_OUTPUT_2); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_3); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_4); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_5); - verifier.verifyFilePresent(EXTRA_OUTPUT_6); + verifyCachedExtraOutputs(verifier); Assertions.assertTrue(Files.exists(jarCacheFile), "Expected artifact saved in build cache."); + } + private void deployWithCache(Verifier verifier) throws VerificationException { // Deploy with clean build, with a higher goal should restore cached mojo executions and apply increments - verifier.setMavenDebug(false); - verifier.setLogFileName("../log-clean.txt"); - verifier.executeGoal("clean"); - verifier.verifyFileNotPresent(GENERATED_JAR); + cleanBuild(verifier); verifier.setLogFileName("../log-deploy.txt"); verifier.executeGoal("deploy"); verifier.verifyErrorFreeLog(); verifier.verifyTextInLog( "Project org.apache.maven.caching.test:mbuildcache-incremental restored partially. Highest cached goal: install, requested: deploy"); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_RESOURCES); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_COMPILER_COMPILE); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_TEST_RESOURCES); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_COMPILER_TEST_COMPILE); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_SUREFIRE_TEST); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_JAR_JAR); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_COPY); + verifySkippedPluginExecutions(verifier); verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_FAILSAFE_INTEGRATION_TEST); verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_FAILSAFE_VERIFY); verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_INSTALL_INSTALL); - verifyNoTextInLog(verifier, RESOURCES_DEFAULT_RESOURCES_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, COMPILE_DEFAULT_COMPILE_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, TEST_RESOURCES_DEFAULT_TEST_RESOURCES_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, TEST_COMPILE_DEFAULT_TEST_COMPILE_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, TEST_DEFAULT_TEST_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, JAR_DEFAULT_JAR_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, INTEGRATION_TEST_DEFAULT_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, VERIFY_DEFAULT_MBUILDCACHE_INCREMENTAL); + verifyNoCachedPluginExecutions(verifier); verifyNoTextInLog(verifier, INSTALL_DEFAULT_INSTALL_MBUILDCACHE_INCREMENTAL); verifier.verifyTextInLog(DEPLOY_DEFAULT_DEPLOY_MBUILDCACHE_INCREMENTAL); verifier.verifyTextInLog("Using alternate deployment repository local::file:./target/staging"); @@ -275,23 +223,61 @@ void simple(Verifier verifier) throws VerificationException, IOException { verifier.verifyFilePresent(GENERATED_JAR); verifier.verifyFilePresent(GENERATED_SOURCES_JAR); verifier.verifyFilePresent(GENERATED_JAVADOC_JAR); - // only cached extra resources are present in the target folder - verifier.verifyFilePresent(EXTRA_OUTPUT_1); - verifier.verifyFilePresent(EXTRA_OUTPUT_2); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_3); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_4); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_5); - verifier.verifyFilePresent(EXTRA_OUTPUT_6); + verifyCachedExtraOutputs(verifier); Assertions.assertTrue(Files.exists(jarCacheFile), "Expected artifact saved in build cache."); Assertions.assertTrue(Files.exists(jarSourcesCacheFile), "Expected sources artifact saved in build cache."); Assertions.assertTrue(Files.exists(jarJavadocCacheFile), "Expected javadoc artifact saved in build cache."); + } + private void replayInstallWithCache(Verifier verifier) throws VerificationException { // Replay install with clean build, with a lower goal should only restore cached mojo executions verifier.setLogFileName("../log-install-replay.txt"); verifier.executeGoal("install"); verifier.verifyErrorFreeLog(); verifier.verifyTextInLog( FOUND_CACHED_BUILD_RESTORING_ORG_APACHE_MAVEN_CACHING_TEST_MBUILDCACHE_INCREMENTAL_FROM_CACHE_BY_CHECKSUM); + verifySkippedPluginExecutions(verifier); + verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_FAILSAFE_INTEGRATION_TEST); + verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_FAILSAFE_VERIFY); + verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_INSTALL_INSTALL); + verifyNoTextInLog(verifier, DEPLOY_DEFAULT_DEPLOY_MBUILDCACHE_INCREMENTAL); + verifyNoCachedPluginExecutions(verifier); + verifyNoTextInLog(verifier, SAVED_BUILD_TO_LOCAL_FILE, "Expected successful build cache restore."); + verifier.verifyFilePresent(GENERATED_JAR); + verifier.verifyFilePresent(GENERATED_SOURCES_JAR); + verifier.verifyFilePresent(GENERATED_JAVADOC_JAR); + verifyCachedExtraOutputs(verifier); + Assertions.assertTrue(Files.exists(jarCacheFile), "Expected artifact saved in build cache."); + Assertions.assertTrue(Files.exists(jarSourcesCacheFile), "Expected sources artifact saved in build cache."); + Assertions.assertTrue(Files.exists(jarJavadocCacheFile), "Expected javadoc artifact saved in build cache."); + } + + private void cleanBuild(Verifier verifier) throws VerificationException { + verifier.setMavenDebug(false); + verifier.setLogFileName("../log-clean.txt"); + verifier.executeGoal("clean"); + verifier.verifyFileNotPresent(GENERATED_JAR); + } + + private void verifyAllExtraOutputsPresent(Verifier verifier) throws VerificationException { + verifier.verifyFilePresent(EXTRA_OUTPUT_1); + verifier.verifyFilePresent(EXTRA_OUTPUT_2); + verifier.verifyFilePresent(EXTRA_OUTPUT_3); + verifier.verifyFilePresent(EXTRA_OUTPUT_4); + verifier.verifyFilePresent(EXTRA_OUTPUT_5); + verifier.verifyFilePresent(EXTRA_OUTPUT_6); + } + + private void verifyCachedExtraOutputs(Verifier verifier) throws VerificationException { + verifier.verifyFilePresent(EXTRA_OUTPUT_1); + verifier.verifyFilePresent(EXTRA_OUTPUT_2); + verifier.verifyFileNotPresent(EXTRA_OUTPUT_3); + verifier.verifyFileNotPresent(EXTRA_OUTPUT_4); + verifier.verifyFileNotPresent(EXTRA_OUTPUT_5); + verifier.verifyFilePresent(EXTRA_OUTPUT_6); + } + + private void verifySkippedPluginExecutions(Verifier verifier) throws VerificationException { verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_RESOURCES); verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_COMPILER_COMPILE); verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_TEST_RESOURCES); @@ -299,10 +285,9 @@ void simple(Verifier verifier) throws VerificationException, IOException { verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_SUREFIRE_TEST); verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_JAR_JAR); verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_RESOURCES_COPY); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_FAILSAFE_INTEGRATION_TEST); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_FAILSAFE_VERIFY); - verifier.verifyTextInLog(SKIPPING_PLUGIN_EXECUTION_CACHED_INSTALL_INSTALL); - verifyNoTextInLog(verifier, DEPLOY_DEFAULT_DEPLOY_MBUILDCACHE_INCREMENTAL); + } + + private void verifyNoCachedPluginExecutions(Verifier verifier) throws VerificationException { verifyNoTextInLog(verifier, RESOURCES_DEFAULT_RESOURCES_MBUILDCACHE_INCREMENTAL); verifyNoTextInLog(verifier, COMPILE_DEFAULT_COMPILE_MBUILDCACHE_INCREMENTAL); verifyNoTextInLog(verifier, TEST_RESOURCES_DEFAULT_TEST_RESOURCES_MBUILDCACHE_INCREMENTAL); @@ -311,22 +296,6 @@ void simple(Verifier verifier) throws VerificationException, IOException { verifyNoTextInLog(verifier, JAR_DEFAULT_JAR_MBUILDCACHE_INCREMENTAL); verifyNoTextInLog(verifier, INTEGRATION_TEST_DEFAULT_MBUILDCACHE_INCREMENTAL); verifyNoTextInLog(verifier, VERIFY_DEFAULT_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, INSTALL_DEFAULT_INSTALL_MBUILDCACHE_INCREMENTAL); - verifyNoTextInLog(verifier, installToLocalRepoString); - verifyNoTextInLog(verifier, SAVED_BUILD_TO_LOCAL_FILE, "Expected successful build cache restore."); - verifier.verifyFilePresent(GENERATED_JAR); - verifier.verifyFilePresent(GENERATED_SOURCES_JAR); - verifier.verifyFilePresent(GENERATED_JAVADOC_JAR); - // only cached extra resources are present in the target folder - verifier.verifyFilePresent(EXTRA_OUTPUT_1); - verifier.verifyFilePresent(EXTRA_OUTPUT_2); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_3); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_4); - verifier.verifyFileNotPresent(EXTRA_OUTPUT_5); - verifier.verifyFilePresent(EXTRA_OUTPUT_6); - Assertions.assertTrue(Files.exists(jarCacheFile), "Expected artifact saved in build cache."); - Assertions.assertTrue(Files.exists(jarSourcesCacheFile), "Expected sources artifact saved in build cache."); - Assertions.assertTrue(Files.exists(jarJavadocCacheFile), "Expected javadoc artifact saved in build cache."); } private static void verifyNoTextInLog(Verifier verifier, String text, String message) throws VerificationException { diff --git a/src/test/java/org/apache/maven/buildcache/its/Issue74Test.java b/src/test/java/org/apache/maven/buildcache/its/Issue74Test.java index d2a45d6c..8a4eb788 100644 --- a/src/test/java/org/apache/maven/buildcache/its/Issue74Test.java +++ b/src/test/java/org/apache/maven/buildcache/its/Issue74Test.java @@ -41,7 +41,7 @@ @IntegrationTest("src/test/projects/mbuildcache-74-clean-cache-any-artifact") public class Issue74Test { - private static final Logger logger = LoggerFactory.getLogger(Issue74Test.class); + private static final Logger LOGGER = LoggerFactory.getLogger(Issue74Test.class); @Test void simple(Verifier verifier) throws VerificationException, IOException { @@ -79,7 +79,7 @@ private static void verifyBuildCacheEntries(final Verifier verifier, long expect // buildinfo.xml -> local -> hash -> project Path projectPathInCache = buildInfoXmlPath.getParent().getParent().getParent(); - logger.info("Checking '{}' for cached builds ...", projectPathInCache); + LOGGER.info("Checking '{}' for cached builds ...", projectPathInCache); if (!Files.exists(projectPathInCache)) { throw new VerificationException( diff --git a/src/test/java/org/apache/maven/buildcache/its/Issue76Test.java b/src/test/java/org/apache/maven/buildcache/its/Issue76Test.java index b6b6b302..1049ddad 100644 --- a/src/test/java/org/apache/maven/buildcache/its/Issue76Test.java +++ b/src/test/java/org/apache/maven/buildcache/its/Issue76Test.java @@ -29,7 +29,7 @@ public class Issue76Test { private static final String PROJECT_NAME = "org.apache.maven.caching.test:mbuildcache-76"; @Test - void simple_build_change_version_build_install_again(Verifier verifier) throws VerificationException { + void simpleBuildChangeVersionBuildInstallAgain(Verifier verifier) throws VerificationException { verifier.setAutoclean(false); verifier.setLogFileName("../log-1.txt"); diff --git a/src/test/java/org/apache/maven/buildcache/its/PathEntry.java b/src/test/java/org/apache/maven/buildcache/its/PathEntry.java new file mode 100644 index 00000000..3ecb506c --- /dev/null +++ b/src/test/java/org/apache/maven/buildcache/its/PathEntry.java @@ -0,0 +1,206 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.buildcache.its; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import java.nio.file.attribute.FileTime; +import java.nio.file.attribute.PosixFilePermission; +import java.nio.file.attribute.PosixFilePermissions; +import java.time.Instant; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.util.EnumSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.TreeMap; + +public class PathEntry implements Comparable { + + private final Path abs; + private final Path path; + private final Map attributes; + + public PathEntry(Path abs, Path root) { + this.abs = abs; + this.path = abs.startsWith(root) ? root.relativize(abs) : abs; + this.attributes = readAttributes(abs); + } + + @Override + public int compareTo(PathEntry o) { + return path.toString().compareTo(o.path.toString()); + } + + boolean isNotDirectory() { + return is("isRegularFile") || is("isSymbolicLink") || is("isOther"); + } + + boolean isDirectory() { + return is("isDirectory"); + } + + private boolean is(String attr) { + Object d = attributes.get(attr); + return d instanceof Boolean && (Boolean) d; + } + + String display() { + String suffix; + String link = ""; + if (is("isSymbolicLink")) { + suffix = "@"; + try { + Path l = Files.readSymbolicLink(abs); + link = " -> " + l.toString(); + } catch (IOException e) { + // ignore + } + } else if (is("isDirectory")) { + suffix = "/"; + } else if (is("isExecutable")) { + suffix = "*"; + } else if (is("isOther")) { + suffix = ""; + } else { + suffix = ""; + } + return path.toString() + suffix + link; + } + + String longDisplay() { + String username = getUsername(); + String group = getGroup(); + Number length = (Number) attributes.get("size"); + if (length == null) { + length = 0L; + } + String lengthString = formatLength(length); + @SuppressWarnings("unchecked") + Set perms = (Set) attributes.get("permissions"); + if (perms == null) { + perms = EnumSet.noneOf(PosixFilePermission.class); + } + return (is("isDirectory") ? "d" : (is("isSymbolicLink") ? "l" : (is("isOther") ? "o" : "-"))) + + PosixFilePermissions.toString(perms) + " " + + String.format( + "%3s", + (attributes.containsKey("nlink") + ? attributes.get("nlink").toString() + : "1")) + + " " + username + " " + group + " " + lengthString + " " + + toString((FileTime) attributes.get("lastModifiedTime")) + + " " + display(); + } + + private String getUsername() { + String username = attributes.containsKey("owner") ? Objects.toString(attributes.get("owner"), null) : "owner"; + if (username.length() > 8) { + username = username.substring(0, 8); + } else { + username = String.format("%-8s", username); + } + return username; + } + + private String getGroup() { + String group = attributes.containsKey("group") ? Objects.toString(attributes.get("group"), null) : "group"; + if (group.length() > 8) { + group = group.substring(0, 8); + } else { + group = String.format("%-8s", group); + } + return group; + } + + private String formatLength(Number length) { + double l = length.longValue(); + String unit = "B"; + if (l >= 1000) { + l /= 1024; + unit = "K"; + if (l >= 1000) { + l /= 1024; + unit = "M"; + if (l >= 1000) { + l /= 1024; + unit = "T"; + } + } + } + if (l < 10 && length.longValue() > 1000) { + return String.format("%.1f%s", l, unit); + } else { + return String.format("%3.0f%s", l, unit); + } + } + + protected String toString(FileTime time) { + long millis = (time != null) ? time.toMillis() : -1L; + if (millis < 0L) { + return "------------"; + } + ZonedDateTime dt = Instant.ofEpochMilli(millis).atZone(ZoneId.systemDefault()); + if (System.currentTimeMillis() - millis < 183L * 24L * 60L * 60L * 1000L) { + return DateTimeFormatter.ofPattern("MMM ppd HH:mm").format(dt); + } else { + return DateTimeFormatter.ofPattern("MMM ppd yyyy").format(dt); + } + } + + protected Map readAttributes(Path path) { + Map attrs = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + for (String view : path.getFileSystem().supportedFileAttributeViews()) { + try { + Map ta = Files.readAttributes(path, view + ":*", LinkOption.NOFOLLOW_LINKS); + ta.forEach(attrs::putIfAbsent); + } catch (IOException e) { + // Ignore + } + } + attrs.computeIfAbsent("isExecutable", s -> Files.isExecutable(path)); + attrs.computeIfAbsent("permissions", s -> getPermissionsFromFile(path.toFile())); + return attrs; + } + + static Set getPermissionsFromFile(File f) { + Set perms = EnumSet.noneOf(PosixFilePermission.class); + if (f.canRead()) { + perms.add(PosixFilePermission.OWNER_READ); + perms.add(PosixFilePermission.GROUP_READ); + perms.add(PosixFilePermission.OTHERS_READ); + } + if (f.canWrite()) { + perms.add(PosixFilePermission.OWNER_WRITE); + perms.add(PosixFilePermission.GROUP_WRITE); + perms.add(PosixFilePermission.OTHERS_WRITE); + } + if (f.canExecute()) { + perms.add(PosixFilePermission.OWNER_EXECUTE); + perms.add(PosixFilePermission.GROUP_EXECUTE); + perms.add(PosixFilePermission.OTHERS_EXECUTE); + } + return perms; + } +} diff --git a/src/test/java/org/apache/maven/buildcache/its/RemoteCacheDavTest.java b/src/test/java/org/apache/maven/buildcache/its/RemoteCacheDavTest.java index dcdac3aa..534af224 100644 --- a/src/test/java/org/apache/maven/buildcache/its/RemoteCacheDavTest.java +++ b/src/test/java/org/apache/maven/buildcache/its/RemoteCacheDavTest.java @@ -18,26 +18,12 @@ */ package org.apache.maven.buildcache.its; -import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import java.nio.file.LinkOption; import java.nio.file.Path; import java.nio.file.Paths; -import java.nio.file.attribute.FileTime; -import java.nio.file.attribute.PosixFilePermission; -import java.nio.file.attribute.PosixFilePermissions; -import java.time.Instant; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; import java.util.Arrays; -import java.util.EnumSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.TreeMap; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.regex.Pattern; @@ -285,191 +271,10 @@ private String error(Path directory, String cache, boolean shouldHave) { } private static void ls(Path currentDir, Consumer out) throws IOException { - class PathEntry implements Comparable { - - final Path abs; - final Path path; - final Map attributes; - - public PathEntry(Path abs, Path root) { - this.abs = abs; - this.path = abs.startsWith(root) ? root.relativize(abs) : abs; - this.attributes = readAttributes(abs); - } - - @Override - public int compareTo(PathEntry o) { - return path.toString().compareTo(o.path.toString()); - } - - boolean isNotDirectory() { - return is("isRegularFile") || is("isSymbolicLink") || is("isOther"); - } - - boolean isDirectory() { - return is("isDirectory"); - } - - private boolean is(String attr) { - Object d = attributes.get(attr); - return d instanceof Boolean && (Boolean) d; - } - - String display() { - String suffix; - String link = ""; - if (is("isSymbolicLink")) { - suffix = "@"; - try { - Path l = Files.readSymbolicLink(abs); - link = " -> " + l.toString(); - } catch (IOException e) { - // ignore - } - } else if (is("isDirectory")) { - suffix = "/"; - } else if (is("isExecutable")) { - suffix = "*"; - } else if (is("isOther")) { - suffix = ""; - } else { - suffix = ""; - } - return path.toString() + suffix + link; - } - - String longDisplay() { - String username; - if (attributes.containsKey("owner")) { - username = Objects.toString(attributes.get("owner"), null); - } else { - username = "owner"; - } - if (username.length() > 8) { - username = username.substring(0, 8); - } else { - for (int i = username.length(); i < 8; i++) { - username = username + " "; - } - } - String group; - if (attributes.containsKey("group")) { - group = Objects.toString(attributes.get("group"), null); - } else { - group = "group"; - } - if (group.length() > 8) { - group = group.substring(0, 8); - } else { - for (int i = group.length(); i < 8; i++) { - group = group + " "; - } - } - Number length = (Number) attributes.get("size"); - if (length == null) { - length = 0L; - } - String lengthString; - if (true /*opt.isSet("h")*/) { - double l = length.longValue(); - String unit = "B"; - if (l >= 1000) { - l /= 1024; - unit = "K"; - if (l >= 1000) { - l /= 1024; - unit = "M"; - if (l >= 1000) { - l /= 1024; - unit = "T"; - } - } - } - if (l < 10 && length.longValue() > 1000) { - lengthString = String.format("%.1f", l) + unit; - } else { - lengthString = String.format("%3.0f", l) + unit; - } - } else { - lengthString = String.format("%1$8s", length); - } - @SuppressWarnings("unchecked") - Set perms = (Set) attributes.get("permissions"); - if (perms == null) { - perms = EnumSet.noneOf(PosixFilePermission.class); - } - // TODO: all fields should be padded to align - return (is("isDirectory") ? "d" : (is("isSymbolicLink") ? "l" : (is("isOther") ? "o" : "-"))) - + PosixFilePermissions.toString(perms) + " " - + String.format( - "%3s", - (attributes.containsKey("nlink") - ? attributes.get("nlink").toString() - : "1")) - + " " + username + " " + group + " " + lengthString + " " - + toString((FileTime) attributes.get("lastModifiedTime")) - + " " + display(); - } - - protected String toString(FileTime time) { - long millis = (time != null) ? time.toMillis() : -1L; - if (millis < 0L) { - return "------------"; - } - ZonedDateTime dt = Instant.ofEpochMilli(millis).atZone(ZoneId.systemDefault()); - // Less than six months - if (System.currentTimeMillis() - millis < 183L * 24L * 60L * 60L * 1000L) { - return DateTimeFormatter.ofPattern("MMM ppd HH:mm").format(dt); - } - // Older than six months - else { - return DateTimeFormatter.ofPattern("MMM ppd yyyy").format(dt); - } - } - - protected Map readAttributes(Path path) { - Map attrs = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - for (String view : path.getFileSystem().supportedFileAttributeViews()) { - try { - Map ta = Files.readAttributes(path, view + ":*", LinkOption.NOFOLLOW_LINKS); - ta.forEach(attrs::putIfAbsent); - } catch (IOException e) { - // Ignore - } - } - attrs.computeIfAbsent("isExecutable", s -> Files.isExecutable(path)); - attrs.computeIfAbsent("permissions", s -> getPermissionsFromFile(path.toFile())); - return attrs; - } - } - Files.walk(currentDir) .map(p -> new PathEntry(p, currentDir)) .sorted() .map(PathEntry::longDisplay) .forEach(out); } - - private static Set getPermissionsFromFile(File f) { - Set perms = EnumSet.noneOf(PosixFilePermission.class); - if (f.canRead()) { - perms.add(PosixFilePermission.OWNER_READ); - perms.add(PosixFilePermission.GROUP_READ); - perms.add(PosixFilePermission.OTHERS_READ); - } - - if (f.canWrite()) { - perms.add(PosixFilePermission.OWNER_WRITE); - perms.add(PosixFilePermission.GROUP_WRITE); - perms.add(PosixFilePermission.OTHERS_WRITE); - } - - if (f.canExecute() /*|| (OSUtils.IS_WINDOWS && isWindowsExecutable(f.getName()))*/) { - perms.add(PosixFilePermission.OWNER_EXECUTE); - perms.add(PosixFilePermission.GROUP_EXECUTE); - perms.add(PosixFilePermission.OTHERS_EXECUTE); - } - - return perms; - } } diff --git a/src/test/java/org/apache/maven/buildcache/xml/CacheConfigImplTest.java b/src/test/java/org/apache/maven/buildcache/xml/CacheConfigImplTest.java index 2e06907c..db090b4c 100644 --- a/src/test/java/org/apache/maven/buildcache/xml/CacheConfigImplTest.java +++ b/src/test/java/org/apache/maven/buildcache/xml/CacheConfigImplTest.java @@ -185,7 +185,7 @@ private void assertDefaults(Map overrides) { asserts.put( "getGlobalIncludePaths", () -> assertEquals(Collections.emptyList(), testObject.getGlobalIncludePaths())); - asserts.put("getHashFactory", () -> assertEquals(HashFactory.XX, testObject.getHashFactory())); + asserts.put("getHashFactory", () -> assertEquals(HashFactory.xx, testObject.getHashFactory())); asserts.put("getId", () -> assertEquals("cache", testObject.getId())); asserts.put("getLocalRepositoryLocation", () -> assertNull(testObject.getLocalRepositoryLocation())); asserts.put( diff --git a/src/test/java/org/apache/maven/buildcache/xml/XmlServiceTest.java b/src/test/java/org/apache/maven/buildcache/xml/XmlServiceTest.java index e9a91723..c434a9b4 100644 --- a/src/test/java/org/apache/maven/buildcache/xml/XmlServiceTest.java +++ b/src/test/java/org/apache/maven/buildcache/xml/XmlServiceTest.java @@ -19,20 +19,12 @@ package org.apache.maven.buildcache.xml; import javax.xml.XMLConstants; -import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; -import java.io.InputStream; - -import org.apache.maven.buildcache.xml.build.Build; -import org.apache.maven.buildcache.xml.config.CacheConfig; -import org.apache.maven.buildcache.xml.diff.Diff; -import org.apache.maven.buildcache.xml.report.CacheReport; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.w3c.dom.Document; public class XmlServiceTest { @@ -44,12 +36,6 @@ public void testConfig() throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setSchema(schema); - DocumentBuilder db = dbf.newDocumentBuilder(); - Document doc = db.parse( - getClass().getResource("build-cache-config-instance.xml").toString()); - - InputStream is = getClass().getResourceAsStream("build-cache-config-instance.xml"); - final CacheConfig cache = new XmlService().loadCacheConfig(is); } @Test @@ -60,12 +46,6 @@ public void testReport() throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setSchema(schema); - DocumentBuilder db = dbf.newDocumentBuilder(); - Document doc = db.parse( - getClass().getResource("build-cache-report-instance.xml").toString()); - - InputStream is = getClass().getResourceAsStream("build-cache-report-instance.xml"); - final CacheReport cacheReport = new XmlService().loadCacheReport(is); } @Test @@ -76,12 +56,6 @@ public void testBuild() throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setSchema(schema); - DocumentBuilder db = dbf.newDocumentBuilder(); - Document doc = db.parse( - getClass().getResource("build-cache-build-instance.xml").toString()); - - InputStream is = getClass().getResourceAsStream("build-cache-build-instance.xml"); - final Build build = new XmlService().loadBuild(is); } @Test @@ -92,11 +66,5 @@ public void testDiff() throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setSchema(schema); - DocumentBuilder db = dbf.newDocumentBuilder(); - Document doc = - db.parse(getClass().getResource("build-cache-diff-instance.xml").toString()); - - InputStream is = getClass().getResourceAsStream("build-cache-diff-instance.xml"); - final Diff buildDiff = new XmlService().loadDiff(is); } }