diff --git a/bootstrap/src/main/java/io/bitsquare/app/bootstrap/BootstrapNode.java b/bootstrap/src/main/java/io/bitsquare/app/bootstrap/BootstrapNode.java index 8a8f53e0fe..b300ea334e 100644 --- a/bootstrap/src/main/java/io/bitsquare/app/bootstrap/BootstrapNode.java +++ b/bootstrap/src/main/java/io/bitsquare/app/bootstrap/BootstrapNode.java @@ -126,10 +126,14 @@ public class BootstrapNode { while (true) { if (peer.peerBean().peerMap().all().size() > 0) { noPeersInfoPrinted = false; - log.info("Number of peers online = " + peer.peerBean().peerMap().all().size()); + int relayed = 0; for (PeerAddress peerAddress : peer.peerBean().peerMap().all()) { log.info("Peer: " + peerAddress.toString()); + if (peerAddress.isRelayed()) + relayed++; } + log.info("Number of peers online = " + peer.peerBean().peerMap().all().size()); + log.info("Relayed peers = " + relayed); } else if (noPeersInfoPrinted) { log.info("No peers online"); diff --git a/core/src/main/java/io/bitsquare/app/BitsquareEnvironment.java b/core/src/main/java/io/bitsquare/app/BitsquareEnvironment.java index 4193d266ba..25947eda8f 100644 --- a/core/src/main/java/io/bitsquare/app/BitsquareEnvironment.java +++ b/core/src/main/java/io/bitsquare/app/BitsquareEnvironment.java @@ -64,7 +64,7 @@ public class BitsquareEnvironment extends StandardEnvironment { public static final String DEFAULT_APP_NAME = "Bitsquare"; public static final String APP_DATA_DIR_KEY = "app.data.dir"; - public static final String DEFAULT_APP_DATA_DIR = appDataDir(DEFAULT_USER_DATA_DIR, DEFAULT_APP_NAME, BitcoinNetwork.DEFAULT, Version.VERSION); + public static final String DEFAULT_APP_DATA_DIR = appDataDir(DEFAULT_USER_DATA_DIR, DEFAULT_APP_NAME); public static final String APP_DATA_DIR_CLEAN_KEY = "app.data.dir.clean"; public static final String DEFAULT_APP_DATA_DIR_CLEAN = "false"; @@ -80,6 +80,7 @@ public class BitsquareEnvironment extends StandardEnvironment { protected final String appName; protected final String userDataDir; protected final String appDataDir; + protected final String btcNetworkDir; protected final String bootstrapNodePort; public BitsquareEnvironment(OptionSet options) { @@ -87,7 +88,7 @@ public class BitsquareEnvironment extends StandardEnvironment { } public BitcoinNetwork getBtcNetworkProperty() { - String dirString = Paths.get(userDataDir, appName, Version.VERSION).toString(); + String dirString = Paths.get(userDataDir, appName).toString(); String fileString = Paths.get(dirString, BITCOIN_NETWORK_PROP).toString(); File dir = new File(dirString); File file = new File(fileString); @@ -114,7 +115,7 @@ public class BitsquareEnvironment extends StandardEnvironment { } public void setBitcoinNetwork(BitcoinNetwork bitcoinNetwork) { - String path = Paths.get(userDataDir, appName, Version.VERSION, BITCOIN_NETWORK_PROP).toString(); + String path = Paths.get(userDataDir, appName, BITCOIN_NETWORK_PROP).toString(); File file = new File(path); try (FileOutputStream fos = new FileOutputStream(file)) { Properties properties = new Properties(); @@ -137,7 +138,12 @@ public class BitsquareEnvironment extends StandardEnvironment { appDataDir = commandLineProperties.containsProperty(APP_DATA_DIR_KEY) ? (String) commandLineProperties.getProperty(APP_DATA_DIR_KEY) : - appDataDir(userDataDir, appName, getBtcNetworkProperty(), Version.VERSION); + appDataDir(userDataDir, appName); + + btcNetworkDir = Paths.get(appDataDir, getBtcNetworkProperty().name().toLowerCase()).toString(); + File btcNetworkDirFile = new File(btcNetworkDir); + if (!btcNetworkDirFile.exists()) + btcNetworkDirFile.mkdir(); bootstrapNodePort = commandLineProperties.containsProperty(TomP2PModule.BOOTSTRAP_NODE_PORT_KEY) ? (String) commandLineProperties.getProperty(TomP2PModule.BOOTSTRAP_NODE_PORT_KEY) : "-1"; @@ -155,7 +161,7 @@ public class BitsquareEnvironment extends StandardEnvironment { } PropertySource appDirProperties() throws Exception { - String location = String.format("file:%s/bitsquare.properties", appDataDir); + String location = String.format("file:%s/bitsquare.properties", btcNetworkDir); Resource resource = resourceLoader.getResource(location); if (!resource.exists()) @@ -182,19 +188,22 @@ public class BitsquareEnvironment extends StandardEnvironment { protected PropertySource defaultProperties() { return new PropertiesPropertySource(BITSQUARE_DEFAULT_PROPERTY_SOURCE_NAME, new Properties() { private static final long serialVersionUID = -8478089705207326165L; + { setProperty(APP_DATA_DIR_KEY, appDataDir); setProperty(APP_DATA_DIR_CLEAN_KEY, DEFAULT_APP_DATA_DIR_CLEAN); setProperty(APP_NAME_KEY, appName); + setProperty(USER_DATA_DIR_KEY, userDataDir); setProperty(UserAgent.NAME_KEY, appName); + setProperty(UserAgent.VERSION_KEY, Version.VERSION); - setProperty(WalletService.DIR_KEY, appDataDir); + setProperty(WalletService.DIR_KEY, btcNetworkDir); setProperty(WalletService.PREFIX_KEY, appName); - setProperty(Storage.DIR_KEY, Paths.get(appDataDir, "db").toString()); - setProperty(KeyStorage.DIR_KEY, Paths.get(appDataDir, "keys").toString()); + setProperty(Storage.DIR_KEY, Paths.get(btcNetworkDir, "db").toString()); + setProperty(KeyStorage.DIR_KEY, Paths.get(btcNetworkDir, "keys").toString()); setProperty(TomP2PModule.BOOTSTRAP_NODE_PORT_KEY, bootstrapNodePort); } @@ -210,7 +219,7 @@ public class BitsquareEnvironment extends StandardEnvironment { return Paths.get(System.getProperty("user.home"), ".local", "share").toString(); } - private static String appDataDir(String userDataDir, String appName, BitcoinNetwork bitcoinNetwork, String version) { - return Paths.get(userDataDir, appName, version, bitcoinNetwork.name().toLowerCase()).toString(); + private static String appDataDir(String userDataDir, String appName) { + return Paths.get(userDataDir, appName).toString(); } } diff --git a/core/src/main/java/io/bitsquare/btc/WalletService.java b/core/src/main/java/io/bitsquare/btc/WalletService.java index aae4261253..c959e5cdf1 100644 --- a/core/src/main/java/io/bitsquare/btc/WalletService.java +++ b/core/src/main/java/io/bitsquare/btc/WalletService.java @@ -278,8 +278,10 @@ public class WalletService { public void shutDown() { if (wallet != null) wallet.removeEventListener(walletEventListener); - if (walletAppKit != null) + if (walletAppKit != null) { walletAppKit.stopAsync(); + walletAppKit.awaitTerminated(); + } } public ReadOnlyDoubleProperty downloadPercentageProperty() { diff --git a/core/src/main/java/io/bitsquare/user/Preferences.java b/core/src/main/java/io/bitsquare/user/Preferences.java index e3e818fa94..9a03cb4803 100644 --- a/core/src/main/java/io/bitsquare/user/Preferences.java +++ b/core/src/main/java/io/bitsquare/user/Preferences.java @@ -53,7 +53,7 @@ public class Preferences implements Serializable { } transient private final Storage storage; - transient private BitsquareEnvironment bitsquareEnvironment; + transient private final BitsquareEnvironment bitsquareEnvironment; // Persisted fields private String btcDenomination = MonetaryFormat.CODE_BTC; diff --git a/core/src/main/java/io/bitsquare/util/Utilities.java b/core/src/main/java/io/bitsquare/util/Utilities.java index 84beae9c52..c231289766 100644 --- a/core/src/main/java/io/bitsquare/util/Utilities.java +++ b/core/src/main/java/io/bitsquare/util/Utilities.java @@ -21,6 +21,9 @@ import io.bitsquare.common.handlers.ResultHandler; import org.bitcoinj.utils.Threading; +import com.google.common.base.Charsets; +import com.google.common.io.CharStreams; + import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -32,6 +35,8 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.io.ObjectInput; import java.io.ObjectInputStream; import java.io.ObjectOutput; @@ -39,6 +44,7 @@ import java.io.ObjectOutputStream; import java.io.Serializable; import java.net.URI; +import java.net.URLConnection; import java.util.Timer; import java.util.TimerTask; @@ -54,7 +60,6 @@ public class Utilities { private static final Logger log = LoggerFactory.getLogger(Utilities.class); private static long lastTimeStamp = System.currentTimeMillis(); - public static Timer setTimeout(long delay, ResultHandler handler) { Timer timer = new Timer(); TimerTask task = new TimerTask() { @@ -299,4 +304,18 @@ public class Utilities { } } + public static String readTextFileFromServer(String url, String userAgent) throws IOException { + URLConnection connection = URI.create(url).toURL().openConnection(); + connection.setDoOutput(true); + connection.setUseCaches(false); + connection.setConnectTimeout(10 * 1000); + connection.addRequestProperty("User-Agent", userAgent); + connection.connect(); + try (InputStream inputStream = connection.getInputStream();) { + return CharStreams.toString(new InputStreamReader(inputStream, Charsets.UTF_8)); + } catch (IOException e) { + e.printStackTrace(); + throw e; + } + } } diff --git a/gui/pom.xml b/gui/pom.xml index a998af13a9..1399bc8e01 100644 --- a/gui/pom.xml +++ b/gui/pom.xml @@ -120,7 +120,7 @@ com.vinumeris updatefx - 1.2 + 1.3-SNAPSHOT @@ -128,7 +128,6 @@ slf4j-jdk14 - + CFBundleSignature ???? diff --git a/package/mac/Info.template.plist b/package/mac/Info.template.plist index c7ec039f21..c8dc32ca34 100644 --- a/package/mac/Info.template.plist +++ b/package/mac/Info.template.plist @@ -23,8 +23,7 @@ CFBundleShortVersionString 1 - + CFBundleSignature ???? diff --git a/package/mac/create_app.sh b/package/mac/create_app.sh index f68b9f4062..56f2a81b43 100644 --- a/package/mac/create_app.sh +++ b/package/mac/create_app.sh @@ -31,9 +31,7 @@ sed "s|JAR_NAME_STRING_GOES_HERE|$patchVersion.jar|" package/mac/Info.template.p mvn clean package -DskipTests -Dmaven.javadoc.skip=true cp gui/target/shaded.jar gui/updatefx/builds/$patchVersion.jar -java -jar ./updatefx/updatefx-app-1.6.jar --url=http://bitsquare.io/updateFX/ gui/updatefx -# using trezor -#java -jar ./updatefx/updatefx-app-1.6.jar --url=http://bitsquare.io/updateFX/ gui/updatefx --trezor +java -jar ./updatefx/updatefx-app-1.3-SNAPSHOT.jar --url=http://bitsquare.io/updateFX/v03 gui/updatefx $JAVA_HOME/bin/javapackager \ -deploy \ diff --git a/package/mac/setup.sh b/package/mac/setup.sh index 4970f6018c..1042cd5f2a 100644 --- a/package/mac/setup.sh +++ b/package/mac/setup.sh @@ -9,7 +9,7 @@ mkdir gui/updatefx/site mkdir gui/deploy # create key/wallet. Copy wallet key to UpdateProcess and use wallet for other OS builds -java -jar ./updatefx/updatefx-app-1.6.jar --url=http://bitsquare.io/updateFX/ gui/updatefx +java -jar ./updatefx/updatefx-app-1.3-SNAPSHOT.jar --url=http://bitsquare.io/updateFX/v03 gui/updatefx cd package/mac diff --git a/package/mac/update.sh b/package/mac/update.sh index cee442cf3c..6e16bdde7c 100644 --- a/package/mac/update.sh +++ b/package/mac/update.sh @@ -26,6 +26,6 @@ echo fullVersion = $fullVersion mvn clean package -DskipTests -Dmaven.javadoc.skip=true cp gui/target/shaded.jar gui/updatefx/builds/$patchVersion.jar -java -jar ./updatefx/updatefx-app-1.6.jar --url=http://bitsquare.io/updateFX/ gui/updatefx +java -jar ./updatefx/updatefx-app-1.3-SNAPSHOT.jar --url=http://bitsquare.io/updateFX/v03 gui/updatefx cd package/mac \ No newline at end of file diff --git a/updatefx/updatefx-app-1.3-SNAPSHOT.jar b/updatefx/updatefx-app-1.3-SNAPSHOT.jar new file mode 100644 index 0000000000..30d84cb3e9 Binary files /dev/null and b/updatefx/updatefx-app-1.3-SNAPSHOT.jar differ