* Improvements to Vault Query Service soft locked state querying (removed old mechanism from VaultService).
* Fixed rst document formatting.
* Added additional soft locking criteria mode: all unlocked plus those locked as specified by lockId(s).
* Addressed comments from PR feedback.
* WIP - Removed data Vending services, fixed all flow test
* * separated out extra data, extra data are sent after the SendTransactionFlow if required
* New SendProposalFlow for sending TradeProposal, which contains StateAndRef.
* WIP
* * removed TradeProposal interface.
* changed SendProposalFlow to SendStateAndRefFlow, same for receive side.
* fixup after rebase.
* * undo changes in .idea folder
* * remove unintended changes
* * Addressed PR issues
* * doc changes
* * addressed pr issues
* moved ResolveTransactionsFlow to internal
* changed FlowLogic<Unit> to FlowLogic<Void?> for java use case
* * addressed PR issues
* renamed DataVendingFlow in TestUtill to TestDataVendingFlow to avoid name confusion, and moved it to core/test
* * removed reference to ResolveTransactionsFlow
* Expose a JDBC connection (session) via the ServiceHub for generic JDBC usage.
* Updated documentation.
* Fix failing JUnit following rebase from master.
* JDBC session Tutorial WIP
* Fix broken JUnits following update to consumeCash() using observable event update as return.
* Fixed broken JUnits.
* Refactoring createSession() into new CordaPersistence class following rebase from master.
* Updated fully working example.
* Minor updates following feedback from MH.
* Fixed compiler error following rebase.
* Fixes following rebase from master.
* Further updates and clarifications to documentation.
* Updated all sample code to use new Vault Query service APIs.
* Fix broken Unit test.
* Added missing transaction boundary.
* Fix broken ScheduledFlow test (caused by assertion on non-ordered collection)
* Remove redundant negative test (as new Vault Query no longer returns iterators).
* Whitespace formatting fixed following PR review from SA.
* Force query to specify a PAGE SIZE equivalent to total states to be exited (RP review comment).
* Use single (and fail fast) instead of first - when only expecting a single result.
* Demonstrate paging and sorting; failfast on single expected result.
* Enhancement: added Sorting by CommonStateAttribute (StateRef txnId and index)
* Fix: incorrect total states count.
* Fixed incorrect total states counting.
* Remove redundant filter (UNCONSUMED).
* Updated tutorial code and associated documentation (building transactions).
* Updated all vaultAndUpdates to vault[Track|Query]By.
* Temporary disable failing Vault Query tests (awaiting pagination PR fix).
* Rebase from master to pick up pagination changes/fix.
* Fixed criteria filter on track.
* Cleanup redundant print output.
* Refactor to extract common function for Vault Query paging and sorting.
* Identified problem in SimmValuation demo failing test caused by query by single participant in participants list (not yet supported in VaultQuery criteria).
* Minor fixes following rebase from master.
* Minor updates following rebase.
* Removed redundant import.
* Fixed type casting error.
* Minor fixes following rebase from master.
* VQ Fix - applied in other PR.
* Removed duplication after rebase and minor fix to failing smoke test.
* No longer create obsolete "attachments" directory
* Remove redundant NodeAttachmentService param
* Add type param to MockNetwork.Factory to eliminate casts
* Use null not -1 for unforced node ID
* Remove redundant createNode args
Swap ints to shorts for storing chars as there is no point wasting the
16 bits otherwise
Add better char tests, i.e. Unicode points that aren't going to fit into
the bottom 8 bits
This fix really only applies to the testing case where, to test the
carpenter as it integrates with the deserialzer we need classes not
found on the class path. To do this they can be created by a second
class carpenter
However, the original carpenter *always* added SimpleFieldAccess as an
interface to the class it would be creating. Under normal circumstances
that's fine as that interface wouldn't be in the list of interfaces
given to the carpenter for the class it's being asked to created.
However, if as described above the carpenter schema was synthesised from
a class that was carpented it will.
If this happens we get an error as understandably you can't have a
duplicate interface.
Fix is to simply check weather the list of interfaces the schema
describes and only add SimpleFieldAccess if it isn't on it
The recent changes that were put in to allow chars to be serialised at
all failed to take into account nullability and thus if a char was null
and that object was first serlialised then desierliased it would throw
a NPE
* Introduce new NotaryChangeWireTransaction (similar to WireTransaction and NotaryChangeTransaction (similar to LedgerTransaction) types.
Remove 'mustSign' and 'signers' fields from transactions
Deprecate the TransactionType concept. When receiving a SignedTransaction, the verification and signature checking branches out for regular and notary change transactions.
Add custom handling logic for notary change transactions to the vault
We were relying on the Java typename conversion to work for our AMQP
envelope type selection, and only special casing arrays of primitives.
However with nested arrays this breaks as the intermediate serialises
for the nested arrays still have no idea as to what the underlaying type
is as the assumption will be being made that the type is a boxed
primitive.
Solution is to compute the typename properly, walking down the nested
array chain
* Cache deserialized rather than serialized WireTransaction. Prevent repeated deserialization when adding signatures to the SignedTransaction.
* Added a test to check that stx copying and signature collection still works properly after (de)serialization
Update to use LedgerTransaction api
Push query output logic onto BaseTransaction and update usages where possible
Migrate a few more uses
Address some PR comments
Address some PR comments
Fixup after rebase
* Registering anonymous identities now takes in AnonymisedIdentity
* AnonymousParty.toString() now uses toStringShort() to match other toString() functions
* Add verifyAnonymousIdentity() function to verify without storing an identity
* Replace pathForAnonymous() with anonymousFromKey() which matches actual use-cases better
* Add unit test for fetching the anonymous identity from a key
* Update verifyAnonymousIdentity() function signature to match registerAnonymousIdentity()
* Rename AnonymisedIdentity to AnonymousPartyAndPath
* Remove certificate from AnonymousPartyAndPath as it's not actually used.
* Rename registerAnonymousIdentity() to verifyAndRegisterAnonymousIdentity()
* POMs generated by publishing are now correct. The publish extension now requires an explicit call to configure the publishing instead of waiting until after evaluation. This prevents evaluation order issues with the artifact renaming code that causes the POM to have the original, incorrect, artifact names.
* Fixed new test compile issues caused by removal of some dependencies in test utils that caused webserver code to be automatically included in any project also compiling test utils.
* Implemented Kryo custom serializers for Field and KProperty types.
* Adjusted KPropertySerializer to use kotlin member properties upon read() due to failing RPC tests.
Added additional Kotlin and Java tests (CordaRPCClient, StandaaloneCordaRPCClient)
Annotated schemas to be CordaSerializable (required when referencing as KProperty in custom queries).
Cleanup some outstanding compiler warnings.
* Added client RPC Java integration and smoke tests to build.
* Clean up compiler warnings in Java tests.
* Fixed incorrect assertion expectation.
* Backed out Field and KProperty custom serializers.
* Backed out Field and KProperty custom serializers.
* Store VaultQueryCustom custom column references as name and class (from Java Field and Kotlin KProperty1 types respectively).
Custom serialization of Field and KProperty type no longer required.
* Removed blank lines as per RP review comments.
Enable anonymisation in integration testing tutorial, and as a requirement fix a bug where the counterparty anonymous
identity was not registered by `TransactionKeyFlow`.
* Change "for who" to "for whom"
* Don't pass parties to FinalityFlow, it can derive them automatically
* Create a basket of nodes instead of individually assembling nodes
* Switch two party trade flow tests to generate a full anonymous identity
* Rename some functions to more descriptive names
* Remove some egregious whitespace
* Revert some changes that were a dangling holdover from an aborted
refactoring - put it back how it was
* Move all alterations on the amqp schema object out of the actual
amqp/Schema file and have them live in the carpenter as extension
functions
* Move carpenter exceptions to their own file
* Rename the schema name corrupter to the name mangler
* reduce whitespace
* alter comment style
Squashed commit messages:
* Nested schema creation now works with dependencies recursvly created in
the carpenter
* Remove spurious prints from tests
* Remove warnings
* Don't add cladd member dep by name
Since that's the name of the field, not the type we depend on. If we do
we'll never actually be able to craft the type as the dependency chain
will be horribly broken
Various bug fixes
* Fix merge issue where types weren't being seen as Prims
* IntelliJ auto code cleanup / reformat
* Whitespace changes
* Add comment blocking as I like seeing it in files
A complete amqp schema can now be used to generate a set of carpetner
schemas representing all of the classes not found on the deserialzing
end.
A dependency and depdendent chain is setup such that all classes are
created in the order required
Squashed commit messages:
* IntelliJ reformat of the code
* Merge the interface synthesis changes and rebase onto the tip of master
Somethign is very broken in the AMQP -> Carpenter schema code but want a
commit so I at least know the actual carpenter is merged
* Nested schema creation now works with dependencies recursvly created in
the carpenter
* Unit test fixes
* Remove spurious prints from tests
* Remove warnings
* Don't add cladd member dep by name
Since that's the name of the field, not the type we depend on. If we do
we'll never actually be able to craft the type as the dependency chain
will be horribly broken
Various bug fixes
Unit tests that pull out the envelope from a deserialsed object (which
we have already serialised) then using the AMQP schema contained within
convert that to a carpenter schema and build an object
Currently testing only simple classes with a single type member
Squashed merge commits:
* Fix for the type issue in the SerializerFactory
Needs to pull in the actual Java types otherwise we use the Kotlin types
as the map keys which will never correspond to the java types that the
wrapper wraps around the primitive before doing a map lookup
Boolean just doesn't seem to work as pulling that in starts breaking
Kotlin and Character also seems broken. There is a fix for this also on
Rick's branch so pushing this in for now and can use his actual changes
when they're available on Master
* Better tests
* Add support for sub classes known to the JVM
* Initial work towards integrating serializer with the carpenter
Unit tests that pull out the envelope from a deserialsed object (which
we have already serialized) then using the AMQP schema contained within
convert that to a carpenter schema and build an object
Currently testing only simple classes with a single type member
Pass signature as null, not empty string, otherwise the class asm isn't
correct. Using javap at the command line prior to the fix yields
public class MyClass implements
net.corda.core.serialization.carpenter.SimpleFieldAccess {
protected final java.lang.Integer a;
descriptor: Ljava/lang/Integer;
public MyClass(java.lang.Integer);
descriptor: (Ljava/lang/Integer;)V
public java.lang.Integer getA();
descriptor: ()Ljava/lang/Integer;
public java.lang.Object get(java.lang.String);
descriptor:
(Ljava/lang/String;)Ljava/lang/Object;
Error: A serious internal error has occurred: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
* Switch to using anonymous party as recipient
* Enable anonymisation for issuance as well as move in issuer flows.
* Pass notary into issuer flow rather than taking a notary at random from the network map.
* Enable anonymisation in Bank of Corda RPC test
* Parameterize issuer flow tests into anonymous and deanonymised versions
For testing I need to be able to mess with the schema before it gets
added to the envelope, extract the function where that happens and make
it open so the tests can do what they want