diff --git a/gui/src/main/java/io/bitsquare/app/gui/BitsquareApp.java b/gui/src/main/java/io/bitsquare/app/gui/BitsquareApp.java index 0f072e9b00..027e84f56c 100644 --- a/gui/src/main/java/io/bitsquare/app/gui/BitsquareApp.java +++ b/gui/src/main/java/io/bitsquare/app/gui/BitsquareApp.java @@ -17,7 +17,6 @@ package io.bitsquare.app.gui; -import io.bitsquare.BitsquareException; import io.bitsquare.account.AccountSettings; import io.bitsquare.gui.SystemTray; import io.bitsquare.gui.components.Popups; @@ -34,10 +33,6 @@ import com.google.inject.Injector; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; - import viewfx.view.View; import viewfx.view.ViewLoader; import viewfx.view.support.CachingViewLoader; @@ -53,9 +48,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.env.Environment; -import org.springframework.util.FileSystemUtils; -import static io.bitsquare.app.BitsquareEnvironment.*; +import static io.bitsquare.app.BitsquareEnvironment.APP_NAME_KEY; public class BitsquareApp extends Application { private static final Logger log = LoggerFactory.getLogger(BitsquareApp.class); @@ -82,14 +76,6 @@ public class BitsquareApp extends Application { Thread.currentThread().setUncaughtExceptionHandler((thread, throwable) -> Popups.handleUncaughtExceptions(Throwables.getRootCause(throwable))); - - // initialize the application data directory (if necessary) - - initAppDir( - env.getRequiredProperty(APP_DATA_DIR_KEY), - env.getRequiredProperty(APP_DATA_DIR_CLEAN_KEY, boolean.class)); - - // load and apply any stored settings User user = injector.getInstance(User.class); @@ -160,22 +146,4 @@ public class BitsquareApp extends Application { bitsquareAppModule.close(injector); System.exit(0); } - - - private void initAppDir(String appDir, boolean doClean) { - Path dir = Paths.get(appDir); - if (Files.exists(dir)) { - if (!Files.isWritable(dir)) - throw new BitsquareException("Application data directory '%s' is not writeable", dir); - if (doClean) - FileSystemUtils.deleteRecursively(dir.toFile()); - else - return; - } - try { - Files.createDirectory(dir); - } catch (IOException ex) { - throw new BitsquareException(ex, "Application data directory '%s' could not be created", dir); - } - } } diff --git a/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java b/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java index f5156f185a..e8a31672d4 100644 --- a/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java +++ b/gui/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java @@ -17,6 +17,7 @@ package io.bitsquare.app.gui; +import io.bitsquare.BitsquareException; import io.bitsquare.app.BitsquareEnvironment; import io.bitsquare.app.BitsquareExecutable; import io.bitsquare.btc.BitcoinNetwork; @@ -25,6 +26,11 @@ import io.bitsquare.network.Node; import io.bitsquare.util.joptsimple.EnumValueConverter; import java.io.File; +import java.io.IOException; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,6 +75,10 @@ public class BitsquareAppMain extends BitsquareExecutable { } BitsquareEnvironment bitsquareEnvironment = new BitsquareEnvironment(options); String updatesDirectory = bitsquareEnvironment.getProperty(BitsquareEnvironment.APP_DATA_DIR_KEY); + + // app dir need to be setup before UpdateFX bootstrap + initAppDir(updatesDirectory); + UpdateFX.bootstrap(BitsquareAppMain.class, new File(updatesDirectory).toPath(), args); } @@ -82,6 +92,21 @@ public class BitsquareAppMain extends BitsquareExecutable { new BitsquareAppMain().execute(args); } + private static void initAppDir(String appDir) { + Path dir = Paths.get(appDir); + if (Files.exists(dir)) { + if (!Files.isWritable(dir)) + throw new BitsquareException("Application data directory '%s' is not writeable", dir); + else + return; + } + try { + Files.createDirectory(dir); + } catch (IOException ex) { + throw new BitsquareException(ex, "Application data directory '%s' could not be created", dir); + } + } + @Override protected void customizeOptionParsing(OptionParser parser) { parser.accepts(USER_DATA_DIR_KEY, description("User data directory", DEFAULT_USER_DATA_DIR)) diff --git a/gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java b/gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java index 7464f38317..fefde2f54a 100644 --- a/gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java +++ b/gui/src/main/java/io/bitsquare/app/gui/UpdateProcess.java @@ -54,7 +54,7 @@ public class UpdateProcess { // Edit version for updateFX private static final int BUILD_VERSION = 1; - private static final List UPDATE_SIGNING_KEYS = Crypto.decode("025AA74490F66D195D42D49070D821C96A137496C070A924E5AAB0D6EE8549457E"); + private static final List UPDATE_SIGNING_KEYS = Crypto.decode("0296CFF54A8B1611499D4C1024E654140AFBB58C505FE4BB7C847B4F4A7C683DF6"); private static final String UPDATES_BASE_URL = "http://bitsquare.io/updateFX/"; private static final int UPDATE_SIGNING_THRESHOLD = 1; private static final Path ROOT_CLASS_PATH = UpdateFX.findCodePath(BitsquareAppMain.class); diff --git a/package/linux/setup.sh b/package/linux/setup.sh index c4b2dbc426..7154d70133 100644 --- a/package/linux/setup.sh +++ b/package/linux/setup.sh @@ -9,6 +9,6 @@ mkdir gui/updatefx/site mkdir gui/deploy # Copy wallet file from main build -java -jar ./updatefx/updatefx-app-1.2.jar --url=http://bitsquare.io/updateFX/ gui/updatefx +# java -jar ./updatefx/updatefx-app-1.2.jar --url=http://bitsquare.io/updateFX/ gui/updatefx cd package/linux \ No newline at end of file diff --git a/package/windows/setup.bat b/package/windows/setup.bat index 63655e608c..e97867bf7a 100644 --- a/package/windows/setup.bat +++ b/package/windows/setup.bat @@ -9,6 +9,6 @@ mkdir gui\deploy :: mkdir gui\win-32bit :: Copy wallet file from main build -call java -Xmx2048m -jar ./updatefx/updatefx-app-1.2.jar --url=http://bitsquare.io/updateFX/ gui/updatefx +:: call java -Xmx2048m -jar ./updatefx/updatefx-app-1.2.jar --url=http://bitsquare.io/updateFX/ gui/updatefx cd package\windows \ No newline at end of file