Commit Graph

13024 Commits

Author SHA1 Message Date
b98f91ee61 Merge remote-tracking branch 'remotes/origin/master' into feature/ENT-2253-NonStop-changes
# Conflicts:
#	node/src/main/resources/migration/node-info.changelog-master.xml
#	node/src/main/resources/migration/node-info.changelog-v3.xml
2018-08-30 15:51:38 +01:00
dbc1088417 CORDA-1939 Regression: Liquibase fails to migrate existing pre-liquibase database (#3855)
* Bugfix for corda.jar manually deployed without coping the matching corda-finance-VERSION.jar.
If the older finance cordapp version is detected (which doesn't have Liquibase migration scripts) fail node at startup and print message: "Could not create the DataSource: Detected incompatible corda-finance cordapp without database migration scripts, replace the existing corda-finance-VERSION.jar with the latest one."
Since coda-finance is an optional cordapp,the presence of Liquibase scripts is only checked if corda-finance-VERSION.jar is present in cordapps folder.
*  Allow to start using Liquibase from any point of 4.0-SNAPSHOT before Liquibase was introduced (not only from 3.0/3.X versions) - 2 database changes introduced after 3.2 but before Liquibase are now conditional database changes.
2018-08-30 13:40:02 +01:00
cc27463b25 Merge pull request #1360 from corda/dominic-merge-2018-08-30
Dominic merge 2018 08 30
2018-08-30 13:36:20 +01:00
bdc12341cb Restore ENT-only logic clobbered in merge 2018-08-30 11:45:57 +01:00
f061235cc8 Resolve merge conflict 2018-08-30 10:47:56 +01:00
b6bd923f3b Resolve merge conflicts 2018-08-30 10:31:38 +01:00
0f36e22314 Corda-1869 serialisation refactor (#3780)
* Pull out and tidy type parameter inference

* Contain null proliferation

* Extract fingerprinter state

* SerializerFingerPrinter is always initialised with a SerializerFactory

* Move non-recursive state transition functions into state

* Move all state transition functions into state

* Simplify and optimise with mutable state

* Move TypeParameterUtils back into internal.amqp

* Clarify behaviour of constructorForDeserialisation

* constructorForDeserialization no longer returns null

* Capture field properties

* Narrow PropertyDescriptor

* Use map rather than apply on a mutable list

* Remove printStackTrace added for debugging

* CORDA-1869 minor tweaks

* Use groupingBy to avoid creating an intermediate map

* Convert some functional origami to plain old for-loops

* Eliminate nested lambda to unbreak pre-serialisation

* Use EnumMap for map of Enums
2018-08-30 10:18:02 +01:00
4337537791 CORDA-1945: properly support double-width interp stack slots in superclasses when synthesising (#3859)
* Fix for CORDA-1945

* Revert irrelevant style change
2018-08-29 17:43:17 +01:00
60d28b412f Merge pull request #3861 from corda/mike-small-fixes-1
Minor: fix changelog markup errors.
2018-08-29 16:25:23 +01:00
12707c8df0 Signature constraints design doc: address review comments from Jose. 2018-08-29 16:32:06 +02:00
7a4faceb2d Merge pull request #3860 from corda/mike-small-fixes
Update RxJava to the last 1.x release so we get JavaDocs back.
2018-08-29 15:24:28 +01:00
c68134ad60 Minor: fix changelog markup errors. 2018-08-29 15:05:18 +02:00
2e943d089b Update RxJava to the last 1.x release so we get JavaDocs back. 2018-08-29 15:02:23 +02:00
7ead9e5698 ENT-2293 & ENT-2353: Basic implementation of an RPC worker and Flow Worker (#1308) 2018-08-29 13:45:27 +01:00
9259f6c05e Merge pull request #3858 from corda/bugs/CORDA-1940-remove-logback-dependency
CORDA-1940 Liquibase imports logback which is redundant and conflicts with log4j2
2018-08-29 11:51:32 +01:00
e87b33d1e8 Added extra logging to build.gradle when maxParallelForks system property is set 2018-08-29 12:38:24 +02:00
2d39b39e31 Improve the error messages printed by the shell when a flow c'tor doesn't match. 2018-08-29 12:34:55 +02:00
260e50572a Merge pull request #1357 from corda/christians/merge-ENT-2414
OS -> Ent merge up to  bc330bd
2018-08-29 09:52:59 +01:00
040c4a0fe3 CORDA-1940 remove any transitive dependency on Logabck (brougth by Liquibase 3.X)
Change to older Liquibase 3.5.5 version to align with Enterprise repo - Liquibase 3.6.X changed schema case sensitivity behaviour and it's brakes in Corda for one database vendor.
2018-08-28 18:40:10 +01:00
fa51dd35d4 Comment out Cordform for tools/notarytest. This needs to be converted to groovy/gradle (see https://r3-cev.atlassian.net/browse/ENT-2460) 2018-08-28 13:59:16 +01:00
43f7b8477e Merge commit 'bc330bd9890d41904bbeea6e579f5fc4438872b6' into christians/merge-ENT-2414 2018-08-28 12:26:57 +01:00
63ebc394bf Update docs to reflect constraint implementation (#3852) 2018-08-28 12:05:54 +01:00
6cb4310f92 ENT-2320 Introduce annotation to link state classes and contract classes (#1336)
* Introduce and check @BelongsToContract annotation

* Fix broken ObligationTests

* TransactionContractConflictException inherits from TransactionVerificationException

* Really fix broken ObligationTests

* Convert fun to val

* Update kdoc on BelongsToContract, simplify contract checking

* Warn in TransactionBuilder if ContractState has no owning contract

* Fix failing tests

* Unseal TransactionVerificationException

* Make contract parameter of TransactionState optional

* Replace exception with a warning for now

* Update api-current to permit @BelongsToContract annotation to be added

* cosmetic tweaks

* Throw IllegalArgumentException, not NPE

* Throw IllegalArgumentException, not NPE
2018-08-28 11:38:33 +01:00
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
042b91814a Merge pull request #3834 from corda/mike-rpc-propagate-deser-errors
Propagate RPC deserialisation faults back to the caller
2018-08-24 16:52:23 +01:00
00a80c3c65 Merge pull request #1356 from corda/szymonsztuka/os-merge-20180824
OS merge  -  In OS for H2 Liquibase is used to migrate only internal (required) schemas, this behaviour is preserved in ENT so enterprise needs to distinguish if it's running against H2 or other database (to use Liquibase for all MappedSchema not only internal ones) - this preserved existing compatibility that migration for H2 behaved exactly the same between OS and ENT, however in ENT H2 behaved differently then for other database vendors.
2018-08-24 16:30:18 +01:00
3594ccd89b CORDA-1924: Remove references to Cordform definition and cordform-common (#3842) 2018-08-24 16:29:14 +01:00
329c9da0a9 CID-251: Integrate DJVM with Corda's existing deterministic-rt. (#3846)
* Integrate DJVM with Corda's existing deterministic-rt.
* Remove generated whitelists from DJVM.
* Fix Manifest attributes, disable jar tasks and attach shadowJar to assemble task.
2018-08-24 15:51:40 +01:00
8fd4d0d218 RPC: propagate failures when they occur during deserialization.
Before this change, a failure to deserialize an RPC reply would leave
the caller hanging because we'd never set the future.
2018-08-24 15:16:55 +02:00
33e8e05a8d Fixes after merge remote-tracking branch 'remotes/open/master' into szymonsztuka/os-merge-20180824 2018-08-24 13:24:43 +01:00
c7f666102f Fixes after merge remote-tracking branch 'remotes/open/master' into szymonsztuka/os-merge-20180824 2018-08-24 12:27:47 +01:00
598e3a327a Merge remote-tracking branch 'remotes/open/master' into szymonsztuka/os-merge-20180824
# Conflicts:
#	build.gradle
#	core/src/main/kotlin/net/corda/core/schemas/PersistentTypes.kt
#	finance/src/main/kotlin/net/corda/finance/schemas/CashSchemaV1.kt
#	finance/src/main/kotlin/net/corda/finance/schemas/CommercialPaperSchemaV1.kt
#	finance/src/main/resources/migration/cash.changelog-init.xml
#	finance/src/main/resources/migration/cash.changelog-master.xml
#	finance/src/main/resources/migration/commercial-paper.changelog-init.xml
#	finance/src/main/resources/migration/commercial-paper.changelog-master.xml
#	finance/src/main/resources/migration/commercial-paper.changelog-v1.xml
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/MigrationHelpers.kt
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/SchemaMigration.kt
#	node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt
#	node/src/main/kotlin/net/corda/node/internal/schemas/NodeInfoSchema.kt
#	node/src/main/kotlin/net/corda/node/services/persistence/DBCheckpointStorage.kt
#	node/src/main/kotlin/net/corda/node/services/schema/NodeSchemaService.kt
#	node/src/main/resources/migration/common.changelog-init.xml
#	node/src/main/resources/migration/common.changelog-master.xml
#	node/src/main/resources/migration/node-core.changelog-init.xml
#	node/src/main/resources/migration/node-core.changelog-master.xml
#	node/src/main/resources/migration/node-core.changelog-pkey.xml
#	node/src/main/resources/migration/node-core.changelog-postgres-blob.xml
#	node/src/main/resources/migration/node-core.changelog-tx-mapping.xml
#	node/src/main/resources/migration/node-core.changelog-v3.xml
#	node/src/main/resources/migration/node-core.changelog-v4.xml
#	node/src/main/resources/migration/node-info.changelog-init.xml
#	node/src/main/resources/migration/node-info.changelog-master.xml
#	node/src/main/resources/migration/node-info.changelog-v1.xml
#	node/src/main/resources/migration/node-info.changelog-v2.xml
#	node/src/main/resources/migration/node-notary.changelog-init.xml
#	node/src/main/resources/migration/node-notary.changelog-master.xml
#	node/src/main/resources/migration/node-notary.changelog-pkey.xml
#	node/src/main/resources/migration/node-notary.changelog-v1.xml
#	node/src/main/resources/migration/vault-schema.changelog-init.xml
#	node/src/main/resources/migration/vault-schema.changelog-master.xml
#	node/src/main/resources/migration/vault-schema.changelog-pkey.xml
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt
2018-08-24 12:23:30 +01:00
8b0fc8f29c Merge pull request #3845 from corda/feature/ent-2253-rename-colun-name
Database column rename required by ENT-2253
2018-08-24 10:15:25 +01:00
793a937482 Merge pull request #1355 from corda/tlil/os-merge-20180823
OS->ENT merge 20180823
2018-08-23 17:49:50 +01:00
c4f33ef533 Rename column HOST to HOST_NAME in table NODE_INFO_HOSTS - required by ENT-2253 2018-08-23 17:08:05 +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
79909a5ea9 ENT-2430 Swap over output_index and transaction_id in database indexes (#1354)
(cherry picked from commit 2d33ba3)
2018-08-23 16:24:56 +01:00
acd3f44181 Merge remote-tracking branch 'open/master' 2018-08-23 13:55:11 +01:00
fd8c2e4dab Provide the exception class name and not just the message when there's an internal deserialisation fault. 2018-08-23 13:30:03 +02:00
409b4e2a42 Minor: make the trace logging for the RPC server a bit more helpful. 2018-08-23 13:12:18 +02:00
785bae9e48 Minor: add a missing kdoc for InsufficientBalanceException 2018-08-23 13:12:18 +02:00
626b3e6bd3 Minor: make the :node:capsule:build task depend on buildCordaJAR 2018-08-23 13:12:18 +02:00
8ed600a2c3 Minor: fix visual regression during startup. 2018-08-23 13:12:18 +02:00
b3433c2a46 Minor: reformat SerializerFactory.kt 2018-08-23 13:12:18 +02:00
759419fcc1 ENT-2355 Insert transactions without checking for duplicates (#1350)
* ENT-2355 Make transactions storage optimistic if in a flow and the flow has never restored from a checkpoint.

(cherry picked from commit 9a2e9b0)

* ENT-2355 Insert transactions with optimism.

* Added some comments.
2018-08-23 11:06:14 +01:00
040de41e27 CORDA-1925: Include Requirements object in core-deterministic. (#3841) 2018-08-23 10:08:20 +01:00
57e188a5a8 Disabled allWarningsAsErrors for compilation and failFast for tests locally, after TC was updated to override them to enabled. (#3838) 2018-08-23 09:57:05 +01:00
bcfadfeebf CORDA-1833: Create a picocli base class (#3826)
* Add shell extensions to CLI utils class and move into its own module

* Fix issue with completion script generation and slight refactor

* Fix autocompletion for logging level

* Delete uneeded comment

* More tidying up

* Make run function final

* Fixed an issue with the program being run twice.

* Address review comments
2018-08-22 21:51:25 +01:00