Commit Graph

177 Commits

Author SHA1 Message Date
szymonsztuka
fad90eee8b CORDA-1499, CORDA-1804 (#3607)
* Fix a typo in node_attchments_contracts table name. (#3202)

(cherry picked from commit 57d379597b)

* CORDA-1804 Corda node stops when detecting not migrated node_attachments_contracts table name (#3593)

Database table NODE_ATTACHMENTS_CONTRACT_CLASS_NAME in v3.0 was changed to NODE_ATTCHMENTS_CONTRACTS in v3.1 and then finally NODE_ATTACHMENTS_CONTRACTS on current master. Users may omit the upgrade note and run into errors. After the change the node will not start if the new table name is not found and any other older ones is found.

(cherry picked from commit 208ac49da0)

* Fixes after cherry-pick of 208ac49da0.
2018-07-16 10:06:34 +01:00
Shams Asari
9fc108aa1e CORDA-1709 - The MVP blob inspector, able to inspect network service blobs (#3503)
* Cleanup and improvements to the serialisation format of JacksonSupport (needed for CORDA-1238) (#3102)

Also deprecated all the public members that shouldn't have leaked into the public API.

(cherry picked from commit 3bb95c3)

* CORDA-1238: Updated JacksonSupport to support SerializedBytes, CertPath, X509Certificate and the signature classes (#3145)

SerializedBytes are first converted to the object it represents before being serialised as a pojo.

These changes will be needed to support the the blob inspector when it will output to YAML/JSON.

(cherry picked from commit b031e66)

* Cherry picked part of commit 824adca to port over *only* the JackSupport refactoring.

* CORDA-1238: Moved the blob inspector out of experimental and wired it to JackonSupport (#3224)

The existing output format was not complete and so was deleted to avoid it becoming a tech debt. We can always resurrect it at a later point.

(cherry picked from commit 4e0378d)

* Added back support for parsing OpaqueBytes as UTF-8 strings in JacksonSupport (#3240)

(cherry picked from commit d772bc8)

* Cleaned up blob inspector doc (#3284)

(cherry picked from commit b7fbebb)

* Blobinspector: trace level logging with --verbose (#3313)

(cherry picked from commit 6a2e50b)

* Cherry picked part of commit 3046843 to fix issue with --version

* Fixes to the api file
2018-07-03 19:58:13 +01:00
Katelyn Baker
f86aaa2866
CORDA-1510 - Allow Doorman and NetworkMap to be configured independently (#3494)
* CORDA-1510 - Allow Doorman and NetworkMap to be configured independently  (#3485)

Currently only one compatabilityZoneURL can be specified, however the
two services can be run on as separate servers. Allow nodes to be
configured in this manner

* Fix cherry-pick
2018-07-03 12:57:03 +01:00
Michele Sollecito
b6339a7fc6 CORDA-1575, CORDA-1341 - Fix logfiles for out of process nodes, Ensure API can be called concurrently wrt transactions.(#3312)
* [CORDA-1575]: Out of process nodes started by the driver do not log to file (fix).

* [CORDA-1341]: Ensure API can be called concurrently wrt transactions.

* [CORDA-1575]: Fixed unstable test.
2018-06-07 11:26:19 +01:00
szymonsztuka
588c480bcd CORDA-1499 - Fix a typo in node_attchments_contracts table name. (#3310)
(cherry picked from commit fc54263)
2018-06-06 16:03:25 +01:00
Katelyn Baker
51bb6a8dfc
CORDA-1356 - OOM when using Demobench + Explorer (fix). (#3268) (#3300) 2018-06-05 17:38:44 +01:00
Maksymilian Pawlak
33e45eef4a CORDA-1297 - Columns nullability (#3112) -> V3 (#3303)
* [CORDA-1297] Columns nullability (#3112)

JPA/Hibernate entities need to impose the correct NULL/NOT NULL constraints on the database - whatever these correct values actually are.
API change: net.corda.core.schemas.PersistentStateRef fields (index and txId) are now non-nullable. Rationale: The fields were always effectively non-nullable - values were set from non-nullable fields of other objects. The class is used in context of database table Primary Key of for other entities and a database already imposes those columns as non-nullable (even if JPA annotation nullable=false was absent).

(cherry picked from commit 7d69bc6)

* Compilation fix
2018-06-05 15:55:20 +01:00
Michele Sollecito
76eaff6d88 Corda-1338 | Corda-1394 (#3205)
* [CORDA-1394]: Node can fail to fully start when a port conflict occurs, without a useful error message (fix).

* [CORDA-1338]: Error with VaultQuery for entity inheriting from CommonSchemaV1.FungibleState (fix).

* [CORDA-1338]: Error with VaultQuery for entity inheriting from CommonSchemaV1.FungibleState (fix).

* Attempting to fix weird recursive types problem.

* Attempting to fix weird recursive types problem.

* Attempting to fix weird recursive types problem.
2018-05-23 17:52:02 +01:00
Michele Sollecito
1700d30bc7 [CORDA-1397]: Fixed incorrect exception handling in NodeVaultService._query(). (#3043) 2018-05-18 12:14:47 +01:00
Katelyn Baker
baf5c97e0c
CORDA-1403 - Generics serialization issue (#3030) (#3095)
When implementing a generic interface subtype check fails, need
to compare to the actual raw type
2018-05-09 09:44:08 +01:00
Katelyn Baker
7701dad80b
CORDA-1229 - Fix issue with setter-based serialisation (#3051) 2018-05-01 20:52:39 +01:00
Shams Asari
ee8d8a7618 Removed CordappConfig from the V3 release notes as it's not part of this release. (#2966) 2018-05-01 16:23:14 +01:00
Katelyn Baker
9063e24c69
Update jolokia to 1.5.0 (#2617) (#3034)
* Update jolokia to 1.5.0

* adding jolokia update to changelog
2018-05-01 15:29:52 +01:00
Katelyn Baker
673d8cbf2a
Pre release v3.1 releasenote (#2937)
* RELEASE - 3.1 upgrade and release notes

* Update docs for change to vno

* address vno change in release notes

* Update release-notes.rst

* make corda links

* Review comments

* Review comments

* review comments

* remove ref to reverted bugfix

* Review comments
2018-04-11 13:05:50 +01:00
Katelyn Baker
ddec72674c
REVERT - CORDA-1264 - Needs more thought prior to release (#2952)
* REVERT - CORDA-1264 - Needs more thought prior to release

This reverts commit 33af80ac55.

Since this causes regressions in the way errors are propogated to
clients it seems best to not break or hold up 3.1 but revert this commit
and move on

* fix revert
2018-04-10 18:18:57 +01:00
Michele Sollecito
33af80ac55
[CORDA-1264]: Ensure correct serialisation and masking for throwables raised by a node and propagated through RPC. (#2902) 2018-03-29 14:40:40 +01:00
Katarzyna Streich
becfcf8b6c ENT-1668 - Don't crash on node startup when network map is not available (#2897)
* ENT-1668: Don't crash on node startup when network map is not available (#2887)

Fix ENT-1668

Don't crash on node startup when network map is not available

* Add changelog entry
2018-03-29 12:45:24 +01:00
Tudor Malene
de40d1dae5 ENT-1564 - add additional uploader check to the HashConstraint (#2845) (#2881)
* ENT-1564 - add additional uploader check to the HashConstraint (#2845)

(cherry picked from commit 1a1cd94)

* ENT-1564 changelog entry

* ENT-1564 ignored tests that were removed in master
2018-03-27 17:09:22 +01:00
Katelyn Baker
190232d1f2
ENT-1665 - Update fast-classpath-scanner version to 2.12.3 (was 2.0.21) (#2880)
Problem manifests now that the classpath scanner is used by the
serialisation framework in factory initialization to locate pluggable
serializers. The actual thrown error is

    java.lang.RuntimeException: Unknown constant pool tag

Given this is a known issue and a fixed bug it makes sense to move the
version forward. Unfortunately at this time we cannot move beyond
2.12.3 as 2.12.4 and later versions (up to the latest 2.18.1) exhibit
some other error that needs investigating. Thus, move to the latest
version that is stable for our current set of use cases.

More information on the nature of the problem exhibited by moving beyond
2.12.3 can be found on the linked Jira (ENT-1665) as well as details on
reproducing the issue moving forward to 2.12.3 fixes.
2018-03-27 16:16:33 +01:00
Anthony Keenan
3a14ae89c0 CORDA-1178 - Api scanner backport and update of api-current.txt (#2813)
* Api scanner backport and update of api-current.txt

* Updated api-current based on current state of release branch

* Update to most recent version of api scanner

* Fix a couple of issues with the merge and regenerate the api file with the most recent version of the scanner.

* Update changelog/release notes
2018-03-21 11:19:20 +00:00
Katelyn Baker
cadde056fa
CORDA-966 - RELEASE - Upgrade notes for V3.0 (#2550)
* DOC: AMQP upgrade notes in brief

* moving test upgrade notes from release notes to upgrade note

* add cordapp/cordformation notes

* Added section for network map changes

* Updated upgrade notes to reflect changes for SSL (#2569)

* Updated upgrade notes to reflect changes for SSL

* Removed some blank lines.

* AMQP Constructor / property mismatch upgrade note

* wip

* Note about feasible (but not recommended) tables that can be migrated from Corda 2.0 to 3.0, basic recipe how to do it.

* Database schema changes - optional partial vault migration described at the end of the paragraph, focus on the overall changes to tables.

* Review Comments

* Database schema changes - split Vault and finance module changes, reformatting, improve migration note.

* Database schema changes - addressing PR comments.

* Database schema changes - move changes to change log, migration to JIRA ticket.

* Finalise versions

* review comments

* CORDA-1171: Add notes on the notary error change

* set release version
2018-03-08 23:08:15 +00:00
Katelyn Baker
a3357c3524
CORDA-966 - RELEASE - V3 Release notes (#2492)
* wip

* CORDA-966 - RELEASE - Release notes first attempt

* spek check

* Upated network map section

* Test API documentation.

* TransactionSignature changelog

* v3 release notes: Apache Shiro integration

* Update release-notes.rst

* wip

* wip

* wip

* Update release-notes.rst

Capturing an external contributor I missed

* Update release-notes.rst

* Update release-notes.rst

* Add links to contributors commits

* more changes

* wip

* wip

* wip

* Addresing some of Jose's comments

* Add warning about not being wire sable for RPC

* Addresing some of Jose's comments

* more changes, move the test notes mostly into the upgrade doc

* short note on howto upgrade gradle

* spelling error

* Add a link to upgrade docs on release notes

* review comments

* Update release-notes.rst

* Fix release-notes around contract verification.

* minor changes

* review comments

* add cordapp template example link

* PrivacySalt security and speed release notes.

* It's -> Its

* CORDA-1171: Add notes on the notary error change

* Update release-notes.rst

Its -> It's
2018-03-08 21:56:21 +00:00
Katarzyna Streich
fda55e10ec Update identity docs (#2319) (#2677)
* Update identity docs (#2319)

* Update certificate extension specification

* Extend documentation on node name requirements

* Moving node naming back to node generation file. Merging other permissioning information.

* Update certificate structure image

* Address some of the comments
2018-03-05 23:03:55 +00:00
sollecitom
22f6827131 CORDA-961 - Revert the introduction of GlobalProperties.
* Changes to LargeTransactionTests.
 * Code review changes.
 * Code review changes.
 * Code review changes.
 * Reverted to MAX_FILE_SIZE for Artemis.
 * reverted max message size for BridgeControlListener inside Node.kt
 * reverted max message size for BridgeControlListener inside Node.kt
 * Renamed setNetworkParameters to withNetworkParameters in MockNetwork.kt
 * Updated to reflect latest state.
2018-02-19 15:57:21 +00:00
Shams Asari
4bc3f9ffa8 ENT-1519 - Ensure NodeInfo always has at least one address by checking in the c'tor (#2538) (#2542)
Further, the look up of the node's own node-info from its database has been tightened to ensure there isn't more than one.

Also fixed some brittle code which was assuming exactly one address rather than at least one.

(cherry picked from commit 2864ce1)
2018-02-16 16:52:08 +00:00
Anthony Keenan
27fb4b8fe8 CORDA-1011 Add powershell script to update testing package imports (#2528) (#2549)
* Add powershell script to update testing package imports

* Make sure script works with java files

* Address review comments
2018-02-16 13:31:41 +00:00
Anthony Keenan
c7986c87fd CORDA-716 - Update changelog for test package changes and provide upgrade script (#2434) (#2515)
* Update changelog for test package changes and provide upgrade script

* Upgrade kotlin and java scripts
2018-02-13 09:43:24 +00:00
Michele Sollecito
fbb7f8f019 CORDA-990 - Flows Draining Mode (#2507)
* [CORDA-990]: Flows Draining Mode

* Fixed incorrect disconnect login.

* Code review changes.

* Fixed compilation error about MockNetwork...

* Fixed compilation error about MockNetwork...

* Fixed broken compilation.

* Ignoring an unstable test.
2018-02-13 09:34:10 +00:00
Anthony Keenan
e363090f30 CORDA-939 - Don't expose StartedNode and AbstractNode as part of public test api (#2472) (#2505)
* Don't expose StartedNode via Node Driver

* Dont expose StartedNode/Abstract Node via MockNetwork

* Remove internal var from constructor as it doesn't hide from public api and change to internal initialisation method

* Update api

* Rename MockNode to StartedMockNode to avoid confusion
Update documentation
Update api-current.txt

* Fix typo

* Fix test failure

* Modify flow tests to use internal mock network and remove additional internal exposures from StartedMockNode

* Fix api-current

* Change InProcess and OutOfProcess to interfaces

* Explicitly declare MockNetwork parameters
Dont expose StateMachineManager
Move affected tests to use internal mock network

* Fix api-current

* Changes requested via review

* Fix IRS Demo address

* Fix api

* Remove internal attribute from classes in internal package

* Remove accidentally added code

* Move useHttps into NodeHandleInternal

* Remove duplicated code

* Update api-current

* Make webAddress internal on NodeHandle

* Make sure parameters in public api are explicitly specified

* Use correct address in IRS Demo

* Get webaddress from webserver handle

* Update api-current

# Conflicts:
#	.ci/api-current.txt
2018-02-12 13:26:56 +00:00
Patrick Kuo
c18bc8758f CORDA-961 Wire up and enforce max transaction size (#2465) (#2493)
* wire up and enforce max transaction size

* fixup after rebase
moved network parameter from AbstractNode to NodeProperties

* removed TODO

* fix broken import

* address PR issues

* remove API breaking change
address PR issue

* added max transaction size to driver and mock network.
address PR issues

* fix failing test

* added TODO

* fix verifier test

* fix spring driver build error

(cherry picked from commit c8cf46c)
2018-02-09 17:24:15 +00:00
Anthony Keenan
e41408d21e CORDA-939 - Dont expose FlowStateMachine via public API (#2438) (#2476)
* CORDA-939 - Dont expose FlowStateMachine via public API (#2438)

* Create CordaInternal attribute for properties on public classes that are not part of the api and apply to FlowLogic.stateMachine

* Remove startFlow from public test api and replace with startFlowAndReturnFuture

* Update api-current with changed signature

* Change test used in documentation to use public test methods

* Remove the rest of the unneccessary usages of the startFlow test utility

* Remove extra whitespace

* Rename startFlowAndReturnFuture back to startFlow

* Update api

* The annotation doesn't appear unless its marked as on the actual getter and setter

* Updated docs and removed pointless attribute

* Deleted whitespace

# Conflicts:
#	.ci/api-current.txt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/NodeTestUtils.kt

* Revert api-current to v1 api

* Adding missing line and missing annotations

* Made changes post review

* Minor text change
2018-02-08 14:40:16 +00:00
Patrick Kuo
941429d3a7
Remove word restriction in corda x500 name (#2439)
* Remove word restriction in x500 name https://github.com/corda/corda/issues/2326

* remove unused const

* address PR issue

* address PR issue

* address PR issue
2018-01-31 17:05:52 +00:00
Matthew Nesbit
0ff9c9e2e3
Move to message based bridge control protocol (#2410)
Tidy up

Remove dead RPCSecurity logic from ArtemisMessageServer

Address PR comments

Address PR comments
2018-01-25 17:53:34 +00:00
Ben Wyeth
d17670c747 Provide an API to register callback on app shutdown (#2402)
Provide an API to register callback on app shutdown.
2018-01-24 16:19:24 +01:00
Michele Sollecito
142f52fa82
[CORDA:936]: Enable RPC layer to work with SSL 2018-01-23 16:23:37 +00:00
Matthew Nesbit
6edf95506b
Rename the inbox (#2360)
Add changelog entry

Address review comments

Alternate solution to service queues

Fixup after merge
2018-01-17 16:06:31 +00:00
Tudor Malene
c2bd7403a8
hibernate mapping changes (#2337)
* add foreign key names and move the participants mapping to the subclass so that the table name can be configured

* update api-current file

* fix compilation errors

* PR changes

* PR changes
2018-01-10 11:42:08 +00:00
Ross Nicoll
21f0892deb
CORDA-831: Add roles to X509 certificates (#2180)
* Add roles to X509 certificates so that the identity service can always determine which certificate in a hierarchy is the well known identity
* Rename CLIENT_CA certificate type to NODE_CA
* Rename DOORMAN role to INTERMEDIATE_CA
* Correct issue in CashTests where instead of providing a well known identity to generateSpend(), a confidential identity was passed in and a confidential identity generated from it.
* Enforce role hierarchy in PKI
* Enforce that party certificates must be well known or confidential identities
* Add network map certificate role
2017-12-18 16:23:34 +00:00
Shams Asari
00a5e3db6b CORDA-830 Introducing the network bootstrapper
Copying of the node-info files moved out of Cordform and into NetworkParametersGenerator (which is now called NetworkBootstrapper). This class becomes an external tool to enable deployment of nodes in a test setup on a single filesystem.
2017-12-17 23:49:57 +00:00
Matthew Nesbit
595d41af04
AMQP Bridging between nodes (#2181)
* Able to send hand coded messages to an Artemis node inbox

Get startup race condition fixed. Start cleanup work.

Fixup after rebase

Remove SASL hack for now

Minor tweaks. Enable AMQP mode manually.

Add configuration control

Slight clean up

Stop timeouts that don't work with AMQP

Rename class

Get TLS constants from :node-api

Primitive integration test

Put back commented line

Session per bridge to alow rollback on remote rejects.

Add more tests and handle multiple IP adddresses

Reduce logging

Fixup after rebase

Add a test to verify the remote end AMQP rejection logic works and does cause message replay.

Allow Artemis to duplicate after session rollback

Reduce number of threads

Move legacy bridge related code over to CoreBridgeManager

Shared threadpool for bridges

Add a test to confirm that no side effects when using a shared thread pool.

Address PR comments and remove dead lines

Rebase and add some comments

Remove a couple of blank lines

Ensure AMQP bridges are used in tests

Fixup after removal of testNodeConfiguration

Add a couple of doc comments

Add a couple of doc comments

Make things internal and use CordaFuture

Address some PR comments

Change comment type

* Use Artemis 2.2 to fix AMQP problems. Add explicit test of legacy core bridges, as marking the factory class private had silently broken them.

* Fix change due to using Artemis 2.2
2017-12-15 17:48:33 +00:00
Shams Asari
d5f8258bd1 Updated the changelog to incorporate the new network map design as one story. 2017-12-13 20:37:54 +00:00
igor nitto
5720697b0d
[CORDA-827] Improved unit tests coverage and documentation (#2229)
* Extend unit test on RPCSecurityManager
* Fix corner cases in permission parsing and bug in tryAuthenticate
* Rework docsite page
* Add missing ChangeLog entry
2017-12-13 17:09:09 +00:00
josecoll
4762569200
CORDA-822 - JMX Jolokia instrumentation (#2197)
* JMX Jolokia instrumentation WIP (driverDSL, webserver, cordformation, hibernate statistics, access policy config file hardening)

* Cordformation changes to support jolokia agent instrumentation at JVM startup.

* Minor updates to reflect usage of Jolokia 1.3.7 (which uses slightly different .war naming)

* Use relative path reference in -javaagent to prevent problem with long path names with spaces.

* Fixed incorrect regex pattern and added assertion to test.

* Enable JMX monitoring.

* Reporting of Hibernate JMX statistics is configurable (by default, only switched on in devMode)

* Make Artemis JMX enablement configurable.

* Re-instate banning of java serialization.

* Improve JUnit.

* Fixes following rebase from master.

* Re-instated correct regex for picking up Jolokia agent jar.

* Fixed broken integration test.

* Updated documentation

* Updated following PR review feedback.

* Fixed compilation error caused by change in DriverDSL argument type.

* Fixed compilation error caused by change in DriverDSL argument type.

* Fail fast if jolokia-agent-jvm.jar is not located.

* Applied changes in cordformation following review feedback from CA.
2017-12-08 16:27:12 +00:00
Michele Sollecito
cb1fa2e017
Corda now works with H2 without the need to allow Hibernate to create the database automatically. (#2124)
[CORDA-815]: Corda now instructs Hibernate to either adjust or validate the schema based on `devMode` property.

Also renamed property `database.initDatabase` to `database.createSchemaAutomatically`.

* [CORDA-815]: Renamed database.initDatabase to database.adjustSchemas.

* Code review changes: removed property `database.initDatabase` altogether.

* Code review changes: removed property `database.initDatabase` altogether.

* Code review changes: removed property `database.initDatabase` altogether.

* Code review changes: removed property `database.initDatabase` altogether.
2017-11-28 17:33:02 +00:00
Shams Asari
1705df4d1f Made the database config option typesafe, rather than relying on String properties 2017-11-27 13:51:53 +00:00
Maksymilian Pawlak
e63b6d1386
CORDA-311 Shell via SSH server (#2087)
* SSH server integration
2017-11-20 17:41:38 +00:00
Ross Nicoll
8e7165db41
CORDA-759: Enforce key checks on identity de-anonymisation (#1993)
Previously when de-anonymising a Party instance, the name of the Party was used rather than
the key, meaning a Party could be constructed with a random nonsense key and any name, and be treated as corresponding to the well known identity. This is not a security hole in itself as
in any real scenario a party shouldn't be trusted without having been registered, it creates
a significant risk of a security hole depending on how trusted the anonymous identity is, and
the returned identity is considered.
2017-11-17 18:13:35 +00:00
Shams Asari
2fe41715cc On exit, the driver will automaticallly shutdown any nodes which weren't waited for.
The motivation for this came with the recent change that a default notary is started by the driver, which if ignored will leak the notary process.

Also, waitForAllNodesToFinish() has been replaced by a driver parameter.
2017-11-14 20:20:00 +00:00
Patrick Kuo
64a9946f03
Replace artemis network map with http network map (#1970)
* Network map cache using Network map client instead of artemis. -- WIP

* fix up after rebase

* address PR issues, split network map update test, added todos to remove sleeps

* move jimfs and baseDir to field variable
2017-11-14 11:37:50 +00:00
Maksymilian Pawlak
1a02c9a74f
AttachmentCriteriaQuery class and infrastructure (#2022)
* Attachments metadata support
2017-11-14 10:22:02 +00:00