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).
* Update api current from v3
* Update Cordapp Context as per CORDA-556
* Update Exception base classes as per CORDA-1334: port enterprise statemachine (#2964)
* Move notary service related classes and interfaces in core to internal (#2827)
* CordaRPCClient changes from CORDA-1099: Orchestrated clean shutdown from Shell (#2831)
* [CORDA-1264]: Ensure correct serialisation and masking for throwables raised by a node and propagated through RPC. (#2892)
* CORDA-973 Refactoring for serialization compression support (#2466)
* [CORDA-941]: Add NetworkParameters contract implementation whitelist. (#2580)
* Cleanup and improvements to the serialisation format of JacksonSupport (needed for CORDA-1238) (#3102)
* Existing internal exposures which need removing - see CORDA-1489
* revert to gradle plugins version of api-scanner
* Move notary service related classes and interfaces in core to internal, since we won't be able to stabilise the APIs for writing custom notary services any time soon (the docs already mention it). I left out the wire protocol related classes so we don't accidentally break it.
* ENT-1540: Make sure transactions with "expired" time windows get re-notarised correctly.
Currently the time window is checked before states are being passed to a uniqueness provider. If the time window is
invalid, the transaction will be rejected even if it has already been notarised, which violated idempotency.
For this reason the time window verification was moved alongside state conflict checks.
* Update API - this only affects custom notary interfaces
* Remove exposures of internal classes via testing api
* Remove deleted api from api-current
* Fix merge conflict
* Remove internal usage from api-current.txt
* Making Corda's JPA classes non-final and Serializable.
* Making Corda's JPA classes non-final and Serializable.
* Making Corda's JPA classes non-final and Serializable.
* Making Corda's JPA classes non-final and Serializable.
Remove default async db flush
Add in-memory P2P deduplication until we commit the ID persisting tx
Add some explaining comments
Make scheduled state kickoffs atomic with flow starts
* CORDA-1208: Notary service should persist the notarisation request signature along with the committed input states.
This required modifying the uniqueness provider interface to accept the signature in addition to input states.
Until now the committed state log used to be stored as a map of (state reference -> (tranasction id, consuming party)).
Adding the serialized signature would mean inflating each state entry by around 700 bytes, which would be grossly inefficient.
Instead, two tables are now used: one for storing (state referece -> transaction id) map, and another for storing the notarisation
request details (transaction id, consuming party, date, signature).
* Update api - all of these changes are only related to custom notaries
The problem with the previous implementation is that the transaction would be deserialized with the schema specified
in the serialized form, but the calculation of the id would involve re-serializing properties using a local serialization context
which might produce a different result.