Commit Graph

1615 Commits

Author SHA1 Message Date
36bfe268af Revert back to using "relevancy" as "modifiable" states are not permissible by definition on an immutable ledger. (#3847) 2018-08-28 11:04:40 +02:00
f81428eb53 Corda 1916: signature attachment constraints (#3839)
* Create constraint, extract Jar signature collection

* Extract JarSignatureCollector into its own file

* Jar signature collection throws exception if signatures are inconsistent

* Focus testing in Jar signature collection

* Extract some helper functions in test

* Patch tests with mock attachment storage

* Assert that generated constraint is satisfied by signed attachment

* Clarify constraint selection logic

* Explicit return types on extension methods

* Link to docsite Signature Contrainsts documentation

* Fix issue with shared JAR reading buffer
2018-08-24 17:21:54 +01:00
bc330bd989 ENT-2414 Named caches (#3848)
* Add named caches and apply to NonInvalidingUnboundCache and all usages.

* Add named caches and apply to NonInvalidingCache and all usages.

* Add named caches and apply to NonInvalidingWeightBasedCache and all usages.

* Move NamedCache to core/internal

* Remove type `NamedCache` and `NamedLoadingCache`

* Suppressed 'name not used' warning, added comment, and fixed generic parameters on the buildNamed functions.

* Use `buildNamed` in all caffeine instances in production code. Not using it for caches that are created in test code.

* Add checks for the cache name

* Formatting

* Minor code review revisions
2018-08-24 17:17:22 +01:00
487cad7d06 CORDA-1471 Database schema setup for internal tables via Liquibase (#3815)
Internal tables (the tables from node and finance modules) are now tracked /created by Liquibase script.
Tables backing MappedSchemma in Cordapps are created by Hibernate (as before). 
The PR scope added Liquibase library, setup code SchemaMigration and XML scripts and from Enterprise.
For existing database installation - the node will auto-upgrade to use Liquibase.
Method migrateOlderDatabaseToUseLiquibase checks for any 3.X existing Corda database to upgrade database to use Liquibase. When the existing database without Liquibase integral tables is detected, the node (at startup) will create Liquibase tracking tables and fill them with all migration scripts (marked as done), this ensure the database will look as it would use Liquibase from the beginning.
The database changes gradually introduced by the subsequent 3.X releases (3.1, 3.2) are conditionally run by Liquibase.
2018-08-23 16:30:02 +01:00
785bae9e48 Minor: add a missing kdoc for InsufficientBalanceException 2018-08-23 13:12:18 +02:00
040de41e27 CORDA-1925: Include Requirements object in core-deterministic. (#3841) 2018-08-23 10:08:20 +01:00
2fae95c58f [CORDA-1917] Fix smoke test (#3823) 2018-08-22 13:16:07 +01:00
1d05c16942 ENT-2439 Fix compression in serialization (#3825)
* ENT-2439 Fix compression in serialization
2018-08-22 10:37:18 +01:00
b7867c3bcb * Added "isRelevant" functionality to the vault. (#3789)
* * Added "isRelevant" functionality to the vault.

* * Changed "isRelevant" to "isParticipant" as this makes more sense in the context of Corda.
* Minor tweak to "isParticipant" method in NodeVaultService.
* Fixed API break and broken JAva tests.

* * Addressed PR comments from Jose.
* Changed all mentions of "relevant" and "participant" to "modifiable".
* Made the default behaviour of vault queries to return ALL states instead of just MODIFIABLE states as this is what always previously happened.
* Updated cash balance queries to only return MODIFIABLE states.

* * Updated cash selection and tryLockFungfibleStatesForSpending.
2018-08-17 13:39:05 +01:00
e5e4596461 [CORDA-1681]: It is not possible to run stateMachinesSnapshot from the shell (fixed). (#3791) 2018-08-15 17:02:25 +01:00
7a1b75ef35 [CORDA-1822]: Derive error code from exception signature (#3774) 2018-08-15 10:22:09 +01:00
75ac13815b Updates to new resolve tx flows... (#3766) 2018-08-10 16:19:09 +01:00
b0d36b6617 * Minor formatting changes. (#3758)
* NotaryServiceFlow now takes references into account when comparing number of inputs vs maxAllowedInputs.
* Added reference state support for BFTSMaRt notary.

* Fixes broken BFT notary tests.
2018-08-10 08:51:56 +01:00
ce5f38104b ENT-2168: Add a shell command to check for an existing transaction (#3762)
* ENT-2168: Add a shell command to check for an existing transaction

When a double-spend occurs the notary returns the hash of the consuming
transaction id. I've added a 'hash-lookup' shell command that matches
any recorded transactions on the node against this id hash to determine
whether the state has been consumed by this node (that could happen in certain race conditions).
2018-08-09 18:33:51 +01:00
441fe78e41 CORDA-1568: Change Java source files encoding for all the projects. (#3707)
* CORDA-1568: Change Java source files encoding for all the projects.

See: https://ci-master.corda.r3cev.com/viewLog.html?buildId=103073&tab=buildResultsDiv&buildTypeId=Corda_BuildWindowsTest

```
InteractiveShellJavaTest.flowStartWithComplexTypes
show details
No applicable constructor for flow. Problems were:
[party: Party]: missing parameter party
[pair: Pair]: missing parameter pair
[Amount]: Could not parse as a command: Did not recognise the currency in £10 or could not parse
```
2018-08-06 11:59:30 +01:00
055ba90e0d CORDA-1724 Add tx access right validity check during resolution (#3732)
* CORDA-1724 Add tx access right validity check during resolution

* CORDA-1724 Fix missing payload type

* CORDA-1724 Fix test

* CORDA-1724 Add test

* CORDA-1865 Improve comments

* CORDA-1724 Address code review comments
2018-08-02 08:26:58 +01:00
56c0067540 Added jvmoverloads annotation to SignTxnFlow constructor (#3735) 2018-08-01 23:06:43 +01:00
6499a13951 CORDA-1865 Fix race on inserting attachments (#3734)
* CORDA-1865 Fix race on inserting attachments

* CORDA-1865 Fix race on inserting attachments
2018-08-01 18:11:42 +01:00
7182542724 Matchers (#3716)
* Move common matches to testing, add some missing ones

* Clarify test logic

* Move common matches to testing, add some missing ones

* Clarify test logic

* Rename 'randomise'

* endregion

* Fix broken unit test
2018-08-01 10:18:54 +01:00
dfafdbcb9f Added checks against the use of the special uploader tokens (#3724)
"app", "rpc", "p2p" and "unknown" have security implications (see isUploaderTrusted method) and thus they are not allowed to be used in the uploader field when importing attachments via the public API.
2018-07-31 17:01:39 +01:00
994fe0dbdc CORDA-1845: Check for min plaform version of 4 when building transactions with reference states (#3705)
Also includes some minor cleanup brought up in a previous PR.
2018-07-31 16:07:35 +01:00
85caa9ee9d Feature/corda 1847/remove hibernate observers (#3696)
* CORDA-1847 Fix hibernate observer issue

* CORDA-1847 Fix hibernate observer issue

* CORDA-1847 Fix hibernate observer issue

* CORDA-1847 Fix tests

* CORDA-1847 Fix tests

* CORDA-1847 Fix tests
2018-07-31 13:52:13 +01:00
93bb24ed17 Internal mock node clean up (#3715)
* InMemoryMessagingNetwork.InMemoryMessaging renamed to MockNodeMessagingService and moved to internal package
* start method added to MockNodeMessagingService which enables AbstractNode to call makeMessagingService in its c'tor
* Removed TopicStringValidator as it's no longer used
* Clean up of TestStartedNode
* Merged InMemoryMessagingTests into InternalMockNetworkTests as it's testing InternalMockNetwork
2018-07-30 10:35:03 +01:00
8207ac3222 CORDA-1332 Reference input states (#3525)
* * First commit for reference input states feature.

* Added docs.
* Added additional test.

* Fixed whitespace.

* Rebased to master.
* Updated Raft and persistent notary implementations.

* Updated changelog.

* Updated topo sort to handle reference states.
* Stubbed out with referenced states flow.

* Added WithReferencedStatesFlow.
* Added Tests for WithReferencedStatesFlow.
* Added ReferenceState type.
* Rebased to latest version of master.

* Added better comments.
* Updated unit test.

* Added comment to explain a little hack.
* Fixed broken contract upgrade RPC test.

* Added minimum platform version check.
* Updated mock network so that notary nodes inherit the platform version set by the network's minimum platform version.
* References states can now only be used when minimum platform version >= 4.

* Created a new file to hold async operations as "WaitForStatesToUpdate" is broadly reusable.
* Refactored WithReferenceStatesFlow

* Updated javadoc for WaitForStatesToUpdate aysnc operation.

* Added network parameters property to InternalMockNetwork.

* Added min platform version capability to mock services.

* Removed erroneous chars from file.

* Made async operation internal and now call it from FlowLogic.
* Moved some transaction checking code around.

* Removed serializable annotation from referenced state and ref.
* Added reference states design doc.
* Added missing KDocs.
* Updated with reference states flow to handle consecutive update races.
* Made platform version info an inheritable thread local.
* Fixed various typos.
* Updated docs.

* Fixed race.

* Removed min platform version checks as API needs more thought.

* Added deprecation to method and supressed warnings.

* Renamed WaitForStatesToUpdate to WaitForStateConsumption.
* Fixed race in WaitForStateConsumption.

* Addressed PR comments and updated comments / KDocs.

* Reverse vault bugfixes.

* * Vault bug fixes.

* * Fixed broken test.
* Moved WaitForStateConsumption to internal package.
2018-07-25 14:06:56 +01:00
f5b86d32f8 Eliminate StartedNode (#3690)
* Shrink StartedNode

* Eliminate StartedNode
2018-07-25 13:49:34 +01:00
6b320026a1 CORDA-916 separate test startednode (#3675)
* Push start() implementation back into base

* Narrow access

* Optimise imports

* Fix tests

* Get Java test compiling
2018-07-25 10:05:50 +01:00
0b0ad71b3c CORDA-1832: Configure Quasar dependency using quasar-utils plugin. (#3685) 2018-07-24 20:19:12 +01:00
abc1d99eaa [CORDA-1799]: Avoid generating test CorDapp JARs from each out of process node started by the driver (#3641) 2018-07-23 11:18:11 +01:00
7a18dbb8ed Merge pull request #3644 from corda/flow-test-rationalisation
Flow test rationalisation
2018-07-19 15:33:43 +01:00
d1455b7a0e Move hamkrest version number into top-level configuration 2018-07-19 14:21:07 +01:00
f3d9750ea5 Eliminate needless equalTo 2018-07-19 13:47:18 +01:00
c0966067cc Move andRunNetwork out of transaction block 2018-07-19 12:02:46 +01:00
974db3a15b Rename matcher 2018-07-19 12:00:02 +01:00
2992866269 Eliminate unnecessary transactions 2018-07-19 11:45:42 +01:00
fc5cc89fdb Renaming matchers 2018-07-19 11:36:07 +01:00
0780d6051e Use startFlowAndRunNetwork 2018-07-18 15:21:04 +01:00
201628e44f Extract common test functionality into mixin interfaces 2018-07-18 13:49:49 +01:00
c0207b2219 CORDA-1815 adding maxTransactionSize validation (#3635)
* CORDA-1815 adding maxTransactionSize validation

* Fixing failing tests

* Fixing failing test
2018-07-18 10:34:41 +01:00
45514a8764 Minor tidying 2018-07-17 17:19:58 +01:00
e16056eb36 Refactor to new style, sharing mock network 2018-07-17 17:12:20 +01:00
73d3af504d Merge pull request #3615 from corda/df-reuse-mock-network-example
Reuse mock network, randomising party names to avoid clash
2018-07-17 17:10:33 +01:00
851d1fa557 Clarify test intention with generators, operations and matchers 2018-07-16 17:51:20 +01:00
1ca2059863 [CORDA-1635] Update docs (node naming constraints). (#3595)
* Update docs (node naming constraints).

* Update CordaX500NameTest to ensure consistency with the docs.

* Respond to feedback.
2018-07-16 17:29:29 +01:00
d262c88c0b CORDA-1814: Quasar is only providing its annotations (i.e. @Suspendable) so remove its transitive dependencies. (#3620) 2018-07-16 15:57:11 +01:00
aac4d64b64 Reuse mock network, randomising party names to avoid clash 2018-07-16 10:52:26 +01:00
80a5e7ab81 Add flow state machine extension tutorial 2018-07-12 15:30:23 +01:00
7f42a9b48c ENT-1565: Remove Guava code from core. (#3569)
Remove Guava code from core.
Note that forcing this project to use Guava `$guava_version` throughout breaks SimmValuationTest.
2018-07-12 14:52:44 +01:00
b275f4349a ENT-1968: Add RPC for refreshing network map cache (#3552)
ENT-1968: Add RPC for refreshing network map cache
2018-07-12 13:40:33 +01:00
f4a248f81f Made CashSelectionTest a unit test by using mock network. (#3570)
Also includes adding a default value of emptyList() to InternalMockNetwork.cordappPackages
2018-07-12 11:55:51 +01:00
9503c9684e CORDA-1747 - Client RPC classloader and Java Generics fixes (#3553)
* fix for spring boot rpc and  it work with deterministic serialization

* really really fix tests

* up log level

* reenable allWarningsAsErrors
2018-07-11 13:28:01 +01:00