* CORDA-986 and CORDA-985 CompositeKey and Signature verification performance fixes (#2467)
* CORDA-696: Create separate transaction types for contract upgrade transactions.
Add rationale around upgrade transactions
Move contract upgrade transaction resolution logic into internal until it's stabilised.
Throw a better exception when contract attachment not found
Default legacy contract constraint to always accepting - needs to be changed to whitelist constraint before merging
Introduce a new upgraded contract interface that allows specifying the legacy constraint.
Remove StateLoader, make all tx resolution functions take in ServicesForResolution
Contract upgrade transactions can handle whitelist by zone constraints
When creating a contract upgrade transaction, make sure the attachment of the old cordapp gets attached when using hash constraints.
Attachment lookup for a given contract class name only scans currently loaded cordapps, and we don't load old versions of cordapps.
CORDA-696: Update upgrade docs
* CORDA-1096 - Performance when loading multiple states from the vault (#2609)
* Provide efficient `loadStates()` implementation
* Replace loops using `loadState` with calls to `loadStates`
* Replace `map`/`flatMap` with just a single `flatMap`
* Update check api changes to look for internals
* Update several more uses of internal
* Make check-api-changes script filter out internal class usages
* Make CordaClock part of API
* Update api-current.txt
* Remove exclusion of nodeapi.internal
* Remove access to CordaPersistence from public api
* Don't expose DB Connection from StartedMockNode and remove unnecessary transaction from CustomVaultQueryTest
* Make internal tests that use need db access use InternalMockNetwork
* Make test certificates internal
* Address further review comments
* Revert some accidental changes to api-current.txt
* Address Shams' review comments
* Update Api Scanner to filter out CordaInternal attribute
* Update api-current.txt
* Remove superfluous brackets
* Add transaction to StartedMockNode
* More leaky transaction fixes
* Added per-cordapp configuration
* Added new API for Cordformation cordapp declarations to support per-cordapp configuration
* Added a cordapp configuration sample
* Sql setup scripts for Oracle and datasource configuration.
* CashSelection for Oracle.
* Workaround of forbidden distinct for BLOBs.
* ojdbc8.jar driver dependency from Oracle Maven repository, ojdbc6.jar from lib (it's not in Maven repo).
* allow to use random Port in node names and trim it from schema name, remove schema with port numbers from db setup (to cater for new test, non Oracle specific change)
* Removed unnecessary code from ConfigUtilities (non Oracle specific change)
* Removed db integration tests setup for RPCStabilityTest as it doesn't start any nodes
* Make SerializationEnvironment private so as not to expose internals.
* Only expose used parts of api
* Make properties lateinit
* Removing java calls to getEnv
* Initialise properties at declaration
* Tidy up imports
Changes compatible with R3.Corda (ENT-794):
1) Added Hibernate corda-wrapper-binary two to to columns.
2) Shorten names of tables in dummy schemas used in tests.
3) Undo removal of compound index of VaultTxnNote (b423fea).
4) Assertions for 2 vault tests don't rely on order of rows.
Introduced DigitalSignatureWithCert and SignedDataWithCert as internal APIs, with the expectation that they will become public; renamed the network parameters end-point to network-parameters; updated the network-map.rst doc; and did some refactoring.
* 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
* Added NotaryService schema to database setup for two integration tests.
* SQL Server setup scripts - create Login only if not preset (as it's done for Azure SQL).
* [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
* Adding min platform version check when submitting node info
* Return error message to developer
* Fixing integration test
* Added todo to move checks out of data layer
* Added extra logging in nodeinfowebservice and use nodeinfo.verified instead of deserialize
* Tidy up tests
* Cache network parameters
* Add NodeInfoWithSigned class to stop calling to only verify node data once
* Fixing review comments
* Return correct response code if doorman not initialised properly
* Fix merge conflict
* 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.
* 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
* 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).
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".
* 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