diff --git a/src/it/tests/basic-it/windows/build.xml b/src/it/tests/basic-it/windows/build.xml index 0dc6376..4520eee 100644 --- a/src/it/tests/basic-it/windows/build.xml +++ b/src/it/tests/basic-it/windows/build.xml @@ -18,7 +18,7 @@ - + diff --git a/src/main/java/io/openliberty/tools/ant/install/InstallLibertyTask.java b/src/main/java/io/openliberty/tools/ant/install/InstallLibertyTask.java index 6c006cf..376c6da 100644 --- a/src/main/java/io/openliberty/tools/ant/install/InstallLibertyTask.java +++ b/src/main/java/io/openliberty/tools/ant/install/InstallLibertyTask.java @@ -42,9 +42,10 @@ public class InstallLibertyTask extends AbstractTask { private String runtimeUrl; private String username; private String password; - private long maxDownloadTime; + private String maxDownloadTime; private boolean offline; private boolean useOpenLiberty; + private boolean skipDownloadIfExisting; private boolean skipAlreadyInstalledCheck = false; @@ -98,10 +99,14 @@ private void doExecute() throws Exception { } protected void downloadFile(URL source, File dest) throws IOException { + downloadFile(source, dest, false); + } + + protected void downloadFile(URL source, File dest, boolean skipExisting) throws IOException { if (offline) { offlineDownload(source, dest); } else { - onlineDownload(source, dest); + onlineDownload(source, dest, skipExisting); } } @@ -113,7 +118,11 @@ private void offlineDownload(URL source, File dest) throws IOException { } } - private void onlineDownload(URL source, File dest) throws IOException { + private void onlineDownload(URL source, File dest, boolean skipExisting) throws IOException { + if (skipExisting && dest.exists()) { + return; + } + Get get = (Get) getProject().createTask("get"); DownloadProgress progress = null; if (verbose) { @@ -122,7 +131,7 @@ private void onlineDownload(URL source, File dest) throws IOException { get.setUseTimestamp(true); get.setUsername(username); get.setPassword(password); - get.setMaxTime(maxDownloadTime); + get.setMaxTime(getMaxDownloadTime()); get.setRetries(5); get.doGet(source, dest, Project.MSG_INFO, progress); } @@ -232,10 +241,18 @@ public void setPassword(String password) { } public long getMaxDownloadTime() { - return maxDownloadTime; + if (maxDownloadTime == null) { + return 0; + } else { + return Long.parseLong(maxDownloadTime); + } } public void setMaxDownloadTime(long maxDownloadTime) { + this.maxDownloadTime = Long.toString(maxDownloadTime); + } + + public void setMaxDownloadTime(String maxDownloadTime) { this.maxDownloadTime = maxDownloadTime; } @@ -262,4 +279,12 @@ public void setSkipAlreadyInstalledCheck(boolean skipAlreadyInstalledCheck) { public boolean getSkipAlreadyInstalledCheck() { return skipAlreadyInstalledCheck; } + + public boolean getSkipDownloadIfExisting() { + return skipDownloadIfExisting; + } + + public void setSkipDownloadIfExisting(boolean skipDownloadIfExisting) { + this.skipDownloadIfExisting = skipDownloadIfExisting; + } } diff --git a/src/main/java/io/openliberty/tools/ant/install/OpenLibertyInstaller.java b/src/main/java/io/openliberty/tools/ant/install/OpenLibertyInstaller.java index 1f98779..a48078b 100644 --- a/src/main/java/io/openliberty/tools/ant/install/OpenLibertyInstaller.java +++ b/src/main/java/io/openliberty/tools/ant/install/OpenLibertyInstaller.java @@ -29,7 +29,7 @@ public void install(InstallLibertyTask task) throws Exception { // Download version json file File versionInfoFile = new File(cacheDir, "openliberty-versions.json"); - task.downloadFile(versionInfoUrl, versionInfoFile); + task.downloadFile(versionInfoUrl, versionInfoFile, task.getSkipDownloadIfExisting()); // Parse JSON InputStream versionInfoIs = new FileInputStream(versionInfoFile); @@ -53,7 +53,7 @@ public void install(InstallLibertyTask task) throws Exception { String versionUrl = baseUrl + version + "/"; URL runtimeInfoUrl = new URL(versionUrl + "info.json"); File runtimeInfoFile = new File(cacheDir, version + ".json"); - task.downloadFile(runtimeInfoUrl, runtimeInfoFile); + task.downloadFile(runtimeInfoUrl, runtimeInfoFile, task.getSkipDownloadIfExisting()); // Parse JSON InputStream runtimeInfoIs = new FileInputStream(runtimeInfoFile); diff --git a/src/main/java/io/openliberty/tools/ant/install/WasDevInstaller.java b/src/main/java/io/openliberty/tools/ant/install/WasDevInstaller.java index c5dda3e..8eb2eb7 100644 --- a/src/main/java/io/openliberty/tools/ant/install/WasDevInstaller.java +++ b/src/main/java/io/openliberty/tools/ant/install/WasDevInstaller.java @@ -68,7 +68,7 @@ public void install(InstallLibertyTask task) throws Exception { // download yml file URL ymlURL = new URL(url); File ymlFile = new File(cacheDir, InstallUtils.getFile(ymlURL)); - task.downloadFile(ymlURL, ymlFile); + task.downloadFile(ymlURL, ymlFile, task.getSkipDownloadIfExisting()); // parse yml List versions = LibertyYaml.parse(ymlFile);