* Fixed incorrect attachment loading integration test
`AttachmentLoadingTests.test that attachments retrieved over the network are not used for code` was a false-positive - it was incorrect on multiple levels. Fixing it required updating the finance:isolated CorDapp, at which point it was given the new MANIFEST metadata for V4, and moved out of the net.corda.finance namespace to avoid package sealing issues.
The new test exposed a bug in the LedgerTransaction verification logic. This was cleaned up as it was too easy to verify on the wrong instance.
TestCordapp has now two implementations to clearly separate the two use cases it has in the Corda repo:
* TestCordappImpl which implements the revised public API of TestCordapp; namely that a TestCordapp instance references a real CorDapp jar on the classpath. This is either an external dependency jar in which case it’s taken as is and given to the node, or it’s a local gradle project in which case it’s compiled using the gradle “jar” task to generate the CorDapp jar. This approach means the jar has all the original CorDapp versioning information, which is important that it’s correct when testing. To this end, TestCordapp only needs to expose the ability to specify the app’s config. All the remaining properties have moved to CustomCordapp.
* CustomCordapp for creating arbitrary custom CorDapps, including specifying the jar’s MANIFEST values. This is internal API and only used for testing the platform. Technically this shouldn’t implement TestCordapp but does so to reduce the complexity of the driver and mock network.
* Test nested generics case
* Recursively resolve type parameters
* Comment and ensure type variables are resolved
* Only upper-bounding needs to be done recursively
TransactionBuilder loads attachment using attachment storage instead of CordappLoader,
contract class version is now Integer (format and stored in db as Integer).
* Hash to signature constraints migration #1
* After rebase from Attachments Classloader commit.
* Simplified implementation without CZ whitelisting and relaxing the no-overlap rule slightly.
* Further simplification.
* Detailed implementation.
* Use fully loaded Cash contract jar for hash to signature constraints migration test.
Additional debug logging.
* Minor cleanup.
* Address PR review feedback.
* Minor fix.
* Fixes following rebase from master.
* Implemented `calculateEntriesHashes` to improve classloader validation performance.
* Address minor PR review comments.
* Added integration tests and some minor fixes.
* Minor fixes following rebase from master.
* Updates and fixes following integration testing.
* Added changelog entry.
* Fix broken unit tests.
* Fix compilation errors in DriverDSL tests after rebase from master.
* Minor fix to test cordapp jar signing using explicit keystore.
* Run hash-to-signature constraints integration test out of process using a non-validating notary.
* Address PR review feedback: contract version from database + other minor changes.
* Address final PR review feedback: remove signed attachment field from attachmentWithContext
* Resolve conflicts following rebase from master.
* Fix failing junit test.
* Fix Kryo serialization error (forgot to write new `version` identifier field)
* Removed redundant query carried over from previous commit.
* Added documentation.
* Fix test case where explicit Hash Constraint input and Signature Constraint output explicitly configured.
* Addressing PR review comments from SA.
* AttachmentQueryCriteria API: added wither methods and Java Unit tests.
* Fixed compilation error caused by Unit tests being in wrong module.
* Added @CordaInternal to canBeTransitionedFrom function.
* Minimized AttachmentClassloader overlap duplicates checking.
* Moved JarSignatureTestUtils and ContractJarTestUtils to internal pending clean-up and documentation before public release.
* Minor fix following rebase from master.
* Removed redundant checkNotNull(networkParameters) checks now that these are always passed into the main (non-deprecated) constructor.
* Remove capitalization.
* Get enum transforms during type info building
* Eliminate transforms cache
* Allow combined renaming and defaulting for enums
* Comments and moving build method to EnumTransforms
* Force validation on EnumTransforms creation
* Remove commented code
* Cope with multiple renames
* CORDA-2263 evolve types with calculated properties
* Push handling of computed properties into builders
* Set isAccessible to true prior to calling
* Type information captures Java constructor, not Kotlin wrapper
Suppress warnings when constructing NonConstructible types that are wrapped by Opaque, and reduce warning level to info. Construct wrapped LocalTypeInformation for Opaque types immediately, rather than deferring with a thunk.
* Type model first draft
* Introduce TypeIdentifier
* Attempting to retrofit fingerprinter with type model
* Complete retrofitting typemodel to fingerprinter
* Ensure component types are resolved correctly
* Fixes and tests
* Move resolveAgainst to TypeIdentifier
* Remote type modelling and reflection
* Convert TypeIdentifiers back into types
* Translate AMQP type strings to type identifiers
* Start replacing DeserializedParameterizedType
* Start roundtripping types through AMQP serialization
* Comments on type modelling fingerprinter
* kdocs and interface reorganisation
* Lots and lots of kdocs, bugfix for cyclic references
* Separate SerializerFactory construction from concrete implementation
* Fewer build methods
* Method naming that doesn't fatally confuse determinisation
* Extract SerializerFactory interface
* Reset to master's version of compiler.xml
* Un-ignore flickering test
* Enums don't have superclasses
* Break out custom serializer registry
* Refactor to separate remote and local serializer factories
* Shrink interfaces
* Further interface narrowing
* Fingerprinting local type model
* LocalSerializerFactory uses LocalTypeInformation
* Resolve wildcards to their upper bounds
* Actually cache custom serializers
* Fix various bugs
* Remove print statements
* There are no cycles in type identifiers
* Drive class carpentry from RemoteTypeInformation
* Refactor and comment
* Comments
* Comments and pretty-printer extraction
* Format long methods with braces
* Serialise composable types using LocalTypeInformation
* Warnings if a type is non-composable
* Rename lookup -> findOrBuild
* Evolution serialisation (no enums yet)
* Eliminate old ObjectSerializer and evolver
* Enum evolution
* Opacity claims types less greedily
* Fix type notation and type erasure bug
* Clean up unused code paths
* Delete unused codepaths
* Move whitelist based type model configuration to own file
* Move opaque type list
* Make all evolution serialisers in one go when schema received
* Minor tweaks
* Commenting and tidying
* Comments
* Rebase against master
* Make flag for controlling evolution behaviour visible
* propertiesOrEmptyMap
* Restore error messages
* Test for CORDA-4107
* PR fixes
* Patch cycles in remote type information after creation
* Fix line breaks in unit test on Windows
* This time for sure
* EvolutionSerializerFactoryTests
* Fix some pretty-printing issues, and a carpenter bug
* PR fixes
* Clarify evolution constructor ordering
* Remote TODO comment, which has been moved to a JIRA story
* CORDA-2099 define LocalTypeInformation and related data types and functions
* Enums don't have superclasses
* Separate ACollection from AMap
* Remove spurious import
* Small fixes, slightly improved testing
* Log warnings if types that we expect to be able to serialise are non-composable
* Rename lookup -> findOrBuild
* Pull changes from working branch
* Missing files needed for unit test
* Pull in whitelist-based type model configuration
* Move opaque type list across
* Remote duplicate declaration
* Restore fixes from other PR
* CORDA-2099 create remote type model
* Comments
* Test the class-carpenting type loader
* Comment on cache usage
* Pull changes from main serialisation branch
* Add missing file
* Minor tweaks
* Remove most contentious bit of mutex in the codebase
Fix up SerializerFactory
Make getSerializerFactory() non-blocking
Workaround for DJVM issues
* Some clean up and also de-contend the RPC client.
* Fix up attachment class loader code.
* Bug fix
* Introduce SerializeForCarpenter annotation
* Apply SerializableComputedProperty annotation to Cash.exitKeys, fix bugs
* info -> trace
* Remove annotation from FungibleAsset, as we do not know whether all implementing classes will provide the property as a calculated value
* Remove redundant import
* Explicit lambda params
* Restore explicit import for Enum valueOf
* Moving and rescoping
* More meaningful error message
* Add java test and documentation
* Fix accidentally broken unit test
* Ignore superclass annotation if property not calculated in implementing class
* Exclude calculated properties from Jackson serialisation
* Fix broken test
* Separate out Checkpoint serialization
* Update kdocs
* Rename checkpoint serialization extension methods
* Fix bungled rename
* Limit API changes
* Simplify CheckpointSerializationFactory
* Add CheckpointSerializationScheme to API checker
* CheckpointSerializationScheme should not be implemented
* Move checkpoint serialisation to internal package
* Remove CheckpointSerializationScheme from api-current
* Quarantine internal classes
* Remove checkpoint context from public API
* Remove checkpoint context from public API
* Fix test failures
* Completely decouple SerializationTestHelpers and CheckpointSerializationTestHelpers
* Remove CHECKPOINT use case
* Remove stray reference to checkpoint use case
* Fix broken test