* First stage of changing fields in NodeInfo.
Part of work related to NetworkMapService upgrade. Create slots for
multiple IP addresses and legalIdentities per node.
* NodeInfo stores HostAndPort.
Move information specific to messaging layer away from NodeInfo.
Only HostAndPort addresses are stored. Add peer name - peer handle
mapping to MockNetwork to reflect that change.
* Fix bug in demobench. Explorer didn't show correctly location of a node.
There was no nearestCity override in config.
* Remove nearestCity from node configuration. Now information about the location is always taken from
node's legal name. If not present - exception on node startup.
* Add X500Name.locationOrNull that soft fails when location is not in X500 name. Address PR comments.
* Remove unused imports.
* We need to close the RPC client as otherwise the rpc-client-reaper-* thread is leaked, which also prevents shutdown. Sleep instead when the server exits, just long enough for the client to realise that the server is dead.
* Fix warning about leaking private types.
* Fix: Add missing @StartableByRPC to fix the Raft notary demo
* Make loadConfig take a Config object, for cordformation Node
* Unduplicate User.toMap
* Unduplicate WHITESPACE regex, choose possessive form
* Use slash to make a Path
* Remove Companion where redundant
* Remove unused code
Change the legal name of parties to be an X500 name. This ensures that we aren't converting between
common names and X500 names in various places, eliminating substantial scope for error in the conversion
process. As a result, all node names must now be full X500 names, which has impact on most configurations.
Clean up X500 names in Corda simulation, and ensure they're consistent with the standard test names.
This includes using the locations present in those test names, which requires updates to the node
config test.
DemoBench: Misc usability improvements:
- Pre-fill details for some fictional banks when Add Node is pushed.
- Make services a checkbox list rather than one where you have to know how to use the keyboard to do multi-select.
- Make web server launch button spin until server is launched to show activity.
- Suppress an exception that spams the log due to inability to load all the states. It'll get fixed as part of the vault API and serialisation work.
* Subscribe to updates for transaction and vault RPCs.
* Ensure we unsubscribe our observables at the end.
* Use Rx scheduler that can observe on FX application thread.
Standaridise the identity names of Alice, Bob and Charlie, notary, map service, etc. in order
to ensure consistency across the code base and reduce number of places that have to be changed
to introduce proper X.500 names.
Move Alice, Bob & Charlie identities into the utilities package so they can be used in demos
* Install DemoBench as a systemwide application.
* This application's correct full name is "Corda DemoBench".
* Tidy up imports.
* Cordapps -> CorDapps
* Ensure application name is "Corda DemoBench" on MacOSX.
* Avoid NPE if corda.jar cannot be found.
* Log an error if Node Explorer or WebServer fail to start.
* Display an error dialog if we cannot find corda.jar at start-up.
* Use official notUsed() function for unwanted Observables.
* Fix unit tests.
* Rename function to readErrorLines().
* Work around JavaFX injecting 0 bytes into JediTerm's STDIN stream.
* Add (disabled) unit tests for running JediTerm in both Swing and JavaFX.
* Remove tests for running JediTerm under Swing and JavaFX.
* 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.
* 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.