Commit Graph

350 Commits

Author SHA1 Message Date
c7487a8696 Enable deserialisation for certain package from Oracle database drivers. (#298)
* Oracle database drivers ojdbc7.jar and ojdbc8.jar use deserialisation which is disabled by the default in Corda. Added an Oracle package to serialFilter when the node uses Oracle database.
2018-01-09 18:25:54 +00:00
40edc286f5 Transaction creation performance (#303) (#320)
* Default autoCommit to false, remove setting of autocommit and only set isolationLevel if it's changed.

* Set default transaction isolation from database config
2018-01-09 17:17:10 +00:00
0c646ff662 [ENT-1339]: for h2, allow schemas without migrations to run (#294) (#305)
* [ENT-1339]: for h2, allow schemas without migrations to run (#294)

* [ENT-1339]: for h2, allow schemas without migrations to run

* [ENT-1339]: fix various migration issues and change author name

* [ENT-1339]: add naming convention for migrations

* [ENT-1339]: change naming convention to use hyphens

* [ENT-1339]: change mapping of participants to be able to control the table name

* [ENT-1339]: change FK names to <=30 for oracle 11g compatibility

* [ENT-1339]: cmd line argument for migrations made consistent

* [ENT-1339]: revert abstract state superclasses

* Update db integration test setup - new tables.

* Update db integration test setup - new tables.

* [ENT-1339]: remove final from participants to allow table name config

* [ENT-1339]: shortened pk

* [ENT-1339]: revert constructor

* [ENT-1339]: change getMigrationResource api to Nullable
2018-01-09 14:44:17 +00:00
bbcdb639ab Merge pull request #317 from corda/shams-os-merge-080118
Shams O/S merge 080118
2018-01-08 14:43:48 +00:00
f2186e7e30 Enable database integration tests against Postgres database (#169)
* For Postgres, if a schema name is provided then it's wrapped in double quotes before passing to Hibernate to preserve case-sensitivity, Liquibase does it out-of-box.
* Sql setup scripts for PostgreSQL and datasource configuration.
2018-01-08 14:05:42 +00:00
a94f99781a Merge remote-tracking branch 'open/master' into shams-os-merge-080118
# Conflicts:
#	node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt
#	node/src/integration-test/kotlin/net/corda/node/services/DistributedServiceTests.kt
#	node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt
2018-01-08 13:43:10 +00:00
c5149bab9f Backport of ENT-1303 applied to 3.0-RC3 (#2332) 2018-01-08 12:11:55 +00:00
3bf84ebbd4 Review Comments 2018-01-05 15:50:24 +00:00
f230e2670b REVIEW COMMENTS 2018-01-05 15:50:24 +00:00
f4ad8d3e70 CORDA-902 - AMQP Setter Construction when empty / no constructor 2018-01-05 15:50:24 +00:00
cc6113ff06 Merge remote-tracking branch 'open/master' into shams-os-merge-040118
# Conflicts:
#	gradle-plugins/cordformation/src/main/kotlin/net/corda/plugins/Node.kt
2018-01-05 10:09:12 +00:00
1661cea816 CORDA-892: Make cordform test use new network bootstrapper logic (#2307)
* Make cordform test use new network bootstrapper logic

* Fixing review comments

* Fix issue with backwards compatibility

* Fix issue with setup not being called from CordformDefinitions

* Make sure node dir is created (as CordformDefinition uses it directly if setup is overridden
Make sure tmp dir is created

* Don't crash if node dir is already created

* Stop overwriting errors
2018-01-05 09:21:59 +00:00
b577b680ff Merge remote-tracking branch 'open/master' into shams-os-merge-040118 2018-01-04 18:32:15 +00:00
01e4880947 SPELLING: updae error message in tests 2018-01-04 15:49:55 +00:00
13619df0b1 Merge remote-tracking branch 'open/master' into shams-os-merge-040118
# Conflicts:
#	node/src/integration-test/kotlin/net/corda/node/utilities/registration/NodeRegistrationTest.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt
#	testing/test-utils/src/main/kotlin/net/corda/testing/dsl/TransactionDSLInterpreter.kt
2018-01-04 10:58:44 +00:00
6d485a3329 SPELLING ERROR FIX 2018-01-04 10:03:04 +00:00
d84105b60e Using X509Certificate consistently throughout, rather than BC's X509CertificateHolder. (#2305)
The later is now only used where needed. This has reduced the amount of converting we have to do back and forth.
2018-01-03 22:00:39 +00:00
fb71a45be5 CORDA-882 - Better err messages when serializer encounters private property 2018-01-03 18:27:14 +00:00
52173219c3 Merge remote-tracking branch 'open/master' into shams-os-merge-020118
# Conflicts:
#	client/rpc/src/integration-test/java/net/corda/client/rpc/CordaRPCJavaClientTest.java
#	node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/network/NetworkMapTest.kt
#	node/src/integration-test/kotlin/net/corda/node/utilities/registration/NodeRegistrationTest.kt
#	node/src/integration-test/kotlin/net/corda/services/messaging/MQSecurityTest.kt
#	node/src/main/kotlin/net/corda/node/services/config/ConfigUtilities.kt
#	node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt
2018-01-02 15:32:32 +00:00
730fec2eb4 Internal driver now also does the registration for the notaries. (#2304)
Using the --just-generate-node-info flag for the notary nodes so that their identities can be submitted to the network map server, which does the network parameters generation.
2018-01-02 15:12:30 +00:00
4a2f157118 Validating the entire cert path in node registration, rather just checking the root cert. (#2298)
Also reduced duplicate code when creating the node CA cert path for testing, and renamed IdentityGenerator to DevIdentityGenerator.
2017-12-29 14:38:30 +00:00
a8aad8ed55 add slf4j support to liquibase (#268) 2017-12-29 13:39:47 +00:00
39d25958e2 Fixed identity generation of single node notaries as used by the driver and MockNetwork. (#2296)
The identity cert generated used to be of type SERVICE_IDENTITY when it should have been a LEGAL_IDENTITY.
2017-12-28 15:32:09 +00:00
1d66fe9296 [CORDA-879] Generate node directories as part of bootstrapping (#2285)
* Generate node directories as part of bootstrapping

* Include latest corda.jar in bootstrapper package
Remove SLF4J warnings on startup

* Changes post review

* More review changes

* Review changes

* Making docs clearer
2017-12-23 11:22:31 +00:00
ce4a640835 CORDA-886: Removed the 60s timeout when generating node-info files in the network bootstrapper. Instead a warning is given. (#2290) 2017-12-22 15:15:21 +00:00
a2344f15fb Unicode columns for SqlServer (#248)
* ENT-1291 Switch liquibase changelogs to use nvarchar instead of varchar

* Configure Hibernate to use nationalised strings

* Configure Hibernate to use nationalised strings

* Change schema so that UUIDs are varchars

* Update schema certificate signing request status is not unicode

* Upper case suffix for audit tables

* nvarchar -> varchar for status in the audit table

* Capitalisation

* Capitalisation

* Force hibernate to use unicode columns on SQL server

* Force hibernate to use unicode columns on SQL server

* Schema change to make PostgreSql happy

* SQL files to initialise the perfcluster db for SQL server and PostgreSql

* Code ordering and extra comment
2017-12-21 17:34:21 +00:00
269a4ba79d Refactor BFTNotaryServicetest and MySQLNotaryServiceTest to allow running database integration tests. (#211)
* BFTNotaryServiceTests.kt - instantiate MockServices before each test, not at the class level - to allow database integration test clean database before each test.
* MySQLNotaryServiceTests.kt - use H2 datasource for the notary in database integration tests (and as it was before during standard integration tests)
* Revert Enterprise way of makeTestDataSourceProperties MockNode.kt.
* Minor attempt to refactor Enterprise only parts of reading database config and make it less error prone during OS->Enterprise merge.
2017-12-21 13:24:13 +00:00
d9574338bc Liquibase works for a single db user with multi schema setup (par of ENT-1275) (#233)
* Override Liquibase default schema by one from the node configuration (database.schema) if they are different. This allows database tables be created within a correct schema when no default schema is set at database level.
* Pass in the databaseConfig.schema for network manager (for Liquibase schema migration).
2017-12-20 17:17:17 +00:00
de9565b96a Merge remote-tracking branch 'open/master' into shams-os-merge-191217
# Conflicts:
#	core/src/main/kotlin/net/corda/core/node/services/NotaryService.kt
#	node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt
#	node/src/integration-test/kotlin/net/corda/node/services/RaftNotaryServiceTests.kt
#	node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt
#	node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt
2017-12-19 23:44:07 +00:00
762d7b7275 Merge pull request #217 from corda/andr3ej-ross-merge
Merge 22af527 from OS
2017-12-19 23:24:50 +00:00
4e80a33dea Fixes after os -> ent merge to networkManagement (#214)
* Quick fixes

* Fix SignedNodeInfo

Introduce network-management schema changes to reflect that NodeInfos
can have multiple signatures.

* Address Shams comments

Store SignedNodeInfo as a blob for network management tool.
2017-12-19 21:36:30 +00:00
a652c8b19f Merge commit '22af527b7943c0c4376af582de6505893817111a' into andr3ej-ross-merge
# Conflicts:
#	docs/source/changelog.rst
2017-12-19 17:07:17 +00:00
dd59b06c62 Fix null migration resource (#210)
throw exception when migration not set for MappedSchema
2017-12-19 14:06:55 +00:00
e1e715ee81 Removed all remaining special treatment of the X500 common name.
With network parameters the CN is no longer needed to identify notaries. This frees it up to be used in the node's name alongside the other attributes.

Also, the identity generation logic has been simplified, removing the need to have magic string values for storing distributed identities in the keystore. Now there are just two alias prefixes: "identity" as it was previously, and "distributed-notary".
2017-12-18 21:39:11 +00:00
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
107fcf82e3 Fixing stuff 2017-12-18 15:39:08 +00:00
e9fc6f7c8d Merge remote-tracking branch 'open/master' into colljos-os-merge-rc01 2017-12-18 10:24:38 +00:00
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
e9cead9055 CORDA-833: SignedNodeInfo object for holding a list of signatures, one for each identity in the NodeInfo. This forms part of the network map. 2017-12-17 19:45:58 +00:00
8114a20abd CORDA-716 Move non-API things to internal (#2256) 2017-12-17 18:44:35 +00:00
f2194fcfd4 Integrate db migration tool - liquibase (#150)
[ENT-996]: integrate Liquibase for data migration
2017-12-16 15:58:12 +00:00
2652ae111a CORDA-716 Devrel feedback (#2266)
* * Document TestIdentity entropy and enforce that it actually works
* Ledger/transaction DSL default notary with fresh key
* MockServices default identity with fresh key
* makeTestIdentityService now takes vararg
* Require cordappPackages for MockServices
* DSL automatic serialization init
* Improve error when two MockNetworks used

* * Make cordappPackages required by MockNetwork
* Default identity service in MockServices
* Make notarySpecs Java-friendly
2017-12-15 19:18:31 +00:00
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
02ad2b8b60 Fix LargeTransactionTest (#2265) 2017-12-15 16:53:57 +00:00
550469ea38 Wire part of network parameters (#2187)
* Take maximum message size from network parameters

* Add epoch handling

* Add handling of network parameters mismatch

Change NetworkMapClient and updater, add handle in
AbstractNode that results in node shutdown on parameters mismatch. Later
on we should implement proper handling of parameters updates.
Add tests of NetworkParameters wiring.

When node starts with compatibilityZone url configured it takes
networkParameters from the networkMap.

* Permit only one network parameters file

On node startup network parameters are read from node's base directory,
we permit only zero or one files to be there. If network map server is
configured the parameters can be downloaded at startup (if not present
in the directory already).

* Update docs on network map endpoints
2017-12-15 11:13:15 +00:00
05bc05a936 CORDA-716 Retire withTestSerialization (#2240) 2017-12-14 12:42:18 +00:00
0df846148d SignedNetworkMap verification fix (#2255)
* SignedNetworkMap verification fix

SignedNetworkMap verification should also include cert path validation,
which was probably moved away by accident, because docs say about the
exception CertPathValidatorException.
2017-12-14 12:06:44 +00:00
2319bf396c Renamed TestIdentity.key to keyPair and pubkey to publicKey (#2249) 2017-12-14 11:30:55 +00:00
e781d816a8 Removed remaining uses of KRYO_P2P_CONTEXT 2017-12-13 18:24:05 +00:00
d1998b2c94 Merge remote-tracking branch 'open-hc02/master' into colljos-os-hc02-merge-121217 2017-12-13 11:02:58 +00:00