diff --git a/src/main/java/ch/ivyteam/ivy/maven/AbstractEngineMojo.java b/src/main/java/ch/ivyteam/ivy/maven/AbstractEngineMojo.java index 136e084d..6496235c 100644 --- a/src/main/java/ch/ivyteam/ivy/maven/AbstractEngineMojo.java +++ b/src/main/java/ch/ivyteam/ivy/maven/AbstractEngineMojo.java @@ -17,6 +17,8 @@ package ch.ivyteam.ivy.maven; import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; import org.apache.maven.artifact.versioning.ArtifactVersion; import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; @@ -63,7 +65,7 @@ public abstract class AbstractEngineMojo extends AbstractMojo { * If the Engine does not yet exist, it can be automatically downloaded. */ @Parameter(defaultValue = "${settings.localRepository}/.cache/ivy", property = "ivy.engine.cache.directory") - public File engineCacheDirectory; + public Path engineCacheDirectory; /** * The ivy Engine version or version-range that must be used. Must be equal or @@ -111,13 +113,13 @@ protected final boolean isEngineDirectoryIdentified() { } protected final File findMatchingEngineInCacheDirectory() throws MojoExecutionException { - if (engineCacheDirectory == null || !engineCacheDirectory.exists()) { + if (engineCacheDirectory == null || !Files.exists(engineCacheDirectory)) { return null; } File engineDirToTake = null; ArtifactVersion versionOfEngineToTake = null; - for (File engineDirCandidate : engineCacheDirectory.listFiles()) { + for (File engineDirCandidate : engineCacheDirectory.toFile().listFiles()) { if (!engineDirCandidate.isDirectory()) { continue; } diff --git a/src/main/java/ch/ivyteam/ivy/maven/InstallEngineMojo.java b/src/main/java/ch/ivyteam/ivy/maven/InstallEngineMojo.java index 8327d4c5..7519435f 100644 --- a/src/main/java/ch/ivyteam/ivy/maven/InstallEngineMojo.java +++ b/src/main/java/ch/ivyteam/ivy/maven/InstallEngineMojo.java @@ -197,7 +197,7 @@ private void downloadAndInstallEngine(boolean cleanEngineDir) throws MojoExecuti if (!isEngineDirectoryIdentified()) { String engineZipFileName = engineDownloader.getZipFileNameFromDownloadLocation(); - engineDirectory = new File(engineCacheDirectory, ivyEngineVersionOfZip(engineZipFileName)); + engineDirectory = new File(engineCacheDirectory.toFile(), ivyEngineVersionOfZip(engineZipFileName)); engineDirectory.mkdirs(); } diff --git a/src/test/java/ch/ivyteam/ivy/maven/BaseEngineProjectMojoTest.java b/src/test/java/ch/ivyteam/ivy/maven/BaseEngineProjectMojoTest.java index cbec44a3..a995dadf 100644 --- a/src/test/java/ch/ivyteam/ivy/maven/BaseEngineProjectMojoTest.java +++ b/src/test/java/ch/ivyteam/ivy/maven/BaseEngineProjectMojoTest.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.net.URI; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.attribute.BasicFileAttributes; import java.util.Calendar; import java.util.Collection; @@ -79,9 +80,8 @@ protected final static Collection findFiles(File dir, String fileExtension return FileUtils.listFiles(dir, new String[] {fileExtension}, true); } - private static final File evalEngineDir(AbstractEngineMojo mojo) { - return new File(mojo.engineCacheDirectory, - System.getProperty("ivy.engine.version", AbstractEngineMojo.DEFAULT_VERSION)); + private static final Path evalEngineDir(AbstractEngineMojo mojo) { + return mojo.engineCacheDirectory.resolve(System.getProperty("ivy.engine.version", AbstractEngineMojo.DEFAULT_VERSION)); } @Rule @@ -98,9 +98,9 @@ protected void before() throws Throwable { if (alternateEngineListPageUrl != null) { getMojo().engineListPageUrl = URI.create(alternateEngineListPageUrl).toURL(); } - getMojo().engineCacheDirectory = new File(CACHE_DIR); + getMojo().engineCacheDirectory = Path.of(CACHE_DIR); getMojo().ivyVersion = ENGINE_VERSION_TO_TEST; - getMojo().engineDirectory = evalEngineDir(getMojo()); + getMojo().engineDirectory = evalEngineDir(getMojo()).toFile(); getMojo().useLatestMinor = true; deleteOutdatedEngine(); getMojo().execute(); @@ -160,8 +160,8 @@ protected void before() throws Throwable { } protected void configureMojo(AbstractEngineMojo newMojo) { - newMojo.engineCacheDirectory = new File(CACHE_DIR); - newMojo.engineDirectory = evalEngineDir(getMojo()); + newMojo.engineCacheDirectory = Path.of(CACHE_DIR); + newMojo.engineDirectory = evalEngineDir(getMojo()).toFile(); newMojo.ivyVersion = ENGINE_VERSION_TO_TEST; } } diff --git a/src/test/java/ch/ivyteam/ivy/maven/TestInstallEngineMojo.java b/src/test/java/ch/ivyteam/ivy/maven/TestInstallEngineMojo.java index 61d29fc7..45387c64 100644 --- a/src/test/java/ch/ivyteam/ivy/maven/TestInstallEngineMojo.java +++ b/src/test/java/ch/ivyteam/ivy/maven/TestInstallEngineMojo.java @@ -90,10 +90,10 @@ public void testEngineDownload_defaultBehaviour() throws Exception { // test setup can not expand expression ${settings.localRepository}: so we // setup an explicit temp dir! - mojo.engineCacheDirectory = Files.createTempDirectory("tmpRepo").toFile(); + mojo.engineCacheDirectory = Files.createTempDirectory("tmpRepo"); mojo.engineListPageUrl = URI.create(mockBaseUrl + "/listPageUrl.html").toURL(); - File defaultEngineDir = new File(mojo.engineCacheDirectory, DEFAULT_VERSION); + var defaultEngineDir = mojo.engineCacheDirectory.resolve(DEFAULT_VERSION); assertThat(defaultEngineDir).doesNotExist(); assertThat(mojo.engineDownloadUrl) .as("Default config should favour to download an engine from the 'list page url'.") @@ -101,13 +101,12 @@ public void testEngineDownload_defaultBehaviour() throws Exception { assertThat(mojo.autoInstallEngine).isTrue(); mojo.execute(); - assertThat(defaultEngineDir) .as("Engine must be automatically downloaded") - .exists().isDirectory(); - assertThat(defaultEngineDir) + .exists() + .isDirectory() .as("Engine directory should automatically be set to subdir of the local repository cache.") - .isEqualTo(mojo.getRawEngineDirectory()); + .isEqualTo(mojo.getRawEngineDirectory().toPath()); } private static MockHttpServerResponse createFakeZipResponse(File zip) throws Exception { @@ -199,9 +198,9 @@ public void testEngineDownload_skipNonOsgiEngineInCache() throws Exception { mojo.autoInstallEngine = true; // OSGi - new File(mojo.engineCacheDirectory, "7.0.0" + File.separator + getFakeLibraryPath("7.0.0")).mkdirs(); + Files.createDirectories(mojo.engineCacheDirectory.resolve("7.0.0").resolve(getFakeLibraryPath("7.0.0"))); // non-OSGi - new File(mojo.engineCacheDirectory, "7.1.0").mkdirs(); + Files.createDirectories(mojo.engineCacheDirectory.resolve("7.1.0")); mojo.execute(); assertThat(mojo.engineDirectory.getName()).isEqualTo("7.0.0"); diff --git a/src/test/java/ch/ivyteam/ivy/maven/test/TestEngineControlEngineDirectory.java b/src/test/java/ch/ivyteam/ivy/maven/test/TestEngineControlEngineDirectory.java index 79189429..df83088f 100644 --- a/src/test/java/ch/ivyteam/ivy/maven/test/TestEngineControlEngineDirectory.java +++ b/src/test/java/ch/ivyteam/ivy/maven/test/TestEngineControlEngineDirectory.java @@ -32,7 +32,7 @@ public void engineControl_engineDir_doesNotExist() throws Exception { public void engineControl_engineDir_isNull() throws Exception { StopTestEngineMojo mojo = new StopTestEngineMojo(); mojo.project = rule.project; - mojo.engineDirectory = rule.getMojo().engineCacheDirectory; + mojo.engineDirectory = rule.getMojo().engineCacheDirectory.toFile(); assertThat(mojo.createEngineController()).isNotNull(); }