Nullability logic was relying on annotations that Kotlin applies by
default but is left to the developer in Javaland. Change this around
so it works for both.
In Kotlin, the property must be nullable, in Java, it can't be a
primitive.
* Fix a typo in node_attchments_contracts table name. (#3202)
(cherry picked from commit 57d379597b)
* CORDA-1804 Corda node stops when detecting not migrated node_attachments_contracts table name (#3593)
Database table NODE_ATTACHMENTS_CONTRACT_CLASS_NAME in v3.0 was changed to NODE_ATTCHMENTS_CONTRACTS in v3.1 and then finally NODE_ATTACHMENTS_CONTRACTS on current master. Users may omit the upgrade note and run into errors. After the change the node will not start if the new table name is not found and any other older ones is found.
(cherry picked from commit 208ac49da0)
* Fixes after cherry-pick of 208ac49da0.
* Cleanup and improvements to the serialisation format of JacksonSupport (needed for CORDA-1238) (#3102)
Also deprecated all the public members that shouldn't have leaked into the public API.
(cherry picked from commit 3bb95c3)
* CORDA-1238: Updated JacksonSupport to support SerializedBytes, CertPath, X509Certificate and the signature classes (#3145)
SerializedBytes are first converted to the object it represents before being serialised as a pojo.
These changes will be needed to support the the blob inspector when it will output to YAML/JSON.
(cherry picked from commit b031e66)
* Cherry picked part of commit 824adca to port over *only* the JackSupport refactoring.
* CORDA-1238: Moved the blob inspector out of experimental and wired it to JackonSupport (#3224)
The existing output format was not complete and so was deleted to avoid it becoming a tech debt. We can always resurrect it at a later point.
(cherry picked from commit 4e0378d)
* Added back support for parsing OpaqueBytes as UTF-8 strings in JacksonSupport (#3240)
(cherry picked from commit d772bc8)
* Cleaned up blob inspector doc (#3284)
(cherry picked from commit b7fbebb)
* Blobinspector: trace level logging with --verbose (#3313)
(cherry picked from commit 6a2e50b)
* Cherry picked part of commit 3046843 to fix issue with --version
* Fixes to the api file
* CORDA-1498: serialization multiple transform bug (#3216)
* Fix issue when evolving enums with transformation chains
* Regenerate test data for deserializeWithRename test and unignore
* Further tweaks / remove debugging
* Formatting tweaks
* Address review comments
* Remove debug
* Add classname to serialization tranform exceptions
* Use direct node links instead of indexes to improve readability
* More readability tweaks
* More readability improvements
* rename require to requireThat to resolve conflict with kotlin libraries
* Add logging of error message
* Change requireThat helper to inline function
* remove unneeded toString
* Further tweaks
* Change NotSerializableException to more generic IOException
* Make exception context clearer
# Conflicts:
# node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolvabilityTests.kt
# serialization/src/test/resources/net/corda/serialization/internal/amqp/EnumEvolveTests.deserializeWithRename.1.C
# serialization/src/test/resources/net/corda/serialization/internal/amqp/EnumEvolveTests.deserializeWithRename.2.C
# serialization/src/test/resources/net/corda/serialization/internal/amqp/EnumEvolveTests.deserializeWithRename.3.C
* Fix merge conflicts
* Fix broken test
* Revert changes to serialized classes
* [CORDA-1575]: Out of process nodes started by the driver do not log to file (fix).
* [CORDA-1341]: Ensure API can be called concurrently wrt transactions.
* [CORDA-1575]: Fixed unstable test.
* CORDA-866: Implement removal of stale nodes from network - backport (#3128)
* CORDA-866: Implement removal of stale nodes from network
Backported
* Implement removal of stale nodes from network
Add eventHorizon to NetworkParameters structure. Add republishing of
node info on 1 day intervals - it is treated by network map as heartbeat from node indicating if it's alive or not. Add removal of old node infos on network map signing.
* Add copy method to NetworkParameters data class
Add JvmOverloads annotation to the constructor, because it's data class
exposed in API
* Fix test
* ENT-1933: make NetworkParameters serialization compatible (#3234)
* ENT-1933: make NetworkParameters serialization compatible
* Fixes after cherry-pick
* CORDA-1530 - Generics break default evolver
When selecting an annotated constructor for evolving a type make sure
we treat generics in the same manner we did when serialized. Effectively
throw away the template information and treat lists as lists and maps
as maps
Cherrypick from master
* ENT-1443 Add cert role to CSR and doorman issue cert according to the cert role (#431)
* Doorman and HSM create certificate base on requested cert role specified in the certificate signing request.
(cherry picked from commit 94f7392)
* remove R3 corda code
* REVERT - CORDA-1264 - Needs more thought prior to release
This reverts commit 33af80ac55.
Since this causes regressions in the way errors are propogated to
clients it seems best to not break or hold up 3.1 but revert this commit
and move on
* fix revert
* ENT-1564 - add additional uploader check to the HashConstraint (#2845)
(cherry picked from commit 1a1cd94)
* ENT-1564 changelog entry
* ENT-1564 ignored tests that were removed in master
Problem manifests now that the classpath scanner is used by the
serialisation framework in factory initialization to locate pluggable
serializers. The actual thrown error is
java.lang.RuntimeException: Unknown constant pool tag
Given this is a known issue and a fixed bug it makes sense to move the
version forward. Unfortunately at this time we cannot move beyond
2.12.3 as 2.12.4 and later versions (up to the latest 2.18.1) exhibit
some other error that needs investigating. Thus, move to the latest
version that is stable for our current set of use cases.
More information on the nature of the problem exhibited by moving beyond
2.12.3 can be found on the linked Jira (ENT-1665) as well as details on
reproducing the issue moving forward to 2.12.3 fixes.
* CORDA-696: Ensure deterministic transaction id calculation for contract upgrade and notary change transactions.
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.
* Support forwards compatibility for new hidden or visible properties
* Some refactoring and updating api docs
* Fix tests & add custom serializer in case the transaction is captured in a checkpoint
* Update id calculation for notary change transactions as well - no filtering is involved
* Use computeNonce
* More refactoring
* Use helper for computing component hashes
* Optimise id calculation
Whilst it does currently work it only does so by going down an incorrect
code path. A property THING that is public and has a getter should
be fetched using that getter, not trip into the private property
accessor.
* Various cleanup of the network map code (#2604)
(cherry picked from commit 2af0fee)
* CORDA-1048: Making it simpler to move an existing local deployment of nodes to across different machines. (#2672)
This was achieved by having the hash in the node-info file to be just of the node's X.500 name. This also solves existing duplicate node-info file issues that we've been having.
Also updated the docsite.
(cherry picked from commit 8616f24)
* 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.
Further, the look up of the node's own node-info from its database has been tightened to ensure there isn't more than one.
Also fixed some brittle code which was assuming exactly one address rather than at least one.
(cherry picked from commit 2864ce1)
* [CORDA-1008] - Samples fail to run due to wrongly configured max transaction size in the network bootstrapper
* address PR issues
(cherry picked from commit ddf0d34)
* Removes IdentityServiceInternal as a public parameter to MockServices.
* Reorders params to put non-default args first. Creates simpler default constructors.
* Adds constructors for creating mock nodes by passing params.
* Network parameters updates
Add two RPC methods networkParametersFeed and
acceptNewNetworkParameters. Implementation of client handling of network
parameters update event. Partial implementation of accepting new
parameters and installing them on the node as well as node startup with
updated parameters.
Move reading of network parameters on startup to separate
NetworkParametersReader class. Add tests.
Move NetworkParameters and NotaryInfo classes to core.
* Ignore evolvability test - to be fixed later
* Add documentation on update process