Commit Graph

3417 Commits

Author SHA1 Message Date
Marek Skocovsky
262c87a5c6 Integrate CRaSH shell (SSHD). Joint effort between Mike Hearn and Marek Skocovsky.
The shell is embedded in the node and offers the ability to monitor
and control the node via the launching terminal.

Still to do:

* Switch to a fork of CRaSH that we can maintain ourselves, and merge in Marek's SSH patch so we can enable SSH access.
* Add persistent command history that survives restarts.
* Tab completion for the 'flow' and 'run' commands.
* Remove the 'jul' command and replace it with a command that lets you see and tail the log4j logs instead.
* Fix or remove the other crash commands that have bitrotted since 2015.
2017-03-24 12:44:54 +01:00
Katarzyna Streich
c5966a93e5 Remove duplicated SecureRandom functions in crypto package. 2017-03-24 10:36:05 +00:00
Chris Rankin
eaf9dad7c9 Remove junit-quickcheck from Corda because it is only used for testing. (#416) 2017-03-23 17:32:14 +00:00
Chris Rankin
9348ec05e7 Use loggerFor() function from :core. (#418) 2017-03-23 16:32:30 +00:00
Chris Rankin
e1bfa6c655 CORDA-267: Set a default name of Notary for the first node. (#417) 2017-03-23 16:28:05 +00:00
Andras Slemmer
660e570b48 Merge pull request #409 from corda/aslemmer-fix-runnodes-add-tmux
Aslemmer fix runnodes add tmux
2017-03-23 16:13:55 +00:00
Ross Nicoll
146641112e Correct format of README.md link to Slack 2017-03-23 14:44:51 +01:00
Chris Rankin
852af27f38 Use platform version of Guava for DemoBench. (#406) 2017-03-23 13:04:31 +00:00
Andrius Dagys
0713baf513 Fix isValidatingNotary check: throw exception if the provided party is not a notary 2017-03-23 12:11:18 +00:00
Andrius Dagys
71fe3e3d3b Record a metric for duration and rate of execution for every flow (#372)
* Record a metric for the duration and rate of execution for every flow. This is useful for task intense scenarios to detect performance degradation.

* Measure both successful and failed flow durations
2017-03-22 16:52:41 +00:00
Andras Slemmer
5b26d5b454 Bump publish.properties 2017-03-22 16:52:20 +00:00
tomconte
79d133d9d7 Use tmux instead of xterm if available 2017-03-22 16:50:59 +00:00
Andras Slemmer
eb9ae6b6b0 runnodes: Fix runnodes on Linux, fix nodeName 2017-03-22 16:49:10 +00:00
Chris Rankin
98266da41c Refactor CordaRPCClient into new :client:rpc Gradle module. (#405)
* CORDA-305: Refactor CordaRPCClient into :client:rpc module

* CORDA-305: Remove the Kotlin test framework from the artifacts.

* CORDA-305: Migrate serialisation whitelist into node-api module.

* CORDA-305: Clean up unused RPC observables.

* CORDA-305: Add :client:rpc module to documentation tasks.

* CORDA-305: Include :finance into :client:rpc for its serialisable classes.

* CORDA-305: Move test classes into the correct directory.

* CORDA-305: Migrate :finance dependency from :client:rpc into DemoBench.

* CORDA-305: Update wording of TODO about handling Observables.
2017-03-22 15:52:54 +00:00
Clinton
9a5bba9c04 Created a Kotlin node runner (#367)
* Added a cross platform node runner to replace scripts.

* Added runnodes shell and batch files back.

* Node runner supports new webserver format.

* Runnodes now runs correctly on OSX

* Intermediate commit. Squash me.

* Upgdated gradle plugins version number to 0.10.1

* Further inlined more functions.

* Text display changes for noderunner.
2017-03-22 14:08:23 +00:00
Clinton
7532ae763f Upgrade to Kotlin 1.0.7 and Gradle 3.4.1 (#402)
* Upgraded to gradle 3.4.1

* Upgrade to Kotlin 1.0.7 from 1.0.6
2017-03-22 12:05:49 +00:00
Ross Nicoll
4f0e8b73bb Update port numbers in explorer docs 2017-03-22 12:25:36 +01:00
Ross Nicoll
7e0e7bc645 Fix warning in NodeAttachmentService 2017-03-22 12:20:29 +01:00
Chris Rankin
9e43df36d3 Refactor :client module into :client:javafx and :client:mock (#388)
* CORDA-304: Refactor :client modules into :client:javafx and :client:mock.

* CORDA-304: Add :client:mock to Dokka tasks, and remove unused integrationTest task.

* CORDA-304: Migrate DriverBasedTest from node into test-utils.

* CORDA-304: Rename .fx. package to .jfx. to prevent confusion with "exchange rate".

* CORDA-304: Rename module to ':client:jfx'.
2017-03-21 19:45:12 +00:00
Andras Slemmer
26044e543d Merge pull request #381 from corda/aslemmer-driver-improvements
driver: Add ShutdownManager, make network map service optional
2017-03-21 18:38:18 +00:00
Andras Slemmer
7a9bc5bfad driver: Add ShutdownManager, make network map service optional 2017-03-21 18:08:21 +00:00
Mike Hearn
d281fe82b5 Docs: misc fixes and tweaks to the docsite. 2017-03-21 18:01:17 +01:00
Mike Hearn
1243118aa9 Minor: more banking jokes, surround legal name in quotes 2017-03-21 18:01:17 +01:00
Mike Hearn
4c6548107a Minor: don't repeat the legal name of the node multiple times in the output (which causes indentation issues) 2017-03-21 18:01:17 +01:00
Mike Hearn
1d6fe30f03 Minor: set file mode explicitly so corda.jar is executable on UNIX when copying from a downloaded jar 2017-03-21 18:01:17 +01:00
Shams Asari
dbd0bd7859 Merge pull request #392 from corda/shams-logging-fix
Logging fixes, including broken --logging-level cmd line arg
2017-03-21 15:58:39 +00:00
Clinton
bfdb31e9cf Merge pull request #401 from corda/clint-kaptexplicitidea
Generated files in node-schemas are now correctly identified by IntelliJ
2017-03-21 15:48:37 +00:00
Shams Asari
209f5c8a25 Logging fixes, including broken --logging-level cmd line arg 2017-03-21 15:36:32 +00:00
Clinton Alexander
e32c660a0f Generated files in node-schemas are now correctly identified by IntelliJ 2017-03-21 15:24:21 +00:00
Chris Rankin
18c57cf951 Merge DemoBench into Corda. (#380)
* Add basic spec for the demobench tool.

* Initial commit: Creating new tabs whenever the "Add Node" button is pressed. These tabs currently contain the bash shell only.

* Refactor shutdown code, although AWT is still misbehaving.

* Remove duplicate libpty native objects.

* Add initial form for configuring new nodes.

* Update to Corda 0.8-SNAPSHOT

* Patch JediTerm to allow the application to shutdown cleanly.

* Write configuration parameters into node.conf, and then run corda.jar in its own directory.

* The first node now becomes the session's Network Map service used by all other nodes. Force nodes to be created one-by-one.

* Trim node name and nearest city values.

* Fix logging location of corda.jar

* legalName field can be val.

* Allow configuration of extra network services.

* Launch DB viewer for node.

* Small tidy-up.

* Allow services to be loaded as a resources as well as a file.

* Include native artifacts in distribution.

* Add cash and issuer services to DemoBench.

* Configure Node and DemoBench to use same version of H2 database.

* Implement launching "Node Explorer" for each node.

* Create a capsule for Node Explorer, and allow login via command line parameters to bypass login screen.

* Simplify Kotlin objects.

* Include issuer for CHF (Swiss Francs)

* Fix SLF4J logging.

* Display simple statistics about the node on each tab.

* Add new RPC operation getCashBalances() to Node.

* Ensure demobench is built after explorer:capsule.

* Grant permissions to the Node's user, and install BanfOfCorda plugin for cash issuers.

* Initial inclusion of Corda and BankOfCorda JARs in distribution.

* Fix DemoBench distribution target.

* Add SLF4J binding for Log4J 2.x

* First batch of code review changes.

* More changes from review.

* Remove ".exe" from Java executable path, because Windows doesn't need it.

* Remove superfluous lamba parameter names.

* Better usage of Paths vs File API.

* Simplify the configuration object.

* Ensure a DemoBench installation is relocatable.

* Ensure that Node Explorer can write into its working directory.

* Disable Node Explorer and Database Viewer buttons until the node has launched and is responding to RPC.

* Only allow the first node to run notary services. And validate port numbers more strongly.

* Force all chosen port numbers to be different.

* Initial javapackager task: currently builds RPMs.

* Ensure JavaPackager task finds custom resources on the classpath.

* Move demobench.log into the user's demobench directory.

* Upgrade to Logback 1.1.10

* Make the javapackage task "more gradle" and "less ant".

* Display "0" balance for a node which has no cash balances at all.

* CORPRIV-665: Ensure tab closes if the node exits.

* CORPRIV-665: Protect against NPE

* CORPRIV-665: Protect harder against NPE

* CORPRIV-665: Protect NodeTerminalView from being destroyed twice.

* Initial custom resource script for Windows bundle.

* Take java executable from JRE.

* Allow Node Explorer to be relaunched.

* CORPRIV-658: Add gradle parameter "packageType" for javapackage task.

* Replace R3 logo with Corda logo.

* CORPRIV-658: Add icon file for Windows installer.

* CORPRIV-658: Add BAT file to create unsigned DemoBench.exe.

* CORPRIV-659: Add icon file for DMG package.

* Improve packaging information.

* CORPRIV-660: Allow user to launch Web server for each node.

* Tidy up gradle usage.

* Document provenance of jediterm-terminal-2.5.jar.

* Use "safe" casting operator.

* CORPRIV-659: Add bin/java to minimal JRE.

* CORPRIV-659: Basic shell script to package DemoBench as DMG.

* Add utility function for creating SLF4J loggers, and close unused I/O streams from forked processes.

* Switch from Runtime.exec() to ProcessBuilder.

* CORPRIV-660: Display Web server's port number on launch button.

* CORPRIV-661: Allow profiles to be loaded into DemoBench.

* Upgrade to TornadoFX 1.6.2.

* CORPRIV-661: Implement saving profiles.

* CORPRIV-661: Refactor code for guaranteeing a .zip extension.

* CORRIV-658: Add icon for Windows installer.

* CORPRIV-659: Update installer script and icons for DMG.

* CORPRIV-659: Tweak post-image script for DMG.

* CORPRIV-658: I've wasted enough time on this - Windows rejects this BMP
as invalid, and I have no idea why!?

* CORPRIV-658: Add external manifest for DemoBench.exe that declares it incapable of native HiDPI support.

* CORPRIV-661: Ensure that we can rewrite saved profiles correctly.

* Fix terminal resizing.

* CORPRIV-659: Fix DMG installer.

* CORPRIV-659: Better validation for JAVA_HOME.

* Downgrade JDK requirement to 8u102, for consistency with capsules.

* Comment how JediTerm is not available via Maven.

* CORPRIV-658: Rename packaging script.

* CORPRIV-659: Renaming packaging script.

* Comment file copying vs file filtering during packaging.

* Fixes from code review.

* CORPRIV-661: Ensure that nodes loaded from a profile have the correct network map service.

* Break textfield definitions out into separate functions.

* Fixes from code review.

* Code review tweaks.

* More code review tweaks.

* Another simple code review tweak.

* Replace companion object with a BiPredicate lambda.

* CORPRIV-664: Implement saving/loading of Cordapps with profiles.

* CORPRIV-664: Refactor saving/loading plugins.

* CORPRIV-664: Add initial unit tests for model.

* CORPRIV-664: Add simple unit tests for NodeController.

* CORPRIV-664: Unit test enhancements, e.g. configure JUL properly.

* CORPRIV-664: Use Suite instead of abstract test class.

* CORPRIV-664: Allow Cordapps to be loaded when each Node is configured.

* CORPRIV-664: Document which checked Java exceptions are thrown.

* Write JavaPackager output into build/javapackage directory.

* CORPRIV-664: Document more checked Java exceptions.

* Refactor Web and Explorer classes into their own packages.

* Declare WebServer and Explorer constructors as "internal".

* Update packaging scripts: tell user where the installer is!

* CORPRIV-659: Set "system menu bar" property for MacOSX.

* CORPRIV-661: Use "*.profile" for profile files.

* Remove unnecessary <children/> elements, as they are defaults.

* Fix build breakage when on Windows.

* Tweaks for EXE packaging script.

* Change function to extension function.

* Merged in corpriv-702 (pull request #25)

CORPRIV-702: Sign the DMG with a 'Developer ID Application' certificate.

* CORPRIV-702: Sign the DMG with a 'Mac Developer' certificate.

* CORPRIV-702: Use "Developer ID Application" certificate instead. And now JavaPackager signs the application, which means that we only need to resign our embedded JVM.

* CORPRIV-702: Update comment better to explain why JRE must be resigned.

Approved-by: Mike Hearn

* Exclude old version of Javassist in favour of Hibernate's version from Node. (#320)

* Exclude old version of Javassist in favour of Hibernate's version.

* Comment why we are excluding javassist:javassist, and add TODO for when junit-quickcheck 0.8 is released.

* CORDA-265: Implement "ALL" permission for RPC users. (#306)

* CORDA-265: Implement "ALL" permission for RPC users. Users with this permission in node.conf can use any flow.

* CORDA-265: Ensure that we always close the RPC proxy object after each test.

* CORDA-265: Refactor construction of dummy RPC client into an abstract base class.

* CORDA-265: Document RPC "ALL" permission.

* CORDA-266: Update DemoBench to be compatible with 0.10-SNAPSHOT.

* CORDA-268: Reimplement to work on both JDK8 and JDK9 (for now).

* CORDA-268: Copy java from $JAVA_HOME/bin as this also works on JDK > 8.

* Code review fixes.

* Use SLF4J's version of the commons-logging bindings. Only include SLF4J's Log4J back-end for actual applications, e.g. Node. (#350)

* Update with SLF4J change.

* CORDA-266: Update to latest node.conf format.

* Upgrade to H2 1.4.194. (#389)

- Timezone related fixes.
- A Turkish case canonicalisation bug.
- Fixes for some scary threading related bugs.
2017-03-21 14:24:13 +00:00
Clinton
66e4f8d74b Merge pull request #359 from corda/clint-explicitkapt
Kapt is no longer run automatically when build is run.
2017-03-21 13:02:45 +00:00
Andras Slemmer
25327f10e1 Merge pull request #395 from corda/aslemmer-publish-node-api
build: Fix publishing list
2017-03-21 10:52:15 +00:00
Chris Rankin
d415865efe Explicit dependency on SLF4J API, to help IntelliJ. (#393) 2017-03-20 17:04:39 +00:00
Andras Slemmer
d7751fcd78 build: Fix publishing list 2017-03-20 16:50:34 +00:00
Konstantinos Chalkias
0aecae6531 issuerNodeUSD fix
Small correction on issuerClientUSD = issuerNodeUSD.rpcClientToNode(), causing 'exiting more cash than exists' errors.
2017-03-20 14:47:52 +00:00
Mike Hearn
0d54832d88 FlowSessionException is sent over RPC so must be serializable and documented. 2017-03-20 15:17:31 +01:00
Mike Hearn
afbc8f9b5c De-issuerify the cash payment flow. This makes it easier to use the payment flow from the shell. 2017-03-20 15:14:28 +01:00
Andras Slemmer
4f6b44ceff Merge pull request #379 from corda/aslemmer-node-api
Add :node-api, factor out some artemis code
2017-03-20 13:31:21 +00:00
Chris Rankin
64fe92ce34 Upgrade to H2 1.4.194. (#389)
- Timezone related fixes.
- A Turkish case canonicalisation bug.
- Fixes for some scary threading related bugs.
2017-03-20 10:27:45 +00:00
Chris Rankin
4ce2d65964 Fix intermittent "Address already in use" test failures since RPC port split. (#387) 2017-03-20 09:36:34 +00:00
Ross Nicoll
a2db6d0f5d Correct code paths in tutorial docs 2017-03-17 16:13:29 +00:00
Andras Slemmer
d3f956ab60 Address PR 379 comments 2017-03-17 15:09:04 +00:00
Rick Parker
1de1f9095f Several tests were corrupting Kryo which was then returned to the common pool. (#378)
* We were leaving trailing attachmentStorage on pooled kryo instances after some tests.  Changed attachment storage logic to make it impossible to leave it behind.

* Some low level tests corrupt the Kryo config, so do not return to pool when this is the case.  Also, we discovered that Kryo is caching class name to class resolution.  We don't want to do this where attachments are involved.  The errors raised highlighted a class missing from the whitelist.  Need to write a unit test to test the class loader issue.

* Unit test for attachment class loading with kryo.
2017-03-17 12:43:11 +00:00
Clinton Alexander
b4a5902faf Test build now compiles correctly with kapt removed from the build tree. 2017-03-17 12:17:50 +00:00
Andras Slemmer
c3c1f3d801 Add :node-api, factor out some artemis code 2017-03-17 11:47:05 +00:00
Ross Nicoll
486368d926 Clean up messaging/RPC port configuration and docs (#296)
* Non-ssl artemis acceptor for RPC connection. (#271)

* New non-ssl acceptor in artemis server for RPC connection.

* Rename artemisAddress with messagingAddress

Rename artemisAddress with messagingAddress so that the node configuration file properties match
the code variable names.
Rename artemisPort to messagingPort in Gradle configuration to match node configuration naming.

* Add rpcPort configuration option for Gradle

* Update docs to reflect changes to RPC port configuration

* Renumber ports in example CorDapp to match numbering used elsewhere

* Restructure upgrade guide

* added config file checks on corda startup to make the upgrade path a bit smoother.
2017-03-17 10:32:14 +00:00
Mike Hearn
eb21458885 Some fixes to emoji/ANSI renderer 2017-03-17 10:54:25 +01:00
Shams Asari
f079c05e6a Merge pull request #361 from corda/shams-nms-reg-error-response
Clean up of network map service  and its tests, and added error msg t…
2017-03-16 17:03:42 +00:00
Shams Asari
2af04aeb40 Merge pull request #366 from corda/shams-suspendable-unwrap
Added @Suspendable to UntrustworthyData.unwrap to allow Java flows to do I/O inside unwrap
2017-03-16 17:00:27 +00:00
Konstantinos Chalkias
5966610a6e DEFAULT_MAX_BUCKETS based on max heap size
MAX_DEFAULT_BUCKETS is linearly correlated to max heap size with a minimum of 256 buckets.
2017-03-16 16:40:34 +00:00