From 7bf6608c8e2f301724ab8d43bf6248e2e0e22a2e Mon Sep 17 00:00:00 2001 From: Joel Dudley Date: Tue, 5 Jun 2018 10:15:47 +0100 Subject: [PATCH 1/6] Fixes webport numbers based on recent build.gradle changes. (#3298) --- docs/source/getting-set-up.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/getting-set-up.rst b/docs/source/getting-set-up.rst index defe46fe13..df3acc3727 100644 --- a/docs/source/getting-set-up.rst +++ b/docs/source/getting-set-up.rst @@ -83,7 +83,7 @@ Run from the command prompt 1. From the cordapp-example folder, deploy the nodes by running ``gradlew deployNodes`` 2. Start the nodes by running ``call kotlin-source/build/nodes/runnodes.bat`` 3. Wait until all the terminal windows display either "Webserver started up in XX.X sec" or "Node for "NodeC" started up and registered in XX.XX sec" -4. Test the CorDapp is running correctly by visiting the front end at http://localhost:10007/web/example/ +4. Test the CorDapp is running correctly by visiting the front end at http://localhost:10009/web/example/ Run from IntelliJ ^^^^^^^^^^^^^^^^^ @@ -103,7 +103,7 @@ Run from IntelliJ 6. At the top-right of the screen, to the left of the green ``play`` arrow, you should see a dropdown. In that dropdown, select ``Run Example Cordapp - Kotlin`` and click the green ``play`` arrow. 7. Wait until the run windows displays the message ``Webserver started up in XX.X sec`` -8. Test the CorDapp is running correctly by visiting the front end at `http://localhost:10007/web/example/ +8. Test the CorDapp is running correctly by visiting the front end at `http://localhost:10009/web/example/ .. _mac-label: @@ -137,7 +137,7 @@ Run from the terminal 1. From the cordapp-example folder, deploy the nodes by running ``./gradlew deployNodes`` 2. Start the nodes by running ``kotlin-source/build/nodes/runnodes``. Do not click while 8 additional terminal windows start up. 3. Wait until all the terminal windows display either "Webserver started up in XX.X sec" or "Node for "NodeC" started up and registered in XX.XX sec" -4. Test the CorDapp is running correctly by visiting the front end at http://localhost:10007/web/example/ +4. Test the CorDapp is running correctly by visiting the front end at http://localhost:10009/web/example/ Run from IntelliJ ^^^^^^^^^^^^^^^^^ @@ -157,7 +157,7 @@ Run from IntelliJ 6. At the top-right of the screen, to the left of the green ``play`` arrow, you should see a dropdown. In that dropdown, select ``Run Example Cordapp - Kotlin`` and click the green ``play`` arrow. 7. Wait until the run windows displays the message ``Webserver started up in XX.X sec`` -8. Test the CorDapp is running correctly by visiting the front end at http://localhost:10007/web/example/ +8. Test the CorDapp is running correctly by visiting the front end at http://localhost:10009/web/example/ Corda source code ----------------- From d86ae5fc0be9a9bf42c081a555e05691d5d51623 Mon Sep 17 00:00:00 2001 From: Matthew Nesbit Date: Tue, 5 Jun 2018 10:30:35 +0100 Subject: [PATCH 2/6] I set the max retry time for AMQP at 5 minutes. This is just too long for any kind of sensible testing, so drop back to 1 minute. (#3294) --- .../corda/nodeapi/internal/protonwrapper/netty/AMQPClient.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/protonwrapper/netty/AMQPClient.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/protonwrapper/netty/AMQPClient.kt index b542ada21f..3118ec6757 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/protonwrapper/netty/AMQPClient.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/protonwrapper/netty/AMQPClient.kt @@ -51,7 +51,7 @@ class AMQPClient(val targets: List, val log = contextLogger() const val MIN_RETRY_INTERVAL = 1000L - const val MAX_RETRY_INTERVAL = 300000L + const val MAX_RETRY_INTERVAL = 60000L const val BACKOFF_MULTIPLIER = 2L const val NUM_CLIENT_THREADS = 2 } From ee5851b56aad4048eed73ad061a7cb8094e68ff1 Mon Sep 17 00:00:00 2001 From: Joel Dudley Date: Tue, 5 Jun 2018 10:43:17 +0100 Subject: [PATCH 3/6] Update CONTRIBUTORS.md --- CONTRIBUTORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 399053ffe6..f5814f22e6 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -11,6 +11,7 @@ see changes to this list. * acetheultimate * Adrian Fletcher (TD) * agoldvarg +* Ajitha Thayaharan (BCS Technology International) * Alberto Arri (R3) * amiracam * Andras Slemmer (R3) From 010c30f6d403b5d2111cc9ac83f6b772f697f69e Mon Sep 17 00:00:00 2001 From: Katelyn Baker Date: Tue, 5 Jun 2018 10:57:19 +0100 Subject: [PATCH 4/6] DOCS - Remove references to webAddress since it's no longer a valid option (#3293) --- docs/source/corda-configuration-file.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/source/corda-configuration-file.rst b/docs/source/corda-configuration-file.rst index 128e92ed9a..58a68b4791 100644 --- a/docs/source/corda-configuration-file.rst +++ b/docs/source/corda-configuration-file.rst @@ -264,7 +264,6 @@ An example ``web-server.conf`` file is as follow: address : "my-corda-node:10003" adminAddress : "my-corda-node:10004" } - webAddress : "localhost:12347", rpcUsers : [{ username=user1, password=letmein, permissions=[ StartFlow.net.corda.protocols.CashProtocol ] }] Configuring a node where the Corda Comatability Zone's registration and Network Map services exist on different URLs @@ -307,8 +306,6 @@ path to the node's base directory. :trustStoreFile: absolute path to the trust store, defaulted to ``certificatesDirectory / "truststore.jks"``. :trustStoreFile: absolute path to the trust store, defaulted to ``certificatesDirectory / "truststore.jks"``. -:webAddress: The host and port on which the webserver will listen if it is started. This is not used by the node itself. - :rpcUsers: A list of users who are authorised to access the RPC system. Each user in the list is a config object with the following fields: From 086b9daa6e81b466878bea8306c1edd05d927f17 Mon Sep 17 00:00:00 2001 From: Joel Dudley Date: Tue, 5 Jun 2018 10:57:29 +0100 Subject: [PATCH 5/6] Updates the setup instructions to be IntelliJ 2018 compatibile. (#3299) --- docs/source/getting-set-up.rst | 4 +-- docs/source/resources/intellij-welcome.png | Bin 31175 -> 0 bytes .../resources/unlinked-gradle-project.png | Bin 8697 -> 0 bytes docs/source/tutorial-cordapp.rst | 33 +++++------------- 4 files changed, 10 insertions(+), 27 deletions(-) delete mode 100644 docs/source/resources/intellij-welcome.png delete mode 100644 docs/source/resources/unlinked-gradle-project.png diff --git a/docs/source/getting-set-up.rst b/docs/source/getting-set-up.rst index df3acc3727..72e4e44aca 100644 --- a/docs/source/getting-set-up.rst +++ b/docs/source/getting-set-up.rst @@ -94,7 +94,7 @@ Run from IntelliJ 3. Once the project is open, click ``File``, then ``Project Structure``. Under ``Project SDK:``, set the project SDK by clicking ``New...``, clicking ``JDK``, and navigating to ``C:\\Program Files\\Java\\jdk1.8.0_XXX`` (where ``XXX`` is - the latest minor version number). Click "OK" + the latest minor version number). Click ``OK`` 4. Again under ``File`` then ``Project Structure``, select ``Modules``. Click ``+``, then ``Import Module``, then select the ``cordapp-example`` folder and click ``Open``. Choose to ``Import module from external model``, select ``Gradle``, click ``Next`` then ``Finish`` (leaving the defaults) and ``OK`` @@ -148,7 +148,7 @@ Run from IntelliJ 3. Once the project is open, click ``File``, then ``Project Structure``. Under ``Project SDK:``, set the project SDK by clicking ``New...``, clicking ``JDK``, and navigating to ``C:\\Program Files\\Java\\jdk1.8.0_XXX`` (where ``XXX`` is - the latest minor version number). Click "OK" + the latest minor version number). Click ``OK`` 4. Again under ``File`` then ``Project Structure``, select ``Modules``. Click ``+``, then ``Import Module``, then select the ``cordapp-example`` folder and click ``Open``. Choose to ``Import module from external model``, select ``Gradle``, click ``Next`` then ``Finish`` (leaving the defaults) and ``OK`` diff --git a/docs/source/resources/intellij-welcome.png b/docs/source/resources/intellij-welcome.png deleted file mode 100644 index 4c3192b54745ddac65919fdbfda7faf21944f302..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31175 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%0DUnE%fP>F?sodzE2C>TNMB(FGy4`S|*BY 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 VX>f#?{`^xwR!T{-Ox(!t{{SCnz?1+0 diff --git a/docs/source/tutorial-cordapp.rst b/docs/source/tutorial-cordapp.rst index fae908c562..2c2447d448 100644 --- a/docs/source/tutorial-cordapp.rst +++ b/docs/source/tutorial-cordapp.rst @@ -39,38 +39,21 @@ Opening the example CorDapp in IntelliJ --------------------------------------- Let's open the example CorDapp in IntelliJ IDEA: -**If opening a fresh IntelliJ instance**: - * Open IntelliJ -* A dialogue box will appear: - .. image:: resources/intellij-welcome.png - :width: 400 +* A splash screen will appear. Click ``open``, navigate to the folder where you cloned the ``cordapp-example``, and + click ``OK`` -* Click open, navigate to the folder where you cloned the ``cordapp-example``, and click OK +* Once the project is open, click ``File``, then ``Project Structure``. Under ``Project SDK:``, set the project SDK by + clicking ``New...``, clicking ``JDK``, and navigating to ``C:\Program Files\Java\jdk1.8.0_XXX`` (where ``XXX`` is the + latest minor version number). Click ``OK`` -* IntelliJ will show several pop-up windows, one of which requires our attention: - - .. image:: resources/unlinked-gradle-project.png - :width: 400 - -* Click the 'import gradle project' link. Press OK on the dialogue that pops up +* Again under ``File`` then ``Project Structure``, select ``Modules``. Click ``+``, then ``Import Module``, then select + the ``cordapp-example`` folder and click ``Open``. Choose to ``Import module from external model``, select + ``Gradle``, click ``Next`` then ``Finish`` (leaving the defaults) and ``OK`` * Gradle will now download all the project dependencies and perform some indexing. This usually takes a minute or so - * If the 'import gradle project' pop-up does not appear, click the small green speech bubble at the bottom-right of - the IDE, or simply close and re-open IntelliJ again to make it reappear - -**If you already have IntelliJ open**: - -* Open the ``File`` menu - -* Navigate to ``Open ...`` - -* Navigate to the directory where you cloned the ``cordapp-example`` - -* Click OK - Project structure ~~~~~~~~~~~~~~~~~ The example CorDapp has the following structure: From 0812329aafd7660089b8f3e7a1ee4f419e0d71a6 Mon Sep 17 00:00:00 2001 From: Matthew Nesbit Date: Tue, 5 Jun 2018 13:30:20 +0100 Subject: [PATCH 6/6] The logic in my recent late start bridge PR was wrong. This doesn't affect embedded bridges, but for external bridges the state doesn't reset correctly on bridge restart. (#3301) --- .../net/corda/node/services/messaging/P2PMessagingClient.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/node/src/main/kotlin/net/corda/node/services/messaging/P2PMessagingClient.kt b/node/src/main/kotlin/net/corda/node/services/messaging/P2PMessagingClient.kt index b6895296d0..35a2e28b19 100644 --- a/node/src/main/kotlin/net/corda/node/services/messaging/P2PMessagingClient.kt +++ b/node/src/main/kotlin/net/corda/node/services/messaging/P2PMessagingClient.kt @@ -322,6 +322,7 @@ class P2PMessagingClient(val config: NodeConfiguration, } val queues = session.addressQuery(SimpleString("$PEERS_PREFIX#")).queueNames + knownQueues.clear() for (queue in queues) { val queueQuery = session.queueQuery(queue) if (!config.lazyBridgeStart || queueQuery.messageCount > 0) {