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..753ecccb6a 100644 --- a/BUILD.md +++ b/BUILD.md @@ -1,11 +1,12 @@ # Building Eclair ## Requirements -- [Java Development Kit](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 1.8u161 or newer +- [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 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: ```shell @@ -22,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 85b094e514..3cbf722082 100644 --- a/README.md +++ b/README.md @@ -54,19 +54,13 @@ deprecatedrpc=signrawtransaction ### Installing Eclair -The released binaries can be downloaded [here](https://github.com/ACINQ/eclair/releases). +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 -#### Windows +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. -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). - -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 diff --git a/eclair-core/pom.xml b/eclair-core/pom.xml index 22c19cd0ae..698150e339 100644 --- a/eclair-core/pom.xml +++ b/eclair-core/pom.xml @@ -235,6 +235,13 @@ 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..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 com.sun.javafx.application.LauncherImpl 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 { - LauncherImpl.launchApplication(classOf[FxApp], classOf[FxPreloader], Array(datadir.getAbsolutePath)) + System.setProperty("javafx.preloader", classOf[FxPreloader].getName) + Application.launch(classOf[FxApp], datadir.getAbsolutePath) } } catch { case t: Throwable => diff --git a/pom.xml b/pom.xml index a02bbce9ba..6f9e5f39a6 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,8 @@ -unchecked -Xmax-classfile-name 140 + + -nobootcp ${scala.version.short}