From cb1749b98f69e64f2b20bf4026c7959a8eba1310 Mon Sep 17 00:00:00 2001 From: sstone Date: Tue, 29 Jan 2019 15:42:20 +0100 Subject: [PATCH 1/7] Upgrade to JDK11 Eclair can be built and used on Oracle JDK 1.8 or OpenJDK 11. JavaFX is now embedded in eclair-node-gui and does not need to be installed separately. Limitation: the Splash Screen has been removed from the GUI. --- .travis.yml | 2 +- BUILD.md | 4 +++- README.md | 5 ++--- eclair-core/pom.xml | 6 ++++++ eclair-node-gui/pom.xml | 11 +++++++++++ .../src/main/scala/fr/acinq/eclair/JavafxBoot.scala | 6 +++--- pom.xml | 3 ++- 7 files changed, 28 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 50b8f56a60..1a0a834e86 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ cache: - .autoconf - $HOME/.m2 jdk: - - oraclejdk8 + - openjdk11 notifications: email: - ops@acinq.fr diff --git a/BUILD.md b/BUILD.md index 699b57e698..263cb5484a 100644 --- a/BUILD.md +++ b/BUILD.md @@ -1,11 +1,13 @@ # Building Eclair ## Requirements -- [Java Development Kit](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 1.8u161 or newer +- [Oracle JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 1.8u161 or newer, or [OpenJDK 11](https://jdk.java.net/11/). - [Maven](https://maven.apache.org/download.cgi) 3.5.4 or newer - [Inno Setup](http://www.jrsoftware.org/isdl.php) 5.5.9 (optional, if you want to generate the windows installer) - [Docker](https://www.docker.com/) 18.03 or newer (optional) if you want to run all tests +:warning: You can use [Oracle JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) to *build* eclair, but we recommend that you use [OpenJDK 11](https://jdk.java.net/11/) to *run* eclair. + ## Build To build the project, simply run: ```shell diff --git a/README.md b/README.md index 85b094e514..099669ad7d 100644 --- a/README.md +++ b/README.md @@ -62,9 +62,8 @@ Just use the windows installer, it should create a shortcut on your desktop. #### Linux, macOS or manual install on Windows -You need to first install java, more precisely a [JRE 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html). - - :warning: If you are using the OpenJDK JRE, you will need to build OpenJFX yourself, or run the application in headless mode (see below). +You need to first install java. Eclair will run on [Oracle JRE 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html), [Oracle JDK 11](https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html) and [Open JDK 11](https://jdk.java.net/11/). +We recommend that use use [Open JDK 11](https://jdk.java.net/11/). Then download the latest fat jar and depending on whether or not you want a GUI run the following command: * with GUI: diff --git a/eclair-core/pom.xml b/eclair-core/pom.xml index 94de1e7072..a2d130ed2a 100644 --- a/eclair-core/pom.xml +++ b/eclair-core/pom.xml @@ -230,6 +230,12 @@ 0.9.8 test + + javax.activation + activation + 1.1.1 + test + com.typesafe.akka akka-testkit_${scala.version.short} diff --git a/eclair-node-gui/pom.xml b/eclair-node-gui/pom.xml index 293177cee5..36aeee7d9e 100644 --- a/eclair-node-gui/pom.xml +++ b/eclair-node-gui/pom.xml @@ -101,6 +101,7 @@ true ${project.build.directory}/jfx/installer fr.acinq.eclair.JavafxBoot + fr.acinq.eclair.gui.FxPreloader false EXE true @@ -122,6 +123,16 @@ core 3.3.0 + + org.openjfx + javafx-controls + 11.0.2 + + + org.openjfx + javafx-fxml + 11.0.2 + com.typesafe.akka diff --git a/eclair-node-gui/src/main/scala/fr/acinq/eclair/JavafxBoot.scala b/eclair-node-gui/src/main/scala/fr/acinq/eclair/JavafxBoot.scala index 3b702bcb91..d807372246 100644 --- a/eclair-node-gui/src/main/scala/fr/acinq/eclair/JavafxBoot.scala +++ b/eclair-node-gui/src/main/scala/fr/acinq/eclair/JavafxBoot.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair import java.io.File import akka.actor.ActorSystem -import com.sun.javafx.application.LauncherImpl -import fr.acinq.eclair.gui.{FxApp, FxPreloader} +import javafx.application.Application +import fr.acinq.eclair.gui.FxApp import grizzled.slf4j.Logging /** @@ -35,7 +35,7 @@ object JavafxBoot extends App with Logging { implicit val system = ActorSystem("eclair-node-gui") new Setup(datadir).bootstrap } else { - LauncherImpl.launchApplication(classOf[FxApp], classOf[FxPreloader], Array(datadir.getAbsolutePath)) + Application.launch(classOf[FxApp], datadir.getAbsolutePath) } } catch { case t: Throwable => diff --git a/pom.xml b/pom.xml index 913dc139e0..b61f691ca1 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 1.8 1.8 - 2.11.11 + 2.11.12 2.11 2.4.20 10.0.11 @@ -127,6 +127,7 @@ -unchecked -Xmax-classfile-name 140 + -nobootcp ${scala.version.short} From f95c45c4e91ada7f50a76e785e54267d56602432 Mon Sep 17 00:00:00 2001 From: sstone Date: Thu, 31 Jan 2019 12:05:36 +0100 Subject: [PATCH 2/7] Add AdoptOpenJDK as a source for JDK/JRE binaries --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 099669ad7d..0eea2f9fb3 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,8 @@ Just use the windows installer, it should create a shortcut on your desktop. #### Linux, macOS or manual install on Windows You need to first install java. Eclair will run on [Oracle JRE 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html), [Oracle JDK 11](https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html) and [Open JDK 11](https://jdk.java.net/11/). -We recommend that use use [Open JDK 11](https://jdk.java.net/11/). +We recommend that use use [Open JDK 11](https://jdk.java.net/11/). You can download binaries for your OS from [adoptopenjdk](https://adoptopenjdk.net/), which packages both JDK (Java Development Kit) and JRE (Java Runtime Environment, which +is a stripped down version of the JDK minus development tools). If you don't plan to build eclair you should download the JRE binaries. Then download the latest fat jar and depending on whether or not you want a GUI run the following command: * with GUI: From b79e0ec04864f12b12d0b8cd26ee4da406748349 Mon Sep 17 00:00:00 2001 From: dpad85 Date: Thu, 31 Jan 2019 13:30:12 +0100 Subject: [PATCH 3/7] Added preloader back to boot when not in headless mode --- .../src/main/scala/fr/acinq/eclair/JavafxBoot.scala | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/eclair-node-gui/src/main/scala/fr/acinq/eclair/JavafxBoot.scala b/eclair-node-gui/src/main/scala/fr/acinq/eclair/JavafxBoot.scala index d807372246..92937cf1a4 100644 --- a/eclair-node-gui/src/main/scala/fr/acinq/eclair/JavafxBoot.scala +++ b/eclair-node-gui/src/main/scala/fr/acinq/eclair/JavafxBoot.scala @@ -19,9 +19,9 @@ package fr.acinq.eclair import java.io.File import akka.actor.ActorSystem -import javafx.application.Application -import fr.acinq.eclair.gui.FxApp +import fr.acinq.eclair.gui.{FxApp, FxPreloader} import grizzled.slf4j.Logging +import javafx.application.Application /** * Created by PM on 25/01/2016. @@ -35,7 +35,8 @@ object JavafxBoot extends App with Logging { implicit val system = ActorSystem("eclair-node-gui") new Setup(datadir).bootstrap } else { - Application.launch(classOf[FxApp], datadir.getAbsolutePath) + System.setProperty("javafx.preloader", classOf[FxPreloader].getName) + Application.launch(classOf[FxApp], datadir.getAbsolutePath) } } catch { case t: Throwable => From f77f8c0cfa8756e3e4d75cd96821b7cd543953d9 Mon Sep 17 00:00:00 2001 From: sstone Date: Tue, 19 Feb 2019 17:19:06 +0100 Subject: [PATCH 4/7] Install: update java download links Tell users to download java from https://jdk.java.net/11 --- README.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0eea2f9fb3..d12ebfe90e 100644 --- a/README.md +++ b/README.md @@ -56,15 +56,10 @@ deprecatedrpc=signrawtransaction The released binaries can be downloaded [here](https://github.com/ACINQ/eclair/releases). -#### Windows - -Just use the windows installer, it should create a shortcut on your desktop. - -#### Linux, macOS or manual install on Windows +#### Installing Java You need to first install java. Eclair will run on [Oracle JRE 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html), [Oracle JDK 11](https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html) and [Open JDK 11](https://jdk.java.net/11/). -We recommend that use use [Open JDK 11](https://jdk.java.net/11/). You can download binaries for your OS from [adoptopenjdk](https://adoptopenjdk.net/), which packages both JDK (Java Development Kit) and JRE (Java Runtime Environment, which -is a stripped down version of the JDK minus development tools). If you don't plan to build eclair you should download the JRE binaries. +We recommend that use use [Open JDK 11](https://jdk.java.net/11/). Then download the latest fat jar and depending on whether or not you want a GUI run the following command: * with GUI: From 5309404eb148b962b722d8b721afcb834577e476 Mon Sep 17 00:00:00 2001 From: sstone Date: Wed, 20 Feb 2019 15:59:19 +0100 Subject: [PATCH 5/7] Doc fixes --- BUILD.md | 11 +++-------- README.md | 4 ++-- eclair-core/pom.xml | 1 + pom.xml | 1 + 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/BUILD.md b/BUILD.md index 263cb5484a..753ecccb6a 100644 --- a/BUILD.md +++ b/BUILD.md @@ -1,12 +1,11 @@ # Building Eclair ## Requirements -- [Oracle JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 1.8u161 or newer, or [OpenJDK 11](https://jdk.java.net/11/). +- [OpenJDK 11](https://jdk.java.net/11/). - [Maven](https://maven.apache.org/download.cgi) 3.5.4 or newer -- [Inno Setup](http://www.jrsoftware.org/isdl.php) 5.5.9 (optional, if you want to generate the windows installer) - [Docker](https://www.docker.com/) 18.03 or newer (optional) if you want to run all tests -:warning: You can use [Oracle JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) to *build* eclair, but we recommend that you use [OpenJDK 11](https://jdk.java.net/11/) to *run* eclair. +:warning: You can also use [Oracle JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) to build and run eclair, but we recommend you use Open JDK11. ## Build To build the project, simply run: @@ -24,8 +23,4 @@ To only build the `eclair-node` module ```shell $ mvn install -pl eclair-node -am -DskipTests ``` -To generate the windows installer along with the build, run the following command: -```shell -$ mvn install -DskipTests -Pinstaller -``` -The generated installer will be located in `eclair-node-gui/target/jfx/installer` + diff --git a/README.md b/README.md index d12ebfe90e..a44513b9ff 100644 --- a/README.md +++ b/README.md @@ -58,8 +58,8 @@ The released binaries can be downloaded [here](https://github.com/ACINQ/eclair/r #### Installing Java -You need to first install java. Eclair will run on [Oracle JRE 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html), [Oracle JDK 11](https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html) and [Open JDK 11](https://jdk.java.net/11/). -We recommend that use use [Open JDK 11](https://jdk.java.net/11/). +You first need to install [Open JDK 11](https://jdk.java.net/11/). Eclair will also run on [Oracle JRE 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html), [Oracle JDK 11](https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html) and other versions of OpenJDK but we don't recommend it. + Then download the latest fat jar and depending on whether or not you want a GUI run the following command: * with GUI: diff --git a/eclair-core/pom.xml b/eclair-core/pom.xml index dce8d85f14..698150e339 100644 --- a/eclair-core/pom.xml +++ b/eclair-core/pom.xml @@ -235,6 +235,7 @@ 0.9.8 test + javax.activation activation diff --git a/pom.xml b/pom.xml index d17c927fec..6f9e5f39a6 100644 --- a/pom.xml +++ b/pom.xml @@ -127,6 +127,7 @@ -unchecked -Xmax-classfile-name 140 + -nobootcp ${scala.version.short} From ac8d5667c56f5477b9537195eb00a479053e8a60 Mon Sep 17 00:00:00 2001 From: Fabrice Drouin Date: Wed, 20 Feb 2019 18:41:51 +0100 Subject: [PATCH 6/7] README: Rewrite installation instructions --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index a44513b9ff..22827a8c1d 100644 --- a/README.md +++ b/README.md @@ -54,14 +54,13 @@ deprecatedrpc=signrawtransaction ### Installing Eclair -The released binaries can be downloaded [here](https://github.com/ACINQ/eclair/releases). +Eclair is developped in [Scala](https://www.scala-lang.org/), a powerful functional language that runs on the JVM, and is packaged as a JAR (Java Archive) file. We provide 2 different packages, which internally use the same core libraries: +* eclair-node, which is a headless application that you can run on servers and desktops, and control from the command line +* eclair-node-gui, which also includes a JavaFX GUI -#### Installing Java +To run Eclair, you first need to install Java, We recommend that you use [Open JDK 11](https://jdk.java.net/11/). Eclair will also run on Oracle JDK1.8, Oracle JDK11, and other versions of OpenJDK but we don't recommend using them. -You first need to install [Open JDK 11](https://jdk.java.net/11/). Eclair will also run on [Oracle JRE 1.8](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html), [Oracle JDK 11](https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html) and other versions of OpenJDK but we don't recommend it. - - -Then download the latest fat jar and depending on whether or not you want a GUI run the following command: +Then download our latest [release](https://github.com/ACINQ/eclair/releases) and depending on whether or not you want a GUI run the following command: * with GUI: ```shell java -jar eclair-node-gui--.jar From 7f1dc5e095a8a93c2720978e40984330643f9df6 Mon Sep 17 00:00:00 2001 From: Fabrice Drouin Date: Wed, 20 Feb 2019 19:06:14 +0100 Subject: [PATCH 7/7] README: fix typos [ci skip] --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 22827a8c1d..3cbf722082 100644 --- a/README.md +++ b/README.md @@ -54,11 +54,11 @@ deprecatedrpc=signrawtransaction ### Installing Eclair -Eclair is developped in [Scala](https://www.scala-lang.org/), a powerful functional language that runs on the JVM, and is packaged as a JAR (Java Archive) file. We provide 2 different packages, which internally use the same core libraries: +Eclair is developed in [Scala](https://www.scala-lang.org/), a powerful functional language that runs on the JVM, and is packaged as a JAR (Java Archive) file. We provide 2 different packages, which internally use the same core libraries: * eclair-node, which is a headless application that you can run on servers and desktops, and control from the command line * eclair-node-gui, which also includes a JavaFX GUI -To run Eclair, you first need to install Java, We recommend that you use [Open JDK 11](https://jdk.java.net/11/). Eclair will also run on Oracle JDK1.8, Oracle JDK11, and other versions of OpenJDK but we don't recommend using them. +To run Eclair, you first need to install Java, we recommend that you use [OpenJDK 11](https://jdk.java.net/11/). Eclair will also run on Oracle JDK 1.8, Oracle JDK 11, and other versions of OpenJDK but we don't recommend using them. Then download our latest [release](https://github.com/ACINQ/eclair/releases) and depending on whether or not you want a GUI run the following command: * with GUI: