diff --git a/constants.properties b/constants.properties index 0352e9178b..70e5282208 100644 --- a/constants.properties +++ b/constants.properties @@ -30,7 +30,7 @@ snakeYamlVersion=1.19 caffeineVersion=2.7.0 metricsVersion=4.1.0 metricsNewRelicVersion=1.1.1 -openSourceBranch=https://github.com/corda/corda/blob/master -openSourceSamplesBranch=https://github.com/corda/samples/blob/master +openSourceBranch=https://github.com/corda/corda/blob/release/os/4.3 +openSourceSamplesBranch=https://github.com/corda/samples/blob/release-V4 jolokiaAgentVersion=1.6.1 diff --git a/docs/source/cordapp-build-systems.rst b/docs/source/cordapp-build-systems.rst index 715c1ce604..6d8db0d9b5 100644 --- a/docs/source/cordapp-build-systems.rst +++ b/docs/source/cordapp-build-systems.rst @@ -10,6 +10,9 @@ Building and installing a CorDapp .. contents:: CorDapps run on the Corda platform and integrate with it and each other. This article explains how to build CorDapps. + +Applications on Corda (CorDapps) can be written in any language targeting the JVM. However, Corda itself and most of the samples are written in Kotlin. Kotlin is an `official Android language `_, and you can read more about why Kotlin is a strong successor to Java `here `_. If you're unfamiliar with Kotlin, there is an official `getting started guide `_, and a series of `Kotlin Koans `_ + To learn what a CorDapp is, please read :doc:`cordapp-overview`. CorDapp format @@ -26,12 +29,12 @@ JAR will contain: Build tools ----------- In the instructions that follow, we assume you are using Gradle and the ``cordapp`` plugin to build your -CorDapp. You can find examples of building a CorDapp using these tools in the -`Kotlin CorDapp Template `_ and the +CorDapp. You can find examples of building a CorDapp using these tools in the +`Kotlin CorDapp Template `_ and the `Java CorDapp Template `_. To ensure you are using the correct version of Gradle, you should use the provided Gradle Wrapper by copying across -the following folder and files from the `Kotlin CorDapp Template `_ or the +the following folder and files from the `Kotlin CorDapp Template `_ or the `Java CorDapp Template `_ to the root of your project: * ``gradle/`` @@ -331,7 +334,7 @@ Once your dependencies are set correctly, you can build your CorDapp JAR(s) usin * Windows: ``gradlew.bat jar`` -Each of the project's modules will be compiled into its own CorDapp JAR. You can find these CorDapp JARs in the ``build/libs`` +Each of the project's modules will be compiled into its own CorDapp JAR. You can find these CorDapp JARs in the ``build/libs`` folders of each of the project's modules. .. warning:: The hash of the generated CorDapp JAR is not deterministic, as it depends on variables such as the @@ -352,8 +355,8 @@ Installing the CorDapp JAR .. note:: Before installing a CorDapp, you must create one or more nodes to install it on. For instructions, please see :doc:`generating-a-node`. -At start-up, nodes will load any CorDapps present in their ``cordapps`` folder. In order to install a CorDapp on a node, the -CorDapp JAR must be added to the ``/cordapps/`` folder (where ``node_dir`` is the folder in which the node's JAR +At start-up, nodes will load any CorDapps present in their ``cordapps`` folder. In order to install a CorDapp on a node, the +CorDapp JAR must be added to the ``/cordapps/`` folder (where ``node_dir`` is the folder in which the node's JAR and configuration files are stored) and the node restarted. .. _cordapp_configuration_files_ref: @@ -556,6 +559,3 @@ and subsequently retry the failed flow (currently this requires a node re-start) .. note:: this behaviour is to protect the node from executing contract code that was not vetted. It is a temporary precaution until the Deterministic JVM is integrated into Corda whereby execution takes place in a sandboxed environment which protects the node from malicious code. - - - diff --git a/docs/source/getting-set-up.rst b/docs/source/getting-set-up.rst index 9f4142e08b..892cc82c57 100644 --- a/docs/source/getting-set-up.rst +++ b/docs/source/getting-set-up.rst @@ -1,222 +1,38 @@ Getting set up for CorDapp development ====================================== -Software requirements ---------------------- +There are four pieces of required software for CorDapp development: the Java 8 JDK, IntelliJ IDEA, Git, and Gradle 4.10. -Corda uses industry-standard tools: +1. Install the Java 8 JDK, version |java_version|. We have tested using the following Java builds: -* **Java 8 JVM** - we require at least version |java_version|, but do not currently support Java 9 or higher. + - `Oracle JDK `_ + - `Amazon Corretto `_ + - `Red Hat's OpenJDK `_ + - `Zulu's OpenJDK `_ - We have tested with the following builds: + Please note: OpenJDK builds often exclude JavaFX, which is required by the Corda GUI tools. Corda supports only Java 8. - * `Oracle JDK `_ + If you are using Windows: Add Java to the PATH environment variable by following the instructions in the `Oracle documentation `_. - * `Amazon Corretto `_ +2. Install `IntelliJ IDEA Community Edition `_. Corda supports IntelliJ IDEA versions **2017.x**, **2018.x**, and **2019.x**; and Kotlin plugin version |kotlin_version|. - * `Red Hat's OpenJDK `_ + To install IntelliJ IDEA in a Ubuntu environment, navigate to the `Jetbrains IntelliJ snap package `_. - * `Zulu's OpenJDK `_ +3. Install `git `_. - Please note that OpenJDK builds usually exclude JavaFX, which our GUI tools require. - -* **IntelliJ IDEA** - supported versions **2017.x**, **2018.x** and **2019.x** (with Kotlin plugin version |kotlin_version|) -* **Gradle** - we use 4.10 and the ``gradlew`` script in the project / samples directories will download it for you. - -Please note: - -* Applications on Corda (CorDapps) can be written in any language targeting the JVM. However, Corda itself and most of - the samples are written in Kotlin. Kotlin is an - `official Android language `_, and you can read more about why - Kotlin is a strong successor to Java - `here `_. If you're - unfamiliar with Kotlin, there is an official - `getting started guide `_, and a series of - `Kotlin Koans `_ - -* IntelliJ IDEA is recommended due to the strength of its Kotlin integration. - -Following these software recommendations will minimize the number of errors you encounter, and make it easier for -others to provide support. However, if you do use other tools, we'd be interested to hear about any issues that arise. - -Set-up instructions -------------------- -The instructions below will allow you to set up your development environment for running Corda and writing CorDapps. If -you have any issues, please reach out on `Stack Overflow `_ or via -`our Slack channels `_. - -The set-up instructions are available for the following platforms: - -* :ref:`windows-label` (or `in video form `__) - -* :ref:`mac-label` (or `in video form `__) - -* :ref:`deb-ubuntu-label` - -* :ref:`fedora-label` - -.. note:: These setup instructions will guide you on how to install the Oracle JDK. Each JDK can be found on their respective sites: - - * `Oracle Downloads `_ - - * `Amazon Corretto Downloads `_ - - * `Red Hat OpenJDK `_ - - * `Zulu OpenJDK `_ - -.. _windows-label: - -.. note:: These setup instructions will guide you on how to install the Oracle JDK. Each JDK can be found on their respective sites: - - * `Oracle `_ - - * `Amazon Corretto `_ - - * `Red Hat OpenJDK `_ - - * `Zulu OpenJDK `_ - -Windows -------- - -.. warning:: If you are using a Mac, Debian/Ubuntu or Fedora machine, please follow the :ref:`mac-label`, :ref:`deb-ubuntu-label` or :ref:`fedora-label` instructions instead. - -Java -^^^^ -1. Visit http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html -2. Click the download link for jdk-8uXXX-windows-x64.exe (where "XXX" is the latest minor version number) -3. Download and run the executable to install Java (use the default settings) -4. Add Java to the PATH environment variable by following the instructions in the `Oracle documentation `_ -5. Open a new command prompt and run ``java -version`` to test that Java is installed correctly - -Git -^^^ -1. Visit https://git-scm.com/download/win -2. Click the "64-bit Git for Windows Setup" download link. -3. Download and run the executable to install Git (use the default settings) -4. Open a new command prompt and type ``git --version`` to test that git is installed correctly - -IntelliJ -^^^^^^^^ -1. Visit https://www.jetbrains.com/idea/download/download-thanks.html?code=IIC -2. Download and run the executable to install IntelliJ Community Edition (use the default settings) -3. Ensure the Kotlin plugin in Intellij is updated to version |kotlin_version| (new installs will contains this version) - -.. _mac-label: - -Mac ---- - -.. warning:: If you are using a Windows, Debian/Ubuntu or Fedora machine, please follow the :ref:`windows-label`, :ref:`deb-ubuntu-label` or :ref:`fedora-label` instructions instead. - -Java -^^^^ -1. Visit http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html -2. Click the download link for jdk-8uXXX-macosx-x64.dmg (where "XXX" is the latest minor version number) -3. Download and run the executable to install Java (use the default settings) -4. Open a new terminal window and run ``java -version`` to test that Java is installed correctly - -IntelliJ -^^^^^^^^ -1. Visit https://www.jetbrains.com/idea/download/download-thanks.html?platform=mac&code=IIC -2. Download and run the executable to install IntelliJ Community Edition (use the default settings) -3. Ensure the Kotlin plugin in IntelliJ is updated to version |kotlin_version| (new installs will contains this version) - -.. _deb-ubuntu-label: - -Debian/Ubuntu -------------- - -.. warning:: If you are using a Mac, Windows or Fedora machine, please follow the :ref:`mac-label`, :ref:`windows-label` or :ref:`fedora-label` instructions instead. - -These instructions were tested on Ubuntu Desktop 18.04 LTS. - -Java -^^^^ -1. Go to https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html and download ``jdk-8u202-linux-x64.tar.gz``. - You will be redirected to an Oracle login page. Login or create an account to download the JDK. -2. Extract the archive with ``tar -xvf jdk-8u202-linux-x64.tar.gz jdk1.8.0_202/`` -3. Create a directory to place the JDK e.g. ``sudo mkdir -p /usr/lib/jvm`` -4. Move the extracted archive in that folder with ``sudo mv ./jdk1.8.0_202 /usr/lib/jvm/`` -5. Add the most common java binaries to the list of alternatives to allow easy swap between Java versions in the future - - .. code-block:: shell - - sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_202/bin/java" 1 - sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_202/bin/javac" 1 - sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0_202/bin/javaws" 1 - -6. Update permissions - - .. code-block:: shell - - sudo chmod a+x /usr/bin/java - sudo chmod a+x /usr/bin/javac - sudo chmod a+x /usr/bin/javaws - sudo chown -R root:root /usr/lib/jvm/jdk1.8.0_202 - -7. Set JAVA_HOME and JRE_HOME to your ``~/.bash_profile`` and/or ``~/.bashrc`` - - .. code-block:: shell - - export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_202 - export JRE_HOME=/usr/lib/jvm/jdk1.8.0_202/jre - -8. Verify that the JDK was installed correctly by running ``java -version`` - -Git -^^^^ -1. From the terminal, Git can be installed using apt with the command ``sudo apt install git`` -2. Verify that git was installed correctly by typing ``git --version`` - -IntelliJ -^^^^^^^^ -Jetbrains offers a pre-built snap package that allows for easy, one-step installation of IntelliJ onto Ubuntu. - -1. To download the snap, navigate to https://snapcraft.io/intellij-idea-community -2. Click ``Install``, then ``View in Desktop Store``. Choose ``Ubuntu Software`` in the Launch Application window. -3. Ensure the Kotlin plugin in Intellij is updated to version |kotlin_version| (new installs will contains this version) - -.. _fedora-label: - -Fedora ------- - -.. warning:: If you are using a Mac, Windows or Debian/Ubuntu machine, please follow the :ref:`mac-label`, :ref:`windows-label` or :ref:`deb-ubuntu-label` instructions instead. - -These instructions were tested on Fedora 28. - -Java -^^^^ -1. Download the RPM installation file of Oracle JDK from https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html. -2. Install the package with ``rpm -ivh jdk--linux-.rpm`` or use the default software manager. -3. Choose java version by using the following command ``alternatives --config java`` -4. Verify that the JDK was installed correctly by running ``java -version`` - -Git -^^^^ -1. From the terminal, Git can be installed using dnf with the command ``sudo dnf install git`` -2. Verify that git was installed correctly by typing ``git --version`` - -IntelliJ -^^^^^^^^ -1. Visit https://www.jetbrains.com/idea/download/download-thanks.html?platform=linux&code=IIC -2. Unpack the ``tar.gz`` file using the following command ``tar xfz ideaIC-.tar.gz -C /opt`` -3. Run IntelliJ with ``/opt/ideaIC-/bin/idea.sh`` -4. Ensure the Kotlin plugin in IntelliJ is updated to version |kotlin_version| (new installs will contains this version) +4. Install `Gradle version 4.10 `_. If you are using a supported Corda sample, the included ``gradlew`` script should install Gradle automatically. + Please note: Corda requires Gradle version 4.10, and does not support any other version of Gradle. Next steps ---------- + First, run the :doc:`example CorDapp `. Next, read through the :doc:`Corda Key Concepts ` to understand how Corda works. -By then, you'll be ready to start writing your own CorDapps. Learn how to do this in the -:doc:`Hello, World tutorial `. You may want to refer to the -API documentation in the sidebar, the :doc:`flow cookbook ` and the +By then, you'll be ready to start writing your own CorDapps. You may want to refer to the +:doc:`API documentation `, the :doc:`flow cookbook ` and the `samples `_ along the way. -If you encounter any issues, please ask on `Stack Overflow `_ or via -`our Slack channels `_. +If you encounter any issues, please ask on `Stack Overflow `_ or via `our Slack channels `_.