diff --git a/API/src/main/java/org/sikuli/basics/FileManager.java b/API/src/main/java/org/sikuli/basics/FileManager.java index 972c7b92b..77b63a81f 100644 --- a/API/src/main/java/org/sikuli/basics/FileManager.java +++ b/API/src/main/java/org/sikuli/basics/FileManager.java @@ -233,8 +233,9 @@ public static String downloadURL(URL url, String localPath) { _progress.setVisible(true); } InputStream reader = null; + FileOutputStream writer = null; try { - FileOutputStream writer = new FileOutputStream(fullpath); + writer = new FileOutputStream(fullpath); if (getProxy() != null) { reader = url.openConnection(getProxy()).getInputStream(); } else { @@ -272,6 +273,12 @@ public static String downloadURL(URL url, String localPath) { } catch (IOException ex) { } } + if (writer != null) { + try { + writer.close(); + } catch (IOException ex) { + } + } } if (_progress != null) { if (targetPath == null) { diff --git a/Setup/src/main/java/org/sikuli/setup/RunSetup.java b/Setup/src/main/java/org/sikuli/setup/RunSetup.java index 17f8d7366..0a8b4b10f 100644 --- a/Setup/src/main/java/org/sikuli/setup/RunSetup.java +++ b/Setup/src/main/java/org/sikuli/setup/RunSetup.java @@ -96,7 +96,7 @@ public class RunSetup { private static String libsMac = "sikulixlibsmac"; private static String libsWin = "sikulixlibswin"; private static String libsLux = "sikulixlibslux"; - private static File folderLibs; + private static File folderLib; private static File folderLibsWin; private static File folderLibsLux; private static String linuxDistro = "*** testing Linux ***"; @@ -363,6 +363,9 @@ public static void main(String[] args) throws IOException { } fDownloadsObsolete = new File(fWorkDir, "Downloads"); workDir = fWorkDir.getAbsolutePath(); + + File fSetupStuff = new File(fWorkDir, "SetupStuff"); + FileManager.resetFolder(fSetupStuff); osarch = "" + runTime.javaArch; if (runTime.runningLinux) { @@ -411,8 +414,8 @@ public static void main(String[] args) throws IOException { File localJarIDE = new File(fWorkDir, localIDE); File localJarAPI = new File(fWorkDir, localAPI); - folderLibs = runTime.fLibsLocal; - folderLibsWin = new File(folderLibs, "windows"); + folderLibsWin = new File(fSetupStuff, "sikulixlibs/windows"); + folderLib = new File(fSetupStuff, "Lib"); folderLibsLux = runTime.fLibsProvided; //TODO Windows 8 HKLM/SOFTWARE/JavaSoft add Prefs ???? @@ -698,14 +701,17 @@ public void propertyChange(PropertyChangeEvent pce) { if (fDownloaded == null) { fDownloaded = downloadJarFromMavenSx(libsWin, dlDir, libsWin); } - downloadOK &= copyFromDownloads(fDownloaded, libsWin, jarsList[6]); - FileManager.resetFolder(folderLibsWin); - String aJar = FileManager.normalizeAbsolute(jarsList[6], false); - if (null == runTime.resourceListAsSikulixContentFromJar(aJar, "sikulixlibs/windows", folderLibsWin, null)) { - terminate("libswin content list could not be created", 999); + boolean dlLibsWinOK = copyFromDownloads(fDownloaded, libsWin, jarsList[6]); + if (dlLibsWinOK) { + FileManager.resetFolder(folderLibsWin); + String aJar = FileManager.normalizeAbsolute(jarsList[6], false); + if (null == runTime.resourceListAsSikulixContentFromJar(aJar, "sikulixlibs/windows", folderLibsWin, null)) { + terminate("libswin content list could not be created", 999); + } + addonFileList[addonLibswindows] = new File(folderLibsWin, runTime.fpContent).getAbsolutePath(); + addonFilePrefix[addonLibswindows] = libsWin; } - addonFileList[addonLibswindows] = new File(folderLibsWin, runTime.fpContent).getAbsolutePath(); - addonFilePrefix[addonLibswindows] = libsWin; + downloadOK &= dlLibsWinOK; } if (forSystemMac || forAllSystems) { @@ -727,17 +733,17 @@ public void propertyChange(PropertyChangeEvent pce) { if (fDownloaded == null) { fDownloaded = downloadJarFromMavenSx("sikulixsetupAPI#forsetup", dlDir, sDownloaded); } - downloadOK &= copyFromDownloads(fDownloaded, sDownloaded, localJar); - - if(forSystemWin || forAllSystems) { - FileManager.resetFolder(runTime.fSikulixLib); + boolean dlApiOK = copyFromDownloads(fDownloaded, sDownloaded, localJar); + if(dlApiOK && (forSystemWin || forAllSystems)) { + FileManager.resetFolder(folderLib); String aJar = FileManager.normalizeAbsolute(localJar, false); - if (null == runTime.resourceListAsSikulixContentFromJar(aJar, "Lib", runTime.fSikulixLib, null)) { - terminate("libswin content list could not be created", 999); + if (null == runTime.resourceListAsSikulixContentFromJar(aJar, "Lib", folderLib, null)) { + terminate("Lib content list could not be created", 999); } - addonFileList[addonFolderLib] = new File(runTime.fSikulixLib, runTime.fpContent).getAbsolutePath(); + addonFileList[addonFolderLib] = new File(folderLib, runTime.fpContent).getAbsolutePath(); addonFilePrefix[addonFolderLib] = "Lib"; } + downloadOK &= dlApiOK; } if (getIDE) { @@ -1053,8 +1059,7 @@ public boolean accept(ZipEntry entry, String jarname) { log(lvl, "Running headless --- skipping tests"); } - FileManager.deleteFileOrFolder(folderLibsWin); - FileManager.deleteFileOrFolder(new File(runTime.fSikulixLib, runTime.fpContent)); + FileManager.deleteFileOrFolder(fSetupStuff); // boolean runAPITest = false; @@ -1668,7 +1673,7 @@ private static String getMavenJarPath(String givenItem) { itemSuffix = "-" + parts[1]; } if (runTime.isVersionRelease()) { - if (itemSuffix.contains("forsetup")) { + if (itemSuffix.contains("forsetup") || item.contains("sikulixlibs")) { mPath = runTime.downloadBaseDir; } else { mPath = String.format("%s%s/%s/", sikulixMavenGroup, item, version); diff --git a/Setup/src/main/java/org/sikuli/setup/RunSetupSuper.java b/Setup/src/main/java/org/sikuli/setup/RunSetupSuper.java deleted file mode 100644 index bc4271b76..000000000 --- a/Setup/src/main/java/org/sikuli/setup/RunSetupSuper.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.sikuli.setup; - -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStreamReader; - -public class RunSetupSuper { - - public static void main(String[] args) throws IOException, InterruptedException { - - File fWork = new File(System.getProperty("user.dir")); - String fpSetup = new File(fWork, "target/sikulixsetup-1.1.0-plain.jar").getAbsolutePath(); - String mainClass = "org.sikuli.setup.RunSetup"; - - String cmd = String.format("java -jar %s %s", fpSetup, mainClass); - Process proc = Runtime.getRuntime().exec(cmd); - BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream())); - String line; - while(null != (line = in.readLine())) { - System.out.println(line); - } - proc.waitFor(); - System.exit(1); - - } - -}