324 Commits

Author SHA1 Message Date
Shams Asari
3e199e51fc Simplified the implementation of the tx query APIs with the introduction of Class.castIfPossible 2017-07-21 19:18:48 +01:00
Matthew Nesbit
9a02a27619 Add state query methods to LedgerTransaction.
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
2017-07-21 15:41:00 +01:00
Rick Parker
fe9db6f1f7 Remove links to Kryo from serialization "clients" (#1079) 2017-07-21 14:23:05 +01:00
Katelyn Baker
e1551fc74e Merge pull request #1084 from corda/kat-cantDeserialiseChars
Fix to allow classes with char members to deserialize
2017-07-21 13:16:37 +01:00
Shams Asari
e702025f62 Cleaned up TimeWindow and added a bit more docs. 2017-07-20 13:43:11 +01:00
Matthew Nesbit
0fdd4ae6c6 Remove TransactionForContract and just use LedgerTransaction
Fix minor doc error

Get rid of @deprecated method that was only present for technical reasons.

Minor fix and include in changelog
2017-07-20 09:16:07 +01:00
Katelyn Baker
080e9670a1 Fix to allow classes with char members to deserialize 2017-07-19 14:43:52 +01:00
Shams Asari
070f0c040e Moved a bunch of stuff which shouldn't be public out of core.utilities and into core.internal 2017-07-19 14:09:03 +01:00
Ross Nicoll
c4c551dbd2 Confidential identities API improvements
* 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()
2017-07-19 14:03:34 +01:00
Konstantinos Chalkias
8a2074eeee Remove tolerance from TimeWindowChecker (#1047) 2017-07-19 12:33:57 +03:00
Shams Asari
b0c299707b Moved DeclaredField utility to internal and expanded its use 2017-07-18 14:33:09 +01:00
Shams Asari
561a329064 Moved the various extension methods for creating Durations from Utils.kt to KotlinUtils.kt 2017-07-18 10:26:53 +01:00
Matthew Nesbit
8596f1cc17 AttachmentClassLoader isn't directly exposed on the api, so move together with serialisation. (#1060) 2017-07-17 17:56:02 +01:00
Shams Asari
c62387f3f6 Fixed TransientProperty so that it actually works during (de)serialisation 2017-07-17 16:27:54 +01:00
Shams Asari
195189070a Moved the Path extension methods that were in Utils.kt into the internal package 2017-07-17 16:01:19 +01:00
Joel Dudley
b37c73827f Splits verifySigs into verifySigsExcept and verifyRequiredSigs to clarify usage. 2017-07-17 15:42:08 +01:00
Katelyn Baker
eeb66b68b8 Merge pull request #1005 from corda/kat-serialization
Integrate class synthesis with the serialisation framework
2017-07-17 12:58:53 +01:00
Andrius Dagys
7aafcf8c57 Prevent exception causes showing up as null in logs (#1018)
* Passing exception messages via constructor instead of overriding toString
2017-07-14 20:40:21 +01:00
Shams Asari
6ba3ae870c Merge pull request #1046 from corda/shams-flow-session-exception-rename
Renamed FlowSessionException to UnexpectedFlowEndException
2017-07-14 17:10:08 +01:00
Ross Nicoll
42f217f212 Add extension hooks to FinalityFlow
Add extension hooks to FinalityFlow to support different behaviours depending on whether the node knows who all of the parties in a transaction are.
2017-07-14 16:54:39 +01:00
Katelyn Baker
0bfe1de3ba Review comments
* 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
2017-07-14 15:21:46 +01:00
Shams Asari
ae01d658b6 Renamed FlowSessionException to UnexpectedFlowEndException 2017-07-14 15:14:54 +01:00
szymonsztuka
05327f3826 decouple Exposed (#1028)
Exposed library decoupled from transaction management and JDBC connection creation for Hibernate and ReQuery
2017-07-14 14:39:59 +01:00
Katelyn Baker
86902e6356 Review comments
* 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
2017-07-14 10:40:48 +01:00
Katelyn Baker
5ab26dd275 Update to account for nullability awareness in the carpenter 2017-07-14 10:38:29 +01:00
Katelyn Baker
c29673a4a4 Tidy up 2017-07-14 10:35:33 +01:00
Katelyn Baker
4dd37f009e Integrate with the carpenter now it's in core 2017-07-14 10:35:33 +01:00
Katelyn Baker
9ab6a72ea8 Carpenter bug fixes
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
2017-07-14 10:35:33 +01:00
Katelyn Baker
b4a62722fc Add recursive dependency resolution to schema generation
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
2017-07-14 10:35:33 +01:00
Katelyn Baker
ce172887d0 Unit Tests for the amqp -> carpenter schema
Squahed commit mesages:
	* Better tests
	* WIP
	* WIP
2017-07-14 10:35:00 +01:00
Katelyn Baker
e48c1c1689 Merge pull request #1042 from corda/carpenterBeans
Fix toString generated method that breaks Introspection for BEANS
2017-07-13 18:40:24 +01:00
Shams Asari
a49baddd4b Moved KeyStoreUtilities out of core and into node 2017-07-13 16:54:30 +01:00
Katelyn Baker
0d0a6d7966 Fix toString generated method that breaks Introspection for BEANS
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
2017-07-13 13:32:31 +01:00
Shams Asari
e93cdf29f8 Moved the core flows into net.corda.core.flows 2017-07-13 13:27:11 +01:00
Shams Asari
fa4577d236 Cleaned up NonEmptySet and expanded its usage in the codebase 2017-07-13 12:32:33 +01:00
Patrick Kuo
78ecff7933 Added composite key provider for storing composite keys in keystore (#1006)
* Add unit tests around decoding composite keys

(cherry picked from commit 9ccdd8e)

* Start writing a Composite signature scheme

(cherry picked from commit 72ac3a5)

* Composite key serialisation

* refactoring

* * Address PR issues

* * Address PR issues

* * Address PR issues

* * Address PR issues

* fix up after rebase
2017-07-12 12:13:29 +01:00
Konstantinos Chalkias
d52b0e5db9 NodeAndWeight deterministic comparator (#1003)
NodeAndWeight deterministic ordering by comparing hashes of public keys when required.
2017-07-11 10:18:22 +01:00
Katelyn Baker
5b78863e57 Merge pull request #942 from corda/kat-carpentty
Add array support to the class carpenter
2017-07-10 17:24:28 +01:00
Katelyn Baker
fd3a827438 Annotation testing 2017-07-10 11:50:24 +01:00
Shams Asari
f718acb939 Moved CordaException.kt to base core package 2017-07-10 10:36:59 +01:00
Shams Asari
fb0a043485 Moved dummy contracts to test-utils 2017-07-07 15:16:29 +01:00
Andrzej Cichocki
cefa14507a Retire HostAndPort (#962)
* Don't attempt to parse a resolved InetSocketAddress toString
* A mock node isn't reachable via an address
2017-07-07 15:11:07 +01:00
Shams Asari
8f1529b863 Moved ByteArrays.kt to core.utilities 2017-07-06 17:58:18 +01:00
Shams Asari
fc97fb2368 Removed DeserializeAsKotlinObjectDef interface as serialisation of Kotlin objects is now handled automatically 2017-07-06 15:57:20 +01:00
Katelyn Baker
81b84ebf5c Review comments
Name Exceptions <blah>Exception
Swap null / non null annotations onto the correct classes
Don't shadow parameters with local vars
Explicitly handle Character Type
2017-07-06 14:09:14 +01:00
Shams Asari
c6e165947b Added background checkpoint checker to make sure they're at least deserialisable 2017-07-06 13:11:46 +01:00
Konstantinos Chalkias
baaef30d5b CompositeKey validation checks (#956) 2017-07-05 16:14:18 +01:00
Shams Asari
2973755bc8 Moved TestConstants.kt from core into test-utils 2017-07-05 11:54:43 +01:00
Ross Nicoll
3176ecfecf Clean up transaction key flow
* Identities returned from TxKeyFlow were backwards, meaning keys were incorrectly assigned to the remote and local identities. Added unit test covering this case and corrected the flow logic.
* Rename TxKeyFlow to TransactionKeyFlow
* Correct registration of transaction key flows
* Move TransactionKeyFlow.Provider into CoreFlowHandlers
* Move TransactionKeyFlow.Request up to the top level class instead of being a class within an object.
* Remove AbstractIdentityFlow and move the validation logic into individual flows to make it clearer that it's registering the received identities.
* Cash flows now return the recipient identity instead of full identity lookup, as this is what
the caller actually needs and simplifies a lot of cases.
2017-07-05 11:39:08 +01:00
Joel Dudley
65f385953f Changes the name of the addTimeWindow method to setTimeWindow. 2017-07-05 10:57:18 +01:00