From 90945a3ae4e37253e07fa497488bb5ae87e0a8f8 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sat, 3 Nov 2018 11:00:44 +0100 Subject: [PATCH 01/45] Add CODEOWNERS Per docs at https://help.github.com/articles/about-codeowners/ --- CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000000..40457225ed --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,2 @@ +# This doc specifies who gets requested to review GitHub pull requests. +# See https://help.github.com/articles/about-codeowners/. From 7c42e52651da1e1209389bcd034c17bb2f6e0d20 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sat, 3 Nov 2018 11:05:47 +0100 Subject: [PATCH 02/45] Make @ManfredKarrer default code owner --- CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CODEOWNERS b/CODEOWNERS index 40457225ed..f85d638f82 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,2 +1,4 @@ # This doc specifies who gets requested to review GitHub pull requests. # See https://help.github.com/articles/about-codeowners/. + +* @ManfredKarrer From 26eada43103b7789b04ab9eef6df6fb0c92f2f64 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sat, 3 Nov 2018 11:07:31 +0100 Subject: [PATCH 03/45] Make @blabno /assets code owner --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/CODEOWNERS b/CODEOWNERS index f85d638f82..2d1031388b 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -2,3 +2,4 @@ # See https://help.github.com/articles/about-codeowners/. * @ManfredKarrer +/assets/ @blabno From 813d2ae1a6621c5703a911615a03bd5ac3859703 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sat, 3 Nov 2018 11:17:03 +0100 Subject: [PATCH 04/45] Make @ripcurlx, @ManfredKarrer /desktop code owners --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/CODEOWNERS b/CODEOWNERS index 2d1031388b..7470120fcc 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -3,3 +3,4 @@ * @ManfredKarrer /assets/ @blabno +/desktop/ @ripcurlx, @ManfredKarrer From 41a51670a0b0d1d35e02ece4713cf1e2ddae78ff Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sat, 3 Nov 2018 11:19:11 +0100 Subject: [PATCH 05/45] Make @cbeams Gradle build code owner --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/CODEOWNERS b/CODEOWNERS index 7470120fcc..f0828ae12d 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -4,3 +4,4 @@ * @ManfredKarrer /assets/ @blabno /desktop/ @ripcurlx, @ManfredKarrer +*gradle* @cbeams From 6cc0e455e29c2e6a1f26102e3221af627ec3f13d Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sat, 3 Nov 2018 11:20:05 +0100 Subject: [PATCH 06/45] Make @cbeams /pricenode code owner --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/CODEOWNERS b/CODEOWNERS index f0828ae12d..68bacd930a 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -5,3 +5,4 @@ /assets/ @blabno /desktop/ @ripcurlx, @ManfredKarrer *gradle* @cbeams +/pricenode/ @cbeams From c344e0d10a66b723a5e668fb25a8abd39e57eb26 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 09:16:37 +0100 Subject: [PATCH 07/45] Remove obsolete desktop/settings.gradle This was vestige from when desktop was managed as a separate repository. --- desktop/settings.gradle | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 desktop/settings.gradle diff --git a/desktop/settings.gradle b/desktop/settings.gradle deleted file mode 100644 index cb072c03a8..0000000000 --- a/desktop/settings.gradle +++ /dev/null @@ -1,2 +0,0 @@ -rootProject.name = 'bisq-desktop' -include 'common', 'core', 'p2p', 'assets' \ No newline at end of file From b460894e4d402d8938063cb8d629727fb964b91a Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 09:26:57 +0100 Subject: [PATCH 08/45] Refactor gradle-witness plugin location and config - Move gradle-witness.jar to top level - Extract gradle-witness.gradle build file to top level Moving these files out of the gradle/ dir and the main build file to the top level of the repository calls them out and makes their presence and function more obvious. It also removes a lot of noise from the main build file. --- desktop/build.gradle | 81 +----------------- desktop/gradle-witness.gradle | 76 ++++++++++++++++ .../{gradle/witness => }/gradle-witness.jar | Bin desktop/gradle/witness/README.md | 1 - 4 files changed, 80 insertions(+), 78 deletions(-) create mode 100644 desktop/gradle-witness.gradle rename desktop/{gradle/witness => }/gradle-witness.jar (100%) delete mode 100644 desktop/gradle/witness/README.md diff --git a/desktop/build.gradle b/desktop/build.gradle index 69e5c4bf7c..975635fd2c 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -4,20 +4,22 @@ buildscript { } dependencies { classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' - classpath files('gradle/witness/gradle-witness.jar') classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0' + classpath files('gradle-witness.jar') } } apply plugin: 'java' apply plugin: 'application' apply plugin: 'maven' -apply plugin: 'witness' apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'com.google.osdetector' +apply plugin: 'witness' +apply from: 'gradle-witness.gradle' ext.platform = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os + group = 'network.bisq' version = '0.8.0-SNAPSHOT' @@ -83,78 +85,3 @@ test { } build.dependsOn installDist installDist.destinationDir = file('build/app') - -// To update the `dependencyVerification` block below: -// -// 1. Remove the block entirely -// 2. Replace the block with the following command: -// -// ./gradlew -q calculateChecksums | grep -v network.bisq >> desktop/build.gradle -// -// 3. Run `git diff` to verify that expected hashes have changed -// 4. Commit the changes - -dependencyVerification { - verify = [ - 'org.controlsfx:controlsfx:b98f1c9507c05600f80323674b33d15674926c71b0116f70085b62bdacf1e573', - 'org.reactfx:reactfx:81ec8fe545d65661222735711114c2ce427e2187a65f1722e8ac4e4805beeca3', - 'net.glxn:qrgen:c85d9d8512d91e8ad11fe56259a7825bd50ce0245447e236cf168d1b17591882', - 'de.jensd:fontawesomefx:73bacc991a0a6f5cf0f911767c8db161e0949dbca61e8371eb4342e3da96887b', - 'de.jensd:fontawesomefx-materialdesignfont:dbad8dfdd1c85e298d5bbae25b2399aec9e85064db57b2427d10f3815aa98752', - 'de.jensd:fontawesomefx-commons:5539bb3335ecb822dbf928546f57766eeb9f1516cc1417a064b5709629612149', - 'com.googlecode.jcsv:jcsv:73ca7d715e90c8d2c2635cc284543b038245a34f70790660ed590e157b8714a2', - 'com.github.sarxos:webcam-capture:d960b7ea8ec3ddf2df0725ef214c3fccc9699ea7772df37f544e1f8e4fd665f6', - 'com.github.JesusMcCloud.netlayer:tor.native:de44e782b21838d3426dbff99abbfd1cbb8e5d3f6d5e997441ff4fd8354934fa', - 'org.apache.httpcomponents:httpclient:db3d1b6c2d6a5e5ad47577ad61854e2f0e0936199b8e05eb541ed52349263135', - 'net.sf.jopt-simple:jopt-simple:6f45c00908265947c39221035250024f2caec9a15c1c8cf553ebeecee289f342', - 'org.fxmisc.easybind:easybind:666af296dda6de68751668a62661571b5238ac6f1c07c8a204fc6f902b222aaf', - 'com.fasterxml.jackson.core:jackson-databind:fcf3c2b0c332f5f54604f7e27fa7ee502378a2cc5df6a944bbfae391872c32ff', - 'com.fasterxml.jackson.core:jackson-core:39a74610521d7fb9eb3f437bb8739bbf47f6435be12d17bf954c731a0c6352bb', - 'com.fasterxml.jackson.core:jackson-annotations:2566b3a6662afa3c6af4f5b25006cb46be2efc68f1b5116291d6998a8cdf7ed3', - 'com.google.protobuf:protobuf-java:b5e2d91812d183c9f053ffeebcbcda034d4de6679521940a19064714966c2cd4', - 'com.google.code.gson:gson:2d43eb5ea9e133d2ee2405cc14f5ee08951b8361302fdd93494a3a997b508d32', - 'com.googlecode.json-simple:json-simple:4e69696892b88b41c55d49ab2fdcc21eead92bf54acc588c0050596c3b75199c', - 'org.springframework:spring-core:c451e8417adb2ffb2445636da5e44a2f59307c4100037a1fe387c3fba4f29b52', - 'ch.qos.logback:logback-classic:e66efc674e94837344bc5b748ff510c37a44eeff86cbfdbf9e714ef2eb374013', - 'org.slf4j:slf4j-api:3a4cd4969015f3beb4b5b4d81dbafc01765fb60b8a439955ca64d8476fef553e', - 'ch.qos.logback:logback-core:4cd46fa17d77057b39160058df2f21ebbc2aded51d0edcc25d2c1cecc042a005', - 'com.google.code.findbugs:jsr305:c885ce34249682bc0236b4a7d56efcc12048e6135a5baf7a9cde8ad8cda13fcd', - 'com.google.guava:guava:36a666e3b71ae7f0f0dca23654b67e086e6c93d192f60ba5dfd5519db6c288c8', - 'com.google.inject:guice:9b9df27a5b8c7864112b4137fd92b36c3f1395bfe57be42fedf2f520ead1a93e', - 'com.github.JesusMcCloud.netlayer:tor:3896950c56a41985f901ff9475524ac162cba18b2d5a0ed39810b20ddaf5128a', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:841b021d62fc007ce2883963ff9440d5393fb1f6a0604ed68cd016afcaf02967', - 'com.github.MicroUtils:kotlin-logging:7dbd501cc210d721f730d480c53ee2a6e3c154ae89b07dc7dee224b9c5aca9eb', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:bd8cd4e3ef391cd468434747b7939c49e80f8bf4ae10355a65382bfb54fd633c', - 'org.jetbrains.kotlin:kotlin-stdlib:e1c39d27f23a7fe2d3e4ac65e80a53e98fdcf60e07de9d53b8b841c5944fc810', - 'org.jetbrains:annotations:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478', - 'org.bouncycastle:bcpg-jdk15on:de3355b821fc81dd32e1f3f560d5b3eca1c678fd2400011d0bfc69fb91bcde85', - 'commons-io:commons-io:cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581', - 'org.apache.commons:commons-lang3:734c8356420cc8e30c795d64fd1fcd5d44ea9d90342a2cc3262c5158fbc6d98b', - 'org.bouncycastle:bcprov-jdk15on:963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349', - 'com.google.zxing:javase:0ec23e2ec12664ddd6347c8920ad647bb3b9da290f897a88516014b56cc77eb9', - 'com.nativelibs4java:bridj:101bcd9b6637e6bc16e56deb3daefba62b1f5e8e9e37e1b3e56e3b5860d659cf', - 'com.cedricwalter:tor-binary-macos:87790e9eade1e44eeadc81f92670f338cd47ef1b39b46a4b022c75d0cf6465fd', - 'com.cedricwalter:tor-binary-linux32:814f6da3b662c96490bcb09781764dd31dfe497ea9c25c73fe61170d2a78086f', - 'com.cedricwalter:tor-binary-linux64:9da7f8a166ad0a767a5373ca67c68971c9c0cac17964eed2e0850bfecc228312', - 'com.cedricwalter:tor-binary-windows:9487a735dadcadc6ede5ffad36a911c2d4a484f996be93d71094f26591b8c29e', - 'com.github.ravn:jsocks:3c71600af027b2b6d4244e4ad14d98ff2352a379410daebefff5d8cd48d742a4', - 'org.apache.httpcomponents:httpcore:d7f853dee87680b07293d30855b39b9eb56c1297bd16ff1cd6f19ddb8fa745fb', - 'commons-codec:commons-codec:ad19d2601c3abf0b946b5c3a4113e226a8c1e3305e395b90013b78dd94a723ce', - 'commons-logging:commons-logging:daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636', - 'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', - 'aopalliance:aopalliance:0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08', - 'com.github.bisq-network.bitcoinj:bitcoinj-core:15e0f4304dd92259c4e9ff0114cbeab7a79abb51a5817b422ce629d3a0a2d551', - 'com.lambdaworks:scrypt:9a82d218099fb14c10c0e86e7eefeebd8c104de920acdc47b8b4b7a686fb73b4', - 'com.google.zxing:core:11aae8fd974ab25faa8208be50468eb12349cd239e93e7c797377fa13e381729', - 'com.cedricwalter:tor-binary-geoip:7fc7b5ebf80d65ec53d97dd8d3878b8d2c85dc04f3943e5e85e7ba641655492b', - 'com.github.JesusMcCloud:jtorctl:c6ef92e46074d8d26db718ce0fe4b64b8cf7b934b7377d164c5d613b4cd7b847', - 'org.apache.commons:commons-compress:a778bbd659722889245fc52a0ec2873fbbb89ec661bc1ad3dc043c0757c784c4', - 'org.tukaani:xz:a594643d73cc01928cf6ca5ce100e094ea9d73af760a5d4fb6b75fa673ecec96', - 'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f', - 'net.jcip:jcip-annotations:be5805392060c71474bf6c9a67a099471274d30b83eef84bfc4e0889a4f1dcc0', - 'org.bitcoinj:orchid:f836325cfa0466a011cb755c9b0fee6368487a2352eb45f4306ad9e4c18de080', - 'com.squareup.okhttp:okhttp:b4c943138fcef2bcc9d2006b2250c4aabbedeafc5947ed7c0af7fd103ceb2707', - 'org.objenesis:objenesis:5e168368fbc250af3c79aa5fef0c3467a2d64e5a7bd74005f25d8399aeb0708d', - 'com.squareup.okio:okio:114bdc1f47338a68bcbc95abf2f5cdc72beeec91812f2fcd7b521c1937876266', - ] -} diff --git a/desktop/gradle-witness.gradle b/desktop/gradle-witness.gradle new file mode 100644 index 0000000000..0ff9b938f3 --- /dev/null +++ b/desktop/gradle-witness.gradle @@ -0,0 +1,76 @@ +// To update the `dependencyVerification` block below: +// +// 1. Remove the block entirely +// 2. Replace the block with the following command: +// +// ./gradlew -q calculateChecksums | grep -v network.bisq >> desktop/gradle-witness.gradle +// +// 3. Run `git diff` to verify that expected hashes have changed +// 4. Commit the changes +// +// See https://github.com/signalapp/gradle-witness#using-witness for further details. + +dependencyVerification { + verify = [ + 'org.controlsfx:controlsfx:b98f1c9507c05600f80323674b33d15674926c71b0116f70085b62bdacf1e573', + 'org.reactfx:reactfx:81ec8fe545d65661222735711114c2ce427e2187a65f1722e8ac4e4805beeca3', + 'net.glxn:qrgen:c85d9d8512d91e8ad11fe56259a7825bd50ce0245447e236cf168d1b17591882', + 'de.jensd:fontawesomefx:73bacc991a0a6f5cf0f911767c8db161e0949dbca61e8371eb4342e3da96887b', + 'de.jensd:fontawesomefx-materialdesignfont:dbad8dfdd1c85e298d5bbae25b2399aec9e85064db57b2427d10f3815aa98752', + 'de.jensd:fontawesomefx-commons:5539bb3335ecb822dbf928546f57766eeb9f1516cc1417a064b5709629612149', + 'com.googlecode.jcsv:jcsv:73ca7d715e90c8d2c2635cc284543b038245a34f70790660ed590e157b8714a2', + 'com.github.sarxos:webcam-capture:d960b7ea8ec3ddf2df0725ef214c3fccc9699ea7772df37f544e1f8e4fd665f6', + 'com.github.JesusMcCloud.netlayer:tor.native:de44e782b21838d3426dbff99abbfd1cbb8e5d3f6d5e997441ff4fd8354934fa', + 'org.apache.httpcomponents:httpclient:db3d1b6c2d6a5e5ad47577ad61854e2f0e0936199b8e05eb541ed52349263135', + 'net.sf.jopt-simple:jopt-simple:6f45c00908265947c39221035250024f2caec9a15c1c8cf553ebeecee289f342', + 'org.fxmisc.easybind:easybind:666af296dda6de68751668a62661571b5238ac6f1c07c8a204fc6f902b222aaf', + 'com.fasterxml.jackson.core:jackson-databind:fcf3c2b0c332f5f54604f7e27fa7ee502378a2cc5df6a944bbfae391872c32ff', + 'com.fasterxml.jackson.core:jackson-core:39a74610521d7fb9eb3f437bb8739bbf47f6435be12d17bf954c731a0c6352bb', + 'com.fasterxml.jackson.core:jackson-annotations:2566b3a6662afa3c6af4f5b25006cb46be2efc68f1b5116291d6998a8cdf7ed3', + 'com.google.protobuf:protobuf-java:b5e2d91812d183c9f053ffeebcbcda034d4de6679521940a19064714966c2cd4', + 'com.google.code.gson:gson:2d43eb5ea9e133d2ee2405cc14f5ee08951b8361302fdd93494a3a997b508d32', + 'com.googlecode.json-simple:json-simple:4e69696892b88b41c55d49ab2fdcc21eead92bf54acc588c0050596c3b75199c', + 'org.springframework:spring-core:c451e8417adb2ffb2445636da5e44a2f59307c4100037a1fe387c3fba4f29b52', + 'ch.qos.logback:logback-classic:e66efc674e94837344bc5b748ff510c37a44eeff86cbfdbf9e714ef2eb374013', + 'org.slf4j:slf4j-api:3a4cd4969015f3beb4b5b4d81dbafc01765fb60b8a439955ca64d8476fef553e', + 'ch.qos.logback:logback-core:4cd46fa17d77057b39160058df2f21ebbc2aded51d0edcc25d2c1cecc042a005', + 'com.google.code.findbugs:jsr305:c885ce34249682bc0236b4a7d56efcc12048e6135a5baf7a9cde8ad8cda13fcd', + 'com.google.guava:guava:36a666e3b71ae7f0f0dca23654b67e086e6c93d192f60ba5dfd5519db6c288c8', + 'com.google.inject:guice:9b9df27a5b8c7864112b4137fd92b36c3f1395bfe57be42fedf2f520ead1a93e', + 'com.github.JesusMcCloud.netlayer:tor:3896950c56a41985f901ff9475524ac162cba18b2d5a0ed39810b20ddaf5128a', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:841b021d62fc007ce2883963ff9440d5393fb1f6a0604ed68cd016afcaf02967', + 'com.github.MicroUtils:kotlin-logging:7dbd501cc210d721f730d480c53ee2a6e3c154ae89b07dc7dee224b9c5aca9eb', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:bd8cd4e3ef391cd468434747b7939c49e80f8bf4ae10355a65382bfb54fd633c', + 'org.jetbrains.kotlin:kotlin-stdlib:e1c39d27f23a7fe2d3e4ac65e80a53e98fdcf60e07de9d53b8b841c5944fc810', + 'org.jetbrains:annotations:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478', + 'org.bouncycastle:bcpg-jdk15on:de3355b821fc81dd32e1f3f560d5b3eca1c678fd2400011d0bfc69fb91bcde85', + 'commons-io:commons-io:cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581', + 'org.apache.commons:commons-lang3:734c8356420cc8e30c795d64fd1fcd5d44ea9d90342a2cc3262c5158fbc6d98b', + 'org.bouncycastle:bcprov-jdk15on:963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349', + 'com.google.zxing:javase:0ec23e2ec12664ddd6347c8920ad647bb3b9da290f897a88516014b56cc77eb9', + 'com.nativelibs4java:bridj:101bcd9b6637e6bc16e56deb3daefba62b1f5e8e9e37e1b3e56e3b5860d659cf', + 'com.cedricwalter:tor-binary-macos:87790e9eade1e44eeadc81f92670f338cd47ef1b39b46a4b022c75d0cf6465fd', + 'com.cedricwalter:tor-binary-linux32:814f6da3b662c96490bcb09781764dd31dfe497ea9c25c73fe61170d2a78086f', + 'com.cedricwalter:tor-binary-linux64:9da7f8a166ad0a767a5373ca67c68971c9c0cac17964eed2e0850bfecc228312', + 'com.cedricwalter:tor-binary-windows:9487a735dadcadc6ede5ffad36a911c2d4a484f996be93d71094f26591b8c29e', + 'com.github.ravn:jsocks:3c71600af027b2b6d4244e4ad14d98ff2352a379410daebefff5d8cd48d742a4', + 'org.apache.httpcomponents:httpcore:d7f853dee87680b07293d30855b39b9eb56c1297bd16ff1cd6f19ddb8fa745fb', + 'commons-codec:commons-codec:ad19d2601c3abf0b946b5c3a4113e226a8c1e3305e395b90013b78dd94a723ce', + 'commons-logging:commons-logging:daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636', + 'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', + 'aopalliance:aopalliance:0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08', + 'com.github.bisq-network.bitcoinj:bitcoinj-core:15e0f4304dd92259c4e9ff0114cbeab7a79abb51a5817b422ce629d3a0a2d551', + 'com.lambdaworks:scrypt:9a82d218099fb14c10c0e86e7eefeebd8c104de920acdc47b8b4b7a686fb73b4', + 'com.google.zxing:core:11aae8fd974ab25faa8208be50468eb12349cd239e93e7c797377fa13e381729', + 'com.cedricwalter:tor-binary-geoip:7fc7b5ebf80d65ec53d97dd8d3878b8d2c85dc04f3943e5e85e7ba641655492b', + 'com.github.JesusMcCloud:jtorctl:c6ef92e46074d8d26db718ce0fe4b64b8cf7b934b7377d164c5d613b4cd7b847', + 'org.apache.commons:commons-compress:a778bbd659722889245fc52a0ec2873fbbb89ec661bc1ad3dc043c0757c784c4', + 'org.tukaani:xz:a594643d73cc01928cf6ca5ce100e094ea9d73af760a5d4fb6b75fa673ecec96', + 'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f', + 'net.jcip:jcip-annotations:be5805392060c71474bf6c9a67a099471274d30b83eef84bfc4e0889a4f1dcc0', + 'org.bitcoinj:orchid:f836325cfa0466a011cb755c9b0fee6368487a2352eb45f4306ad9e4c18de080', + 'com.squareup.okhttp:okhttp:b4c943138fcef2bcc9d2006b2250c4aabbedeafc5947ed7c0af7fd103ceb2707', + 'org.objenesis:objenesis:5e168368fbc250af3c79aa5fef0c3467a2d64e5a7bd74005f25d8399aeb0708d', + 'com.squareup.okio:okio:114bdc1f47338a68bcbc95abf2f5cdc72beeec91812f2fcd7b521c1937876266', + ] +} diff --git a/desktop/gradle/witness/gradle-witness.jar b/desktop/gradle-witness.jar similarity index 100% rename from desktop/gradle/witness/gradle-witness.jar rename to desktop/gradle-witness.jar diff --git a/desktop/gradle/witness/README.md b/desktop/gradle/witness/README.md deleted file mode 100644 index ffef66c90a..0000000000 --- a/desktop/gradle/witness/README.md +++ /dev/null @@ -1 +0,0 @@ -See https://github.com/signalapp/gradle-witness#using-witness From d3d3ea629ad8d03a7037de67962f5514352a825d Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 09:33:30 +0100 Subject: [PATCH 09/45] Remove obsolete gradle/wrapper dir This was a vestige from when desktop was managed as a separate repository. --- desktop/gradle/wrapper/gradle-wrapper.jar | Bin 54706 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 ------ 2 files changed, 6 deletions(-) delete mode 100644 desktop/gradle/wrapper/gradle-wrapper.jar delete mode 100644 desktop/gradle/wrapper/gradle-wrapper.properties diff --git a/desktop/gradle/wrapper/gradle-wrapper.jar b/desktop/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 33d1ede74de15c3458d6120082005cef2a8ca4ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54706 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 diff --git a/desktop/gradle/wrapper/gradle-wrapper.properties b/desktop/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 9dc6ecadea..0000000000 --- a/desktop/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Thu Aug 16 20:34:11 CEST 2018 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-bin.zip From d6178f6eea230b642330ed1e1648ac0e31b88b2e Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 09:44:04 +0100 Subject: [PATCH 10/45] Remove osdetector plugin from desktop build This is used only in common/build.gradle and is obsolete here. --- desktop/build.gradle | 5 ----- 1 file changed, 5 deletions(-) diff --git a/desktop/build.gradle b/desktop/build.gradle index 975635fd2c..6cd7bc1643 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' - classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0' classpath files('gradle-witness.jar') } } @@ -13,13 +12,9 @@ apply plugin: 'java' apply plugin: 'application' apply plugin: 'maven' apply plugin: 'com.github.johnrengelman.shadow' -apply plugin: 'com.google.osdetector' apply plugin: 'witness' apply from: 'gradle-witness.gradle' -ext.platform = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os - - group = 'network.bisq' version = '0.8.0-SNAPSHOT' From 572155fa4a3cbcc445580255cc3d0bec6c00e3b1 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 09:46:24 +0100 Subject: [PATCH 11/45] Remove duplicate openjfx dependencies --- common/build.gradle | 4 ---- 1 file changed, 4 deletions(-) diff --git a/common/build.gradle b/common/build.gradle index 3fed0fb2c0..bf8a4c9793 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -80,8 +80,4 @@ dependencies { compileOnly 'org.projectlombok:lombok:1.18.2' annotationProcessor 'org.projectlombok:lombok:1.18.2' testCompile 'junit:junit:4.12' - - compile "org.openjfx:javafx-base:11:$platform" - compile "org.openjfx:javafx-graphics:11:$platform" - compile "org.openjfx:javafx-controls:11:$platform" } From c25759042468574bd0a62e7eee9838161f319947 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 09:54:56 +0100 Subject: [PATCH 12/45] Upgrade to Gradle 4.10.2 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a95009c3b9..e0b3fb8d70 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From cc5ed491bee55accdb18c6b6028f925f684b2fe8 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 10:16:59 +0100 Subject: [PATCH 13/45] Eliminate unnecessary dependency from assets->common --- assets/build.gradle | 6 +++++- assets/src/main/java/bisq/asset/PrintTool.java | 18 +++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/assets/build.gradle b/assets/build.gradle index 28f6fc9940..63a3e51d7d 100644 --- a/assets/build.gradle +++ b/assets/build.gradle @@ -32,7 +32,11 @@ repositories { } dependencies { - compile project(':common') + compile('network.bisq.libdohj:libdohj-core:d4ace7bc') { + exclude(module: 'protobuf-java') + } compile 'commons-codec:commons-codec:1.9' + compile 'org.apache.commons:commons-lang3:3.4' + compile 'org.bouncycastle:bcpg-jdk15on:1.56' testCompile 'junit:junit:4.12' } diff --git a/assets/src/main/java/bisq/asset/PrintTool.java b/assets/src/main/java/bisq/asset/PrintTool.java index 48cdb2b02b..cc17d60660 100644 --- a/assets/src/main/java/bisq/asset/PrintTool.java +++ b/assets/src/main/java/bisq/asset/PrintTool.java @@ -17,8 +17,6 @@ package bisq.asset; -import bisq.common.util.Tuple2; - import java.util.Comparator; public class PrintTool { @@ -31,14 +29,24 @@ public class PrintTool { .sorted(Comparator.comparing(o -> o.getName().toLowerCase())) .filter(e -> !e.getTickerSymbol().equals("BSQ")) // BSQ is not out yet... .filter(e -> !e.getTickerSymbol().equals("BTC")) - .map(e -> new Tuple2(e.getName(), e.getTickerSymbol())) // We want to get rid of duplicated entries for regtest/testnet... + .map(e -> new Pair(e.getName(), e.getTickerSymbol())) // We want to get rid of duplicated entries for regtest/testnet... .distinct() .forEach(e -> sb.append("
  • “") - .append(e.second) + .append(e.right) .append("”, “") - .append(e.first) + .append(e.left) .append("”
  • ") .append("\n")); System.out.println(sb.toString()); } + + private static class Pair { + String left; + String right; + + Pair(String left, String right) { + this.left = left; + this.right = right; + } + } } From 394914ef8dde5e3ec7c01c5ffc18caa0b39edb3b Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 13:00:31 +0100 Subject: [PATCH 14/45] Use single quotes for Gradle strings --- relay/build.gradle | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/relay/build.gradle b/relay/build.gradle index b0cdca7a49..2f885ee056 100644 --- a/relay/build.gradle +++ b/relay/build.gradle @@ -12,15 +12,15 @@ mainClassName = 'bisq.monitor.MonitorMain' repositories { jcenter() - maven { url "https://jitpack.io" } + maven { url 'https://jitpack.io' } maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } } dependencies { - compile project(":common") - compile("com.sparkjava:spark-core:2.5.2") - compile("com.turo:pushy:0.13.2") - compile("com.google.firebase:firebase-admin:6.2.0") + compile project(':common') + compile 'com.sparkjava:spark-core:2.5.2' + compile 'com.turo:pushy:0.13.2' + compile 'com.google.firebase:firebase-admin:6.2.0' compile 'commons-codec:commons-codec:1.9' compileOnly 'org.projectlombok:lombok:1.18.2' annotationProcessor 'org.projectlombok:lombok:1.18.2' @@ -29,4 +29,3 @@ dependencies { build.dependsOn installDist installDist.destinationDir = file('build/app') distZip.enabled = false - From 3c1c402d40a4a8c3a155b58a0b2b0a40ed2e1e5c Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 13:19:06 +0100 Subject: [PATCH 15/45] Remove use of maven plugin It is no longer necessary to publish Maven metadata about common, core and other submodules as they are no longer managed as separate libraries in separate repositories. The only way these modules should be getting referenced is from within applications in this repository such as desktop, statsnode, etc. Essentially, we're no longer publishing our libraries for public consumption. --- assets/build.gradle | 4 ---- common/build.gradle | 4 ---- core/build.gradle | 4 ---- desktop/build.gradle | 2 -- monitor/build.gradle | 3 --- p2p/build.gradle | 4 ---- relay/build.gradle | 3 --- seednode/build.gradle | 2 -- statsnode/build.gradle | 3 --- 9 files changed, 29 deletions(-) diff --git a/assets/build.gradle b/assets/build.gradle index 63a3e51d7d..2ca5f79e06 100644 --- a/assets/build.gradle +++ b/assets/build.gradle @@ -1,11 +1,7 @@ plugins { id 'java' - id 'maven' } -group 'network.bisq' -version '-SNAPSHOT' - sourceCompatibility = 1.10 tasks.withType(JavaCompile) { diff --git a/common/build.gradle b/common/build.gradle index bf8a4c9793..30ce795eca 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -12,7 +12,6 @@ buildscript { plugins { id 'java' - id 'maven' id 'com.google.protobuf' version '0.8.5' } @@ -23,9 +22,6 @@ ext { platform = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os } -group = 'network.bisq' -version = '-SNAPSHOT' - sourceCompatibility = 1.10 tasks.withType(JavaCompile) { diff --git a/core/build.gradle b/core/build.gradle index 4033a706f8..0b7bfbd814 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,11 +1,7 @@ plugins { id 'java' - id 'maven' } -group = 'network.bisq' -version = '-SNAPSHOT' - sourceCompatibility = 1.10 tasks.withType(JavaCompile) { diff --git a/desktop/build.gradle b/desktop/build.gradle index 6cd7bc1643..3ae22dc578 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -10,12 +10,10 @@ buildscript { apply plugin: 'java' apply plugin: 'application' -apply plugin: 'maven' apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'witness' apply from: 'gradle-witness.gradle' -group = 'network.bisq' version = '0.8.0-SNAPSHOT' sourceCompatibility = 1.10 diff --git a/monitor/build.gradle b/monitor/build.gradle index a4ac1b14d2..1b36a66647 100644 --- a/monitor/build.gradle +++ b/monitor/build.gradle @@ -3,9 +3,6 @@ plugins { id 'application' } -group = 'network.bisq' -version = '0.8.0-SNAPSHOT' - sourceCompatibility = 1.10 mainClassName = 'bisq.monitor.MonitorMain' diff --git a/p2p/build.gradle b/p2p/build.gradle index b7dd2275c3..d67fd2d3c3 100644 --- a/p2p/build.gradle +++ b/p2p/build.gradle @@ -1,11 +1,7 @@ plugins { id 'java' - id 'maven' } -group = 'network.bisq' -version = '-SNAPSHOT' - sourceCompatibility = 1.10 repositories { diff --git a/relay/build.gradle b/relay/build.gradle index 2f885ee056..1792ebe9f4 100644 --- a/relay/build.gradle +++ b/relay/build.gradle @@ -3,9 +3,6 @@ plugins { id 'application' } -group = 'network.bisq' -version = '0.8.0-SNAPSHOT' - sourceCompatibility = 1.10 mainClassName = 'bisq.monitor.MonitorMain' diff --git a/seednode/build.gradle b/seednode/build.gradle index e7e597687f..cfbdf06e2b 100644 --- a/seednode/build.gradle +++ b/seednode/build.gradle @@ -9,10 +9,8 @@ buildscript { apply plugin: 'java' apply plugin: 'application' -apply plugin: 'maven' apply plugin: 'com.github.johnrengelman.shadow' -group = 'network.bisq' version = '0.8.0-SNAPSHOT' sourceCompatibility = 1.10 diff --git a/statsnode/build.gradle b/statsnode/build.gradle index 7a3264f13f..c04d8c8d24 100644 --- a/statsnode/build.gradle +++ b/statsnode/build.gradle @@ -3,9 +3,6 @@ plugins { id 'application' } -group = 'network.bisq' -version = '0.8.0-SNAPSHOT' - sourceCompatibility = 1.10 mainClassName = 'bisq.statistics.StatisticsMain' From 1a0b01770c24b45406ab3c6fde450ba9db802006 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 13:36:22 +0100 Subject: [PATCH 16/45] Remove use of lombok annotations in relay --- relay/build.gradle | 2 -- relay/src/main/java/bisq/relay/RelayService.java | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/relay/build.gradle b/relay/build.gradle index 1792ebe9f4..b944156d26 100644 --- a/relay/build.gradle +++ b/relay/build.gradle @@ -19,8 +19,6 @@ dependencies { compile 'com.turo:pushy:0.13.2' compile 'com.google.firebase:firebase-admin:6.2.0' compile 'commons-codec:commons-codec:1.9' - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' } build.dependsOn installDist diff --git a/relay/src/main/java/bisq/relay/RelayService.java b/relay/src/main/java/bisq/relay/RelayService.java index 4bb7910e85..50c2ee5437 100644 --- a/relay/src/main/java/bisq/relay/RelayService.java +++ b/relay/src/main/java/bisq/relay/RelayService.java @@ -25,7 +25,9 @@ import java.io.InputStream; import java.util.Scanner; import java.util.concurrent.ExecutionException; -import lombok.extern.slf4j.Slf4j; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @@ -43,8 +45,8 @@ import com.turo.pushy.apns.util.ApnsPayloadBuilder; import com.turo.pushy.apns.util.SimpleApnsPushNotification; import com.turo.pushy.apns.util.concurrent.PushNotificationFuture; -@Slf4j class RelayService { + private static final Logger log = LoggerFactory.getLogger(RelayMain.class); private static final String ANDROID_DATABASE_URL = "https://bisqnotifications.firebaseio.com"; // Used in Bisq app to check for success state. We won't want a code dependency just for that string so we keep it // duplicated in core and here. Must not be changed. From b857e5d94aedeb3c4d0aa16e6c0454cc3d6ea832 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 13:37:14 +0100 Subject: [PATCH 17/45] Fix broken mainClassName in relay --- relay/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/relay/build.gradle b/relay/build.gradle index b944156d26..63fe769671 100644 --- a/relay/build.gradle +++ b/relay/build.gradle @@ -5,7 +5,7 @@ plugins { sourceCompatibility = 1.10 -mainClassName = 'bisq.monitor.MonitorMain' +mainClassName = 'bisq.relay.RelayMain' repositories { jcenter() From f0b4496d13871d76d508db5c55bf214623b78e8e Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 13:38:29 +0100 Subject: [PATCH 18/45] Remove unnecessary JesusMcCloud repo from relay --- relay/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/relay/build.gradle b/relay/build.gradle index 63fe769671..e21c567ed3 100644 --- a/relay/build.gradle +++ b/relay/build.gradle @@ -10,7 +10,6 @@ mainClassName = 'bisq.relay.RelayMain' repositories { jcenter() maven { url 'https://jitpack.io' } - maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } } dependencies { From 95c8b8ddfa570698d466a662e375ef3955a2e919 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 13:40:00 +0100 Subject: [PATCH 19/45] Pull up application and configuration of java plugin --- assets/build.gradle | 6 ------ build.gradle | 5 +++++ common/build.gradle | 3 --- core/build.gradle | 6 ------ desktop/build.gradle | 3 --- monitor/build.gradle | 3 --- p2p/build.gradle | 6 ------ pricenode/build.gradle | 4 ---- relay/build.gradle | 3 --- seednode/build.gradle | 5 ----- statsnode/build.gradle | 3 --- 11 files changed, 5 insertions(+), 42 deletions(-) diff --git a/assets/build.gradle b/assets/build.gradle index 2ca5f79e06..b48a82ad83 100644 --- a/assets/build.gradle +++ b/assets/build.gradle @@ -1,9 +1,3 @@ -plugins { - id 'java' -} - -sourceCompatibility = 1.10 - tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } diff --git a/build.gradle b/build.gradle index caeb306050..b03b793f07 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,8 @@ plugins { id 'java-base' } + +subprojects { + apply plugin: 'java' + sourceCompatibility = 1.10 +} diff --git a/common/build.gradle b/common/build.gradle index 30ce795eca..b674e4049a 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -11,7 +11,6 @@ buildscript { } plugins { - id 'java' id 'com.google.protobuf' version '0.8.5' } @@ -22,8 +21,6 @@ ext { platform = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os } -sourceCompatibility = 1.10 - tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } diff --git a/core/build.gradle b/core/build.gradle index 0b7bfbd814..e880488f1f 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,9 +1,3 @@ -plugins { - id 'java' -} - -sourceCompatibility = 1.10 - tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } diff --git a/desktop/build.gradle b/desktop/build.gradle index 3ae22dc578..01a48f03b3 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -8,7 +8,6 @@ buildscript { } } -apply plugin: 'java' apply plugin: 'application' apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'witness' @@ -16,8 +15,6 @@ apply from: 'gradle-witness.gradle' version = '0.8.0-SNAPSHOT' -sourceCompatibility = 1.10 - mainClassName = 'bisq.desktop.app.BisqAppMain' def jmockitVersion = '1.42' diff --git a/monitor/build.gradle b/monitor/build.gradle index 1b36a66647..ed93877756 100644 --- a/monitor/build.gradle +++ b/monitor/build.gradle @@ -1,10 +1,7 @@ plugins { - id 'java' id 'application' } -sourceCompatibility = 1.10 - mainClassName = 'bisq.monitor.MonitorMain' repositories { diff --git a/p2p/build.gradle b/p2p/build.gradle index d67fd2d3c3..c3763fd25f 100644 --- a/p2p/build.gradle +++ b/p2p/build.gradle @@ -1,9 +1,3 @@ -plugins { - id 'java' -} - -sourceCompatibility = 1.10 - repositories { jcenter() maven { url 'https://jitpack.io' } diff --git a/pricenode/build.gradle b/pricenode/build.gradle index 4096ee6004..328998d35d 100644 --- a/pricenode/build.gradle +++ b/pricenode/build.gradle @@ -1,11 +1,7 @@ plugins { - id "java" id "org.springframework.boot" version "1.5.10.RELEASE" } -sourceCompatibility = 1.10 -targetCompatibility = 1.10 - version = file("src/main/resources/version.txt").text jar.manifest.attributes( diff --git a/relay/build.gradle b/relay/build.gradle index e21c567ed3..ecb1ba8560 100644 --- a/relay/build.gradle +++ b/relay/build.gradle @@ -1,10 +1,7 @@ plugins { - id 'java' id 'application' } -sourceCompatibility = 1.10 - mainClassName = 'bisq.relay.RelayMain' repositories { diff --git a/seednode/build.gradle b/seednode/build.gradle index cfbdf06e2b..3154749a4f 100644 --- a/seednode/build.gradle +++ b/seednode/build.gradle @@ -7,14 +7,9 @@ buildscript { } } -apply plugin: 'java' apply plugin: 'application' apply plugin: 'com.github.johnrengelman.shadow' -version = '0.8.0-SNAPSHOT' - -sourceCompatibility = 1.10 - mainClassName = 'bisq.seednode.SeedNodeMain' sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files diff --git a/statsnode/build.gradle b/statsnode/build.gradle index c04d8c8d24..e02760adad 100644 --- a/statsnode/build.gradle +++ b/statsnode/build.gradle @@ -1,10 +1,7 @@ plugins { - id 'java' id 'application' } -sourceCompatibility = 1.10 - mainClassName = 'bisq.statistics.StatisticsMain' repositories { From 4e1fa914a22452fd5c73579dde9fa04eee07df2a Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 14:06:23 +0100 Subject: [PATCH 20/45] Pull up common repositories to root build.gradle --- assets/build.gradle | 5 ----- build.gradle | 5 +++++ common/build.gradle | 5 ----- core/build.gradle | 2 -- desktop/build.gradle | 3 --- monitor/build.gradle | 2 -- p2p/build.gradle | 2 -- pricenode/build.gradle | 2 -- relay/build.gradle | 5 ----- seednode/build.gradle | 2 -- statsnode/build.gradle | 2 -- 11 files changed, 5 insertions(+), 30 deletions(-) diff --git a/assets/build.gradle b/assets/build.gradle index b48a82ad83..2cc08a6519 100644 --- a/assets/build.gradle +++ b/assets/build.gradle @@ -16,11 +16,6 @@ artifacts { archives javadocJar } -repositories { - jcenter() - maven { url 'https://jitpack.io' } -} - dependencies { compile('network.bisq.libdohj:libdohj-core:d4ace7bc') { exclude(module: 'protobuf-java') diff --git a/build.gradle b/build.gradle index b03b793f07..371b5553e2 100644 --- a/build.gradle +++ b/build.gradle @@ -5,4 +5,9 @@ plugins { subprojects { apply plugin: 'java' sourceCompatibility = 1.10 + + repositories { + jcenter() + maven { url 'https://jitpack.io' } + } } diff --git a/common/build.gradle b/common/build.gradle index b674e4049a..4999fdd158 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -25,11 +25,6 @@ tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } -repositories { - jcenter() - maven { url 'https://jitpack.io' } -} - sourceSets.main.java.srcDir "$buildDir/generated/source/proto/main/java" protobuf { diff --git a/core/build.gradle b/core/build.gradle index e880488f1f..29bee208e9 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -5,8 +5,6 @@ tasks.withType(JavaCompile) { def jmockitVersion = '1.42' repositories { - jcenter() - maven { url 'https://jitpack.io' } maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } } diff --git a/desktop/build.gradle b/desktop/build.gradle index 01a48f03b3..eea066ddd1 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -31,10 +31,7 @@ tasks.withType(JavaCompile) { sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files repositories { - jcenter() - maven { url 'https://jitpack.io' } maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } - maven { url 'https://dl.bintray.com/jerady/maven' } } dependencies { diff --git a/monitor/build.gradle b/monitor/build.gradle index ed93877756..122c6bf90e 100644 --- a/monitor/build.gradle +++ b/monitor/build.gradle @@ -5,8 +5,6 @@ plugins { mainClassName = 'bisq.monitor.MonitorMain' repositories { - jcenter() - maven { url "https://jitpack.io" } maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } } diff --git a/p2p/build.gradle b/p2p/build.gradle index c3763fd25f..efdac1bd73 100644 --- a/p2p/build.gradle +++ b/p2p/build.gradle @@ -1,6 +1,4 @@ repositories { - jcenter() - maven { url 'https://jitpack.io' } maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } } diff --git a/pricenode/build.gradle b/pricenode/build.gradle index 328998d35d..a3dc75984a 100644 --- a/pricenode/build.gradle +++ b/pricenode/build.gradle @@ -11,8 +11,6 @@ jar.manifest.attributes( jar.archiveName "${rootProject.name}.jar" repositories { - jcenter() - maven { url "https://jitpack.io" } maven { url "https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/" } } diff --git a/relay/build.gradle b/relay/build.gradle index ecb1ba8560..2f879484ef 100644 --- a/relay/build.gradle +++ b/relay/build.gradle @@ -4,11 +4,6 @@ plugins { mainClassName = 'bisq.relay.RelayMain' -repositories { - jcenter() - maven { url 'https://jitpack.io' } -} - dependencies { compile project(':common') compile 'com.sparkjava:spark-core:2.5.2' diff --git a/seednode/build.gradle b/seednode/build.gradle index 3154749a4f..41364f5e02 100644 --- a/seednode/build.gradle +++ b/seednode/build.gradle @@ -15,8 +15,6 @@ mainClassName = 'bisq.seednode.SeedNodeMain' sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files repositories { - jcenter() - maven { url "https://jitpack.io" } maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } } diff --git a/statsnode/build.gradle b/statsnode/build.gradle index e02760adad..a39af93a0c 100644 --- a/statsnode/build.gradle +++ b/statsnode/build.gradle @@ -5,8 +5,6 @@ plugins { mainClassName = 'bisq.statistics.StatisticsMain' repositories { - jcenter() - maven { url "https://jitpack.io" } maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } } From f6a68f8aefed5d00c16eb743f2706d4ffeedc6c2 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 14:14:56 +0100 Subject: [PATCH 21/45] Pull up common JavaCompile config to root --- assets/build.gradle | 4 ---- build.gradle | 4 ++++ common/build.gradle | 4 ---- core/build.gradle | 4 ---- desktop/build.gradle | 4 ---- 5 files changed, 4 insertions(+), 16 deletions(-) diff --git a/assets/build.gradle b/assets/build.gradle index 2cc08a6519..4a05594f59 100644 --- a/assets/build.gradle +++ b/assets/build.gradle @@ -1,7 +1,3 @@ -tasks.withType(JavaCompile) { - options.encoding = 'UTF-8' -} - javadoc { options.author = true options.addStringOption('Xdoclint:none', '-quiet') diff --git a/build.gradle b/build.gradle index 371b5553e2..c02ff4a71d 100644 --- a/build.gradle +++ b/build.gradle @@ -10,4 +10,8 @@ subprojects { jcenter() maven { url 'https://jitpack.io' } } + + tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' + } } diff --git a/common/build.gradle b/common/build.gradle index 4999fdd158..ff2aa756ac 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -21,10 +21,6 @@ ext { platform = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os } -tasks.withType(JavaCompile) { - options.encoding = 'UTF-8' -} - sourceSets.main.java.srcDir "$buildDir/generated/source/proto/main/java" protobuf { diff --git a/core/build.gradle b/core/build.gradle index 29bee208e9..a44ceb447d 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,7 +1,3 @@ -tasks.withType(JavaCompile) { - options.encoding = 'UTF-8' -} - def jmockitVersion = '1.42' repositories { diff --git a/desktop/build.gradle b/desktop/build.gradle index eea066ddd1..d179de4fbd 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -24,10 +24,6 @@ tasks.withType(AbstractArchiveTask) { reproducibleFileOrder = true } -tasks.withType(JavaCompile) { - options.encoding = 'UTF-8' -} - sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files repositories { From 1cdb39ab60d5b2b330abc746e3bb5bd92f32fde5 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 14:28:14 +0100 Subject: [PATCH 22/45] Pull up JesusMcCloud repo to root Not all subprojects need it, but most do. --- build.gradle | 1 + core/build.gradle | 4 ---- desktop/build.gradle | 4 ---- monitor/build.gradle | 4 ---- p2p/build.gradle | 4 ---- pricenode/build.gradle | 4 ---- seednode/build.gradle | 4 ---- statsnode/build.gradle | 4 ---- 8 files changed, 1 insertion(+), 28 deletions(-) diff --git a/build.gradle b/build.gradle index c02ff4a71d..946f8b4d7d 100644 --- a/build.gradle +++ b/build.gradle @@ -9,6 +9,7 @@ subprojects { repositories { jcenter() maven { url 'https://jitpack.io' } + maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } } tasks.withType(JavaCompile) { diff --git a/core/build.gradle b/core/build.gradle index a44ceb447d..23d3bc9ac6 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,9 +1,5 @@ def jmockitVersion = '1.42' -repositories { - maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } -} - dependencies { compile project(':assets') compile project(':p2p') diff --git a/desktop/build.gradle b/desktop/build.gradle index d179de4fbd..1884fa2fe5 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -26,10 +26,6 @@ tasks.withType(AbstractArchiveTask) { sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files -repositories { - maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } -} - dependencies { // fixme(chirhonul): currently 'gradle install' using system gradle 4.9 fails with: // A POM cannot have multiple artifacts with the same type and classifier. Already have MavenArtifact bisq:zip:zip:null, trying to add MavenArtifact bisq:zip:zip:null. diff --git a/monitor/build.gradle b/monitor/build.gradle index 122c6bf90e..4d0e908122 100644 --- a/monitor/build.gradle +++ b/monitor/build.gradle @@ -4,10 +4,6 @@ plugins { mainClassName = 'bisq.monitor.MonitorMain' -repositories { - maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } -} - dependencies { compile project(':core') compile 'com.sparkjava:spark-core:2.5.2' diff --git a/p2p/build.gradle b/p2p/build.gradle index efdac1bd73..e67ebc543d 100644 --- a/p2p/build.gradle +++ b/p2p/build.gradle @@ -1,7 +1,3 @@ -repositories { - maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } -} - dependencies { compile project(':common') compile('com.github.JesusMcCloud.netlayer:tor.native:0.4.2') { diff --git a/pricenode/build.gradle b/pricenode/build.gradle index a3dc75984a..32919f5a16 100644 --- a/pricenode/build.gradle +++ b/pricenode/build.gradle @@ -10,10 +10,6 @@ jar.manifest.attributes( jar.archiveName "${rootProject.name}.jar" -repositories { - maven { url "https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/" } -} - dependencies { compile project(":core") compile project(":assets") diff --git a/seednode/build.gradle b/seednode/build.gradle index 41364f5e02..7c2cace2fe 100644 --- a/seednode/build.gradle +++ b/seednode/build.gradle @@ -14,10 +14,6 @@ mainClassName = 'bisq.seednode.SeedNodeMain' sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files -repositories { - maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } -} - dependencies { compile project(':core') runtime 'org.bouncycastle:bcprov-jdk15on:1.56' diff --git a/statsnode/build.gradle b/statsnode/build.gradle index a39af93a0c..1f99b9401c 100644 --- a/statsnode/build.gradle +++ b/statsnode/build.gradle @@ -4,10 +4,6 @@ plugins { mainClassName = 'bisq.statistics.StatisticsMain' -repositories { - maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } -} - dependencies { compile project(':core') compileOnly 'org.projectlombok:lombok:1.18.2' From bd1e7e273f27f47c9b03b6b70a6c20ff628946de Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 16:27:52 +0100 Subject: [PATCH 23/45] Pull up application plugin config to root --- build.gradle | 15 ++++++++++++++- desktop/build.gradle | 3 --- monitor/build.gradle | 8 -------- relay/build.gradle | 8 -------- seednode/build.gradle | 5 ----- statsnode/build.gradle | 8 -------- 6 files changed, 14 insertions(+), 33 deletions(-) diff --git a/build.gradle b/build.gradle index 946f8b4d7d..17ebd613be 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ plugins { id 'java-base' } -subprojects { +configure(subprojects) { apply plugin: 'java' sourceCompatibility = 1.10 @@ -16,3 +16,16 @@ subprojects { options.encoding = 'UTF-8' } } + +configure([project(':desktop'), + project(':monitor'), + project(':relay'), + project(':seednode'), + project(':statsnode')]) { + + apply plugin: 'application' + + build.dependsOn installDist + installDist.destinationDir = file('build/app') + distZip.enabled = false +} diff --git a/desktop/build.gradle b/desktop/build.gradle index 1884fa2fe5..30d67a1bfc 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -8,7 +8,6 @@ buildscript { } } -apply plugin: 'application' apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'witness' apply from: 'gradle-witness.gradle' @@ -62,5 +61,3 @@ test { def jmockit = configurations.testCompile.files.find { it.name.contains("jmockit") }.absolutePath jvmArgs "-javaagent:$jmockit" } -build.dependsOn installDist -installDist.destinationDir = file('build/app') diff --git a/monitor/build.gradle b/monitor/build.gradle index 4d0e908122..0a0a83f244 100644 --- a/monitor/build.gradle +++ b/monitor/build.gradle @@ -1,7 +1,3 @@ -plugins { - id 'application' -} - mainClassName = 'bisq.monitor.MonitorMain' dependencies { @@ -11,7 +7,3 @@ dependencies { compileOnly 'org.projectlombok:lombok:1.18.2' annotationProcessor 'org.projectlombok:lombok:1.18.2' } - -build.dependsOn installDist -installDist.destinationDir = file('build/app') -distZip.enabled = false diff --git a/relay/build.gradle b/relay/build.gradle index 2f879484ef..74947464dd 100644 --- a/relay/build.gradle +++ b/relay/build.gradle @@ -1,7 +1,3 @@ -plugins { - id 'application' -} - mainClassName = 'bisq.relay.RelayMain' dependencies { @@ -11,7 +7,3 @@ dependencies { compile 'com.google.firebase:firebase-admin:6.2.0' compile 'commons-codec:commons-codec:1.9' } - -build.dependsOn installDist -installDist.destinationDir = file('build/app') -distZip.enabled = false diff --git a/seednode/build.gradle b/seednode/build.gradle index 7c2cace2fe..fa92cd0460 100644 --- a/seednode/build.gradle +++ b/seednode/build.gradle @@ -7,7 +7,6 @@ buildscript { } } -apply plugin: 'application' apply plugin: 'com.github.johnrengelman.shadow' mainClassName = 'bisq.seednode.SeedNodeMain' @@ -20,7 +19,3 @@ dependencies { compileOnly 'org.projectlombok:lombok:1.18.2' annotationProcessor 'org.projectlombok:lombok:1.18.2' } - -build.dependsOn installDist -installDist.destinationDir = file('build/app') -distZip.enabled = false diff --git a/statsnode/build.gradle b/statsnode/build.gradle index 1f99b9401c..eaee5955a3 100644 --- a/statsnode/build.gradle +++ b/statsnode/build.gradle @@ -1,7 +1,3 @@ -plugins { - id 'application' -} - mainClassName = 'bisq.statistics.StatisticsMain' dependencies { @@ -9,7 +5,3 @@ dependencies { compileOnly 'org.projectlombok:lombok:1.18.2' annotationProcessor 'org.projectlombok:lombok:1.18.2' } - -build.dependsOn installDist -installDist.destinationDir = file('build/app') -distZip.enabled = false From 83118b6640e6d936615f57ff101b32fe05dd47c9 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 16:28:43 +0100 Subject: [PATCH 24/45] Remove assets Javadoc jar Previously, when assets was managed as a separate library and repository, its Javadoc was published via Jitpack and linked to from the documentation at https://bisq.network. This is no longer the case, and therefore building the Javadoc jar is no longer necessary. --- assets/build.gradle | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/assets/build.gradle b/assets/build.gradle index 4a05594f59..1c263f5f40 100644 --- a/assets/build.gradle +++ b/assets/build.gradle @@ -1,17 +1,3 @@ -javadoc { - options.author = true - options.addStringOption('Xdoclint:none', '-quiet') -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - -artifacts { - archives javadocJar -} - dependencies { compile('network.bisq.libdohj:libdohj-core:d4ace7bc') { exclude(module: 'protobuf-java') From 51d9f00d44f59cdaaca17fec2169d350cc981269 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 16:35:07 +0100 Subject: [PATCH 25/45] Inline $jmockitVersion core/desktop build.gradle --- core/build.gradle | 4 +--- desktop/build.gradle | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/core/build.gradle b/core/build.gradle index 23d3bc9ac6..2b1b3172c9 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,5 +1,3 @@ -def jmockitVersion = '1.42' - dependencies { compile project(':assets') compile project(':p2p') @@ -29,7 +27,7 @@ dependencies { compileOnly 'org.projectlombok:lombok:1.18.2' annotationProcessor 'org.projectlombok:lombok:1.18.2' - testCompile "org.jmockit:jmockit:$jmockitVersion" + testCompile 'org.jmockit:jmockit:1.42' testCompile 'junit:junit:4.12' testCompile('org.mockito:mockito-core:2.21.0') { exclude(module: 'objenesis') diff --git a/desktop/build.gradle b/desktop/build.gradle index 30d67a1bfc..a4b4d4a593 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -16,8 +16,6 @@ version = '0.8.0-SNAPSHOT' mainClassName = 'bisq.desktop.app.BisqAppMain' -def jmockitVersion = '1.42' - tasks.withType(AbstractArchiveTask) { preserveFileTimestamps = false reproducibleFileOrder = true @@ -43,7 +41,7 @@ dependencies { compileOnly 'org.projectlombok:lombok:1.18.2' annotationProcessor 'org.projectlombok:lombok:1.18.2' - testCompile "org.jmockit:jmockit:$jmockitVersion" + testCompile 'org.jmockit:jmockit:1.42' testCompile('org.mockito:mockito-core:2.21.0') { exclude(module: 'objenesis') } From cdff12ad9fbb9a121bf8c313d7923b4c12829f4d Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 16:39:50 +0100 Subject: [PATCH 26/45] Fix incorrect name in pricenode jar and manifest --- pricenode/build.gradle | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pricenode/build.gradle b/pricenode/build.gradle index 32919f5a16..0cbaca00a3 100644 --- a/pricenode/build.gradle +++ b/pricenode/build.gradle @@ -5,11 +5,9 @@ plugins { version = file("src/main/resources/version.txt").text jar.manifest.attributes( - "Implementation-Title": rootProject.name, + "Implementation-Title": project.name, "Implementation-Version": version) -jar.archiveName "${rootProject.name}.jar" - dependencies { compile project(":core") compile project(":assets") From c8956567e439c9e9b5a21af3381ccbcb073d4ff3 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 16:44:10 +0100 Subject: [PATCH 27/45] Pull up remaining assets config to root --- assets/build.gradle | 9 --------- build.gradle | 13 ++++++++++++- 2 files changed, 12 insertions(+), 10 deletions(-) delete mode 100644 assets/build.gradle diff --git a/assets/build.gradle b/assets/build.gradle deleted file mode 100644 index 1c263f5f40..0000000000 --- a/assets/build.gradle +++ /dev/null @@ -1,9 +0,0 @@ -dependencies { - compile('network.bisq.libdohj:libdohj-core:d4ace7bc') { - exclude(module: 'protobuf-java') - } - compile 'commons-codec:commons-codec:1.9' - compile 'org.apache.commons:commons-lang3:3.4' - compile 'org.bouncycastle:bcpg-jdk15on:1.56' - testCompile 'junit:junit:4.12' -} diff --git a/build.gradle b/build.gradle index 17ebd613be..648c6f887b 100644 --- a/build.gradle +++ b/build.gradle @@ -22,10 +22,21 @@ configure([project(':desktop'), project(':relay'), project(':seednode'), project(':statsnode')]) { - apply plugin: 'application' build.dependsOn installDist installDist.destinationDir = file('build/app') distZip.enabled = false } + +configure(project(':assets')) { + dependencies { + compile('network.bisq.libdohj:libdohj-core:d4ace7bc') { + exclude(module: 'protobuf-java') + } + compile 'commons-codec:commons-codec:1.9' + compile 'org.apache.commons:commons-lang3:3.4' + compile 'org.bouncycastle:bcpg-jdk15on:1.56' + testCompile 'junit:junit:4.12' + } +} From d4edb81d8767ee1eb7a2867db01eeae77307b10b Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 16:55:33 +0100 Subject: [PATCH 28/45] Pull up remaining common config to root --- build.gradle | 69 +++++++++++++++++++++++++++++++++++++++++++-- common/build.gradle | 67 ------------------------------------------- 2 files changed, 67 insertions(+), 69 deletions(-) delete mode 100644 common/build.gradle diff --git a/build.gradle b/build.gradle index 648c6f887b..e929c32fa8 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,15 @@ -plugins { - id 'java-base' +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.5' + classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0' + } +} + +configure(rootProject) { + apply plugin: 'java-base' } configure(subprojects) { @@ -40,3 +50,58 @@ configure(project(':assets')) { testCompile 'junit:junit:4.12' } } + +configure(project(':common')) { + apply plugin: 'com.google.protobuf' + apply plugin: 'com.google.osdetector' + + ext { + protobufVersion = '3.5.1' + platform = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os + } + + sourceSets.main.java.srcDir "$buildDir/generated/source/proto/main/java" + + protobuf { + protoc { + artifact = "com.google.protobuf:protoc:$protobufVersion" + } + } + + dependencies { + compile "org.openjfx:javafx-base:11:$platform" + compile "org.openjfx:javafx-graphics:11:$platform" + compile "org.openjfx:javafx-controls:11:$platform" + compile "org.openjfx:javafx-fxml:11:$platform" + compile "org.openjfx:javafx-swing:11:$platform" + + compile "com.google.protobuf:protobuf-java:$protobufVersion" + compile 'com.google.code.gson:gson:2.7' + compile('com.googlecode.json-simple:json-simple:1.1.1') { + exclude(module: 'junit') + } + compile 'org.springframework:spring-core:4.3.6.RELEASE' + compile 'org.slf4j:slf4j-api:1.7.22' + compile 'ch.qos.logback:logback-core:1.1.10' + compile 'ch.qos.logback:logback-classic:1.1.10' + compile 'com.google.code.findbugs:jsr305:3.0.1' + compile 'com.google.guava:guava:20.0' + compile('com.google.inject:guice:4.1.0') { + exclude(module: 'guava') + } + compile('network.bisq.libdohj:libdohj-core:d4ace7bc') { + exclude(module: 'jsr305') + exclude(module: 'slf4j-api') + exclude(module: 'guava') + exclude(module: 'protobuf-java') + } + compile 'org.jetbrains:annotations:13.0' + runtime 'org.bouncycastle:bcprov-jdk15on:1.56' + compile 'org.bouncycastle:bcpg-jdk15on:1.56' + compile 'commons-io:commons-io:2.4' + compile 'org.apache.commons:commons-lang3:3.4' + compileOnly 'org.projectlombok:lombok:1.18.2' + annotationProcessor 'org.projectlombok:lombok:1.18.2' + testCompile 'junit:junit:4.12' + } +} diff --git a/common/build.gradle b/common/build.gradle deleted file mode 100644 index ff2aa756ac..0000000000 --- a/common/build.gradle +++ /dev/null @@ -1,67 +0,0 @@ -// Note, version 1.6.0 of osdetector-gradle-plugin cannot be applied with a plugins block -// So a buildscript block is used -// See https://github.com/google/osdetector-gradle-plugin/issues/15 -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0' - } -} - -plugins { - id 'com.google.protobuf' version '0.8.5' -} - -apply plugin: 'com.google.osdetector' - -ext { - protobufVersion = '3.5.1' - platform = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os -} - -sourceSets.main.java.srcDir "$buildDir/generated/source/proto/main/java" - -protobuf { - protoc { - artifact = "com.google.protobuf:protoc:$protobufVersion" - } -} - -dependencies { - compile "org.openjfx:javafx-base:11:$platform" - compile "org.openjfx:javafx-graphics:11:$platform" - compile "org.openjfx:javafx-controls:11:$platform" - compile "org.openjfx:javafx-fxml:11:$platform" - compile "org.openjfx:javafx-swing:11:$platform" - - compile "com.google.protobuf:protobuf-java:$protobufVersion" - compile 'com.google.code.gson:gson:2.7' - compile('com.googlecode.json-simple:json-simple:1.1.1') { - exclude(module: 'junit') - } - compile 'org.springframework:spring-core:4.3.6.RELEASE' - compile 'org.slf4j:slf4j-api:1.7.22' - compile 'ch.qos.logback:logback-core:1.1.10' - compile 'ch.qos.logback:logback-classic:1.1.10' - compile 'com.google.code.findbugs:jsr305:3.0.1' - compile 'com.google.guava:guava:20.0' - compile('com.google.inject:guice:4.1.0') { - exclude(module: 'guava') - } - compile('network.bisq.libdohj:libdohj-core:d4ace7bc') { - exclude(module: 'jsr305') - exclude(module: 'slf4j-api') - exclude(module: 'guava') - exclude(module: 'protobuf-java') - } - compile 'org.jetbrains:annotations:13.0' - runtime 'org.bouncycastle:bcprov-jdk15on:1.56' - compile 'org.bouncycastle:bcpg-jdk15on:1.56' - compile 'commons-io:commons-io:2.4' - compile 'org.apache.commons:commons-lang3:3.4' - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' - testCompile 'junit:junit:4.12' -} From 0f5e9b794c5ad2b0a7cec6eee2340b9a5caaa6b5 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 17:18:46 +0100 Subject: [PATCH 29/45] Pull up remaining core config to root --- build.gradle | 54 +++++++++++++++++++++++++++++++++++++++++++++++ core/build.gradle | 52 --------------------------------------------- 2 files changed, 54 insertions(+), 52 deletions(-) delete mode 100644 core/build.gradle diff --git a/build.gradle b/build.gradle index e929c32fa8..fcf189c4b6 100644 --- a/build.gradle +++ b/build.gradle @@ -105,3 +105,57 @@ configure(project(':common')) { testCompile 'junit:junit:4.12' } } + +configure(project(':core')) { + dependencies { + compile project(':assets') + compile project(':p2p') + compile 'net.sf.jopt-simple:jopt-simple:5.0.3' + compile('network.bisq.btcd-cli4j:btcd-cli4j-core:3864e1c4') { + exclude(module: 'slf4j-api') + exclude(module: 'httpclient') + exclude(module: 'commons-lang3') + exclude(module: 'jackson-core') + exclude(module: 'jackson-annotations') + exclude(module: 'jackson-databind') + } + compile('network.bisq.btcd-cli4j:btcd-cli4j-daemon:3864e1c4') { + exclude(module: 'slf4j-api') + exclude(module: 'httpclient') + exclude(module: 'commons-lang3') + exclude(module: 'jackson-core') + exclude(module: 'jackson-annotations') + exclude(module: 'jackson-databind') + } + compile 'com.fasterxml.jackson.core:jackson-core:2.8.10' + compile 'com.fasterxml.jackson.core:jackson-annotations:2.8.10' + compile('com.fasterxml.jackson.core:jackson-databind:2.8.10') { + exclude(module: 'jackson-annotations') + } + + compileOnly 'org.projectlombok:lombok:1.18.2' + annotationProcessor 'org.projectlombok:lombok:1.18.2' + + testCompile 'org.jmockit:jmockit:1.42' + testCompile 'junit:junit:4.12' + testCompile('org.mockito:mockito-core:2.21.0') { + exclude(module: 'objenesis') + } + testCompile 'org.powermock:powermock-module-junit4:2.0.0-beta.5' + testCompile 'org.powermock:powermock-api-mockito2:2.0.0-beta.5' + + + testCompile 'org.springframework:spring-test:4.3.6.RELEASE' + testCompile 'com.natpryce:make-it-easy:4.0.1' + testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' + testCompileOnly 'org.projectlombok:lombok:1.18.2' + testAnnotationProcessor 'org.projectlombok:lombok:1.18.2' + } + + test { + systemProperty 'jdk.attach.allowAttachSelf', true + + def jmockit = configurations.testCompile.files.find { it.name.contains("jmockit") }.absolutePath + jvmArgs "-javaagent:$jmockit" + } +} diff --git a/core/build.gradle b/core/build.gradle deleted file mode 100644 index 2b1b3172c9..0000000000 --- a/core/build.gradle +++ /dev/null @@ -1,52 +0,0 @@ -dependencies { - compile project(':assets') - compile project(':p2p') - compile 'net.sf.jopt-simple:jopt-simple:5.0.3' - compile('network.bisq.btcd-cli4j:btcd-cli4j-core:3864e1c4') { - exclude(module: 'slf4j-api') - exclude(module: 'httpclient') - exclude(module: 'commons-lang3') - exclude(module: 'jackson-core') - exclude(module: 'jackson-annotations') - exclude(module: 'jackson-databind') - } - compile('network.bisq.btcd-cli4j:btcd-cli4j-daemon:3864e1c4') { - exclude(module: 'slf4j-api') - exclude(module: 'httpclient') - exclude(module: 'commons-lang3') - exclude(module: 'jackson-core') - exclude(module: 'jackson-annotations') - exclude(module: 'jackson-databind') - } - compile 'com.fasterxml.jackson.core:jackson-core:2.8.10' - compile 'com.fasterxml.jackson.core:jackson-annotations:2.8.10' - compile('com.fasterxml.jackson.core:jackson-databind:2.8.10') { - exclude(module: 'jackson-annotations') - } - - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' - - testCompile 'org.jmockit:jmockit:1.42' - testCompile 'junit:junit:4.12' - testCompile('org.mockito:mockito-core:2.21.0') { - exclude(module: 'objenesis') - } - testCompile 'org.powermock:powermock-module-junit4:2.0.0-beta.5' - testCompile 'org.powermock:powermock-api-mockito2:2.0.0-beta.5' - - - testCompile 'org.springframework:spring-test:4.3.6.RELEASE' - testCompile 'com.natpryce:make-it-easy:4.0.1' - testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' - testCompileOnly 'org.projectlombok:lombok:1.18.2' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.2' -} - -test { - systemProperty 'jdk.attach.allowAttachSelf', true - - def jmockit = configurations.testCompile.files.find { it.name.contains("jmockit") }.absolutePath - jvmArgs "-javaagent:$jmockit" -} - From 3c54be2d4f45240d8db0165355096f8264634db6 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 17:37:32 +0100 Subject: [PATCH 30/45] Pull up remaining desktop config to root And also relocate gradle-witness jar and config (back) to root-level gradle/witness dir. --- build.gradle | 54 ++++++++++++++++ desktop/build.gradle | 61 ------------------ .../witness}/gradle-witness.gradle | 2 +- .../witness}/gradle-witness.jar | Bin 4 files changed, 55 insertions(+), 62 deletions(-) delete mode 100644 desktop/build.gradle rename {desktop => gradle/witness}/gradle-witness.gradle (99%) rename {desktop => gradle/witness}/gradle-witness.jar (100%) diff --git a/build.gradle b/build.gradle index fcf189c4b6..b167e3afc7 100644 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,8 @@ buildscript { dependencies { classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.5' classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0' + classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' + classpath files('gradle/witness/gradle-witness.jar') } } @@ -159,3 +161,55 @@ configure(project(':core')) { jvmArgs "-javaagent:$jmockit" } } + +configure(project(':desktop')) { + apply plugin: 'com.github.johnrengelman.shadow' + apply plugin: 'witness' + apply from: '../gradle/witness/gradle-witness.gradle' + + version = '0.8.0-SNAPSHOT' + + mainClassName = 'bisq.desktop.app.BisqAppMain' + + tasks.withType(AbstractArchiveTask) { + preserveFileTimestamps = false + reproducibleFileOrder = true + } + + sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files + + dependencies { + compile project(':p2p') + compile project(':core') + compile project(':common') + compile 'org.controlsfx:controlsfx:8.0.6_20' + compile 'org.reactfx:reactfx:2.0-M3' + compile 'net.glxn:qrgen:1.3' + compile 'de.jensd:fontawesomefx:8.0.0' + compile 'de.jensd:fontawesomefx-commons:9.1.2' + compile 'de.jensd:fontawesomefx-materialdesignfont:2.0.26-9.1.2' + compile 'com.googlecode.jcsv:jcsv:1.4.0' + compile 'com.github.sarxos:webcam-capture:0.3.12' + + compileOnly 'org.projectlombok:lombok:1.18.2' + annotationProcessor 'org.projectlombok:lombok:1.18.2' + + testCompile 'org.jmockit:jmockit:1.42' + testCompile('org.mockito:mockito-core:2.21.0') { + exclude(module: 'objenesis') + } + testCompile 'org.powermock:powermock-module-junit4:2.0.0-beta.5' + testCompile 'org.powermock:powermock-api-mockito2:2.0.0-beta.5' + testCompile 'org.springframework:spring-test:4.3.6.RELEASE' + testCompile 'com.natpryce:make-it-easy:4.0.1' + testCompileOnly 'org.projectlombok:lombok:1.18.2' + testAnnotationProcessor 'org.projectlombok:lombok:1.18.2' + } + + test { + systemProperty 'jdk.attach.allowAttachSelf', true + + def jmockit = configurations.testCompile.files.find { it.name.contains("jmockit") }.absolutePath + jvmArgs "-javaagent:$jmockit" + } +} diff --git a/desktop/build.gradle b/desktop/build.gradle deleted file mode 100644 index a4b4d4a593..0000000000 --- a/desktop/build.gradle +++ /dev/null @@ -1,61 +0,0 @@ -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' - classpath files('gradle-witness.jar') - } -} - -apply plugin: 'com.github.johnrengelman.shadow' -apply plugin: 'witness' -apply from: 'gradle-witness.gradle' - -version = '0.8.0-SNAPSHOT' - -mainClassName = 'bisq.desktop.app.BisqAppMain' - -tasks.withType(AbstractArchiveTask) { - preserveFileTimestamps = false - reproducibleFileOrder = true -} - -sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files - -dependencies { - // fixme(chirhonul): currently 'gradle install' using system gradle 4.9 fails with: - // A POM cannot have multiple artifacts with the same type and classifier. Already have MavenArtifact bisq:zip:zip:null, trying to add MavenArtifact bisq:zip:zip:null. - compile project(':p2p') - compile project(':core') - compile project(':common') - compile 'org.controlsfx:controlsfx:8.0.6_20' - compile 'org.reactfx:reactfx:2.0-M3' - compile 'net.glxn:qrgen:1.3' - compile 'de.jensd:fontawesomefx:8.0.0' - compile 'de.jensd:fontawesomefx-commons:9.1.2' - compile 'de.jensd:fontawesomefx-materialdesignfont:2.0.26-9.1.2' - compile 'com.googlecode.jcsv:jcsv:1.4.0' - compile 'com.github.sarxos:webcam-capture:0.3.12' - - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' - - testCompile 'org.jmockit:jmockit:1.42' - testCompile('org.mockito:mockito-core:2.21.0') { - exclude(module: 'objenesis') - } - testCompile 'org.powermock:powermock-module-junit4:2.0.0-beta.5' - testCompile 'org.powermock:powermock-api-mockito2:2.0.0-beta.5' - testCompile 'org.springframework:spring-test:4.3.6.RELEASE' - testCompile 'com.natpryce:make-it-easy:4.0.1' - testCompileOnly 'org.projectlombok:lombok:1.18.2' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.2' -} - -test { - systemProperty 'jdk.attach.allowAttachSelf', true - - def jmockit = configurations.testCompile.files.find { it.name.contains("jmockit") }.absolutePath - jvmArgs "-javaagent:$jmockit" -} diff --git a/desktop/gradle-witness.gradle b/gradle/witness/gradle-witness.gradle similarity index 99% rename from desktop/gradle-witness.gradle rename to gradle/witness/gradle-witness.gradle index 0ff9b938f3..35725cd558 100644 --- a/desktop/gradle-witness.gradle +++ b/gradle/witness/gradle-witness.gradle @@ -3,7 +3,7 @@ // 1. Remove the block entirely // 2. Replace the block with the following command: // -// ./gradlew -q calculateChecksums | grep -v network.bisq >> desktop/gradle-witness.gradle +// ./gradlew -q calculateChecksums | grep -v network.bisq >> gradle/witness/gradle-witness.gradle // // 3. Run `git diff` to verify that expected hashes have changed // 4. Commit the changes diff --git a/desktop/gradle-witness.jar b/gradle/witness/gradle-witness.jar similarity index 100% rename from desktop/gradle-witness.jar rename to gradle/witness/gradle-witness.jar From e97625cfc311cd5a679198b1b1d23d0b46a4f52d Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 17:41:37 +0100 Subject: [PATCH 31/45] Pull up remaining monitor config to root --- build.gradle | 12 ++++++++++++ monitor/build.gradle | 9 --------- 2 files changed, 12 insertions(+), 9 deletions(-) delete mode 100644 monitor/build.gradle diff --git a/build.gradle b/build.gradle index b167e3afc7..9be8e3acc5 100644 --- a/build.gradle +++ b/build.gradle @@ -213,3 +213,15 @@ configure(project(':desktop')) { jvmArgs "-javaagent:$jmockit" } } + +configure(project(':monitor')) { + mainClassName = 'bisq.monitor.MonitorMain' + + dependencies { + compile project(':core') + compile 'com.sparkjava:spark-core:2.5.2' + compile 'net.gpedro.integrations.slack:slack-webhook:1.1.1' + compileOnly 'org.projectlombok:lombok:1.18.2' + annotationProcessor 'org.projectlombok:lombok:1.18.2' + } +} diff --git a/monitor/build.gradle b/monitor/build.gradle deleted file mode 100644 index 0a0a83f244..0000000000 --- a/monitor/build.gradle +++ /dev/null @@ -1,9 +0,0 @@ -mainClassName = 'bisq.monitor.MonitorMain' - -dependencies { - compile project(':core') - compile 'com.sparkjava:spark-core:2.5.2' - compile 'net.gpedro.integrations.slack:slack-webhook:1.1.1' - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' -} From 2f7c5f115080147db3bc013efd5e21f339ca13b8 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 17:46:03 +0100 Subject: [PATCH 32/45] Pull up remaining p2p config to root --- build.gradle | 20 ++++++++++++++++++++ p2p/build.gradle | 17 ----------------- 2 files changed, 20 insertions(+), 17 deletions(-) delete mode 100644 p2p/build.gradle diff --git a/build.gradle b/build.gradle index 9be8e3acc5..116f2566bc 100644 --- a/build.gradle +++ b/build.gradle @@ -108,6 +108,26 @@ configure(project(':common')) { } } +configure(project(':p2p')) { + dependencies { + compile project(':common') + compile('com.github.JesusMcCloud.netlayer:tor.native:0.4.2') { + exclude(module: 'slf4j-api') + } + compile('org.apache.httpcomponents:httpclient:4.5.3') { + exclude(module: 'commons-logging') + } + compile 'net.sf.jopt-simple:jopt-simple:5.0.3' + compile 'org.fxmisc.easybind:easybind:1.0.3' + compileOnly 'org.projectlombok:lombok:1.18.2' + annotationProcessor 'org.projectlombok:lombok:1.18.2' + testCompile 'junit:junit:4.12' + testCompile 'org.jmockit:jmockit:1.30' + testCompileOnly 'org.projectlombok:lombok:1.18.2' + testAnnotationProcessor 'org.projectlombok:lombok:1.18.2' + } +} + configure(project(':core')) { dependencies { compile project(':assets') diff --git a/p2p/build.gradle b/p2p/build.gradle deleted file mode 100644 index e67ebc543d..0000000000 --- a/p2p/build.gradle +++ /dev/null @@ -1,17 +0,0 @@ -dependencies { - compile project(':common') - compile('com.github.JesusMcCloud.netlayer:tor.native:0.4.2') { - exclude(module: 'slf4j-api') - } - compile('org.apache.httpcomponents:httpclient:4.5.3') { - exclude(module: 'commons-logging') - } - compile 'net.sf.jopt-simple:jopt-simple:5.0.3' - compile 'org.fxmisc.easybind:easybind:1.0.3' - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' - testCompile 'junit:junit:4.12' - testCompile 'org.jmockit:jmockit:1.30' - testCompileOnly 'org.projectlombok:lombok:1.18.2' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.2' -} From 15b81df32f19ce40307ae31caa997d31dffff814 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 17:57:00 +0100 Subject: [PATCH 33/45] Pull up remaining pricenode config to root --- build.gradle | 25 +++++++++++++++++++++++++ pricenode/build.gradle | 23 ----------------------- 2 files changed, 25 insertions(+), 23 deletions(-) delete mode 100644 pricenode/build.gradle diff --git a/build.gradle b/build.gradle index 116f2566bc..08ba726e06 100644 --- a/build.gradle +++ b/build.gradle @@ -7,6 +7,7 @@ buildscript { classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0' classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' classpath files('gradle/witness/gradle-witness.jar') + classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.10.RELEASE' } } @@ -245,3 +246,27 @@ configure(project(':monitor')) { annotationProcessor 'org.projectlombok:lombok:1.18.2' } } + +configure(project(':pricenode')) { + apply plugin: "org.springframework.boot" + + version = file("src/main/resources/version.txt").text + + jar.manifest.attributes( + "Implementation-Title": project.name, + "Implementation-Version": version) + + dependencies { + compile project(":core") + compile project(":assets") + compile("org.knowm.xchange:xchange-bitcoinaverage:4.3.3") + compile("org.knowm.xchange:xchange-coinmarketcap:4.3.3") + compile("org.knowm.xchange:xchange-poloniex:4.3.3") + compile("org.springframework.boot:spring-boot-starter-web:1.5.10.RELEASE") + compile("org.springframework.boot:spring-boot-starter-actuator") + } + + task stage { + dependsOn assemble + } +} diff --git a/pricenode/build.gradle b/pricenode/build.gradle deleted file mode 100644 index 0cbaca00a3..0000000000 --- a/pricenode/build.gradle +++ /dev/null @@ -1,23 +0,0 @@ -plugins { - id "org.springframework.boot" version "1.5.10.RELEASE" -} - -version = file("src/main/resources/version.txt").text - -jar.manifest.attributes( - "Implementation-Title": project.name, - "Implementation-Version": version) - -dependencies { - compile project(":core") - compile project(":assets") - compile("org.knowm.xchange:xchange-bitcoinaverage:4.3.3") - compile("org.knowm.xchange:xchange-coinmarketcap:4.3.3") - compile("org.knowm.xchange:xchange-poloniex:4.3.3") - compile("org.springframework.boot:spring-boot-starter-web:1.5.10.RELEASE") - compile("org.springframework.boot:spring-boot-starter-actuator") -} - -task stage { - dependsOn assemble -} From 9c82b3076a23a65dfeb801eea958965c2acf47fc Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 17:58:37 +0100 Subject: [PATCH 34/45] Pull up remaining relay config to root --- build.gradle | 12 ++++++++++++ relay/build.gradle | 9 --------- 2 files changed, 12 insertions(+), 9 deletions(-) delete mode 100644 relay/build.gradle diff --git a/build.gradle b/build.gradle index 08ba726e06..f669e02ad7 100644 --- a/build.gradle +++ b/build.gradle @@ -270,3 +270,15 @@ configure(project(':pricenode')) { dependsOn assemble } } + +configure(project(':relay')) { + mainClassName = 'bisq.relay.RelayMain' + + dependencies { + compile project(':common') + compile 'com.sparkjava:spark-core:2.5.2' + compile 'com.turo:pushy:0.13.2' + compile 'com.google.firebase:firebase-admin:6.2.0' + compile 'commons-codec:commons-codec:1.9' + } +} diff --git a/relay/build.gradle b/relay/build.gradle deleted file mode 100644 index 74947464dd..0000000000 --- a/relay/build.gradle +++ /dev/null @@ -1,9 +0,0 @@ -mainClassName = 'bisq.relay.RelayMain' - -dependencies { - compile project(':common') - compile 'com.sparkjava:spark-core:2.5.2' - compile 'com.turo:pushy:0.13.2' - compile 'com.google.firebase:firebase-admin:6.2.0' - compile 'commons-codec:commons-codec:1.9' -} From b0886dd02d8427d909071796b193526536d2c849 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 18:00:10 +0100 Subject: [PATCH 35/45] Pull up remaining seednode config to root --- build.gradle | 15 +++++++++++++++ seednode/build.gradle | 21 --------------------- 2 files changed, 15 insertions(+), 21 deletions(-) delete mode 100644 seednode/build.gradle diff --git a/build.gradle b/build.gradle index f669e02ad7..b071c35ef8 100644 --- a/build.gradle +++ b/build.gradle @@ -282,3 +282,18 @@ configure(project(':relay')) { compile 'commons-codec:commons-codec:1.9' } } + +configure(project(':seednode')) { + apply plugin: 'com.github.johnrengelman.shadow' + + mainClassName = 'bisq.seednode.SeedNodeMain' + + sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files + + dependencies { + compile project(':core') + runtime 'org.bouncycastle:bcprov-jdk15on:1.56' + compileOnly 'org.projectlombok:lombok:1.18.2' + annotationProcessor 'org.projectlombok:lombok:1.18.2' + } +} diff --git a/seednode/build.gradle b/seednode/build.gradle deleted file mode 100644 index fa92cd0460..0000000000 --- a/seednode/build.gradle +++ /dev/null @@ -1,21 +0,0 @@ -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' - } -} - -apply plugin: 'com.github.johnrengelman.shadow' - -mainClassName = 'bisq.seednode.SeedNodeMain' - -sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files - -dependencies { - compile project(':core') - runtime 'org.bouncycastle:bcprov-jdk15on:1.56' - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' -} From 3cd467cc9fa92d43adbdb687e6bad40d1edc1eae Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 18:00:56 +0100 Subject: [PATCH 36/45] Pull up remaining statsnode config to root --- build.gradle | 10 ++++++++++ statsnode/build.gradle | 7 ------- 2 files changed, 10 insertions(+), 7 deletions(-) delete mode 100644 statsnode/build.gradle diff --git a/build.gradle b/build.gradle index b071c35ef8..693f3c0177 100644 --- a/build.gradle +++ b/build.gradle @@ -297,3 +297,13 @@ configure(project(':seednode')) { annotationProcessor 'org.projectlombok:lombok:1.18.2' } } + +configure(project(':statsnode')) { + mainClassName = 'bisq.statistics.StatisticsMain' + + dependencies { + compile project(':core') + compileOnly 'org.projectlombok:lombok:1.18.2' + annotationProcessor 'org.projectlombok:lombok:1.18.2' + } +} diff --git a/statsnode/build.gradle b/statsnode/build.gradle deleted file mode 100644 index eaee5955a3..0000000000 --- a/statsnode/build.gradle +++ /dev/null @@ -1,7 +0,0 @@ -mainClassName = 'bisq.statistics.StatisticsMain' - -dependencies { - compile project(':core') - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' -} From cb4f6edd9a52fcace6228f4084dc08481f530eac Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 18:16:07 +0100 Subject: [PATCH 37/45] Minimize common subproject javafx dependencies --- build.gradle | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 693f3c0177..56b3696b93 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,12 @@ configure(rootProject) { configure(subprojects) { apply plugin: 'java' + apply plugin: 'com.google.osdetector' + sourceCompatibility = 1.10 + ext { + os = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os + } repositories { jcenter() @@ -56,11 +61,9 @@ configure(project(':assets')) { configure(project(':common')) { apply plugin: 'com.google.protobuf' - apply plugin: 'com.google.osdetector' ext { protobufVersion = '3.5.1' - platform = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os } sourceSets.main.java.srcDir "$buildDir/generated/source/proto/main/java" @@ -72,12 +75,8 @@ configure(project(':common')) { } dependencies { - compile "org.openjfx:javafx-base:11:$platform" - compile "org.openjfx:javafx-graphics:11:$platform" - compile "org.openjfx:javafx-controls:11:$platform" - compile "org.openjfx:javafx-fxml:11:$platform" - compile "org.openjfx:javafx-swing:11:$platform" - + compile "org.openjfx:javafx-base:11:$os" + compile "org.openjfx:javafx-graphics:11:$os" compile "com.google.protobuf:protobuf-java:$protobufVersion" compile 'com.google.code.gson:gson:2.7' compile('com.googlecode.json-simple:json-simple:1.1.1') { @@ -211,6 +210,9 @@ configure(project(':desktop')) { compile 'de.jensd:fontawesomefx-materialdesignfont:2.0.26-9.1.2' compile 'com.googlecode.jcsv:jcsv:1.4.0' compile 'com.github.sarxos:webcam-capture:0.3.12' + compile "org.openjfx:javafx-controls:11:$os" + compile "org.openjfx:javafx-fxml:11:$os" + compile "org.openjfx:javafx-swing:11:$os" compileOnly 'org.projectlombok:lombok:1.18.2' annotationProcessor 'org.projectlombok:lombok:1.18.2' From 5cdacbe33681952fbc9779adcf44108710f60b6e Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 18:41:56 +0100 Subject: [PATCH 38/45] Extract variables for duplicate dependency versions --- build.gradle | 124 ++++++++++++++++++++++++++++----------------------- 1 file changed, 67 insertions(+), 57 deletions(-) diff --git a/build.gradle b/build.gradle index 56b3696b93..912cac9ea9 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,23 @@ configure(subprojects) { apply plugin: 'com.google.osdetector' sourceCompatibility = 1.10 + ext { + bcVersion = '1.56' + codecVersion = '1.9' + easyVersion = '4.0.1' + jmockitVersion = '1.42' + joptVersion = '5.0.3' + junitVersion = '4.12' + langVersion = '3.4' + libdohjVersion = 'd4ace7bc' + lombokVersion = '1.18.2' + mockitoVersion = '2.21.0' + powermockVersion = '2.0.0-beta.5' + protobufVersion = '3.5.1' + sparkVersion = '2.5.2' + springVersion = '4.3.6.RELEASE' + os = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os } @@ -30,6 +46,10 @@ configure(subprojects) { maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/master/release/' } } + dependencies { + testCompile 'junit:junit:4.12' + } + tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } @@ -49,23 +69,18 @@ configure([project(':desktop'), configure(project(':assets')) { dependencies { - compile('network.bisq.libdohj:libdohj-core:d4ace7bc') { + compile("network.bisq.libdohj:libdohj-core:$libdohjVersion") { exclude(module: 'protobuf-java') } - compile 'commons-codec:commons-codec:1.9' - compile 'org.apache.commons:commons-lang3:3.4' - compile 'org.bouncycastle:bcpg-jdk15on:1.56' - testCompile 'junit:junit:4.12' + compile "commons-codec:commons-codec:$codecVersion" + compile "org.apache.commons:commons-lang3:$langVersion" + compile "org.bouncycastle:bcpg-jdk15on:$bcVersion" } } configure(project(':common')) { apply plugin: 'com.google.protobuf' - ext { - protobufVersion = '3.5.1' - } - sourceSets.main.java.srcDir "$buildDir/generated/source/proto/main/java" protobuf { @@ -91,20 +106,19 @@ configure(project(':common')) { compile('com.google.inject:guice:4.1.0') { exclude(module: 'guava') } - compile('network.bisq.libdohj:libdohj-core:d4ace7bc') { + compile("network.bisq.libdohj:libdohj-core:$libdohjVersion") { exclude(module: 'jsr305') exclude(module: 'slf4j-api') exclude(module: 'guava') exclude(module: 'protobuf-java') } compile 'org.jetbrains:annotations:13.0' - runtime 'org.bouncycastle:bcprov-jdk15on:1.56' - compile 'org.bouncycastle:bcpg-jdk15on:1.56' + runtime "org.bouncycastle:bcprov-jdk15on:$bcVersion" + compile "org.bouncycastle:bcpg-jdk15on:$bcVersion" compile 'commons-io:commons-io:2.4' - compile 'org.apache.commons:commons-lang3:3.4' - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' - testCompile 'junit:junit:4.12' + compile "org.apache.commons:commons-lang3:$langVersion" + compileOnly "org.projectlombok:lombok:$lombokVersion" + annotationProcessor "org.projectlombok:lombok:$lombokVersion" } } @@ -117,14 +131,13 @@ configure(project(':p2p')) { compile('org.apache.httpcomponents:httpclient:4.5.3') { exclude(module: 'commons-logging') } - compile 'net.sf.jopt-simple:jopt-simple:5.0.3' + compile "net.sf.jopt-simple:jopt-simple:$joptVersion" compile 'org.fxmisc.easybind:easybind:1.0.3' - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' - testCompile 'junit:junit:4.12' - testCompile 'org.jmockit:jmockit:1.30' - testCompileOnly 'org.projectlombok:lombok:1.18.2' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.2' + compileOnly "org.projectlombok:lombok:$lombokVersion" + annotationProcessor "org.projectlombok:lombok:$lombokVersion" + testCompile 'org.jmockit:jmockit:1.30' // must not use current $jmockitVersion + testCompileOnly "org.projectlombok:lombok:$lombokVersion" + testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion" } } @@ -132,7 +145,7 @@ configure(project(':core')) { dependencies { compile project(':assets') compile project(':p2p') - compile 'net.sf.jopt-simple:jopt-simple:5.0.3' + compile "net.sf.jopt-simple:jopt-simple:$joptVersion" compile('network.bisq.btcd-cli4j:btcd-cli4j-core:3864e1c4') { exclude(module: 'slf4j-api') exclude(module: 'httpclient') @@ -155,23 +168,20 @@ configure(project(':core')) { exclude(module: 'jackson-annotations') } - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' + compileOnly "org.projectlombok:lombok:$lombokVersion" + annotationProcessor "org.projectlombok:lombok:$lombokVersion" - testCompile 'org.jmockit:jmockit:1.42' - testCompile 'junit:junit:4.12' - testCompile('org.mockito:mockito-core:2.21.0') { + testCompile "org.jmockit:jmockit:$jmockitVersion" + testCompile("org.mockito:mockito-core:$mockitoVersion") { exclude(module: 'objenesis') } - testCompile 'org.powermock:powermock-module-junit4:2.0.0-beta.5' - testCompile 'org.powermock:powermock-api-mockito2:2.0.0-beta.5' - - - testCompile 'org.springframework:spring-test:4.3.6.RELEASE' - testCompile 'com.natpryce:make-it-easy:4.0.1' + testCompile "org.powermock:powermock-module-junit4:$powermockVersion" + testCompile "org.powermock:powermock-api-mockito2:$powermockVersion" + testCompile "org.springframework:spring-test:$springVersion" + testCompile "com.natpryce:make-it-easy:$easyVersion" testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' - testCompileOnly 'org.projectlombok:lombok:1.18.2' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.2' + testCompileOnly "org.projectlombok:lombok:$lombokVersion" + testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion" } test { @@ -214,19 +224,19 @@ configure(project(':desktop')) { compile "org.openjfx:javafx-fxml:11:$os" compile "org.openjfx:javafx-swing:11:$os" - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' + compileOnly "org.projectlombok:lombok:$lombokVersion" + annotationProcessor "org.projectlombok:lombok:$lombokVersion" - testCompile 'org.jmockit:jmockit:1.42' - testCompile('org.mockito:mockito-core:2.21.0') { + testCompile "org.jmockit:jmockit:$jmockitVersion" + testCompile("org.mockito:mockito-core:$mockitoVersion") { exclude(module: 'objenesis') } - testCompile 'org.powermock:powermock-module-junit4:2.0.0-beta.5' - testCompile 'org.powermock:powermock-api-mockito2:2.0.0-beta.5' - testCompile 'org.springframework:spring-test:4.3.6.RELEASE' - testCompile 'com.natpryce:make-it-easy:4.0.1' - testCompileOnly 'org.projectlombok:lombok:1.18.2' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.2' + testCompile "org.powermock:powermock-module-junit4:$powermockVersion" + testCompile "org.powermock:powermock-api-mockito2:$powermockVersion" + testCompile "org.springframework:spring-test:$springVersion" + testCompile "com.natpryce:make-it-easy:$easyVersion" + testCompileOnly "org.projectlombok:lombok:$lombokVersion" + testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion" } test { @@ -242,10 +252,10 @@ configure(project(':monitor')) { dependencies { compile project(':core') - compile 'com.sparkjava:spark-core:2.5.2' + compile "com.sparkjava:spark-core:$sparkVersion" compile 'net.gpedro.integrations.slack:slack-webhook:1.1.1' - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' + compileOnly "org.projectlombok:lombok:$lombokVersion" + annotationProcessor "org.projectlombok:lombok:$lombokVersion" } } @@ -278,10 +288,10 @@ configure(project(':relay')) { dependencies { compile project(':common') - compile 'com.sparkjava:spark-core:2.5.2' + compile "com.sparkjava:spark-core:$sparkVersion" compile 'com.turo:pushy:0.13.2' compile 'com.google.firebase:firebase-admin:6.2.0' - compile 'commons-codec:commons-codec:1.9' + compile "commons-codec:commons-codec:$codecVersion" } } @@ -294,9 +304,9 @@ configure(project(':seednode')) { dependencies { compile project(':core') - runtime 'org.bouncycastle:bcprov-jdk15on:1.56' - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' + runtime "org.bouncycastle:bcprov-jdk15on:$bcVersion" + compileOnly "org.projectlombok:lombok:$lombokVersion" + annotationProcessor "org.projectlombok:lombok:$lombokVersion" } } @@ -305,7 +315,7 @@ configure(project(':statsnode')) { dependencies { compile project(':core') - compileOnly 'org.projectlombok:lombok:1.18.2' - annotationProcessor 'org.projectlombok:lombok:1.18.2' + compileOnly "org.projectlombok:lombok:$lombokVersion" + annotationProcessor "org.projectlombok:lombok:$lombokVersion" } } From 22b92f7057f23226ff454ea859e7f910e6894fa0 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 18:43:20 +0100 Subject: [PATCH 39/45] Use two blank lines between configure blocks To increase readability --- build.gradle | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/build.gradle b/build.gradle index 912cac9ea9..7bf3ef19e2 100644 --- a/build.gradle +++ b/build.gradle @@ -11,10 +11,12 @@ buildscript { } } + configure(rootProject) { apply plugin: 'java-base' } + configure(subprojects) { apply plugin: 'java' apply plugin: 'com.google.osdetector' @@ -55,6 +57,7 @@ configure(subprojects) { } } + configure([project(':desktop'), project(':monitor'), project(':relay'), @@ -67,6 +70,7 @@ configure([project(':desktop'), distZip.enabled = false } + configure(project(':assets')) { dependencies { compile("network.bisq.libdohj:libdohj-core:$libdohjVersion") { @@ -78,6 +82,7 @@ configure(project(':assets')) { } } + configure(project(':common')) { apply plugin: 'com.google.protobuf' @@ -122,6 +127,7 @@ configure(project(':common')) { } } + configure(project(':p2p')) { dependencies { compile project(':common') @@ -141,6 +147,7 @@ configure(project(':p2p')) { } } + configure(project(':core')) { dependencies { compile project(':assets') @@ -192,6 +199,7 @@ configure(project(':core')) { } } + configure(project(':desktop')) { apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'witness' @@ -247,6 +255,7 @@ configure(project(':desktop')) { } } + configure(project(':monitor')) { mainClassName = 'bisq.monitor.MonitorMain' @@ -259,6 +268,7 @@ configure(project(':monitor')) { } } + configure(project(':pricenode')) { apply plugin: "org.springframework.boot" @@ -283,6 +293,7 @@ configure(project(':pricenode')) { } } + configure(project(':relay')) { mainClassName = 'bisq.relay.RelayMain' @@ -295,6 +306,7 @@ configure(project(':relay')) { } } + configure(project(':seednode')) { apply plugin: 'com.github.johnrengelman.shadow' @@ -310,6 +322,7 @@ configure(project(':seednode')) { } } + configure(project(':statsnode')) { mainClassName = 'bisq.statistics.StatisticsMain' From adb3e9e3c692df74c7d84653f2654911eb02d257 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 19:00:04 +0100 Subject: [PATCH 40/45] Remove unnecessary :desktop:test javaagent config --- build.gradle | 7 ------- 1 file changed, 7 deletions(-) diff --git a/build.gradle b/build.gradle index 7bf3ef19e2..d5faee13fb 100644 --- a/build.gradle +++ b/build.gradle @@ -246,13 +246,6 @@ configure(project(':desktop')) { testCompileOnly "org.projectlombok:lombok:$lombokVersion" testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion" } - - test { - systemProperty 'jdk.attach.allowAttachSelf', true - - def jmockit = configurations.testCompile.files.find { it.name.contains("jmockit") }.absolutePath - jvmArgs "-javaagent:$jmockit" - } } From 743a7692b7c8859c1f107a7bc90e4faabefce497 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 19:00:44 +0100 Subject: [PATCH 41/45] Remove unnecessary seednode resources config This looks to have been a copy and paste error when originally setting up the seednode build. --- build.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.gradle b/build.gradle index d5faee13fb..5d7c2b6ffa 100644 --- a/build.gradle +++ b/build.gradle @@ -305,8 +305,6 @@ configure(project(':seednode')) { mainClassName = 'bisq.seednode.SeedNodeMain' - sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files - dependencies { compile project(':core') runtime "org.bouncycastle:bcprov-jdk15on:$bcVersion" From 3913988f665bca8f1bbdd86ff1ac32be57d21886 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Sun, 4 Nov 2018 19:01:55 +0100 Subject: [PATCH 42/45] Remove unnecessary application of 'java-base' plugin This was needed at the root level for a while when first porting the build back to the monorepo, but is no longer necessary now. --- build.gradle | 5 ----- 1 file changed, 5 deletions(-) diff --git a/build.gradle b/build.gradle index 5d7c2b6ffa..08ead9fa2d 100644 --- a/build.gradle +++ b/build.gradle @@ -12,11 +12,6 @@ buildscript { } -configure(rootProject) { - apply plugin: 'java-base' -} - - configure(subprojects) { apply plugin: 'java' apply plugin: 'com.google.osdetector' From ce5bf55bdda5b5e724a1887c0a912703b3668fce Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Mon, 5 Nov 2018 08:05:10 +0100 Subject: [PATCH 43/45] Fix syntax error in CODEOWNERS Owners are space-separated, not comma-separated. It is presumed that this syntax error is why reviews have not been being suggested for assignment as expected. --- CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index 68bacd930a..75e1317561 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -3,6 +3,6 @@ * @ManfredKarrer /assets/ @blabno -/desktop/ @ripcurlx, @ManfredKarrer +/desktop/ @ripcurlx @ManfredKarrer *gradle* @cbeams /pricenode/ @cbeams From f8ec6beedfccf62b31f5fe673634714ae0991608 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Mon, 5 Nov 2018 11:02:16 +0100 Subject: [PATCH 44/45] Remove unused $junitVersion Per review comments at https://github.com/bisq-network/bisq/pull/1862#discussion_r230646331. --- build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle b/build.gradle index 08ead9fa2d..976b096ecd 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,6 @@ configure(subprojects) { easyVersion = '4.0.1' jmockitVersion = '1.42' joptVersion = '5.0.3' - junitVersion = '4.12' langVersion = '3.4' libdohjVersion = 'd4ace7bc' lombokVersion = '1.18.2' From 978fd2d4ab7bbec2453ac5506f78be51b9d2e6df Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Mon, 5 Nov 2018 11:07:43 +0100 Subject: [PATCH 45/45] Use $springVersion variable consistently Per review feedback at https://github.com/bisq-network/bisq/pull/1862#discussion_r230651226. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 976b096ecd..4c58f7fcfe 100644 --- a/build.gradle +++ b/build.gradle @@ -96,7 +96,7 @@ configure(project(':common')) { compile('com.googlecode.json-simple:json-simple:1.1.1') { exclude(module: 'junit') } - compile 'org.springframework:spring-core:4.3.6.RELEASE' + compile "org.springframework:spring-core:$springVersion" compile 'org.slf4j:slf4j-api:1.7.22' compile 'ch.qos.logback:logback-core:1.1.10' compile 'ch.qos.logback:logback-classic:1.1.10'