Commit Graph

1149 Commits

Author SHA1 Message Date
Andrius Dagys
a60ccded75 Minor: Add a test to ensure "identical" issue transactions have different ids (#1145)
* Add a test to ensure identical issue transactions have different ids

* Fix a PMT test
2017-08-01 11:42:36 +01:00
Andrius Dagys
9eb1a0c9d5 Add a test for notary change transaction updates in the vault.
Fix a minor related issue with update type propagation.

Add static NoNotaryUpdate object

Added isEmpty check to Vault.Update
2017-07-31 16:25:21 +01:00
Shams Asari
4a600121cc Removed deprecated methods in DataFeed and deprecated feed-based methods in CordaRPCOps 2017-07-31 15:11:00 +01:00
Andrius Dagys
6490638ee4 Remove availableComponents override from WireTransaction – the overridden version excludes privacy salt 2017-07-31 14:31:17 +01:00
Andrius Dagys
4ca8b8d681 Remove type-specific transaction builder. Normal transactions should use TransactionBuilder and notary change transactions are created directly. 2017-07-31 14:31:17 +01:00
Andrius Dagys
59edd6f9ae Remove type property from transactions 2017-07-31 14:31:17 +01:00
Andrzej Cichocki
92a056f869 Remove some low-hanging Guava from core/main (#1048) 2017-07-31 13:27:48 +01:00
Konstantinos Chalkias
36b50aab2d Nonce per tx component (#1125)
Add salt to wire tx and nonces to tx components
2017-07-31 12:19:47 +01:00
Patrick Kuo
3a63f0c606 * remove x500 name validation when loading config file (#1137)
* added x500 name validation in Network registration.
* fix for github issue #1130
2017-07-28 16:18:49 +01:00
Katelyn Baker
1f71a6aed2 Merge pull request #1129 from corda/kat-allowCarpenterToCarpentSeiliasedInstancesOfItself
Don't blindly add SimpleFieldAccess as interface to carpented classes
2017-07-28 11:48:22 +01:00
Katelyn Baker
054c23376c REVIEW COMMENT FIXES
- Fix up punctuation on a comment
2017-07-28 11:14:46 +01:00
mkit
197e627970 Merge pull request #1053 from corda/kit-getServiceOf
Extending NetwokMapCache with a convenience method for by type servic…
2017-07-27 17:23:54 +01:00
Katelyn Baker
2a716b4421 Removing spurious debug statement from tests 2017-07-27 16:15:06 +01:00
Michal Kit
818f8a5f77 Addressing review comments 2017-07-27 16:12:14 +01:00
Michal Kit
66d6c2b44e Extending NetwokMapCache with a convenience method for by type service retrieval 2017-07-27 16:12:13 +01:00
Katelyn Baker
75a8e4d610 Merge pull request #1128 from corda/kat-serialiseNullableChars
Serialising null chars was broken
2017-07-27 15:07:26 +01:00
Katelyn Baker
3fd4baa9b2 Review comments:
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
2017-07-27 14:34:36 +01:00
Katelyn Baker
337ccd47b5 Don't blindly add SimpleFieldAccess as interface to carpented classes
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
2017-07-27 12:13:47 +01:00
Katelyn Baker
06a8a4bada Serialising null chars was broken
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
2017-07-27 12:08:03 +01:00
Katelyn Baker
981987b2b7 Remove spurious comment line
Just a little tidyup since it was decided we didn't want these things
in the code base and this one must've slipped through the cracks
2017-07-27 11:56:11 +01:00
Curtis Stanford
c721316d67 changed the ServiceLoader.load call to use the class loader used to load the DefaultKryoCustomizer class instead of the default of using the thread context loader. This allows apps that use custom class loader hierarchies to use corda jars. All tests still pass 2017-07-27 10:42:44 +02:00
Andrius Dagys
4487408526 Refactor notary change mechanism (#1019)
* 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
2017-07-27 08:32:33 +01:00
Mike Hearn
a9a50ce8f3 Add generics to Vault.Update 2017-07-26 18:30:59 +02:00
Matthew Nesbit
b4ca0cdde9 Remove getCashBalances first part
More removal of getCashBalances

Get rid of duplicated code

Move onto new getCashBalance extension methods

Move onto new getCashBalance extension methods

Correct balance query code

Address PR request comments

Address PR request comments

Address PR request comments
2017-07-26 15:00:03 +01:00
Katelyn Baker
96496fdeb5 REVIEW COMMENTS
Remove the recursive call from directly inside the string builder
2017-07-25 17:05:14 +01:00
Katelyn Baker
b8ae03410d Ensure typename is calculated correctly for nested arrays
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
2017-07-25 15:41:51 +01:00
Katelyn Baker
0ca1500422 Review Comments 2017-07-25 10:39:18 +01:00
Katelyn Baker
c63ed76a66 Complete tests for all prim array types
Remove the case for bytes as those do work with the existing code
2017-07-25 10:17:57 +01:00
Katelyn Baker
f8116febad Arrays of unboxed primitives don't work 2017-07-25 09:18:03 +01:00
Shams Asari
407b467f67 Moved the majority of the contents of Utils.kt into either InternalUtils.kt or KotlinUtils.kt.
What remains is being dealt with in another PR.
2017-07-24 19:25:56 +01:00
Shams Asari
800f710fbb Generified Command so that it's more easier to use when querying from LedgerTransaction 2017-07-24 15:33:41 +01:00
Andrius Dagys
d2eb5507f9 Refactor transaction serialization caching (#1078)
* 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
2017-07-24 14:48:39 +01:00
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
Shams Asari
a485bbada8 Moved ThreadBox into core.internal 2017-07-21 18:01:29 +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
6f7794ac93 Rewrote the doc for TimeWinow to make it clearer 2017-07-20 15:36:47 +01:00
Ross Nicoll
29ff4a7ef6 Stop logging entire result from a fiber, as it can be very large 2017-07-20 15:28:09 +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
97e0c3c4c2 Review Comments 2017-07-19 15:19:50 +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
2778e294f3 FiberBox and RetryableException removed as they're not used 2017-07-18 15:14:35 +01:00
Shams Asari
b0c299707b Moved DeclaredField utility to internal and expanded its use 2017-07-18 14:33:09 +01:00
Clinton
0ccfae252f POMs generated by publishing are now correct. (#1055)
* 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.
2017-07-18 12:34:56 +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
josecoll
65ce5fec4b Fixed Vault Query over RPC using custom attributes. (#1066)
* 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.
2017-07-17 18:20:02 +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
Matthew Nesbit
7d1d5cc0f8 Merge pull request #1050 from corda/mnesbit-services-in-separate-files
Put Services.kt in separate files
2017-07-17 14:29:01 +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
Ross Nicoll
b7ee7d42a5 Enable anonymisation in integration testing tutorial
Enable anonymisation in integration testing tutorial, and as a requirement fix a bug where the counterparty anonymous
identity was not registered by `TransactionKeyFlow`.
2017-07-17 10:24:20 +01:00
Ross Nicoll
dfbf06a66d Flow cleanup
* 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
2017-07-17 10:24:20 +01:00
Matthew Nesbit
7a06d941c4 Put Services.kt in clear files, so that at a glance people can see what public services there are.
Fix include

Correct doc links after code movement
2017-07-17 09:34:07 +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
Mike Hearn
a56540a3d6 Fix support for large attachments by de-batching tx/attachment fetch. This is a workaround until the upstream Artemis large message streaming bugs are fixed. 2017-07-14 18:21:33 +01:00
Mike Hearn
2cbdb719c6 Minor: move some test functions for making zips out of the global namespace. 2017-07-14 18:21:33 +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
d76c1e75a4 Carpenter / amqp syntesis tidyup
- squashes a lot of WIP / rebase / code reformat commits
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
4cbf31681b Initial work towards integrating the serializer with the carpenter
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
2017-07-14 10:28:36 +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
5438e82e68 Merge pull request #1029 from corda/kat-makePutObjectExtensible
Make serialise putObject function an open function
2017-07-13 16:38:55 +01:00
Katelyn Baker
056811845b Review Comments - rename putObject to writeSchema 2017-07-13 14:23:08 +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
Konstantinos Chalkias
ce06ad3878 Remove DigitalSignature.LegallyIdentifiable
Remove DigitialSignature.LegallyIdentifiable
2017-07-13 11:24:33 +01:00
Ross Nicoll
773aa28873 Clean up IssuerFlow
* 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
2017-07-13 11:23:56 +01:00
Shams Asari
7eed258bcb Fixed incorrect package declarations in CommonSchema and VaultSchema 2017-07-12 20:04:28 +01:00
Shams Asari
6e570b4d65 Moved dummy stuff from core into test-utils 2017-07-12 18:11:57 +01:00
Katelyn Baker
534f60dc57 Make serialise putObject function an open function
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
2017-07-12 14:37:02 +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
josecoll
5f7b8f6ec3 Vault Query Pagination simplification (#997)
* Pagination improvements (fail-fast on too many results without pagination specification)
* Fix incorrectly returned results count.
* Performance optimisation: only return totalStatesAvailable count on Pagination specification.
* Changed DEFAULT_PAGE_NUMBER to 1 (eg. page numbering starts from 1)
* Changed MAX_PAGE_SIZE to Int.MAX_VALUE
* Fixed compiler WARNINGs in Unit tests.
* Fixed minimum page size check (1).
* Updated API-RST docs with behavioural notes.
* Updated documentation (RST and API);
2017-07-12 09:53:15 +01:00
Katelyn Baker
057fa0443b Remove debug println that snuck past code review 2017-07-11 14:42:22 +01:00
Shams Asari
7caee508ec Refactored ErrorOr into Try, with Success and Failure data sub-classes, and moved it into core.utilities 2017-07-11 12:10:38 +01:00
Patrick Kuo
7e8de79848 Legal name validation for X500Name (#983)
* * Legal name validation for X500Name while loading from config file.

* * Removed unintended changes.
2017-07-11 12:09:30 +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
josecoll
c81ef7eb93 Vault Query Sort by StateRef (or constituents: txId, index) (#990)
* Provide sorting by state reference (and individual constituents of: txId, index)

* Fixed formatting.

* Updated import following rebase from master.

* Updated import following rebase from master.
2017-07-10 12:49:00 +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
Andrzej Cichocki
d2869e4f45 Refactor then/success/failure (#984)
to make ListenableFuture replacement less fiddly.
2017-07-07 15:50:50 +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
7822118835 Moved random63BitValue() to CryptoUtils 2017-07-07 12:19:55 +01:00
Shams Asari
984fbd8995 Moved loggerFor and other useful Kotlin extensions into KotilnUtils.kt and moved LogHelper into test-utils 2017-07-07 00:14:20 +01:00
Shams Asari
8f1529b863 Moved ByteArrays.kt to core.utilities 2017-07-06 17:58:18 +01:00
Katelyn Baker
c1cd7d6b79 Take out blanket import of Character TYPE 2017-07-06 17:03:29 +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
Shams Asari
8fc76b3803 Moved VersionInfo out of core and into node 2017-07-06 14:31:43 +01:00
Joel Dudley
3063debd98 Moves to builder syntax for TxBuilder. Adds attachments and time-windows to withItems. 2017-07-06 14:23:43 +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
Shams Asari
54aa4802f9 Clarifying the need for a single Party c'tor for InitiatedBy flows 2017-07-06 12:31:22 +01:00
Shams Asari
182c9cceb5 Cleaned up the QueryCriteria API to be more Java friendly 2017-07-06 11:08:54 +01:00
josecoll
44f57639d2 Vault Query Aggregate Function support (#950)
* Partial (ie. incomplete) implementation of Aggregate Functions.

* Completed implementation of Aggregate Functions (sum, count, max, min, avg) with optional grouping.

* Completed Java DSL and associated JUnit tests.

* Added optional sorting by aggregate function.

* Added Jvm filename annotation on QueryCriteriaUtils.

* Added documentation (API and RST with code samples).

* Incorporating feedback from MH - improved readability in structuring Java and/or queries.

* Remove redundant import.

* Removed redundant commas.

* Streamlined expression parsing (in doing so, remove the ugly try-catch raised by RP in PR review comments.)

* Added JvmStatic and JvmOverloads to Java DSL; removed duplicate Kotlin DSL functions using default params; changed varargs to lists due to ambiguity

* Fix missing imports after rebase from master.

* Fix errors following rebase from master.

* Updates on expression handling following feedback from RP.
2017-07-06 10:57:59 +01:00
Konstantinos Chalkias
baaef30d5b CompositeKey validation checks (#956) 2017-07-05 16:14:18 +01:00
Katelyn Baker
32543021c9 Review comments and fix warnings 2017-07-05 14:26:03 +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
Katelyn Baker
7d8d17ac08 Small tidyup 2017-07-05 11:05:27 +01:00
Joel Dudley
65f385953f Changes the name of the addTimeWindow method to setTimeWindow. 2017-07-05 10:57:18 +01:00
Katelyn Baker
6dc7f694e4 Add explicit support for nullable types
Remove prohibition against non string object classes such as arrays

Squashed Commmits:
	* Tidyup whitespace
	* WIP
	* Review Comments
	* WIP - adding concept of nullabltily into the carpenter
	* Add explicit nullable and non nullable fields
	* Rebase onto master, fix package names in carpenter
2017-07-05 10:47:26 +01:00
Matthew Nesbit
7eaac8a306 Merge pull request #968 from corda/mnesbit-tidy-test-classes
Move test classes out of api namespaces
2017-07-05 10:20:03 +01:00
josecoll
f732d2cefe FIX Vault Query defaults to UNCONSUMED in all QueryCriteria types (#958)
* Fix https://github.com/corda/corda/issues/949 by providing a default StateStatus argument to all QueryCriteria types.

* Abstracted Common Criteria into its own abstract data class + associated visitor.

* Incorporating feedback from RP PR review.
2017-07-05 10:01:35 +01:00
Matthew Nesbit
3ef5c39633 Put test classes into clear namespaces, so that they don't pollute the API. 2017-07-05 09:14:22 +01:00
Katelyn Baker
88a8eabd60 Merge pull request #946 from corda/carpenterTestingBootstrap
Add secondry deserializer to return amqp envelope
2017-07-05 08:48:07 +01:00
Katelyn Baker
a33d5dcd2f Add Tests to class name 2017-07-04 20:24:00 +01:00
Shams Asari
46e23b7716 Clean up of ServiceHubInternal, including how it's created in AbstractNode 2017-07-03 17:05:36 +01:00
Katelyn Baker
56402c744a Merge pull request #955 from corda/kat-carpenterMoveToCore
Move carpenter into core
2017-07-03 16:53:03 +01:00
Joel Dudley
7df8c50167 Adds helper methods to grab a LedgerTx or verify a SignedTx. Deprecates builder signing methods. 2017-07-03 15:53:48 +01:00
Katelyn Baker
88ed35636c Fix mis-move 2017-07-03 15:04:51 +01:00
Katelyn Baker
f11f17e2aa Move carpenter into core 2017-07-03 14:42:59 +01:00
Katelyn Baker
fcba32700c Review comment changes 2017-07-03 12:12:28 +01:00
Katelyn Baker
04d7432622 Add secondry deserializer to return amqp envelope
Useful for testing the carpenter by giving access to a cosntructed
envelope rather than manually building one every time
2017-06-30 14:12:36 +01:00
Mike Hearn
82f68f212a Minor: add another emoji, import a couple of changes for Enterprise 2017-06-30 13:06:46 +01:00
Shams Asari
a08f701dc5 Removed the StorageService and puts its components directly into the service hub 2017-06-30 09:37:29 +01:00
Andrius Dagys
00b272906a Decouple notary implementations from AbstractNode. Allow custom notaries to be provided via CorDapps. 2017-06-29 18:05:44 +01:00
Ross Nicoll
083b8265b5 Restructure Crypto to use ASN.1 algorithm identifiers
Remove use of Sun internal APIs and algorithm identifiers (which are incomplete and non-standard) in Crypto. Also eliminates uncertainty about which signature scheme is being used (and therefore iterating through several to find the correct one).
2017-06-29 14:36:39 +01:00
Rick Parker
5a45459b9d AMQP serialization part 3: some custom serializers, integration with Kryo (disabled) (#859) 2017-06-29 14:03:41 +01:00
Ross Nicoll
b791530b28 Correct trackBy() call
Correct trackBy() call on vault service, which should call _trackBy() but previously called _queryBy()
2017-06-29 12:13:33 +01:00
Ross Nicoll
1a4965c294 Change CashIssueFlow to use anonymous identity
* Add functions for:
    * Retrieving nodes via their legal identity
    * Filtering a set of public keys down to those the node has corresponding private keys for
* Modify contract upgrade flows to handle identifying participants after an anomymisation step
* Correct terminology: "party who" -> "party which"
* Modify CashIssueFlow and CashPaymentFlow to optionally use an anonymous identity for the recipient.
2017-06-28 13:47:50 +01:00
Andrzej Cichocki
e5395fe1b7 Enforce node death on failure to register with network map (#905)
* Give up polling when result future cancelled
2017-06-28 12:07:53 +01:00
Patrick Kuo
c3ca2744aa Replace Vault.PageAndUpdates with DataFeed data class (#931)
* Replace kotlin Pair with DataFeed data class

* remove unintended changes

* Replace Vault.PageAndUpdates with DataFeed data class

* Remove PageAndUpdates
2017-06-28 11:29:14 +01:00
Patrick Kuo
e02c37c06d Replace kotlin Pair with DataFeed data class (#930)
* Replace kotlin Pair with DataFeed data class

* remove unintended changes

* minor fix

* address PR issues
2017-06-28 11:06:06 +01:00
Andrzej Cichocki
0aadc037ef Make logging available in IntelliJ between gradle clean and assemble (#929)
* Enforce absence of node from client rpc smokeTest classpath
2017-06-28 09:54:09 +01:00
Katarzyna Streich
58da76c052 Network map redesign: Change field types in NodeInfo, move away messaging data from NodeInfo (#921)
* First stage of changing fields in NodeInfo.

Part of work related to NetworkMapService upgrade. Create slots for
multiple IP addresses and legalIdentities per node.

* NodeInfo stores HostAndPort.

Move information specific to messaging layer away from NodeInfo.
Only HostAndPort addresses are stored. Add peer name - peer handle
mapping to MockNetwork to reflect that change.
2017-06-27 18:14:51 +01:00
Ross Nicoll
14068f1b96 Enforce certificate constraints on all identities
* Enforce that the identity service must always have a root CA specified, which all identities have
certificates signed by (or intermediaries of). Also adds a certificate store to the identity service
for help building/verifying certificate paths.
* Add a certificate store for the CA certificate and intermediaries
* Use the certificate factory directly to build paths rather than assembling them via an interim
API call. After reducing the complexity of the utility API, it's replacing two lines of code,
at which point it seems better to make the behaviour clearer rather than having a function
hide what's actually going on.
2017-06-23 15:18:13 +01:00
josecoll
1866f6ff7f Align CordaRPCOps Vault Query API's for Java/Kotlin with VaultQuery service equivalents. (#914)
Added Kotlin extension functions for ease of use in simplest case.
Added missing Java contractType class (previously was forced cast of ContractState::class)

Fixed generic typing.

Addressed items raised in SA PR review.

Removed 2 blank lines.

Fixed generics typing.

Updates RST doc and grouped API helpers accordingly.
2017-06-23 14:35:55 +01:00
Konstantinos Chalkias
61a24897fe deriveKeyPair renaming 2017-06-23 13:48:21 +01:00
josecoll
f8ad5c9d10 Vault Query Service JPA implementation (#840)
* Vault Query Service API implementation using JPA Hibernate

Added queryBy(QueryCriteria) Vault API and Junit tests.

Minor cosmetic API changes following rebase.

Fixes following rebase from master

Upgraded to requery 1.3.1

WIP - removed 'latestOnly' from LinearStateQueryCriteria

WIP - CommercialSchemas V2, V3, V4 testing

WIP - sort out generics handling.

WIP - most general queries completed.

WIP - join queries, contractStateType derivation

WIP - refactoring Requery

WIP - refactored VaultService to extract a VaultQueryService interface (and associated Requery implementation).

WIP - HibernateVaultQuery implementation

WIP - Re-structured all Schema definitions (requery/jpa) and make Hibernate Config reusable.

WIP - Multi-version schema testing, hibernate query testing.

WIP - Custom Criteria and Fungible Criteria impl & testing.

WIP - Kotlin Comparable Generics error

WIP - Party queries all working now

WIP - All VaultQueryTests now working (refactored for AND / OR composition)

WIP - added schema registration in CordaPluginRegistry to enable custom vault queries on arbitrary schemas.

WIP - added new default Sort NULL order to be NONE + added lots more tests for Logical Operator testing.

Mostly identity fixes following rebase from master.

Exception handling and public API cleanup in prep for PR.

Additional tests for Logical Operators; additional tests for NULLS sort ordering; additional logging;

Additional parser to handle Nullable attribute values; added Unary and Collection logical expression handlers

Lots of cleanup: participants; trackBy interfaces; additional fungible tests; parser cleanup and improved support for Java

Removed all traces of Requery implementation.

Further minor cleanup and Junit test fix.

Final identity and schema related identity clean-up.

Revert unrelated changes.

PR review updates: blank lines, isRelevant.

Fixed wiring of updatesPublisher for dynamic trackBy queries.

PR review changes: multi-versioned schema samples and associated dummy contracts moved to test packages.

Fixed problem with sorted queries (not specifying any filterable criteria).

PR review: minor updates to address RP comments.

Typesafe custom query criteria

Cleanup: remove redundant tests.

Further clean-up and make all Java test work successfully.

Remove debugging print statements.

Rebased from master - changes required due to DealState module change.

fixed broken assertion caused by DealState ordering change (different package)

Fixed transaction demarcation issue causing "java.lang.IllegalStateException: Was not expecting to find existing database transaction on current strand"

trackBy() now filters on ContractType and StateStatus (CONSUMED, UNCONSUMED, ALL)

Added tests to exercise RPCOps trackBy and queryBy (RPC smoke test and CordaRPCOps)

Added additional @CordaSerializable annotations.

Updated documentation and referenced sample code.

Added deprecation annotations.

Re-added missing deprecation annotation.

Hibernate debug logging is now configurable and disabled by default.

Introduced common Sort attributes based on the node schemas.

Completely removed NULL_HANDLING sort parameter as this is not supported in JPA.

Revisited and fixed usage of @CordaSerializable.

* Minor fix following rebase from master.

* Remove blank line as per RP PR feedback request.

* Minor Java documentation and example clean-up.

* Disable BFT Notary Service tests.
2017-06-22 10:35:49 +01:00
Ross Nicoll
19ff72a411 Correct ISO country code in names 2017-06-21 14:04:22 +01:00