|
5 | 5 | import java.io.InputStreamReader; |
6 | 6 | import java.io.UnsupportedEncodingException; |
7 | 7 | import java.net.URLEncoder; |
8 | | -import java.nio.file.Files; |
9 | 8 | import java.nio.file.Path; |
10 | 9 | import java.util.*; |
11 | 10 | import java.util.function.Function; |
@@ -236,39 +235,21 @@ private Comparator<JdkResult> majorVersionSort() { |
236 | 235 | "Downloading JDK {0}. Be patient, this can take several minutes...", |
237 | 236 | version); |
238 | 237 | String url = foojayJdk.downloadUrl; |
239 | | - LOGGER.log(Level.FINE, "Downloading {0}", url); |
240 | | - Path jdkTmpDir = jdkDir.getParent().resolve(jdkDir.getFileName() + ".tmp"); |
241 | | - Path jdkOldDir = jdkDir.getParent().resolve(jdkDir.getFileName() + ".old"); |
242 | | - FileUtils.deletePath(jdkTmpDir); |
243 | | - FileUtils.deletePath(jdkOldDir); |
| 238 | + |
244 | 239 | try { |
| 240 | + LOGGER.log(Level.FINE, "Downloading {0}", url); |
245 | 241 | Path jdkPkg = remoteAccessProvider.downloadFromUrl(url); |
| 242 | + |
246 | 243 | LOGGER.log(Level.INFO, "Installing JDK {0}...", version); |
247 | | - LOGGER.log(Level.FINE, "Unpacking to {0}", jdkDir); |
248 | | - UnpackUtils.unpackJdk(jdkPkg, jdkTmpDir); |
249 | | - if (Files.isDirectory(jdkDir)) { |
250 | | - Files.move(jdkDir, jdkOldDir); |
251 | | - } else if (Files.isSymbolicLink(jdkDir)) { |
252 | | - // This means we have a broken/invalid link |
253 | | - FileUtils.deletePath(jdkDir); |
254 | | - } |
255 | | - Files.move(jdkTmpDir, jdkDir); |
256 | | - FileUtils.deletePath(jdkOldDir); |
| 244 | + JavaUtils.installJdk(jdkPkg, jdkDir); |
| 245 | + |
257 | 246 | Jdk.InstalledJdk newJdk = jdkProvider.createJdk(foojayJdk.id(), jdkDir); |
258 | 247 | if (newJdk == null) { |
259 | 248 | throw new IllegalStateException("Cannot obtain version of recently installed JDK"); |
260 | 249 | } |
261 | 250 | return newJdk; |
262 | 251 | } catch (Exception e) { |
263 | | - FileUtils.deletePath(jdkTmpDir); |
264 | | - if (!Files.isDirectory(jdkDir) && Files.isDirectory(jdkOldDir)) { |
265 | | - try { |
266 | | - Files.move(jdkOldDir, jdkDir); |
267 | | - } catch (IOException ex) { |
268 | | - // Ignore |
269 | | - } |
270 | | - } |
271 | | - String msg = "Required Java version not possible to download or install."; |
| 252 | + String msg = "Required Java version not possible to download or install: " + version; |
272 | 253 | LOGGER.log(Level.FINE, msg); |
273 | 254 | throw new IllegalStateException( |
274 | 255 | "Unable to download or install JDK version " + version, e); |
|
0 commit comments