Commit Graph

1970 Commits

Author SHA1 Message Date
Andras Slemmer
80a5e7ab81 Add flow state machine extension tutorial 2018-07-12 15:30:23 +01:00
Chris Rankin
7f42a9b48c
ENT-1565: Remove Guava code from core. (#3569)
Remove Guava code from core.
Note that forcing this project to use Guava `$guava_version` throughout breaks SimmValuationTest.
2018-07-12 14:52:44 +01:00
Katarzyna Streich
b275f4349a
ENT-1968: Add RPC for refreshing network map cache (#3552)
ENT-1968: Add RPC for refreshing network map cache
2018-07-12 13:40:33 +01:00
Shams Asari
f4a248f81f
Made CashSelectionTest a unit test by using mock network. (#3570)
Also includes adding a default value of emptyList() to InternalMockNetwork.cordappPackages
2018-07-12 11:55:51 +01:00
Stefano Franz
9503c9684e
CORDA-1747 - Client RPC classloader and Java Generics fixes (#3553)
* fix for spring boot rpc and  it work with deterministic serialization

* really really fix tests

* up log level

* reenable allWarningsAsErrors
2018-07-11 13:28:01 +01:00
Dan Newton
7b4ace16e1 Remove duplicated code between PersistentIdentityService and InMemoryIdentityService (#3428) 2018-07-10 08:35:14 +01:00
Michele Sollecito
54161a630a
[CORDA-1659]: Improve handling/logging of failed address binding. (#3498) 2018-07-09 18:45:20 +01:00
Michal Kit
408cc68c65
CORDA-1715 Ordering the X500 name for the CRL extension of the TLS certificates (#3515)
* CORDA-1715 Ordering the X500 name for the CRL extension of the TLS certificate

* Addressing review comments

* Addressing review comments - round 2

* Throwing an exception on incorrect TLS CRL issuer configuration

* Changes after the redesign decisions

* Small refactoring
2018-07-09 13:45:38 +01:00
Chris Rankin
5106b01832
CORDA-1699: Restore binary compatibility for UniqueIdentifier class. (#3505)
* Update JarFilter to remove certain annotations from primary constructors.
* Enhance unit tests for deleting constructors.
* Update the documentation to explain how to handle non-deterministic default
constructor parameters.
* Reduce the base logging level of SanitisingTransformer to DEBUG.
* Simplify the execution of repeatable ClassVisitors.
* Simplify Gradle usage slightly.
* Add test for deterministic UniqueIdentifier.
* Update README to cover handling default parameters.
2018-07-05 16:14:56 +01:00
Chris Rankin
02978fc174
Resolve warnings for Kotlin ByteArray. (#3521) 2018-07-05 13:00:29 +01:00
Tudor Malene
2ab5a4cf12
CORDA-1392 Make Hibernate entities non-Serializable (#3458)
* CORDA-1392 Make Hibernate entities non-Serializable

* CORDA-1392 Make Hibernate entities non-Serializable - fix api

* CORDA-1392 Fix determinise

* CORDA-1392 Add changelog entry

* CORDA-1392 Address code review changes
2018-07-05 09:37:30 +01:00
Shams Asari
244167d3e9
Enabled warnings as errors (#3514) 2018-07-04 17:17:27 +01:00
Chris Rankin
7839d78338
CORDA-1704: Suppress ProGuard's "note" output (#3499)
* Reduce ProGuard output for kotlin-metadata artifact.
* Configure ProGuard not to display "notes" about potential configuration issues. Keep notes for the "checkDeterminism" steps, though.
* Also resolve some of the issues that we would now be ignoring.
2018-07-04 09:15:54 +01:00
Shams Asari
eee2563bfa
CORDA-1660: Wiring up the CordaRPCClient class loader to the p2p serialisation context. (#3454)
This is to allow the standalone shell to be able to receive WireTransactions containing Cash.State objects.
2018-06-27 17:02:35 +01:00
Joel Dudley
968fcc718a
Improve participants JavaDocs. (#3429)
* Improve participants JavaDocs.

* Wording consistent with terminology.
2018-06-27 09:39:56 +01:00
Shams Asari
b97af477b2
CORDA-1603: Class carpenter able to synthesis Cash.State objects (#3400)
This requires the class carpenter to be able to run in a "lenient" mode where it permits synthesised classes to implement interfaces with unimplemented methods.
2018-06-25 11:33:37 +01:00
Shams Asari
3046843d40
CORDA-1602: Added cmd line flags to the network bootstrapper (#3419)
The list of CorDapps jars is no longer passed in via the cmd line but is now expected to be placed in the bootstrapped directory.

Ended up being a bit of a refactor to cater for unit testing, and also tidied up the bootstrapper docs.
2018-06-23 11:36:10 +01:00
Andrius Dagys
366af50150 CORDA-1644: Add a more descriptive error message when the notary type is mis-configured. 2018-06-22 17:00:03 +01:00
Chris Rankin
02348a584d
CORDA-1639: Resolve ProviderMismatchException when copying a file into a ZIP. (#3421)
* Resolve ProviderMismatchException when copying a file into a ZIP.
* Review tweaks.
2018-06-22 12:12:31 +01:00
Andrius Dagys
41648d5a15
CORDA-1645: Checkpoint before calling an idempotent sub-flow. (#3399)
* CORDA-1645: Checkpoint before calling an idempotent sub-flow.

When an idempotent sub-flow causes a flow restart, the flow will be
replayed from the last checkpoint before the sub-flow invocation.
However, the logic between the last checkpoint and the sub-flow invocation
may contain side-effects which shouldn't be replayed. Thus we need to persist
a checkpoint just before an idempotent sub-flow is invoked.
2018-06-19 16:42:55 +01:00
Viktor Kolomeyko
d4b982b9fb
ENT-2054: Logging improvements (#3397) 2018-06-19 15:29:35 +01:00
Tudor Malene
1004c0f534
CORDA-1407 Mark method as CordaInternal (#3402) 2018-06-19 14:57:03 +01:00
Tudor Malene
41776ed374
CORDA-1407 Node Explorer - fix total column (#3395) 2018-06-19 09:19:19 +01:00
Chris Rankin
6f149a38c9
ENT-1463: Upgrade to Kotlin 1.2.50 (#3383)
* Upgrade to Kotlin 1.2.50
* Remove methods whose implementations are now inherited.
2018-06-18 15:36:33 +01:00
Chris Rankin
5d42f48966
ENT-1463, ENT-1903: Create core-deterministic and serialization-deterministic artifacts. (#3262)
* Create core-deterministic and serialization-deterministic artifacts:

commit 6f77838fe53d7c9565283c20bbf20f27954b27f6
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue May 29 23:14:23 2018 +0100

    Tidy up Gradle files.

commit 0aa958d31c6342e92ad4d6ab396db6e4a39d4fed
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue May 29 18:11:17 2018 +0100

    Fix EnclaveletTest with deterministic core and serialisation.

commit 732fcf37ee2219dfad373200676241d2fd90aeb3
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun May 27 00:21:42 2018 +0100

    Extend JarFilter to delete typealias declarations.

commit 25dbf30ed62c0c059df07782306b7f760f4cdf73
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu May 24 17:20:41 2018 +0100

    Test deserialising a contract and verifying it using core-deterministic.

commit f7753bf2ab588e084cb8bfaa5fd04f1a18d3aaef
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu May 24 11:25:49 2018 +0100

    Do not remove constructors from Kotlin annotation metadata.

commit 4ddf357b71b29775aa921aca33b4505a402a20e8
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed May 23 16:30:18 2018 +0100

    Add Gradle modules for deterministic rt.jar artifacts.

commit e81f462eefad2369706fd1b8447d426a71a25a03
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed May 23 16:22:04 2018 +0100

    Isolate reference to WeakHashMap - for deletion!

commit eea2458fbec06b28344547fdf9c191a9445fe1e7
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu May 17 18:01:20 2018 +0100

    Extract Kotlin metadata classes from kotlin-compiler-embeddable.
    This fixes a classpath issue that was crashing Gradle.

commit 87fdb938d83f3de6589730343c860fbbc406942e
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue May 15 15:40:31 2018 +0100

    Remove instances of ConcurrentHashMap from AMQP serialization scheme.

commit 9e7773ec32542af4df62269aea3d08e2bd3794f9
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon May 14 23:10:09 2018 +0100

    Fix the checkDeterminism targets to validate JAR.

commit 6066ba89cb0077b17a7bdda79195763e86d100f9
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon May 14 09:16:14 2018 +0100

    Remove private Blob object.

commit 73180723ad437b07ba4ccfd935620c0fa97039ea
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun May 13 23:48:48 2018 +0100

    Ignore unit tests if important system property is not set.

commit abfa0a85aff72007342142a9c66fea3b48f62cc7
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sat May 12 22:18:28 2018 +0100

    Make deterministic tests involving keystores optional.

commit 5866f8f08910cbfa90c006e88482acec467042a5
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri May 11 17:19:57 2018 +0100

    Prevent checked exceptions escaping from JarFilter tasks.

commit e2a41913e00aff2bb9b59b43f0a721c5547a8683
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu May 10 17:18:30 2018 +0100

    Create node-api-deterministic artifact.

commit 804feb4e69be4899f29c0cb1c5be95f58d2c47c9
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu May 10 16:54:46 2018 +0100

    Upgrade to ProGuard 6.0.3

commit ec12b0ed213c1336202012ccf864a49bb8adf727
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed May 9 12:56:15 2018 +0100

    Extend JarFilter to identify extension properties correctly.

commit f0e119e2e3d90db80efb38a316f48b34082c5f49
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sat May 5 13:47:51 2018 +0100

    Construct a better test jar for tasks to unzip/rezip.

commit a13380c0ee29dbdd93419f29c01a904c4a69db15
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri May 4 09:47:32 2018 +0100

    Update JarFilter to Kotlin 1.2.41.

commit b774a1e359fb08077a57e8c3b4f1b314653deec0
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu May 3 16:27:43 2018 +0100

    Convert some JarFilter functions into val properties.

commit b38f9a8f53a3e68e62580e0b8af625b37463cd41
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed May 2 23:05:24 2018 +0100

    Tidy up Gradle test projects.

commit 421c2e6c93c0c7317e7977fd7bf134902920760e
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed May 2 22:12:18 2018 +0100

    Published core-deterministic artifact is actually built by metafix task.

commit 6d7b20a6826e4c04cd252a4ff4d30ceeb9193eb4
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed May 2 16:55:01 2018 +0100

    Always recompute compressed sizes for ZipEntry.

commit 05587234c4f87aeab925b73f7b7fdc22a2d77159
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed May 2 15:14:12 2018 +0100

    Test whether MetaFix task can delete file timestamps from the jar.

commit 9d6bd0d5cf9f05f088d98eaf7399db4cafc64c61
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue May 1 22:15:02 2018 +0100

    WIP - erase timestamps for all jar entries.

commit 4cb4d6213916d752a654d4fa8d22db6fe6e7e9c6
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue May 1 17:39:56 2018 +0100

    Annotate more core elements as @Deterministic/@NonDeterministic.

commit e847c6c1f03665bd0eff228ce242958512155860
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue May 1 17:17:24 2018 +0100

    Update JarFilter so that void methods are stubbed with empty bodies.

commit f53d7b48676f2b3d2b2062bc12591f9966a8db83
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue May 1 16:07:48 2018 +0100

    Rename @DeterministicStub to @NonDeterministicStub.

commit 0c2e7e76587805b72f0270cdbbc067a909abae82
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue May 1 15:57:37 2018 +0100

    Consistency fix for JarFilter log messages about methods.

commit 43a5c342c508fcc690a02b94926cf4153b5eb297
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue May 1 13:25:15 2018 +0100

    Reorganise determinism unit test.

commit 6079d319d20a6c0cb7386bfcf98b675a73bff040
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon Apr 30 23:10:23 2018 +0100

    Allow file timestamps to be thrown away for reproducible builds.

commit 7068f2fcd46d3f600710ccd9312b9d8dc46f1f38
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon Apr 30 21:55:26 2018 +0100

    Declare PlatformSecureRandom as non-deterministic.

commit 3a5b8eff11a7200f48310408442880967260d80e
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon Apr 30 17:48:20 2018 +0100

    Test deleting property initialisers from <clinit> block.

commit a91f75cf8eb813305adcfd962d8931a1b9322915
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun Apr 29 23:34:26 2018 +0100

    Suppress lots of "UNUSED" warnings for test classes.

commit fb09396f14cb6b2b80e80209091afe370cef15ab
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun Apr 29 23:10:13 2018 +0100

    Add crude test for fixing package metadata.

commit 80a9c794bcbc6cbfb7010285c9e94faa9c17310a
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun Apr 29 21:45:28 2018 +0100

    Refactor GradleRunner code into a JUnit Rule.

commit 5615dd6624991af49ae283beb3dfe1223d0f26f3
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun Apr 29 00:55:10 2018 +0100

    Add JaCoCo support to JarFilter plugin.

commit df55b962aa77f170d4183865743a263d11f061b3
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sat Apr 28 16:48:58 2018 +0100

    Allow the executor to iterate the Visitor more than twice.

commit d906e3996b7724528e69fc4abe79c2b59b2f03cb
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sat Apr 28 16:19:52 2018 +0100

    Add tests for deleting static properties.

commit f87120efeeb9b6edd129ca71852d1c1bc3fe7e57
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Apr 27 17:34:39 2018 +0100

    Ensure that SgxSupport.isInsideEnclave is always true for core-deterministic.

commit 85ff9cb17492ae93f0e4f5bbaa2d935e4d776b13
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Apr 27 14:26:14 2018 +0100

    Test deleting field references from constructor byte-code.

commit ac45aa04c60dab71553ddf0ddfc97ecaed6c84af
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Apr 26 22:49:39 2018 +0100

    Add tweak to ClassVisitor code.

commit 70bc232592e8739546e3f0cdb90add29b5953cf8
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Apr 26 18:37:55 2018 +0100

    Declare more Crypto functionality as Deterministic/NonDeterministic.

commit 6ceb49af6b75e90ce8e6d739ca6b012627ed6128
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Apr 26 15:39:41 2018 +0100

    Rewrite constructors not to reference deleted fields.

commit ed1a0e76e68d49531026e130d3c4d4ca56b3e06d
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Apr 26 09:48:38 2018 +0100

    Configure ASM to compute max stack and locals automatically.

commit 0c1a789bf0824b8a18c57a04f4428c678864b76d
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Apr 25 17:30:52 2018 +0100

    Add isConstructor property to MethodElement.

commit acd640db52b2b1051c67067c30414d2035c9d064
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Apr 25 14:59:33 2018 +0100

    Add test cases for deleting singleton objects.

commit 1a1b79ee13f993dd9cfc9ab8f570e96a5f2e3530
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Apr 25 12:18:49 2018 +0100

    Extend JarFilter to delete lazy properties.

commit acea7942ad85107e0deec6bef1a0c9d88329b9c4
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue Apr 24 16:04:48 2018 +0100

    Remove functions for measuring elapsed time.

commit 03cc5c53b5b220ceccf43b0a3a218e84055a2f17
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon Apr 23 18:29:47 2018 +0100

    Modify MetaFixer task to remove deleted nested classes.

commit 281c5c06b69fe4bbc28d41aa46c3cf4b6c625877
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon Apr 23 15:02:54 2018 +0100

    Removing dangling references to deleted nested classes.

commit 8bd44ab76dca21b1198db37a1e574538f99c2555
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun Apr 22 20:15:00 2018 +0100

    Refactor StubbingMethodAdapter to rewrite remaining annotations.

commit 59f7392155fe79c9017af563c4705ef5f486dd6b
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun Apr 22 01:14:59 2018 +0100

    Small tidy-up of property tests.

commit 7696708ddf3370b13ff5ea2727b2e03380792098
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun Apr 22 00:53:28 2018 +0100

    Test backing field when deleting a property.

commit 083d7678ea73fde03be62d1b845654b9ec9c0c9a
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun Apr 22 00:40:45 2018 +0100

    Refactor isFunction() and isConstructor() for Kotlin reflection.

commit cbb5bc30d9fb991d12a8c3775e715b49a2c13abd
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sun Apr 22 00:33:11 2018 +0100

    Ensure that stubbed out functions keep their annotations.

commit 14947aa105cb7c336b6a7cffa875b6add8000c5d
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sat Apr 21 16:11:33 2018 +0100

    Test JarFilter interactions between deleting and stubbing out.

commit 2d2a944f56268a697d110923a73589bf71145011
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Apr 20 16:59:40 2018 +0100

    Annotate more core classes as @Deterministic.

commit a23382ff1930747fa55497fcd8c18e00bf980d4f
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Apr 20 15:48:49 2018 +0100

    Extend JarFilter unit test coverage.

commit af0d3b32c85e23fb7a6c6e9a0639cc0d22a7213f
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Apr 20 14:49:56 2018 +0100

    Enhance JarFilter - also delete methods that use deleted methods/fields.

commit e6cd87e73b5509656faa6879ab8057690c8450ad
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Apr 19 18:40:30 2018 +0100

    Upgrade AssertJ to 3.9.1

commit ab217563de2cb60a690221d1d497247d04486060
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Apr 19 18:20:54 2018 +0100

    Add unit tests for the metadata-fixing task.

commit ddff9a10e8aa6dae81b597ff757edee0125d663f
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Apr 19 09:01:25 2018 +0100

    Refactor Hamcrest matchers into a separate package.

commit afa3f5a825f8127bec262ff0a7ece5af1e0c6dfb
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Apr 18 23:15:05 2018 +0100

    Add unit tests for MethodElement and FieldElement.

commit dd412756bc99ff46083558e6863498ae1493a4b7
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Apr 18 17:06:42 2018 +0100

    Declare exception and MerkleTree classes as deterministic.

commit ce732d2cfb17a8f70a4bc71ccad4d75e68e240c7
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Apr 18 16:04:33 2018 +0100

    Never remove @JvmField properties from companion objects when fixing metadata.

commit c2a5b35b351480c637dc023c07043243b7f16ee5
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Apr 18 10:37:28 2018 +0100

    Rename MetaFix* classes to MetaFixer*.

commit 358916bef7eb9955f3fc7cea9ab08286ab153564
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue Apr 17 16:21:10 2018 +0100

    Extend JarFilter to remove getters/setters along with properties.

commit 0c96a154b89244cdc93c53563aacd40b019182d4
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue Apr 17 13:11:29 2018 +0100

    Extend JarFilter tests for deleting properties.

commit bb63fbacbd46e93eb2dbecca21161968d11fc59e
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue Apr 17 12:28:37 2018 +0100

    Fix determination of CordaException.

commit cb92d47643e1a9c41267e548fc79d077da941b28
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue Apr 17 12:25:06 2018 +0100

    Refactor JarFilter - support deleting @JvmField properties.

commit 349b1a7fe9bec140e1f988e104ec44a8e65745c6
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Apr 13 17:32:07 2018 +0100

    Preliminary Gradle task to remove missing elements from @Metadata.

commit f4564e6661458a317f2ebf0e8ce0fbdeae5e1c30
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue Apr 3 20:46:41 2018 +0100

    Upgrade to ProGuard 6.0.2

commit c937109398c242bb09d0157cec8debded6012a1b
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 29 12:04:52 2018 +0100

    Refactor internal Kotlin dependencies into MetadataTransformer.

commit 899a315a2684986249c88f647784f88235205530
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 29 09:48:05 2018 +0100

    Upgrade to ASM 6.1.1.

commit 592e1ced7d36f0838c634cb413af9d0b4b8b516b
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Sat Mar 24 13:37:17 2018 +0000

    Remove unwanted Kotlin artifacts from the JarFilter's classpath.

commit 4591d54c247fc9937f202306e2a5ec872fb2dbea
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 23 10:04:49 2018 +0000

    Tidy up output from Kotlin reflection matchers.

commit fb78d898ef1428210bbb030f43b9a2024f1fdeb1
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 23 09:42:38 2018 +0000

    Remove lateinit field from ClassTransformer.

commit c08ecb2139550ea1bc6ab6cebb3ab180e037c40a
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 22 18:25:54 2018 +0000

    Remove non-deterministic DelegatingSecureRandom* classes from core-deterministic.

commit 7c3e8e794ec868ff4385661ff68081f2bc5ba09c
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 22 18:24:48 2018 +0000

    Stop removing @kotlin.Metadata annotations from core-deterministic.

commit 16ce8ceee91793efb8a100e29d1770f23cf02643
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 22 15:42:58 2018 +0000

    Add (C) headers for new files.

commit 6146b0b47d9e9f46873506711cbef60477aea655
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 22 12:43:43 2018 +0000

    Log synthetic classes, but do not adjust @Metadata.

commit 016b2be942533790413e28d50d6dc8b104a4de5c
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 22 12:08:36 2018 +0000

    Add @Metadata support for Kotlin multi-file classes.

commit 9eeed582a083c34a0580f1049cad42d7dc8812a1
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 22 10:38:09 2018 +0000

    Add JarFilter unit tests for @kotlin.Metadata updates.

commit eb71cb3d76a45fa15eedf478e6172e33a8127305
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Mar 21 15:29:01 2018 +0000

    Update JarFilter plugin to remove references to deleted constructors, functions and fields from @kotlin.Metadata.

commit c28c099546dd24ab6f158b633e494948fabb6b5e
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 15 18:27:06 2018 +0000

    Tidy up Enclavelet tests slightly.

commit 895dfe659b9ffa6e39b407606876facc153e3128
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 15 18:25:14 2018 +0000

    Annotate more Attachment / Transaction classes as @Deterministic.

commit f5ab283d09a803b9e2e0f465841cd072e9a7040f
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 15 14:21:51 2018 +0000

    Upgrade to ProGuard 6.0.1

commit c7717cc0106f39fec822bce8fbbcf18a75a25c2d
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 15 11:11:34 2018 +0000

    Adjust LedgerTransaction to remove ClassLoader references when deterministic.

commit 5b37fe9f3f716944f2eb3952870d2e9548dc144d
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Mar 14 16:28:41 2018 +0000

    Extra testing for deterministic SecureHash.

commit 01be61676edddf28d4b16a75cff1dd5fe2079c03
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon Mar 12 16:32:05 2018 +0000

    Keep synthetic methods for Kotlin classes.

commit cb01f28089c94457c0498802741dcc742a52eaac
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon Mar 12 14:35:17 2018 +0000

    Add libraries to core-deterministic's runtimeArtifacts configuration.

commit c23ad307596c07a608d6ce3e600fe1b0aee94ef1
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon Mar 12 11:20:35 2018 +0000

    Check that JarFilter's different annotations are all distinct.

commit 4b84451f9d124cba75bb4a1984b9a9d9f60efd17
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 9 17:01:15 2018 +0000

    Update the JarFilter plugin to remove some annotations.
    This is for stripping @kotlin.Metadata from deterministic classes.

commit 72c4740ffdd5fcb9a7828a1324f6632747fe3115
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 9 14:11:16 2018 +0000

    Configure ProGuard to preverify the deterministic JAR.

commit 9fce4724ac3e1cb80f89d38f63a28b39585dfbf9
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 9 14:09:33 2018 +0000

    Update to corda-gradle-plugins 4.0.7-SNAPSHOT.

commit fc46624ea2f1c862c9b2a2064a9007ffdc1b94d8
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 8 18:08:20 2018 +0000

    Allow core-deterministic artifact to be tested and published.

commit 238814ad2d94dd74fd7cbae7dc3b4d1016697850
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Mar 8 14:54:27 2018 +0000

    Since Kotlin 1.2.x, Kotlin artifact dependencies match Kotlin plugin version by default.

commit f81b3772b598995d0df0519512ae1c6b1d4d238b
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Mar 7 13:46:41 2018 +0000

    Update KDoc for @Deterministic annotation.

commit 7a1b0fbe6540958bbc743981a3ba724f0f22ef80
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Mar 7 12:27:22 2018 +0000

    Add (C) headers for JarFilter and deterministic core.

commit 0add901e55a23c898da7c6a3ec0c4273d7555441
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Mar 7 09:30:38 2018 +0000

    Refactor function name for compatibility with corda-gradle-plugins.

commit f37a73dea8969a82ceda48072cb7d393c05a44c7
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue Mar 6 13:57:58 2018 +0000

    Include more contract states in core-deterministic.

commit b2eeb08be90fa1a0739854d0c393a23b8c49aed0
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue Mar 6 11:18:53 2018 +0000

    Remove synchronized section from deterministic ToggleField.

commit 353257e6a04de1447c674f43989e2fc8aecc807a
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 2 15:24:46 2018 +0000

    Extend @NonDeterministic also to target JVM fields.

commit 9dc940c4f9ae8e29e043cdf93634d072373eb030
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 2 15:21:03 2018 +0000

    Add tests for deleting field.

commit 2bf43957ed656c419cbf1a0a0ba48b755b8e8ac9
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 2 14:16:33 2018 +0000

    Tidy up Kotlin lambdas.

commit 45dc150cfc0b7090816036a4f4f3ce7ae5cde79b
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 2 10:27:57 2018 +0000

    Set 'gradle.user.home' for test-kit's GradleRunner. This allows
    it to share the project's module cache, which means that it doesn't
    need to download its own copy of Kotlin over the Internet.

commit d79ffd0b44cc890dc8e0f513e5d5baaeaddb5d50
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 2 00:41:00 2018 +0000

    Remove settings.gradle from tests - it was not the solution.

commit b30fdcd4c2b44370294ae78699b1424e817b13de
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Mar 2 00:28:42 2018 +0000

    Create plugin descriptor using java-gradle-plugin.

commit a9e7cbe51e5d3f0d8efea0501ef4858fd3511cd0
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Feb 28 16:55:53 2018 +0000

    Resolve simple compiler warning.

commit d247524090539a0d708d383f25e9539a6e6ee809
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Feb 28 16:03:19 2018 +0000

    Add local settings.gradle for all unit tests.

commit 031411c71fda98511f9fba6c763cb6d3f74d95eb
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Feb 28 13:58:06 2018 +0000

    Add test filtering interface functions.

commit dcc6055ae01fb9e98bea73befe7a5cf473e27590
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Feb 28 13:45:25 2018 +0000

    Add test for filtering abstract functions.

commit 0c084f96aa4cbf7173f633dd1d4fa6e633cea6a7
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Feb 28 11:26:27 2018 +0000

    Add tests for stubbing static functions out.

commit 3412e3479f09f36e34a33bbd7564bd95b4bbd017
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Feb 28 11:13:35 2018 +0000

    Add tests for deleting static functions.

commit 5d8ce9ce1edbee0020595af99c20268de8c38c5f
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Feb 28 10:50:03 2018 +0000

    Add test for stubbing out a var property.

commit dea60c8252b0bc849845fdeecc28f67817ef77d8
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Feb 28 10:41:13 2018 +0000

    Add test for stubbing a val property out.

commit c69de1b904b496fe146e91eb7e6d138171528b1a
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Feb 28 10:28:13 2018 +0000

    Add tests for stubbing constructors out.

commit 1f791cf6013700689e38b129460eba1d20dc5efa
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Wed Feb 28 00:35:23 2018 +0000

    Add tests for deleting constructors.

commit 55790a8abb3dba50b4a136760c9a21dc1bd214ca
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue Feb 27 18:37:51 2018 +0000

    Add (and fix) test for stubbing a function out.

commit 1f03202197a9e1fe9023848869e0273a05eef3dc
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Tue Feb 27 13:09:55 2018 +0000

    Refactor buildSrc into a multi-module project.

commit 4c937580f40753408b6f29cfc72741b412e4ed3e
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Mon Feb 26 17:15:50 2018 +0000

    Initial unit testing framework for JarFilter plugin.

commit 45afcaa082cb3f7223d42458a28af14c7c02d611
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Feb 23 12:32:04 2018 +0000

    Allow some methods to be stubbed out instead of deleted.

commit c5911ec643739369e138a5b451cafa7c067c4134
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Feb 22 10:31:18 2018 +0000

    ENT-1468: Initial version of the JarFilterTask.

* Refactor deterministic test data to work on Windows.
* Fix JarFilter unit tests on Windows.
* Upgrade JarFilter to ASM 6.2
* Allow core-deterministic, serialization-deterministic to be published to Artifactory.
* Share repository configuration between all JarFilter unit tests.
* Small fixes after review.
* Ensure core-deterministic and serialization-deterministic are published with their dependencies.
* Fix logic for number of JarFilter passes.
* Add README for JarFilter plugin.
* Move JarFilter plugin into the 'net.corda.plugins' namespace.
* Modify JarFilter to update sealed subclasses in @kotlin.Metadata.
* Add Gradle fixes from @Clintonio.
* Annotate TransientClassWhitelist as deterministic.
* Add literalinclude blocks to the deterministic-module docs.
* Fix Kotlin Metadata properly when all nested classes are deleted.
* Small tidy-up for Gradle files.
* Add some KDoc for the JarFilter and deterministic classes.
* Update JarFilter to handle properties with generic return types.
* Remove some uses of Java Reflection from DJVM.
* Rename determinism annotations to @KeepForDJVM, @DeleteForDJVM, @StubOutForDJVM.
2018-06-11 20:34:59 +01:00
Maksymilian Pawlak
c009cbd91a
[CORDA-1468] Properly handle entites where NULLs can be inserted into DB (#3324)
* Allow proper null values on entities which fields can get NULL values.
2018-06-11 13:12:19 +01:00
Andrius Dagys
2558c9dcf7 CORDA-1588: Add an extra check in the attachment resolution flow to prevent duplicate attachment import if multiple transactions with the same attachment are being resolved at the same time. 2018-06-11 11:56:32 +01:00
szymonsztuka
baa6479575
ENT-1712 Warning on cross-reference between JPA entities from different mapped schemas (#3282)
At startup node warns about any MappedSchema containing a JPA entity referencing to another JPA entity from a different MappedSchema. Cross reference between JPA entities across different MappedSchema objects can cause operational issues while evolving one MappedSchema object or migrating it's data. Doc API: Persistence documentation no longer suggests mapping between different schemas.
2018-06-08 10:25:50 +01:00
Shams Asari
f6a23a0216
CORDA-1546: Updated the flow hospital to suspend FinalityHandler if it errors (#3304)
It will re-run automatically from last checkpoint on node restart, allowing the opportunity to resolve the issue, something required when dealing with contract constraint failures.
2018-06-07 16:18:00 +01:00
Andrius Dagys
0978d041a3
CORDA-1494: Re-enable notarisation retries in the new state machine manager (#3295)
* Remove all notion of message level retry.

* Introduce randomness into de-duplication IDs based on the session rather than the flow, in support of idempotent flows.

* CORDA-1494: Re-enable notarisation retries in the new state machine manager.

The original message-based retry approach does not work well with the new
flow state machine due to the way sessions are handled. We decided to move
the retry logic to flow-level: introduce RetryableFlow that won't have
checkpoints persisted and will be restarted after a configurable timeout
if it does not complete in time.

The RetryableFlow functionality will be internal for now, as it's mainly
tailored for the notary client flow, and there are many subtle ways it can
fail when used with arbitrary flows.
2018-06-07 08:45:32 +01:00
Andras Slemmer
e2b4943bbb Observable toposort for transactions (#3027) 2018-06-06 13:58:23 +02:00
Mike Hearn
468c0c7404
CORDA-1349: Docs: improve docs on permissioning, doorman and network map. (#3277)
* Docs: improve docs on permissioning, doorman and network map.

* Add a convenience serialization API for Java users, marked as
internal for now with a TODO to make it public after we start work on
Corda 4.0. Otherwise serializing arbitrary objects to AMQP is awkward.
2018-06-06 13:57:25 +02:00
Joel Dudley
ff8471341f
Removes Log4J from Core. Readds to shell where required. (#3257)
* Removes Log4J dependency from `core`.

* Adds dependency on Log4J directly to shell. Missing colons.
2018-06-04 23:24:36 +01:00
Tudor Malene
9efb1ecfe0
CORDA-1477 add check for code version in checkpoints (#3256)
* CORDA-1477 add check for code version in checkpoints

* CORDA-1477 Comment style

* CORDA-1477 address code review comments

* CORDA-1477 add changelog entry

* CORDA-1477 attempt to fix tests

* CORDA-1477 attempt to fix tests and address code review comments

* CORDA-1477 attempt to fix tests
2018-06-01 13:37:39 +01:00
Shams Asari
34a480d7e3
Move checkPayloadIs out of the public API (#3279) 2018-05-31 17:40:49 +01:00
Shams Asari
7b09795795
CORDA-1383: Cleaned up the JSON format of WireTransaction and SignedTransaction (#3248)
In particular correctly outputs the custom state and command objects in the txs. Also fixed up deserialisation back into the transaction objects.
2018-05-30 16:37:41 +01:00
Konstantinos Chalkias
ac212972ea
[CORDA-1539] Minimum RSA key of 2048 bits on validatePublicKey (#3239) 2018-05-29 17:11:00 +01:00
Maksymilian Pawlak
7d69bc664a [CORDA-1297] Columns nullability (#3112)
JPA/Hibernate entities need to impose the correct NULL/NOT NULL constraints on the database - whatever these correct values actually are.
API change: net.corda.core.schemas.PersistentStateRef fields (index and txId) are now non-nullable. Rationale: The fields were always effectively non-nullable - values were set from non-nullable fields of other objects. The class is used in context of database table Primary Key of for other entities and a database already imposes those columns as non-nullable (even if JPA annotation nullable=false was absent).
2018-05-25 19:03:24 +02:00
Katarzyna Streich
8504b65e7b
ENT-1933: make NetworkParameters serialization compatible (#3234)
* ENT-1933: make NetworkParameters serialization compatible
2018-05-25 17:14:00 +01:00
Rick Parker
59fdb3df67
CORDA-1475 CORDA-1465 Allow flows to retry from last checkpoint (#3204) 2018-05-25 13:26:00 +01:00
Shams Asari
4e0378de9c
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.
2018-05-24 18:26:55 +01:00
Konstantinos Chalkias
52eef5da5b
Replace timestamp with time-window (#3211) 2018-05-24 16:06:33 +01:00
Michele Sollecito
d1e147b1c1
[CORDA-1638]: Audit log of failed transactions MVP. (#3231) 2018-05-24 16:06:14 +01:00
Shams Asari
3136e973a7
CORDA-1511: Kryo only used for node checkpoints and so moved out of serialization module and into node (#3228) 2018-05-24 12:18:07 +01:00
Shams Asari
fb70c4b69c
Marked createComponentGroups as @CordaInternal (#3193) 2018-05-22 11:38:56 +01:00
Michele Sollecito
f0db76d854
Re-enabled commented out test and fixed warnings in Finance. (#3206) 2018-05-21 17:00:30 +01:00
Michele Sollecito
5de2c2aa4b
[CORDA-1264}: Complete obfuscation of exceptions to client side. (#3155) 2018-05-21 13:34:37 +01:00
Tudor Malene
455221629b
CORDA-1343 Make the RPCClient ssl constructors public. Clean up broke… (#3039)
* CORDA-1343 Make the RPCClient ssl constructors public. Clean up broker authentication logic

* CORDA-1343 small fix

* CORDA-1343 cleanup

* CORDA-1343 fixed api changes script

* CORDA-1343 fixed merge

* CORDA-1343 removed unused property

* CORDA-1343 add separate p2p and rpc node users

* CORDA-1343 remove test configuration

* CORDA-1343 fix tests

* CORDA-1343 address core review comments

* CORDA-1343 some documentation and adding createWithSsl method for a haAddressPool

* CORDA-1343 clean up the CordaRPCClient interface

* CORDA-1343 add internal shell test

* CORDA-1343 address code review comments

* CORDA-1343 split the internalShell user from the System Rpc user

* CORDA-1343 fix test

* CORDA-1343 Add warning when certificateChainCheckPolicies is being configured

* CORDA-1343 Address code review changes

* CORDA-1343 fix merge

* CORDA-1343 added test, docs, clarify comments

* CORDA-1343 clean up docs

* CORDA-1343 fix api

* CORDA-1343 fix merge

* CORDA-1343 fix merge

* CORDA-1343 fix merge

* CORDA-1343 fix merge
2018-05-21 13:05:08 +03:00
szymonsztuka
013eb33d7c
ENT-1574 Progress tracker distinguishes steps which were not processed (#3173)
* Progress Tracker doesn't mark as "green tick" a step which hasn't been set in the flow. Steps behind the current step, which were not processed ('an optional step') are now marked distingishly as green crossed sign for shell and as minus sign for ssh.

* Finality Flow sets the current step to NOTARISING only if the actual notarization is performed.
2018-05-18 16:39:55 +01:00
Shams Asari
3cdd908714
Moved the serialisation logic in nodeapi.internal.serialization into its own module: serialization (#3179)
node-api now depends on this module and upcoming changes will use this as well rather than having to depend on node-api.

EnumEvolveTests.deserializeWithRename and EnumEvolveTests.multiOperations are temporarily ignored since their test resources can't be regenerated due to bugs.
2018-05-17 16:18:07 +01:00
Kat Baker
0c3a30edc8 Corda-847 - Remove Kryo for RPC
It's no longer used as we've switched over to AMQP for RPC calls so
remove it from everywhere and only use it for checkpointing

 * Wire up demo bench post Kryo removal
 * Test Fixes
 * rebase and fix tests
 * Test Fix
 * wip
 * revert changes to api now we don't need to add annotations
2018-05-17 12:55:45 +01:00
Kat Baker
f850daa582 CORDA-847 - AMQP RPC
* Client and server support for amqp
 * Observable (and supporting) serialisers
   Unit Tests
 * Fixing tests
 * Test fixes
 * CORDA-847 - Update api doc with additon of @CordaSerializable annotation
 * TestFixes
 * review comments
 * TestFixes
 * Test Fix
 * Test Fix
 * Test Fix
 * Test Fix
 * Test Fix
 * Test Fix
 * TestFix
 * Test Fix
 * Review Comments
2018-05-17 12:53:38 +01:00
josecoll
939e50d999
Vault Fungible Asset Query Criteria: removed incorrect reference in docs. (#2547)
* Removed incorrect reference.

* Removed reference to finance package class.
2018-05-17 11:41:10 +01:00
Andras Slemmer
32aa1bf9d2
Merge pull request #2978 from corda/CORDA-1352/aslemmer-os-killflow
CORDA-1352: Add killFlow
2018-05-15 15:49:27 +01:00
Katarzyna Streich
24fa695ca0
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
2018-05-15 12:10:04 +01:00
Joel Dudley
dce0956f37
Update FlowLogic.kt (#3144) 2018-05-15 09:40:50 +01:00
Michele Sollecito
d027b5b8f2
[CORDA-1472]: Crackdown on warnings. (#3136) 2018-05-14 21:15:52 +07:00
Tudor Malene
543491c7df
CORDA-1461 improve devMode (#3100)
* CORDA-1461 improve devMode

* CORDA-1461 set devMode=true for driver

* CORDA-1461 fix tests and improve UI

* CORDA-1461 Address code review changes

* CORDA-1461 Missing developer emoji

* CORDA-1461 use latest cordform that sets devMode=true

* CORDA-1461 fix test and add driver overrides for notary

* CORDA-1461 fix tests, fix api-scanner version

* CORDA-1461 fix api

* CORDA-1461 formatting

* CORDA-1461 comment style
2018-05-11 17:48:02 +01:00
Mike Hearn
c9e31ecd4b Minor: fix a typo in a warning suppression and operator ordering. 2018-05-11 13:02:40 +02:00
Joel Dudley
ecc0560ebc
Adds a clear error message from progress tracker requirement fails. (#3116) 2018-05-11 10:46:46 +01:00
Viktor Kolomeyko
15e87050c7
CORDA-1393: Make Explorer GUI recover on RPC connection loss. (#3093)
* CORDA-1393: Install `onError()` handler for folding action
or else `ErrorNotImplementedAction` will be invoked which is never a good thing

* CORDA-1335: Improve exception handling in `cleanUpOnConnectionLoss()`

* CORDA-1335: Try to trick the logic to pretend we are running in HA mode to have a chance of re-connecting.

* CORDA-1416: Make `NodeMonitorModel` code react to proxy changing.

* CORDA-1416: Workaround `CordaRPCOps.equals()` calls when listener dispatching change.

* CORDA-1416: Increase re-try interval to allow enough time for server to come back online.

* CORDA-1355: Properly close RPC connection we are moving away from.

* CORDA-1355: Unsubscribe on Error to prevent propagation of it downstream.

* CORDA-1355: For downstream subscribers ignore errors properly. Thanka to @exfalso for the hint.

This fixes: Transaction Updates do not flow after re-connect

* CORDA-1355: Bugfix eliminate duplicating items on "Transactions" blotter after re-connect.

* CORDA-1355: Bugfix eliminate double counting on dashboards.

* CORDA-1355: Bugfix eliminate same parties in dropdowns.

* CORDA-1355: Stop using `SecureHash.randomSHA256()` for painting widget icon.
Instead use combined SHA hash such that icon represents the whole population of trades.
That way two transactions blotters can be compared by a single glimpse at corresponding icons.

Also minor refactoring.

* CORDA-1416: Make RPC re-connection faster/more robust.

* CORDA-1416: Properly announce thet Proxy may not be available during re-connect and prevent UI crashing.

* CORDA-1416: Disable UI until RPC proxy is available.

* CORDA-1416: Correct typo.

* CORDA-1416: Unit test fix.

* CORDA-1416: GUI cosmetic changes.

* CORDA-1416: Correct spaces.

* CORDA-1416: Remove un-necessary overrides in CordaRPCOpsWrapper.

* CORDA-1416: Switch from using `doOnError` to installing an error handler upon subscription.
2018-05-10 15:20:41 +01:00
Chris Rankin
fe88e9907c
ENT-1463: Replace getStackTraceAsString() with Throwable.initCause(). (#3101) 2018-05-09 16:36:17 +01:00
Michele Sollecito
d7ef385cc7
[CORDA-1395] [CORDA-1378]: Control the max number of transaction dependencies. (#3047) 2018-05-09 15:58:18 +07:00
Michele Sollecito
b5e8dc5bd1
[CORDA-1338]: Error with VaultQuery for entity inheriting from CommonSchemaV1.FungibleState - FIX (#3025) 2018-05-04 22:37:56 +07:00
Katelyn Baker
a61aa5d645
CORDA-847 - Pass serialization context down serialization call stack (#3062)
* CORDA-847 - Pass serialization context down serialization call stack

Needed for later work on AMQP RPC where we need to set per-thread
elements on a context. Could use some magic thread local but I'd rather
it was explicit on the stack and thus easier to reason about.

Additionally, now we're passing this around we can make better use of it
in the future

* Test Fix

* Test fixes

* REVIEW COMMENTS / CODE FORMAT

* Fix build issues
2018-05-03 16:09:03 +01:00
Andrius Dagys
3bf1e803d9
Move notary service related classes and interfaces in core to interna… (#2827)
* Move notary service related classes and interfaces in core to internal, since we won't be able to stabilise the APIs for writing custom notary services any time soon (the docs already mention it). I left out the wire protocol related classes so we don't accidentally break it.
2018-05-02 12:21:38 +01:00
Michele Sollecito
5565b3e80d
[CORDA-1411]: Prevent MappedSchema caching from leaking memory. (#3042) 2018-05-01 19:32:29 +07:00
Michal Kit
ab80df342a
CORDA-1319 Adding CRL checking for nodes (#2987)
* Adding CRL support for nodes

* Addressing review comments
2018-04-30 09:26:26 +01:00
Andrius Dagys
efd203e5f3
ENT-1540: Make sure transactions with "expired" time windows get re-notarised correctly (#3004)
* ENT-1540: Make sure transactions with "expired" time windows get re-notarised correctly.

Currently the time window is checked before states are being passed to a uniqueness provider. If the time window is
invalid, the transaction will be rejected even if it has already been notarised, which violated idempotency.

For this reason the time window verification was moved alongside state conflict checks.

* Update API - this only affects custom notary interfaces
2018-04-27 15:02:09 +01:00
Joel Dudley
0f310dd966
Updates withoutIssuer to not strip display token size. 2018-04-27 10:26:47 +01:00
josecoll
5dc71fc350
Behave: use existing Core common utility functions for Logger creation and Ti… (#2990)
* Use existing Core common utility functions for Logger creation and Time durations.

* Updated JUnit tests.
2018-04-26 13:40:37 +01:00
Andrius Dagys
7ad19af93f
CORDA-1353: Notaries should reject transactions that contain too… (#2986)
CORDA-1353: Notaries should reject transactions that contain too many inputs. Otherwise, it may cause a slowdown or make the service hang.
2018-04-25 17:29:19 +01:00
Joel Dudley
486441c383
Changes flow tests used in flow testing tutorial to use MockNetwork instead of InternalMockNetwork. 2018-04-25 13:53:22 +01:00
Chris Rankin
8e507d0b88
CORDA-1263: Replace deprecated kotlin-stdlib-jre8 with kotlin-stdlib-jdk8. (#2992) 2018-04-24 14:03:41 +01:00
Shams Asari
65525d74e7
CORDA-1325: Bootstrapper unable to whitelist two versions of the same contract simultaneously (#2980)
Also added unit tests
2018-04-24 10:51:24 +01:00
Andras Slemmer
5e0202acd0 Add killFlow 2018-04-23 15:36:35 +01:00
Andras Slemmer
6bf34ed5c7 Fix bugs 2018-04-23 15:36:16 +01:00
Andras Slemmer
5b4fd6fe64 Address comments 2018-04-23 15:36:16 +01:00
Andras Slemmer
19dad6da96 Add back deprecated functions 2018-04-23 15:36:16 +01:00
Andras Slemmer
ce5fb66260 StateMachine rewrite 2018-04-23 15:36:16 +01:00
Shams Asari
d3446e213c
Introduced a few more extension methods to Path, which are clearer than the static methods in Files. (#2985)
Also migrated code away from the old File API.
2018-04-23 14:31:49 +01:00
Anthony Keenan
247a97f1a5
Remove superfluous registerInitiatedFlow calls from tutorial and example tests (#2944) 2018-04-20 16:56:27 +01:00
josecoll
ca55c80bfc
Move kotlin utility helper out of public into internals. (#2979) 2018-04-19 13:48:13 +01:00
josecoll
ec70478d70
Corda Behave extensions for CTS (#2968)
* Updated to Corda 3.0, added support for PostgreSQL, added STAGING_ROOT environment variable, incorporating Watch improvements (Maks), Steps Provider interface for auto-scanning of 3rd party steps providers, re-implemented StepBlocks, new ScenarioRunner executable tool, additional Steps definitions (Vault, issue/transfer cash, cordapps), other minor bug fixes and logging improvements.

* Updates incorporating PR review feedback.

* Reverted back to original - will re-test in ENT.

* Removed all SQL Server code (to be included in ENT only)

* Minor updates following second PR review.

* Fixed broken scenario tests.

* Final fix for PostgreSQL scenario test.
2018-04-19 09:56:16 +01:00
Shams Asari
a684507553
Better cert path validation exception message for PartyAndCertificate.verify (#2976) 2018-04-18 17:27:03 +01:00
Konstantinos Chalkias
6f69f0252d
CORDA-1337 Crypto.registerProviders (#2962)
CORDA-1337 Crypto.registerProviders + add BCPQC as well
2018-04-13 12:40:15 +01:00
Shams Asari
02913b284e
CORDA-1312: Removed the need to have whitelist.txt for updating the contracts whitelist using the bootstrapper. (#2954)
Instead the current whitelist is read in from the existing network parameters file.
2018-04-12 17:03:06 +01:00
Shams Asari
ecce64ba03
HttpUrlConnection.getErrorStream() can be null, which if not handled can obscure the reporting of an HTTP error response, like in ENT-1744 (#2948) 2018-04-11 09:39:58 +01:00
Shams Asari
1b37cef822
Minor: use of ByteArray.inputStream() and introduced PublicKey.hash (#2931) 2018-04-05 17:18:27 +01:00
Shams Asari
53a0aae489
Introduced a few helper methods around InputStream.readBytes (#2928) 2018-04-05 14:27:42 +01:00
Chris Rankin
cb670dcb62
ENT-1463: Instantiate all contract classes before verifying any of them. (#2906) 2018-04-03 12:14:53 +01:00
Chris Rankin
b9b4415d10 ENT-1463: Instantiate the contract class as part of contract verification. (#660)
* Instantiating the contract class should be part of contract verification. We should not instantiate it while building LedgerTransaction.
* Also catch any exceptions from instantiating the contract.
2018-03-31 14:53:12 +01:00
Michele Sollecito
0d1d7daedc
[CORDA-1264]: Ensure correct serialisation and masking for throwables raised by a node and propagated through RPC. (#2892) 2018-03-29 13:01:41 +01:00
Michele Sollecito
36f02ff4b4 [CORDA-1267]: Making Corda's JPA classes non-final and Serializable. (#2882)
* Making Corda's JPA classes non-final and Serializable.

* Making Corda's JPA classes non-final and Serializable.

* Making Corda's JPA classes non-final and Serializable.

* Making Corda's JPA classes non-final and Serializable.
2018-03-28 08:40:28 +01:00
Katelyn Baker
91cdcc6752
CORDA-1258 - Only register custom serializers once (#2862)
* CORDA-1258 - Only register custom serializers once

* Review comments

* Fix test
2018-03-26 19:09:03 +01:00
Michele Sollecito
975b81c2c4
[CORDA-1243]: Avoid drain-related deadlocks between 2 nodes. (#2866) 2018-03-23 11:45:19 +00:00
Joel Dudley
d7147b7399
Adds JavaDocs for SoftLockingCondition. 2018-03-20 18:42:38 +00:00
Tudor Malene
1a1cd94161
ENT-1564 - add additional uploader check to the HashConstraint (#2845) 2018-03-20 10:17:44 +00:00
Michele Sollecito
7a077e76f0
CORDA-1099: Orchestrated clean shutdown from Shell (#2831) 2018-03-19 14:20:10 +00:00
Shams Asari
327d7d8acf
Added sign helper method to CertificateAndKeyPair for producing SignedDataWithCert objects (#2841) 2018-03-19 12:47:23 +00:00
Chris Rankin
9f80cfa249
Remove superfluous @JvmStatic annotation. (#2832)
This annotation was applied because of a misunderstanding of what it actually did.
2018-03-16 10:31:48 +00:00
Andrius Dagys
e31d2b0cad
CORDA-1208: Notary service should persist the notarisation request si… (#2823)
* CORDA-1208: Notary service should persist the notarisation request signature along with the committed input states.

This required modifying the uniqueness provider interface to accept the signature in addition to input states.
Until now the committed state log used to be stored as a map of (state reference -> (tranasction id, consuming party)).
Adding the serialized signature would mean inflating each state entry by around 700 bytes, which would be grossly inefficient.
Instead, two tables are now used: one for storing (state referece -> transaction id) map, and another for storing the notarisation
request details (transaction id, consuming party, date, signature).

* Update api - all of these changes are only related to custom notaries
2018-03-15 13:29:42 +00:00
Chris Rankin
a644741819
Expose two static fields on SecureHash for Java. (#2822) 2018-03-15 08:59:45 +00:00
Michal Kit
27e45bc865
Adding public key verification to the X509Utilities.createCertificateSigningRequest (#2784) 2018-03-15 08:42:36 +00:00
igor nitto
2cff495553
Remove CordApps JARs from node classpath [CORDA-1135] (#2691) 2018-03-14 16:42:23 +00:00
Andrzej Cichocki
932d632716
ENT-1439 Refactor Provider setup (#2780)
* Initialise crypto nice and early
* More OO way of requiring correct name for BouncyCastlePQCProvider
2018-03-13 17:22:38 +00:00
Michele Sollecito
fae0dc0276
[CORDA-1216]: Moved dependency on Jackson Databind from core to finance. (#2802) 2018-03-13 14:51:55 +00:00
Katelyn Baker
6fbc6a55cf
CORDA-1186 - Actually move annotation into core module, not just core namespace (#2789) 2018-03-12 11:47:58 +00:00
Andrius Dagys
2d31247da2 CORDA-1171: When a double-spend occurs, do not send the consuming transaction id and requesting party back to the client - this might lead to privacy leak. Only the transaction id hash is now returned. 2018-03-09 16:00:52 +00:00
Andrius Dagys
a3bf4577f3 CORDA-696 - Ensure deterministic transaction id calculation for contra… (#2676)
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.
2018-03-09 14:39:31 +00:00
Konstantinos Chalkias
2e9027db1b
secureRandomBytes should call getNextBytes, not generateSeed (#2587) 2018-03-08 11:44:26 +00:00
Konstantinos Chalkias
d70cd26a7c
Kdoc/comment updates (#2626) 2018-03-08 10:52:07 +00:00
Konstantinos Chalkias
4121f70da3
CORDA-1175 Docs numbering issue and counterparty consistency. (#2744) 2018-03-06 14:22:38 +00:00
Tudor Malene
3a247f2966
CORDA-1147 - fix shell (#2730) (#2737) 2018-03-05 19:11:04 +00:00
Katelyn Baker
d116b5e9f4
CORDA-1140 - FOR RPC Client P2P context use AMQP (#2716)
* CORDA-1140 - FOR RPC Client P2P context use AMQP

* Review comments

* Review comments

* review comments

* review comments
2018-03-05 18:05:32 +00:00
igor nitto
1caca44076
Fixed smoke tests after config parsing changes [CORDA-926] 2018-03-05 15:32:05 +00:00
Andrius Dagys
37de2e770e CORDA-696: Contract upgrade transactions - handle WhitelistedByZoneAttachmentConstraint for input state constraint verification 2018-03-05 14:34:18 +00:00
Shams Asari
4a73a80b39
CORDA-1160: Only read node-info files if their last modified time has changed. (#2717) 2018-03-05 11:10:38 +00:00
Mike Hearn
80c00b920b
Fix another non-serializable exception, add docs, fix a possible security issue. (#2707)
* Fix another non-serializable exception, add docs, fix a possible security issue.

* Update API definition to reflect methods added to make more exceptions serializable
2018-03-02 15:10:54 +01:00
Mike Hearn
14cafee66e
Fix the serialisability of TransactionVerificationException and subtypes. (#2689)
Add KDocs for the exceptions in this file, and deprecate exceptions that aren't actually used.
2018-03-01 19:03:54 +01:00
Joel Dudley
08c5b72874
1076 - Filters out structural steps when tracking a flow via RPC. 2018-03-01 15:08:07 +00:00
Anthony Keenan
577033441a
[CORDA-1035] Testing api KDoc Updates (#2584)
* Testing api KDoc Updates

* Update after code review

* Update api-current

* Revert changes to compiler.xml

* Made comment changes from review

* Fixing merge conflict

* Don't expose net.corda.node through test API (first pass)

* Fixing merge conflicts

* Update api-current

* Addressing review commits

* Fix exposure of internal implementation of MessageHandlerRegistration

* Make InProcess expose ServiceHub instead of internal StartedNodeServices

* Move InternalMockMessaginService interface to internal namespace

* Move MOCK_VERSION_INFO to internal namespace to avoid exposing VersionInfo

* Don't expose WritableTransactionStorage via testing api

* Create public VerifierType enum

* Update api-current and modify check-api-changes to check for net.corda.node exposures

* Fix merge conflicts

* Fixing another merge conflict

* Fix accidentally broken unit tests

* Make getInternalServices a property

* Fix failing unit tests

* Add todo to check-api-changes

* Fix rpc sender thread busy looping

* Fix tests

* Fixing tests

* Address mike's comments

* Fixing tests

* Make random port allocation internal

* Update api
2018-02-28 13:26:49 +00:00
Andrzej Cichocki
3391810101
CORDA-1004 Quasar-friendly ThreadLocal solution (#2594)
* Use FastThreadLocalThread in fiber scheduler
* Test that thread locals aren't serialized
2018-02-27 10:22:30 +00:00
Andrius Dagys
0edfef2409 CORDA-696 - Create separate transaction types for contract upgrade transactions (#2589)
* 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.

CORDA-696: Update upgrade docs
2018-02-26 11:29:25 +00:00
Christian Sailer
a483e7e8ce
CORDA-1096 - Performance when loading multiple states from the vault (#2614)
* CORDA-1096 - Performance when loading multiple states from the vault (#2609)

* Provide efficient `loadStates()` implementation

* Replace loops using `loadState` with calls to `loadStates`

* Replace `map`/`flatMap` with just a single `flatMap`
2018-02-26 09:37:32 +00:00
Michele Sollecito
5be0e4b39e
[CORDA-941]: Add NetworkParameters contract implementation whitelist. (#2580) 2018-02-23 14:29:02 +00:00
Andrzej Cichocki
c8672d373f
CORDA-973 Compression support for serialization (#2473)
* Serialization magic is now 7 bytes
* Introduce encoding property and whitelist
2018-02-23 13:07:51 +00:00
Shams Asari
2af0feee04
Various cleanup of the network map code (#2604) 2018-02-23 09:13:00 +00:00
Michele Sollecito
e91b74962b
[CORDA-1098]: Fixed Artemis filters for flows draining mode. (#2613) 2018-02-22 20:45:56 +00:00
Andras Slemmer
66cbe8c56d CORDA-1043 2018-02-21 15:56:29 +00:00
Mike Hearn
4f0c692831 Minor: reduce the size of the MockNetwork API a bit, add some better documentation 2018-02-19 16:58:28 +01:00
Shams Asari
71c94f8a9d
Reversing the introduction of GlobalProperties (by CORDA-961), and added NetworkParameters to ServicesForResolution instead. (#2563)
Also, replaced the maxTransactionSize parameter of the driver and MockNetwork with NetworkParameters.
2018-02-19 12:23:59 +00:00
Andrius Dagys
5b93abdc57
CORDA-1010: Send a request signature in addition to a transaction to the notary (#2527)
CORDA-1010: Notary flow - clients now send a signature over a notarisation
request in addition to the transaction. This will be logged by the notary
to be able to prove that a particular party has requested the consumption
of a particular state.
2018-02-16 16:14:06 +00:00
Shams Asari
2864ce1384
ENT-1519: Ensure NodeInfo always has at least one address by checking in the c'tor (#2538)
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.
2018-02-15 14:06:41 +00:00
cburlinchon
311475a81c Switch to using our own quasar fork with thread leak fix (#2443)
* Switch to using our own quasar fork with thread leak fix

* Update quasar.jar in lib

* Review changes

* Bump to 3.0.7
2018-02-14 17:32:00 +00:00
Anthony Keenan
3e8d76334e
CORDA-939 Modify Api Scanner to check api for internal exposures (#2510)
* Update check api changes to look for internals

* Update several more uses of internal

* Make check-api-changes script filter out internal class usages

* Make CordaClock part of API

* Update api-current.txt

* Remove exclusion of nodeapi.internal

* Remove access to CordaPersistence from public api

* Don't expose DB Connection from StartedMockNode and remove unnecessary transaction from CustomVaultQueryTest

* Make internal tests that use need db access use InternalMockNetwork

* Make test certificates internal

* Address further review comments

* Revert some accidental changes to api-current.txt

* Address Shams' review comments

* Update Api Scanner to filter out CordaInternal attribute

* Update api-current.txt

* Remove superfluous brackets

* Add transaction to StartedMockNode

* More leaky transaction fixes
2018-02-14 16:42:56 +00:00
Clinton
174ed3c64b
CORDA-556: Added Cordapp Config and a sample (#2469)
* Added per-cordapp configuration 
* Added new API for Cordformation cordapp declarations to support per-cordapp configuration
* Added a cordapp configuration sample
2018-02-14 14:49:59 +00:00
Andrius Dagys
a702d792a7 Make NotaryFlow.Client more modular and easier to customise 2018-02-13 16:10:15 +00:00
Joel Dudley
ad1be79900
Reorders params to put non-default args first. Creates simpler default constructors. 2018-02-12 17:02:34 +00:00
Michele Sollecito
da591363fd
CORDA-990: Flows Draining Mode (#2483)
[CORDA-990]: Flows draining mode.
2018-02-12 16:13:43 +00:00
Konstantinos Chalkias
fa4b5d16ba
CORDA-1009 Remove X509EdDSAEngine dependency on X509Key (#2506) 2018-02-12 16:13:04 +00:00
Anthony Keenan
7b65b7971a
CORDA-939 - Don't expose StartedNode and AbstractNode as part of public test api (#2472)
* Don't expose StartedNode via Node Driver

* Dont expose StartedNode/Abstract Node via MockNetwork

* Remove internal var from constructor as it doesn't hide from public api and change to internal initialisation method

* Update api

* Rename MockNode to StartedMockNode to avoid confusion
Update documentation
Update api-current.txt

* Fix typo

* Fix test failure

* Modify flow tests to use internal mock network and remove additional internal exposures from StartedMockNode

* Fix api-current

* Change InProcess and OutOfProcess to interfaces

* Explicitly declare MockNetwork parameters
Dont expose StateMachineManager
Move affected tests to use internal mock network

* Fix api-current

* Changes requested via review

* Fix IRS Demo address

* Fix api

* Remove internal attribute from classes in internal package

* Remove accidentally added code

* Move useHttps into NodeHandleInternal

* Remove duplicated code

* Update api-current

* Make webAddress internal on NodeHandle

* Make sure parameters in public api are explicitly specified

* Use correct address in IRS Demo

* Get webaddress from webserver handle

* Update api-current
2018-02-12 10:09:59 +00:00
Konstantinos Chalkias
86fb1ed852
CORDA-967 Multi-tx signature verification (#2488) 2018-02-09 15:33:48 +00:00
Patrick Kuo
c8cf46c657
CORDA-961 Wire up and enforce max transaction size (#2465)
* wire up and enforce max transaction size

* fixup after rebase
moved network parameter from AbstractNode to NodeProperties

* removed TODO

* fix broken import

* address PR issues

* remove API breaking change
address PR issue

* added max transaction size to driver and mock network.
address PR issues

* fix failing test

* added TODO

* fix verifier test

* fix spring driver build error
2018-02-09 14:48:45 +00:00
Andrzej Cichocki
1902a4f11e
CORDA-973 Refactoring for serialization compression support (#2466)
* Use constant for empty byte array
* Less byte array copying
* Fix InputStreamSerializer trailing garbage
* More OO kryo streams
* Introduce SerializationMagic
* Introduce non-copying slice on ByteSequence
2018-02-09 11:54:07 +00:00
Konstantinos Chalkias
ff972508bd
CORDA-986 and CORDA-985 CompositeKey and Signature verification performance fixes (#2467) 2018-02-08 15:49:33 +00:00
Katarzyna Streich
6acff3a7df
First approach to network parameters updates (#2412)
* 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
2018-02-08 14:31:43 +00:00
Anthony Keenan
8081ee42ad
CORDA-939 - Dont expose FlowStateMachine via public API (#2438)
* Create CordaInternal attribute for properties on public classes that are not part of the api and apply to FlowLogic.stateMachine

* Remove startFlow from public test api and replace with startFlowAndReturnFuture

* Update api-current with changed signature

* Change test used in documentation to use public test methods

* Remove the rest of the unneccessary usages of the startFlow test utility

* Remove extra whitespace

* Rename startFlowAndReturnFuture back to startFlow

* Update api

* The annotation doesn't appear unless its marked as on the actual getter and setter

* Updated docs and removed pointless attribute

* Deleted whitespace
2018-02-07 11:55:06 +00:00
Mike Hearn
82ece34ac8
Tweak the way invocation context is integrated to reduce the pain for devs using the old API (#2447)
Minor tweaks to the invocation context code.

1) Un-deprecate FlowInitiator, move the deprecation to the field. This
   eliminates large numbers of warnings and means developers are warned
   only once in the place where they obtain one.

2) Add documentation for StateMachineInfo and create a type alias to give
   it a better name in an ABI compatible way.

3) Improve markup on InvocationContext

4) Rename field from just "context" to "invocationContext" (Context is vague)
2018-02-02 17:09:08 +01:00
Katelyn Baker
18fa226da7
Merge pull request #2440 from corda/kat/bug/CORDA-943
CORDA-943 - Fix trader demo
2018-02-02 09:56:44 +00:00
Patrick Kuo
941429d3a7
Remove word restriction in corda x500 name (#2439)
* Remove word restriction in x500 name https://github.com/corda/corda/issues/2326

* remove unused const

* address PR issue

* address PR issue

* address PR issue
2018-01-31 17:05:52 +00:00
Katelyn Baker
222c5b9db8 CORDA-943 - Fix trader demo
This is a multi issue problem
1. Fingerprinting of generics treats <T> and <?> differently, forcing
the evolver to be used when not needed

2. However, the evolver is required sometimes as generics are not
guaranteed to fingerprinting bi-directionally (thanks to type erasure of
deeply nested generic types). However, with serialization now writing
properties in a specific order, we need to ensure they're read back in
that order before applying them to an evolved constructor so as to
not corrupt the object reference cache
2018-01-31 14:58:00 +00:00
Andrius Dagys
e357a88181
Deprecate TimeWindowChecker, make TimeWindowInvalid report exact current time and transaction time window (#2280)
* Make notary service return the current time and the transaction time window
along with the TimeWindowInvalid error.

Deprecate TimeWindowChecker.
Add a static method for validating transaction time window to reduce code duplication.
2018-01-26 09:32:11 +00:00
Mike Hearn
17a6f61eba
Simplify CashTests and add some comments/convenience APIs to MockServices (#2241) 2018-01-25 16:29:26 +01:00
Andrzej Cichocki
242d9cf7ad
CORDA-692 Don't include internal packages in API documentation (#2415)
* Use G1 for gradle daemon
2018-01-25 15:26:13 +00:00
Michele Sollecito
9783f11ba8
Exposed RPC SSL settings through Cordformation (#2419) 2018-01-25 14:32:58 +00:00
Shams Asari
0fa6969d5d
Added various X509 utilities to remove some of the existing boilerplate. (#2416) 2018-01-24 18:07:29 +00:00
Ben Wyeth
d17670c747 Provide an API to register callback on app shutdown (#2402)
Provide an API to register callback on app shutdown.
2018-01-24 16:19:24 +01:00
Shams Asari
61c7de22d6
Replaced KeyStoreWrapper with X509KeyStore, which is still a wrapper but assumes only X509 certs and has better APIs (#2411) 2018-01-24 07:51:55 +00:00
Andrzej Cichocki
1fc646cfa8 CORDA-716 Move test-utils and node-driver to stable API section in docs (#2335)
* Move test-utils and node-driver to stable section.

* Move FlowStackSnapshotFactory to testing.services package & update docs

* Move SerializationTestHelpers to testing.core package

* Move TestConstants.kt to core namespace

* Move Expect.kt to core namespace

* Move CoreTestUtils to core.TestUtils - rename class and update imports

* Added some clarification to documents after re-reading them

* Added static imports

* Removing unused import

* Fix merge conflict

* Fixing merge conflict
2018-01-22 11:28:41 +00:00
Mike Hearn
ac7637e2b4 Revert "CORDA-599 RPCSecurityManager is no longer lateinit (#2347)"
This reverts commit 75e74e67a1.
2018-01-19 17:52:59 +01:00
Joel Dudley
7427d63bbc
Prevents checkSignatures from failing if tx also contains unrecognised sigs. 2018-01-18 18:08:22 +00:00
Katarzyna Streich
af081a7170
Remove primary key constraint on DBHostAndPort (#2318)
Remove primary key constraint on DBHostAndPort

Return always first node if more are matching by address.
2018-01-18 16:23:41 +00:00
Andrius Dagys
55b7035a44
Don't propagate internal notary service errors to the client (#2368) 2018-01-16 09:58:23 +00:00
Anthony Keenan
1367cd4adb
CORDA-912 Stop exposing internal node user, create user in testing infrastructu… (#2361)
* Stop exposing internal node user, create user in testing infrastructure instead

* Update kdocs
2018-01-15 19:30:33 +00:00
Andrzej Cichocki
75e74e67a1
CORDA-599 RPCSecurityManager is no longer lateinit (#2347) 2018-01-15 19:11:00 +00:00
Shams Asari
bbfbb08c43
CORDA-881: Signed network parameters has the network map cert attached to it instead of just the public key. (#2346)
Introduced DigitalSignatureWithCert and SignedDataWithCert as internal APIs, with the expectation that they will become public; renamed the network parameters end-point to network-parameters; updated the network-map.rst doc; and did some refactoring.
2018-01-12 07:59:08 +00:00
Tudor Malene
c2bd7403a8
hibernate mapping changes (#2337)
* add foreign key names and move the participants mapping to the subclass so that the table name can be configured

* update api-current file

* fix compilation errors

* PR changes

* PR changes
2018-01-10 11:42:08 +00:00
Mike Hearn
38fd99792f Minor: add some discussion to the JavaDocs about why attachments are zip files. 2018-01-08 17:36:47 +01:00
Rick Parker
c5149bab9f
Backport of ENT-1303 applied to 3.0-RC3 (#2332) 2018-01-08 12:11:55 +00:00
Konstantinos Chalkias
48be562a2a
ECDSA entropyToKeyPair + no idempotent signatures (#2210) 2018-01-04 17:52:31 +00:00
Ross Nicoll
412fead02e
CORDA-785: Add functions for constructing FlowLogicRef without the class (#2134)
Add functions for constructing `FlowLogicRef` from class name, rather than requiring the class itself. This avoids requiring that schedulable states have access to the scheduled flow to instantiate, but instead can require it only actually scheduling the flow. This reduces the size of the JAR required to validate transactions containing these states.
2018-01-04 13:32:10 +00:00
Shams Asari
d84105b60e
Using X509Certificate consistently throughout, rather than BC's X509CertificateHolder. (#2305)
The later is now only used where needed. This has reduced the amount of converting we have to do back and forth.
2018-01-03 22:00:39 +00:00
Andrzej Cichocki
fe3c2b3983
CORDA-891 Refactoring for #2273 (#2306)
* Make FlowLogicRefFactoryImpl a class.

* Replace instanceof with polymorphism.

* Fix out-of-scope spelling error.
2018-01-02 13:11:43 +00:00
Konstantinos Chalkias
a9f9bf2c0b
Adding tests to check EdDSA compatibility with RFC8032 (#2302) 2018-01-02 10:47:57 +00:00
Shams Asari
4a2f157118
Validating the entire cert path in node registration, rather just checking the root cert. (#2298)
Also reduced duplicate code when creating the node CA cert path for testing, and renamed IdentityGenerator to DevIdentityGenerator.
2017-12-29 14:38:30 +00:00
Anthony Keenan
cb703476a0
CORDA-880 Make contractsdsl java interop functions behave same as inline functions (#2275)
* Make java interop functions same as inline functions and add tests

* Fixing docs

* Move unspecifiedCountry to internal. (#2274)

* Review changes

* Call java interop functions from inline functions

* Use correct test assertion
2017-12-21 09:42:09 +00:00
Andrzej Cichocki
313d21f068
Move unspecifiedCountry to internal. (#2274) 2017-12-19 12:09:31 +00:00
Shams Asari
e1e715ee81 Removed all remaining special treatment of the X500 common name.
With network parameters the CN is no longer needed to identify notaries. This frees it up to be used in the node's name alongside the other attributes.

Also, the identity generation logic has been simplified, removing the need to have magic string values for storing distributed identities in the keystore. Now there are just two alias prefixes: "identity" as it was previously, and "distributed-notary".
2017-12-18 21:39:11 +00:00
Ross Nicoll
21f0892deb
CORDA-831: Add roles to X509 certificates (#2180)
* Add roles to X509 certificates so that the identity service can always determine which certificate in a hierarchy is the well known identity
* Rename CLIENT_CA certificate type to NODE_CA
* Rename DOORMAN role to INTERMEDIATE_CA
* Correct issue in CashTests where instead of providing a well known identity to generateSpend(), a confidential identity was passed in and a confidential identity generated from it.
* Enforce role hierarchy in PKI
* Enforce that party certificates must be well known or confidential identities
* Add network map certificate role
2017-12-18 16:23:34 +00:00
Shams Asari
e9cead9055 CORDA-833: SignedNodeInfo object for holding a list of signatures, one for each identity in the NodeInfo. This forms part of the network map. 2017-12-17 19:45:58 +00:00
Andrzej Cichocki
8114a20abd
CORDA-716 Move non-API things to internal (#2256) 2017-12-17 18:44:35 +00:00
Andrzej Cichocki
2652ae111a
CORDA-716 Devrel feedback (#2266)
* * Document TestIdentity entropy and enforce that it actually works
* Ledger/transaction DSL default notary with fresh key
* MockServices default identity with fresh key
* makeTestIdentityService now takes vararg
* Require cordappPackages for MockServices
* DSL automatic serialization init
* Improve error when two MockNetworks used

* * Make cordappPackages required by MockNetwork
* Default identity service in MockServices
* Make notarySpecs Java-friendly
2017-12-15 19:18:31 +00:00
Andrzej Cichocki
479a656484
CORDA-716 Consistent MockServices API (#2247)
* Consistent MockServices API.

* Fix compile error.
2017-12-15 13:15:05 +00:00
Andrzej Cichocki
21e1118ea0
Make test constants Java-visible fields. (#2258) 2017-12-14 16:30:18 +00:00
Joel Dudley
dbf6862f32
Adds debugging info for contract constraints, and links to it from error message. 2017-12-14 14:01:21 +00:00
Andrzej Cichocki
05bc05a936
CORDA-716 Retire withTestSerialization (#2240) 2017-12-14 12:42:18 +00:00
Konstantinos Chalkias
5b33db93fc
Add doc comments on supported TLS schemes and scheme hash functions (#2161) 2017-12-14 12:30:07 +00:00
Shams Asari
2319bf396c Renamed TestIdentity.key to keyPair and pubkey to publicKey (#2249) 2017-12-14 11:30:55 +00:00
Andrzej Cichocki
d6df251e36
Bypass needless lookup. (#2236) 2017-12-12 21:51:32 +00:00
Andrzej Cichocki
c3b9955344
CORDA-716 Fix split packages in testing (#2232) 2017-12-12 19:37:01 +00:00
Andrzej Cichocki
905c8252a6
CORDA-654 Remaining key constants (#2226) 2017-12-12 18:03:06 +00:00
Ross Nicoll
42782f8890
ENT-1151: Rework unicode block validation rules (#2125)
* Redo legal name validation rules so that direction change chars are rejected
* Split name validation into minimal rules that all nodes can require, plus extended rules that the Doorman will apply (and we may need to change, without updating the entire network).
* Break down name validation rule sets to better match expectations
* Add test for nulls in Corda names
2017-12-12 16:52:14 +00:00
Shams Asari
6d6393d984 Merge branch 'feature-network-parameters' into shams-merge-feature-network-parameters 2017-12-11 21:10:34 +00:00
Andrzej Cichocki
d8c7f0ae23
Inline DUMMY_CASH/OBLIGATION_ISSUER. (#2214) 2017-12-11 16:17:20 +00:00
Andrzej Cichocki
544e19e277
CORDA-654 Remove key constants from NodeTestUtils (#2205)
* DUMMY_NOTARY was hiding in a couple more places
2017-12-11 11:44:01 +00:00
Katelyn Baker
4b5c60637c
Merge pull request #2017 from corda/kat/feature/enableAMQP
CORDA-780 - Enable AMQP for P2P and Storage Contexts
2017-12-11 11:37:16 +00:00
Shams Asari
e25158301f Merge branch 'master' into shams-master-merge-081217 2017-12-11 10:49:11 +00:00
Katelyn Baker
2329254390 Additional comment corrections 2017-12-08 17:30:32 +00:00
Katelyn Baker
c66026e54b Code Cleanup 2017-12-08 17:30:32 +00:00
Shams Asari
65ff931f53 Merge branch 'master' into shams-master-merge-081217
# Conflicts:
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/KeyStoreWrapper.kt
#	node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt
#	node/src/main/kotlin/net/corda/node/services/config/ConfigUtilities.kt
#	node/src/test/kotlin/net/corda/node/services/identity/InMemoryIdentityServiceTests.kt
#	node/src/test/kotlin/net/corda/node/services/identity/PersistentIdentityServiceTests.kt
#	samples/irs-demo/src/integration-test/kotlin/net/corda/test/spring/SpringDriver.kt
#	testing/node-driver/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/driver/DriverDSL.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/internal/DriverDSLImpl.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/internal/NodeBasedTest.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/internal/demorun/DemoRunner.kt
#	testing/test-utils/src/main/kotlin/net/corda/testing/CoreTestUtils.kt
#	verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt
2017-12-08 16:03:16 +00:00
Katelyn Baker
c396842b0e CORDA-553 - Review comments 2017-12-08 14:37:41 +00:00
Ross Nicoll
e6adbe7137
CORDA-831: Add confidential identity certificate type (#2198)
* Rename certificate types
* Create separate certificate type for confidential identities
* Add name constraints to dev node CA
* Move dev node CA into getTestPartyAndCertificate()
2017-12-08 13:17:29 +00:00
Andrzej Cichocki
32ea59d085
Inline some DUMMY constants. (#2200) 2017-12-08 10:45:22 +00:00
Katelyn Baker
8878fa99a0 CORDA-553 - Remove CordaCustomSerializer annotation
It isn't actually needed as we can scan the jar for classes implementing
the interface.
2017-12-07 21:15:33 +00:00
Katelyn Baker
1f7083cd61 CORDA-553 - Review comments 2017-12-07 21:15:33 +00:00
Katelyn Baker
fcec60e232 CORDA-786 - Use reflection to infer proxy and proxied types in CorDapp custom serializers
This removes any need for the user implement and override types from the
super class

    * CORDA-786 - Docs update
    * CORDA-786 - Remove unneeded second annotation on the proxy objects
    * Fix merge conflicts
2017-12-07 21:15:14 +00:00
Katelyn Baker
d25b7f560c CORDA-786 - Genericise the CorDapp Proxy 2017-12-07 21:15:14 +00:00
Katelyn Baker
f931b74aec CORDA-780 / CORDA-786 - Doc updates 2017-12-07 21:13:59 +00:00
Katelyn Baker
81eb0c1898 CORDA-780 / CORDA-786 - Enable AMQP for P2P and Storage Contexts
Add plugable mechanism for CorDapps such that they can add their own
custom serializers
2017-12-07 21:13:59 +00:00
Andrzej Cichocki
c36bea3af5
CORDA-654 MockServices no longer has hard-coded identities (#2192)
* Resurrect a test
* Fix a broken test
* Pass in the initial identity
* Make IdentityService easier to mock
2017-12-07 11:55:18 +00:00
Shams Asari
cb11379d98 Addressing some of the technical debt 2017-12-06 22:01:41 +00:00
Shams Asari
8461837f1a Cleaned up Driver.kt so that only the relevant bits are exposed as public API 2017-12-05 23:52:15 +00:00
Andrzej Cichocki
b0ebf3d7e0
CORDA-654 Various MockServices refactorings (#2167)
* Remove MockServices.stateMachineRecordedTransactionMapping which does nothing
* Inline StateLoaderImpl
* Remove unused MockServices
* MockServices well-known identities not needed in a place
* A few things don't need a full-blown ServiceHub
2017-12-05 16:22:53 +00:00
Shams Asari
6a1aa59e3e Merge branch 'master' into shams-merge-master-041217
# Conflicts:
#	node/src/integration-test/kotlin/net/corda/node/services/DistributedServiceTests.kt
#	samples/bank-of-corda-demo/src/main/kotlin/net/corda/bank/BankOfCordaCordform.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/NodeTestUtils.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/internal/NodeBasedTest.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/NotarySpec.kt
#	verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt
2017-12-04 13:39:32 +00:00
Shams Asari
5264072752 Renamed n.c.nodeapi.config to n.c.nodeapi.internal.config as that config code is not public API. For the same reason, also moved User into the same internal package. 2017-12-03 17:20:30 +00:00
Michele Sollecito
1f0571306b
Showcase of closures registered as flows. (#2162) 2017-12-01 14:31:52 +00:00
Andrzej Cichocki
a314a6a125
CORDA-654 Simplify TransactionDSL API (#2152) 2017-11-30 16:28:44 +00:00
Shams Asari
71763ff1d3 Merge branch 'master' into shams-master-merge-291117
# Conflicts:
#	node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt
#	node/src/main/kotlin/net/corda/node/services/network/PersistentNetworkMapCache.kt
#	node/src/test/kotlin/net/corda/node/services/messaging/ArtemisMessagingTests.kt
#	samples/notary-demo/src/main/kotlin/net/corda/notarydemo/BFTNotaryCordform.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/internal/demorun/DemoRunner.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt
2017-11-29 18:00:16 +00:00
Shams Asari
286ff65e60
Merge pull request #2147 from corda/shams-doorman-node-persistence-deps
Moved CordaPersistence and dependent classes into internal package in…
2017-11-29 17:51:35 +00:00
Andrzej Cichocki
3c31fdf31d
CORDA-806 Remove initialiseSerialization from rpcDriver (#2084)
and fix a leak or two
2017-11-29 17:42:39 +00:00
Shams Asari
b638b30d2a Moved CordaPersistence and dependent classes into internal package in node-api. This is so that the doorman can make use of them without needing a compile dependency to node. 2017-11-29 17:14:05 +00:00
Patrick Kuo
572c4af40c
Use NetworkMap and SignedNetworkMap in NetworkMapClient, and enable signature verification. (#2054)
* new network map object for network map, and verify signature and root in Signed network map and node info

* fixup after rebase

* * added certificate and key to network map server
* move DigitalSignature.WithCert back to NetworkMap.kt, as its breaking API test, will raise another PR to move it back.
* Make DigitalSignature.WithCert not extend WithKey, as per PR discussion.
* various fixes after rebase.

* move Network map back to core/node, as its breaking API test

* revert unintended changes

* move network map objects to node-api
2017-11-29 15:55:13 +00:00
Shams Asari
5c53a91785 Overhaul of the Bank of Corda demo to fix two problems it had:
1. The runRPCCashIssue and runWebCashIssue gradle tasks didn't work because they were using the wrong ports
2. Notary lookup was failing because the lookup name didn't include the correct CN for the notary name (this slipped through when reverting the network parameters)

The ports change occurred in #1922 which was attempting the fix the runIssuer gradle task. This is actually a misleading and redundant task as all it does is start up the nodes, which is what the documented deployNodes already does. The ports runIssuer allocated to the nodes were different to the ones specified in deployNodes.

To make sure we have integration tests which closely match deployNodes, the BoC demo has been updated to make use of CordformDefinition. This keeps the node definitions in one place, removing the need to have disparate files in sync. runIssuer has been removed.
2017-11-29 14:48:05 +00:00
Andrzej Cichocki
74bf00c155
Show origin test in ThreadLeakException. (#2143)
and downgrade an error to warn
2017-11-28 14:11:22 +00:00
Andrzej Cichocki
4bd6fef0f9
StateMachineManager is no longer lateinit. (#2123) 2017-11-27 17:55:08 +00:00
Shams Asari
9fefabbb88 Merge branch 'master' into shams-master-merge-271117 2017-11-27 17:08:13 +00:00
Shams Asari
4ca54b73fe Added tests to make sure the platform version is correctly available 2017-11-27 17:04:19 +00:00
Shams Asari
2ceb6283af Moved X509Utilities, and some other crypto utilities in node, into node-api so that they can be used by services outside of the node.
There's also some cleanup as well.
2017-11-27 15:49:33 +00:00
Tudor Malene
0e3713237b
rename table "link_nodeinfo_party" to "node_link_nodeinfo_party" (#2135) 2017-11-27 15:08:52 +00:00
Shams Asari
1705df4d1f Made the database config option typesafe, rather than relying on String properties 2017-11-27 13:51:53 +00:00
Maksymilian Pawlak
ce9b6c1f18
CORDA-311-post PR merged fixes (#2106)
* SSH server integration
2017-11-23 16:34:57 +00:00
Konstantinos Chalkias
502d0df630
Mutual TLS auth - mixed RSA and ECDSA keys (#2095) 2017-11-23 16:07:08 +00:00
Ross Nicoll
026d88a2b9 Add X500 name constraints for non-organisation attributes (#2108)
Enforce X500 name constraints consistently across all attributes
2017-11-23 12:42:45 +00:00
Ross Nicoll
22d29db54b
Add X500 name constraints for non-organisation attributes (#2108)
Enforce X500 name constraints consistently across all attributes
2017-11-22 18:00:43 +00:00
Shams Asari
9097107d2e Revert "Revert "Introducing network parameters.""
This reverts commit 953a4a3790.
2017-11-21 15:05:24 +00:00
Shams Asari
f7e51a9ae1 Various cleanups to AMQP and Kryo serialisation:
* PartyAndCertificate serialiser has been converted to deal with just CertPath
* Removed X500Name serialiser as we no longer use the BC implementation and have our own CordaX500Name
* Converted X509 cert serialiser to use Java certs and not BC X509 cert holder
* Added to test to AMQP serialisation to make sure c'tor is invoked on deserialisation
2017-11-21 14:01:03 +00:00
Andrzej Cichocki
288eb5fcc4
CORDA-716 Call stop on InMemoryMessagingNetwork (#2077)
* Inline code used by only 1 test
* Remove superfluous interface
* Warnings crusade
* Inline Builder, remove unused method
* Remove stop from interface
* Register stops up-front
2017-11-21 12:49:21 +00:00
bpaunescu
c467a056ae
Revert CORDA-296: added rpc that returns an observable for node state (#2091)
* Revert "CORDA-296: added rpc that returns an observable for node state (#2004)"

This reverts commit 7d1f7ab

* Revert "CORDA-296: added rpc that returns an observable for node state (#2004)"

This reverts commit 7d1f7ab
2017-11-21 09:52:17 +00:00
Maksymilian Pawlak
e63b6d1386
CORDA-311 Shell via SSH server (#2087)
* SSH server integration
2017-11-20 17:41:38 +00:00
Richard Green
d84e9aab7b Added exception if same attachment uploaded. Added test 2017-11-20 16:41:41 +00:00
Andrzej Cichocki
f26aa33553
Introduce contextLogger (#2085)
* Revert with comment, probably lazy for a reason.
2017-11-20 11:31:08 +00:00
Molina Atienza, Rose
128d5cad0a Fixed typo in KotlinUtils.kt seperate -> separate 2017-11-17 16:04:59 +01:00
josecoll
f5c9fd8f44
Cross provider Issuer Reference database storage (#2032)
* consistent storage of Issuer Reference using `ByteArray` Kotlin type in Schema definition and a custom Hibernate Type to map this to a VARBINARY database type.
Creation of a new Issued type now also validates maximum size permissible (512).
2017-11-17 14:18:16 +00:00
Ross Nicoll
19aba62fc6
Move tests to using named identities (#1879)
Move tests to using named identities in preparation for multiple identities work. Includes:

* NetworkMapCacheTest
* NodeInterestRatesTest
* NodeVaultServiceTest
* ContractUpgradeFlowTest
* Cash tests
* AttachmentSerializationTest
* CordaRPCOpsImplTest
* VaultWithCashTest
* ScheduledFlowTests
2017-11-17 14:16:17 +00:00
Andrzej Cichocki
787de9d956
CORDA-716 Fix last of the test thread leaks (#2069)
* copycat servers/clients
* an SMM CheckpointChecker
* and log error rather than fail on propagation of stale inheritable thread local
2017-11-17 12:28:34 +00:00
Shams Asari
953a4a3790 Revert "Introducing network parameters."
This reverts commit d04e487
2017-11-17 10:04:38 +00:00
Ross Nicoll
e4f5e16bf4
Clean up identities in tests, stage 1 (#2059)
* Clean up identities in CashTests so that the mini/mega corp keys and identities are correctly
paired together throughout. Previously `miniCorpServices` presented the same key as the
MegaCorp identity, but with the name Mini Corp attached.
* Correct key/name matches in VaultWithCashTest
* Split services in CashTests to not have multiple identities per service hub
2017-11-16 17:17:45 +00:00
josecoll
5bdbd2457a
Removal of transaction contract state as BLOB in VaultStates table. (#2034)
* Removal of transaction contract state as BLOB in VaultStates table.
Transaction contract state now resolved using StateLoader (from DBTransactionStorage).

Fixed broken JUnits.

* Changes to address review comments by RP

Address logic error.

* Fixed failing JUnit (CashExitFlowTests.exit zero cash).

* Fix VaultQueryTests to respect transaction visibility boundaries.

* Adopt consistent use of "session" using DatabaseTransactionManager.

* Removed redundant transaction demarcation boundaries in Vault Query tests.
2017-11-15 19:28:04 +00:00
szymonsztuka
b423fea537
Consistent database tables naming convention. (#2064)
* Added explicit table names (mostly for join tables).
* Shorten or alter name of 2 tables backing notaries.
* Change a compound index declaration to one column index.
2017-11-15 18:35:26 +00:00
Michele Sollecito
92c8861802
[CORDA-760]: Propagate invocation context across the codebase. (#2016) 2017-11-15 14:58:43 +00:00
josecoll
4e263a1981
Removed incorrect @Lob annotation from key_hash schema fields. (#2033) 2017-11-15 12:14:45 +00:00
Andrzej Cichocki
c4a9320e70
CORDA-716 Don't allow the netty global executor to inherit serialization env holder (#2048)
and close some dangling RPC connections.
2017-11-15 11:22:35 +00:00
Patrick Kuo
64a9946f03
Replace artemis network map with http network map (#1970)
* Network map cache using Network map client instead of artemis. -- WIP

* fix up after rebase

* address PR issues, split network map update test, added todos to remove sleeps

* move jimfs and baseDir to field variable
2017-11-14 11:37:50 +00:00
Andrzej Cichocki
2d997b1fa7
Retire verifierDriver serialization init. (#2026) 2017-11-14 10:45:36 +00:00
Maksymilian Pawlak
1a02c9a74f
AttachmentCriteriaQuery class and infrastructure (#2022)
* Attachments metadata support
2017-11-14 10:22:02 +00:00
Andrzej Cichocki
052124bbe0
CORDA-716 Make serialization init less static (#1996) 2017-11-10 15:44:43 +00:00
Andrzej Cichocki
6b71c6cf75
Retire some initialiseSerialization booleans. (#2019) 2017-11-10 10:15:55 +00:00
bpaunescu
7d1f7ab53d
CORDA-296: added rpc that returns an observable for node state (#2004)
* CORDA-296: added rpc that returns an observable for node state; used to let rpc clients know that the know is about to shut down

* replaced node shut down observation String with enum
2017-11-08 12:44:10 +00:00
Andrzej Cichocki
a036a6300c
Enforce serialization API for Java. (#2014) 2017-11-08 11:49:52 +00:00
Shams Asari
117261caa4 Retired getDefaultNotary test extension method.
Most uses where with MockNetwork which recently got a defaultNotaryIdentity property for dealing with the default single notary case. The remaining uses where in flows.
2017-11-07 21:20:43 +00:00
Shams Asari
e26e41a384 Various structural cleanups of node-driver:
* Extracted out ShutdownManager into its own file
* Moved RPCDriver and ProcessUtilities into internal package
* Made n.c.testing.performance package internal
2017-11-07 16:58:40 +00:00
Shams Asari
e6feca2f03 Added verifySignaturesExcept which takes in a colleciton of PublicKeys 2017-11-07 13:00:16 +00:00
Shams Asari
a4be26a296 Removed unnecessary calls to MockNetwork.runNetwork (b/c there is no more P2P node registration) and removed redundant entries in cordappPackages 2017-11-06 21:28:20 +00:00
Shams Asari
3bb018a5ce Removed the ability to manually start notary nodes from the driver and MockNetwork. Instead by default a single notary is automatically started. This can be customised at creation time of the driver and MockNetwork. This more accurately models the concept of network parameters in a CZ.
Also added helper methods to retrieve this default notary.
2017-11-05 22:55:33 +00:00
Patrick Kuo
22453204ed
move node info schema to internal package (#1976) 2017-11-03 11:30:29 +00:00
Shams Asari
d04e48740b Introducing network parameters.
network-parameters file read in by the node at startup, of which only the list of notaries is used. For now, the driver and MockNetwork have been updated to require notaries to be started first. This is so that the same set of network parameters can be defined for all the nodes.

CN in the legal name is not longer disallowed since it's no longer reserved for distributed notary names.

Single-node notaries now only have one identity, their main identity. Nodes part of a cluster continue to have two.

(Based off Kasia's work)
2017-11-03 09:46:10 +00:00
Shams Asari
837e8800e8 Checking that the smoke tests don't have the node on their classpath. 2017-11-02 20:58:03 +00:00
Michele Sollecito
d882f8871e
[CORDA-758]: Permissions are now checked for each RPC method. (#1985)
* Permissions are now checked for each RPC method.

* Fixed NodeMonitorModelTest

* Fixed IRSDemoTest
2017-11-02 15:09:49 +00:00
Andrzej Cichocki
6b2b663ab3
CORDA-716 Retire MockNetwork.Factory (#1937) 2017-10-31 17:10:37 +00:00
Andrzej Cichocki
4b0b13dad4
CORDA-716 Retire TestDependencyInjectionBase (#1939) 2017-10-31 10:21:38 +00:00
Katelyn Baker
bc12f87a24 CORDA-553 - Review Comments 2017-10-27 12:41:13 +01:00
Katelyn Baker
3633624dc6 CORDA-553 - First steps towards evolvability
Define the two transforms that will be useful for enum evolvability (see
design document for more details).

Furthermore, define the generic mechanism by which transform annotations
on classes are encoded into the AMQP envelope

With nothing to check for these annotations at either end, this is
mostly a no op, but an important step toward getting evolvability in
place
2017-10-27 12:40:53 +01:00
Mike Hearn
d7e4aa1783 Add more formal support for observer/regulator nodes. This is a simplistic
approach which assumes a dedicated node for observers: states that are
reported to the node will appear in the database and update feeds as
normal. Apps that expect all updates to be relevant to themselves may
need adjusting if they run on an observer node too, but this is likely
to be rare.
2017-10-26 18:05:24 +02:00
Mike Hearn
b2e8809916 Minor: InitiatedBy is a documented annotation. 2017-10-26 18:05:24 +02:00
josecoll
5349d4f850 Standardisation of Public Keys in Schema entities. (#68) (#1936)
* Standardisation of Public Keys in Schema entities. (#68)

* Standardisation in usage of Public Keys in Schema entities.
Use PK Hash where optimal, otherwise use ByteArray/LOB representation of PK.

* Redundant after rebase.

* Use .encoded and Crypto.decode<Public|Private>Key(bytes) instead of Corda serialization.

* Optimize DBPartyAndCertificate entity to store and query on ownerKeyHash.

* Updated API stability check for schema attribute change.
2017-10-24 22:11:41 +01:00
Andrzej Cichocki
927924498b Introduce MockNodeParameters/Args (#1923) 2017-10-24 11:58:32 +01:00
josecoll
7f6608deb5 Retrofit changes from Enterprise PR #61 (#1934) 2017-10-24 11:41:59 +01:00
Alberto Arri
b04368e36a [CORDA-442] make MockNetwork not start a networkmap node (#1908)
* [CORDA-442] make MockNetwork not start a networkmap node

Now MockNetwork will put the appropriate NodeInfos inside each running node networkMapCache.

Tests relating to networkmap node starting and interaction have been removed since they where relaying on MockNetwork
2017-10-23 16:50:53 +01:00
Katelyn Baker
97f7c9b79d CORDA-435 - Ensure Kryo only tests use Kryo serializatin context
Also correct lambda typos (from lamba)
2017-10-23 10:32:03 +01:00
Andras Slemmer
c66a84bfc6 Interface changes for multi-threading 2017-10-20 11:29:30 +01:00
Andrzej Cichocki
005ce349a7 * Retire MockServiceHubInternal (#1909)
* Introduce rigorousMock
* Add test-utils and node-driver to generated documentation
2017-10-20 10:06:53 +01:00
Chris Rankin
2c84d07e8e CORDA-704: Implement @DoNotImplement annotation (#1903)
* Enhance the API Scanner plugin to monitor class annotations.
* Implement @DoNotImplement annotation, and apply it.
* Update API definition.
* Update API change detection to handle @DoNotImplement.
* Document the `@DoNotImplement` annotation.
2017-10-19 17:18:35 +01:00
Andrzej Cichocki
dfd90701a0 CORDA-599 PersistentNetworkMapCache no longer circularly depends on SH (#1652) 2017-10-19 11:19:55 +01:00
Konstantinos Chalkias
479ab9a36a [CORDA-694] Commands visibility for Oracles (without sacrificing privacy) (#1835)
new checkCommandVisibility feature for Oracles
2017-10-19 10:21:20 +01:00
Andrzej Cichocki
b2454c646c Eliminate circular dependency of NodeSchedulerService on ServiceHub. (#1891) 2017-10-19 09:26:26 +01:00
Viktor Kolomeyko
cac3057877 CORDA-540: Make Verifier work in AMQP mode (#1870) 2017-10-17 10:44:27 +01:00
Ross Nicoll
63b7eb3f70 CORDA-654: Move from chooseIdentity() to singleIdentity() (#1819)
Move from `chooseIdentity()` to `singleIdentity()` where tests use a single identity, or to fetching by name where multiple identities are present, so we stop using the first identity as special.
2017-10-16 15:51:26 +01:00
josecoll
2a68e23e69 Improved Cash Selection interface (#1858)
* Cash selection refactoring such that 3d party DB providers are only required to implement Coin Selection SQL logic.

* Re-added debug logging statement.

* Updated to include PR review feedback from VK

* Refactoring following rebase from master.

* Fix broken JUnits following rebase.

* Use JDBC ResultSet getBlob() and added custom serializer to address concern raised by tomtau in PR.

* Fix failing JUnits.
2017-10-16 13:47:35 +01:00
Andrzej Cichocki
38cf4a489e CORDA-676 Eager cordapp schemas (#1839)
* Retire customSchemas.
* Key cordapp-to-hash map by url as native equality too strict.
2017-10-16 11:35:29 +01:00
Chris Rankin
635ad9ac92 Ensure that the contents of OpaqueBytes cannot be modified. (#1871)
* Ensure that contents of OpaqueBytes cannot be modified.
* Update documentation and restore the signature verification check.
* Update the API definition.
* KDoc fixes.
* Update the changelog for v1.1.
2017-10-13 12:27:42 +01:00
Andrzej Cichocki
ce5b7de718 CORDA-530 Unduplicate code (#1791) 2017-10-13 12:15:52 +01:00
Andrius Dagys
7b10e92819 Fixed AbstractNode to load custom notary services properly (#1720)
* Fixed AbstractNode to load custom notary services properly.
Added a custom notary sample.

* Prevent multiple custom notaries from being loaded

* Throw if more than once custom notary service is loaded
2017-10-13 10:36:25 +01:00
Chris Rankin
d1c5111567 Remove the two header lines from the diff output to simplify the +/- … (#1875)
* Remove the two header lines from the diff output to simplify the +/- check.
* Revert Kt class changes as they alter the public API.
2017-10-12 11:39:22 +01:00
Ross Nicoll
327f0ebd73 CORDA-654: Migrate test APIs to match identity changes (#1744)
Rework identity usage in tests to extract identity from nodes by name, rather than just arbitrarily choosing the first identity. This better models the intended design for production (future work).
2017-10-11 18:26:09 +01:00
Konstantinos Chalkias
ed79db6864 Clean up Crypto (#1866)
clean up Crypto comments + PublicKey.toSHA256Bytes() uses .encoded
2017-10-11 17:47:48 +01:00
Joel Dudley
de391dc9f0 Adds a length method to calculate a time-window's length. 2017-10-11 16:15:24 +01:00
Rick Parker
3fdc69e541 Fix coin selection with Flow-friendly sleep (#1847) 2017-10-11 14:33:20 +01:00
Andrzej Cichocki
4ee250a19b Retire setCordappPackages. (#1860) 2017-10-11 10:35:21 +01:00
Shams Asari
bd53a22efa Removed extraAdvertisedServiceIds config
The remaining use for it was the finance CorDapp for permissioning CCY issuers. Instead this is now taken from a custom config in node.conf.
2017-10-10 13:47:37 +01:00
Ross Nicoll
242b019dc2 CORDA-641: Remove special case handling of notary transactions (#1675)
Move special case handling of notary transactions into `SignedTransaction`
2017-10-10 13:23:31 +01:00
cburlinchon
6166fa8358 Don't generate Kt classes (#1798) 2017-10-10 09:51:01 +01:00
Joel Dudley
d1db35c344 Removes unnecessary @JVMOverloads annotation. 2017-10-10 09:25:45 +01:00
Ross Nicoll
7ad754fe78 Add signature exchange to transaction key flow (#1417)
Require a signature on a deterministic data blob (which includes X.500 name and public key) when exchanging new confidential identities, in order to ensure that the owner of the key pair wants it to represent the specified name, not just that the certificate owner states the key represents the given identity.
2017-10-09 17:03:04 +01:00
Tommy Lillehagen
14f959b4af Code clean-up run 2017-10-09 15:26:40 +01:00
Tommy Lillehagen
a633f8dada Reformat files in core 2017-10-09 15:26:39 +01:00
Michele Sollecito
29a101c378 [CORDA-683] Enable receiveAll() from Flows. 2017-10-09 13:46:37 +01:00
Chris Rankin
689758a71c CORDA-644: Only serialise Kotlin lambdas when checkpointing. (#1801)
* Remove local function because it is serialised as a lambda.
* Don't automatically whitelist Kotlin lambdas unless checkpointing.
* Add comment to @CordaSerializable, warning not to allow AnnotationTarget.EXPRESSION.
2017-10-09 13:02:40 +01:00
Andrzej Cichocki
f83f1b7010 CORDA-599 Fix circular dependency between vault and SH (#1630)
Fix circular dependency between the 2 vault objects and SH.
2017-10-09 12:49:07 +01:00
Shams Asari
727cd0e55c Cleaned up notary configuration by introducing a notary config option.
extraAdvertisedServiceIds is no longer used for this.
2017-10-07 12:52:37 +01:00
Andrzej Cichocki
894f05d84e CORDA-599 Remove dependency of NetworkMapService impls on ServiceHub (#1713) 2017-10-07 10:46:20 +01:00
Ross Nicoll
6562579e8e Extend NetworkMapCache API (#1766)
* Add functions to:
** Return PartyAndCertificate rather than just Party
** Return all NodeInfo entries for a name (rather than just by key)
* General documentation improvements
2017-10-06 15:23:20 +01:00
Matthew Nesbit
2564b7da1d Merge pull request #1803 from corda/mnesbit-CordaServices-startFlows
Start Flows from services
2017-10-06 13:49:18 +01:00
Matthew Nesbit
fe4635a81e Start Flows from services
Update tests

Add a test to show progress tracking works

Include service startable flow in Cordapp data structures.

Respond to PR comments

Fixup change of api inline with PR comments.

Address PR comments
2017-10-06 10:48:30 +01:00
Katarzyna Streich
66d78fcf65 Cleanup of mock network pre-NetworkParameters (#1802)
* MockNode rename overrideServices to notaryIdentity

Permit only one override of service.

* MockNetwork: force creation of NetworkMapNode

Tests cleanup: decouple normal nodes and network map. NetworkMap node is created as first.
2017-10-06 10:32:54 +01:00
Chris Rankin
248c898818 Instantiate Contract classes outside of LedgerTransaction.verify() (#1770)
* Load the contract classes when we create the LedgerTransaction.
* Fix Verifier tests by making ContractResult serialisable.
* Use named parameters to create ContractResult.
* Make the @JvmStatic function private.
* Refactor ContractResult to use Try.on{} instead.
2017-10-05 15:20:21 +01:00
Ross Nicoll
46532ccbcb Don't repackage well known key types (#1545)
* Don't repackage well known key types when converting keys to a well known type
* Remove custom key serializers
* Remove duplicate serializer registration
2017-10-05 09:14:00 +01:00
Ross Nicoll
5b79def791 Add CordaRPCOps.notaryPartyFromX500Name (#1786) 2017-10-03 19:22:10 +01:00
josecoll
dd3d8ba626 Merge release-v1 onto master (mostly documentation changes) (#1797)
* Updated corda release version to 1.0.0.RC2 (#1641)

* Fixed Simm Valuation Demo Test and enable serializabe java 8 lambdas. (#1655)

* [CORDA-624] Node Explorer on Issuing cash throws MissingContractAttachements exception (#1656)

(cherry picked from commit 27fea4d)

* BIGINT fix for H2 coin selection. (#1658)

* BIGINT fix for H2 coin selection.

* Review feedback

* CORDA-637 Node Explorer shows Network Map Service in Cash Issue dropdown (#1665)

* [CORDA-637] Node Explorer shows Network Map Service in Cash Issue dropdown

* add TODO to remove the hack

* Declare this internal message string as "const". (#1676)

* Merge "A variety of small fixes" into the 1.0 release branch (#1673)

* Minor: improve javadocs in NodeInfo

* Minor: use package descriptions in Kotlin build of api docs too, not just javadocs.

* RPC: make RPCConnection non-internal, as it's a core API. Move docs around so they're on public API not internal API.

* Add an IntelliJ scope that covers the currently supported Corda API.

This is useful when used in combination with the "Highlight public
declarations with missing KDoc" inspection.

* Ironic: upgrade the version of the Gradle plugin that checks for upgraded versions of things.

It had broken due being incompatible with the new versions of Gradle
itself.

* Docs: flesh out javadocs on ServiceHub

* Docs: add @suppress to a few things that were polluting the Dokka docs.

* Docs: mention RPC access in NodeInfo javadoc

* IRS Fixes to bring UI closer to declared financial types (#1662)

* Made problematic CordaRPCClient c'tor private (with internal bridge methods) and added correct c'tors for public use. (#1653)

initialiseSerialization param has also been removed.

* Fixing flow snapshot feature (#1685)

* Fix validating notary flow to handle notary change transactions properly. (#1687)

Add a notary change test for checking longer chains involving both regular and notary change transactions.

* Unification of VaultQuery And VaultService APIs (into single VaultService interface) to simplify node bootstrapping and usability. (#1677) (#1688)

* Identity documentation (#1620)

* Sketch initial identity docs

* Restructure confidential identity docs to better fit structure

* Split confidential identities into API and concepts

* Further expansion on basic identity conceptS

* Merge Party type into api-identity.rst

* Address feedback on written content

* Rework inline code with literalinclude

* Start addressing feedback from Richard

* Clarify use of "counterparty"

* Address comments on key concepts

* Correct back to US english

* Clarify distribution/publishing of identities

* Update changelog around confidential identities

* CORDA-642 Notary demo documentation fixes (#1682)

* Notary demo documentation fixes.

* One of the tables is prefixed.

* CORDA-641: A temporary fix for contract upgrade transactions (#1700)

* A temporary fix for contract upgrade transactions:
during LedgerTransaction verification run the right logic based on whether
it contains the UpgradeCommand.

* Move ContractUpgradeFlowTest away from createSomeNodes()

* Remove assembleBareTx as it's not used

* Update corda version tag to 1.0.0-RC3 (#1705)

* Hide SerializationContext from public API on TransactionBuilder (#1707)

* Hide SerializationContext from public API on TransactionBuilder

(cherry picked from commit 6ff7b7e)

* Hide SerializationContext from public API on TransactionBuilder

(cherry picked from commit 6ff7b7e)

* Address feedback on confidential identities docs (#1701)

* Address minor comments on confidential identities docs

* Expand on implementation details of confidential identities

* Cleanup

* Clarify details of the data blob in the swap identites flow

* Add that certificate path is not made public for confidential identities

* FlowSession docs (#1693)

* FlowSession docs (#1660)

* FlowSession docs

* PR comments

* Milder example flow name

* Fixes bugs with contract constraints (#1696)

* Added schedulable flows to cordapp scanning

Fixed a bug where the core flows are included in every cordapp. Added a test to prove the scheduled flows are loaded correctly. Added scheduled flow support to cordapp.

Renabled broken test.

Fixed test to prove cordapps aren't retreived from network.

Review fixes.

Fixed a test issue caused by gradle having slightly different paths to IntelliJ

* Fixed test for real this time.

* Consistent use of CordaException and CordaRuntimeException (#1710)

* Custom exceptions in corda, should either derive from an appropriate closely related java exception, or CordaException, or CordaRuntimeException. They should not inherit just from Exception, or RuntimeException.

Handle PR comments

Add nicer constructors to CordaException and CordaRuntimeException

* Fix ambiguous defaulted constructor

* Add @suppress (#1725)

* Git-ignore Node Explorer config. (#1709)

* add message warning windows users they might need to manually kill explorer demo nodes started by gradle (#1717) (#1726)

* Misc documentation fixes (#1694)

(cherry picked from commit 592896f)

* Document -parameters compiler arg for Java CorDapps. (#1712)

* Correct non-anonymous two party trade flow (#1731)

* Parameterize TwoPartyTradeFlowTests to confirm deanonymised functionality works.
* Correct handling of counterparty using well known identity in TWoPartyTradeFlow

* CORDA-594 - SIMM Demo doc update (#1723) (#1735)

* CORDA-594 - SIMM Demo doc update

For V1 write a series of JSON / curl commands a user can follow to run
the demo

* Review Comments

* Updated the rationale behind as to why SIMM was introduced.

* typo

* Cordapps now have a name field. (#1664)

Corrected cordapp name generation.

Added changelog entry.

* Small API fixes against M16 (#1737)

* Move CompositeSignaturesWithKeys into net.corda.core.crypto package.

(cherry picked from commit 8f29562)

* Rename and move CordaPluginRegistry to reflect its real purpose now.
Simplify serialization code a bit.

(cherry picked from commit e2ecd3a)

* Docs: docsite improvements

* Remove discussion of webserver from 'writing a cordapp' page.
* Fixup some flow docs.
* Add a couple more package descriptions.

(cherry picked from commit 2aedc43)

* Review comments

(cherry picked from commit ba1d007)

* Review comments - always apply default whitelist and no longer load it via ServiceLoader

(cherry picked from commit 7d4d7bb)

* Added wording about renaming services resource file

* Update corda version tag to 1.0.0-RC4 (#1734)

* Update corda version tag to 1.0.0-RC3

* Update corda version tag to 1.0.0-RC4

* Update build.gradle

* V1 tests and fixes for the ContractConstraints work (#1739)

* V1 tests and fixes for the ContractConstraints work

* More fixes.

* Added a contract constraints section to the key concepts doc. (#1704)

Documentation for contract constraints.

Added to index.

Review fixes round 1.

More review fixes.

Review fixes.

Explained package contents.

review fixes.

Addressed RGB's final review comments.

Updated source code type to 'java'

* Fixes dead links. (#1749)

* Update gradle plugins version to 1.0.0 (#1753)

* Update Readme (#1756)

* Update Readme

Minor tweaks to Readme -- consistent capitalisation and more descriptive list of features (also reordered to put the important things first)

* Copied master readme.

* Update Readme

Minor tweaks to Readme -- consistent capitalisation and more descriptive list of features (also reordered to put the important things first)

* Fixes .rst formatting. (#1751)

* Updates tutorials. (#1649)

* Updates tutorials.

* Addresses review comments.

* Tutorial refresh for v1.0 and moving of code into separate files. (#1758)

* Moves code sections in tutorials to code files.

* Removes wallet references.

* Updates repo layout doc.

* Removes remaining cordapp-tutorial references, replaced with cordapp-example.

* Fixes broken link.

* Misc docs fixes.

* Refreshes the ServiceHub and rpc ops api pages.

* Updates the cheat sheet.

* Updates cookbooks.

* Refreshes the running-a-notary tutorial.

* Updates flow-testing tutorial

* Updates tear-offs tutorial.

* Refreshes integration-testing tutorial.

* Updates to contract tutorial and accompanying code to bring inline with V1 release.

* Refreshes contract-upgrade tutorial.

* Fixed broken code sample in "writing a contract" and updated contracts dsl.

* Added contract ref to java code. Fixed broken rst markup.

* Updates transaction-building tutorial.

* Updates the client-rpc and flow-state-machines tutorials.

* Updates the oracles tutorial.

* Amended country in X500 names from "UK" to "GB"

* Update FlowCookbook.kt

* Amended cheatsheet. Minor update on contract upgrades tutoraial.

* Added `extraCordappPackagesToScan` to node driver.

* Changes to match new function signature.

* Update to reflect change in location of cash contract name.

* CORDA-670: Correct scanned packages in network visualiser (#1763)

* Add CorDapp dependency of IRS to network visualiser

* Set CorDapp directories

* Checking out the latest milestone will no longer be required. (#1761)

* Updated documentation indices (#1754)

* Update documentation indices.

* Reference a moveable tag for V1 docs.
Remove redundant warning text.

* Reverted proposed usage of new docs release tag

* Minor: print a deprecation warning when the web server starts. (#1767)

* Release and upgrade notes for V1.0 (#1736)

* Release and upgrade notes for V1.0

* Update changelog.rst

* Update changelog.rst

* Formatting.

* Incorporating review feedback from KB and MN.

* "guarantee" instead of "promise"

* Updated with final review comments from KB and RGB.

* Updated upgrade notes to describe migration from removed CordaPluginRegistry.

* Minor clarification.

* Minor updates following final RGB feedback.

* Kat's further pedantic feedback

* Minor changes following feedback from KB.

* Incorporating review feedback from MH.

* killed 'patent-pending'

* Made the visualiser into a regular JVM module - not a CorDapp. (#1771)

* Docs: more package descriptions and take non-stabilised APIs out of the docs build. (#1775)

* Update corda version tag to 1.0.0

* Updated release notes to fix minor typos (#1779)

Fixed bold type on simplified annotation driven scanning bullet and added bold type to module name bullets

* Fixed drop down.. probably. (#1780)

* fixed formatting for release notes. (#1782)

* Improve API page wording (#1784)

* Removed "unreleased" sections from the release notes and change log.

* Merge remote-tracking branch 'origin/release-V1' into colljos-merge-v1-docs

# Conflicts:
#	build.gradle
#	client/jfx/src/main/kotlin/net/corda/client/jfx/model/NodeMonitorModel.kt
#	client/rpc/src/main/kotlin/net/corda/client/rpc/CordaRPCClient.kt
#	client/rpc/src/main/kotlin/net/corda/client/rpc/PermissionException.kt
#	constants.properties
#	core/src/main/kotlin/net/corda/core/flows/FlowSession.kt
#	core/src/test/kotlin/net/corda/core/contracts/DummyContractV2Tests.kt
#	core/src/test/kotlin/net/corda/core/flows/ContractUpgradeFlowTest.kt
#	docs/source/api-flows.rst
#	docs/source/api-index.rst
#	docs/source/changelog.rst
#	docs/source/example-code/src/main/java/net/corda/docs/java/tutorial/testdsl/CommercialPaperTest.java
#	docs/source/example-code/src/main/kotlin/net/corda/docs/FlowCookbook.kt
#	docs/source/example-code/src/main/kotlin/net/corda/docs/tutorial/contract/TutorialContract.kt
#	docs/source/example-code/src/main/kotlin/net/corda/docs/tutorial/testdsl/TutorialTestDSL.kt
#	docs/source/hello-world-state.rst
#	docs/source/key-concepts-contract-constraints.rst
#	docs/source/serialization.rst
#	docs/source/tut-two-party-flow.rst
#	docs/source/tutorial-tear-offs.rst
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/CordaClassResolver.kt
#	node-api/src/test/java/net/corda/nodeapi/internal/serialization/ForbiddenLambdaSerializationTests.java
#	node-api/src/test/java/net/corda/nodeapi/internal/serialization/LambdaCheckpointSerializationTest.java
#	node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt
#	node/src/integration-test/kotlin/net/corda/services/messaging/MQSecurityTest.kt
#	node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt
#	node/src/test/kotlin/net/corda/node/internal/cordapp/CordappLoaderTest.kt
#	node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt
#	samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/AttachmentDemo.kt
#	samples/trader-demo/src/main/kotlin/net/corda/traderdemo/TraderDemo.kt
#	testing/node-driver/src/integration-test/kotlin/net/corda/testing/FlowStackSnapshotTest.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt
#	webserver/src/main/kotlin/net/corda/webserver/internal/NodeWebServer.kt
2017-10-03 17:32:11 +01:00
Viktor Kolomeyko
e2bb14da8e CORDA-540: AMQP specific fixes in "node-api" project (#1765) 2017-10-03 15:07:34 +01:00
Shams Asari
457f95f188 Removed the network map service type as it's no longer needed.
The absence or presence of the networkMapService config is what determines if a node is the network map or not.
2017-10-03 11:32:37 +01:00
Clinton
659b447362 V1 tests and fixes for the ContractConstraints work (#1739)
* V1 tests and fixes for the ContractConstraints work

* More fixes.
2017-10-02 17:54:31 +01:00
Rick Parker
9a16011448 * Move CompositeSignaturesWithKeys into net.corda.core.crypto package.
* Rename and move CordaPluginRegistry to reflect its real purpose now.
* Docs: docsite improvements
* Remove discussion of webserver from 'writing a cordapp' page.
* Fixup some flow docs.
* Add a couple more package descriptions.
* Review comments - always apply default whitelist and no longer load it via ServiceLoader
* Added wording about renaming services resource file
2017-10-02 16:03:07 +01:00
Joel Dudley
0ec75f0097 Fixes java-docs breaking typo. 2017-10-02 14:53:33 +01:00
Joel Dudley
4641d3c4dd Moves code sections in tutorials to code files. 2017-10-01 23:33:15 +01:00
Konstantinos Chalkias
f36ca78f88 optimise checkNoDuplicateInputs (#1741) 2017-09-29 20:41:12 +01:00
Chris Rankin
1e12aebe0a Gradle API Scanner plugin (#1669)
* Skeleton plugin.
* Implement Gradle api-scanner plugin, and apply it.
* Generate API documentation for any jar without a classifier.
* Fix usage of smokeTests classifier.
* Tweak Gradle API usage.
* Upgrade to fast-classpath-scanner 2.7.0
* Include interfaces and more modifiers in the class description.
* Allow system classes to be supertypes and implemented interfaces.
* Make API Scanner plugin configuration tweakable via build.gradle.
* Add a miserable amount of unit testing.
* Sort methods and fields using their natural comparators. Way easier!
* Add README for api-scanner plugin.
* Add @OutputFiles to ScanApiTask.
* Rename ScanApiTask to ScanApi.
* Allow the ScanApi task to be disabled.
* WIP: Create a top-level GenerateApi task to collate the ScanApi output.
* Exclude package-private classes, as well as bridge/synthetic methods.
* Replace "End of Class" delimiter with '##'.
* Don't scan modules whose API is still "in flux".
* Include constructors in the API definitions.
* Finish implementation of GenerateApi task.
* Update README to include GenerateApi task.
* Filter out Kotlin's "internal" methods.
* Assign "fatjar" classifier to the fat jar artifact.
* Enhance README for GenerateApi.
* Explain effect of api-scanner plugin, and link to Corda's API strategy.
* Tweak README
* Exclude synthetic Kotlin classes by analysing @Metadata.
* Allow us to exclude some classes explicitly from the API.
2017-09-29 16:55:26 +01:00
Viktor Kolomeyko
7861135403 Hide companion object completely from external visibility (#1742) 2017-09-29 16:46:59 +01:00
Katarzyna Streich
cac739e48d Add explanation to NetworkMapCache docs. (#1727)
NodeInfo lookup can return more than one node for distribute services.
2017-09-29 15:38:05 +01:00
Rick Parker
7787896cbb Hide SerializationContext from public API on TransactionBuilder (#1715) 2017-09-29 13:13:38 +01:00
Viktor Kolomeyko
bdc3389206 CORDA-540: Fix exception type thrown in AMQP mode (#1680) 2017-09-29 12:23:40 +01:00
Matthew Nesbit
5fa7381883 Custom exceptions in corda, should either derive from an appropriate closely related java exception, or CordaException, or CordaRuntimeException. They should not inherit just from Exception, or RuntimeException.
Handle PR comments

Add nicer constructors to CordaException and CordaRuntimeException

(cherry picked from commit 89478c8)

Fix ambiguous defaulted constructor

(cherry picked from commit ec9bafe)

Address PR comment

Update a few more custom exceptions
2017-09-29 09:37:22 +01:00
Ross Nicoll
89ef4034c0 Clean up of Dokka comments (#1632)
* Remove use of @see as a cross-reference to actual docs; this is inappropriate (it reflects "See Also", not "See Other"), and often longer than having the actual documentation in place.
* Correct syntactical errors in docs
* Correct "@returns" to "@return"
* Add note about currencies with 3 decimal places
2017-09-28 17:42:32 +01:00
Ross Nicoll
2aaeb4c0b5 CORDA-652: Remove uses of createSomeNodes for consistency (#1492)
Replace use of `createSomeNodes()` with creating notary and party nodes individually. This typically results in less code as the basket of nodes isn't built first then the nodes, but instead the nodes generated directly. Notably this identified issues in notary change and contract upgrade tests, which were not actually using a validating notary and therefore it had been missed that the transactions were failing validation.

Renamed nodes in tests for consistency as well, so nodes are now `aliceNode`, `bobNode`, etc. instead of `a`, `b`, or `n0`, `n1`, or other variants of those.
2017-09-28 17:12:21 +01:00
Andrius Dagys
f8a43a8331 A temporary fix for contract upgrade transactions:
during LedgerTransaction verification run the right logic based on whether
it contains the UpgradeCommand.

Move ContractUpgradeFlowTest away from createSomeNodes()

Remove assembleBareTx as it's not used
2017-09-28 11:14:52 +01:00
Clinton
334164aa86 Fixed several bugs in the contract constraints work (#1695)
* Added schedulable flows to cordapp scanning
* Fixed a bug where the core flows are included in every cordapp. 
* Added a test to prove the scheduled flows are loaded correctly. 
* Enabled a negative test to prove that we are not currently dynamically loading attachment classes from the network.
2017-09-27 18:34:17 +01:00
Andras Slemmer
72cff032e6 FlowSession docs (#1660) 2017-09-27 15:33:09 +01:00
josecoll
241f843555 Unification of VaultQuery And VaultService APIs (into single VaultService interface) to simplify node bootstrapping and usability. (#1677) 2017-09-27 13:33:23 +01:00
Andrzej Cichocki
9874e1ff34 uncheckedCast crusade (#1667) 2017-09-27 12:58:48 +01:00
Chris Rankin
c6c4c13bee Declare this internal message string as "const". (#1674) 2017-09-27 11:32:10 +01:00
Mike Hearn
1b349214ff Docs: mention RPC access in NodeInfo javadoc 2017-09-27 11:47:34 +02:00
Mike Hearn
df453bdaa8 Docs: add @suppress to a few things that were polluting the Dokka docs. 2017-09-27 11:47:34 +02:00
Mike Hearn
6686b054a2 Docs: flesh out javadocs on ServiceHub 2017-09-27 11:47:34 +02:00
Mike Hearn
d3e1a8e1c0 Minor: improve javadocs in NodeInfo 2017-09-27 11:47:34 +02:00
Clinton
24ff7efd5f Cordapps now have a name field (#1645)
* Cordapps now have a name field.
2017-09-26 17:15:11 +01:00
Ross Nicoll
e1b040ba0e Replace for ..-1 with until (#1513) 2017-09-26 13:37:13 +01:00
Ross Nicoll
da82a0be40 CORDA-499: Dokka cleanup (#1575)
* Make functions in CompositeSignature static
* Make contract IDs constant
* Remove use of "e.g." which Dokka will take as end of the first sentence
* Move example onto function that it actually works with
* Change comment which refers to comment above it, without any linkage, to directly describe the function
* Move implementation notes out of Dokka comment
* Change contract IDs to constants in companion objects
2017-09-26 10:26:44 +01:00
Viktor Kolomeyko
8bab2ae9a1 Derive list of countries from JDK (#1558) 2017-09-26 08:57:28 +01:00
Ross Nicoll
7258c910c8 CORDA-249: Remove cyclic call from CompositeKey (#1602)
Remove cyclic call from `CompositeKey` cycle detection code. Previously when trying to report a cyclic graph in a `CompositeKey`, it called `toString()` which resulted in serialization of the graph, which of course was cyclic, so it failed.
2017-09-25 22:01:13 +01:00
Konstantinos Chalkias
6ddb6c7cc2 Command toString signers-keys format (#1609) 2017-09-25 18:25:18 +01:00
Rick Parker
175e53d3d2 Extract identity helpers (#1636)
* First compiling version.  internal package accessed from finance and irsdemo

* Renaming
2017-09-25 17:49:34 +01:00
Rick Parker
d9715e970e CORDA-205: Supported core types documentation (#1621)
* Outline what is supported in AMQP serialization

* Object graph cycles

* Review feedback.

* Review feedback.

* Review feedback
2017-09-25 17:30:19 +01:00
Clinton
532bbb5cca Contract constraints (#1518)
* Contract constraints and attachment loading

Fix compiler warnings.

Fixed IdentitySyncFlowTests in confidential-identities.

Fixes.

Fix AttachmentClassLoaderTests.

Added a TODO.

Renamed cordapp service.

Fix compilation error in java code.

Fix RaftNotaryServiceTests

Fix AttachmentLoadingTest

Fix DistributedServiceTests and LargeTransactionTests.

Add cordapp packages to Verifier tests.

Refactor DummyContractBackdoor back out of internal package.

Resolve compiler warnings.

Consolidate excluding `isolated` project at top-level.

Fix contract attachment serialisation for remote verifier.

Fix integration tests for client:rpc.

Contract constraints and attachment loading

Fix compiler warnings.

Fixed IdentitySyncFlowTests in confidential-identities.

Fixes.

Fix AttachmentClassLoaderTests.

Added a TODO.

Renamed cordapp service.

Fix compilation error in java code.

Fix example compilation.

Fix RaftNotaryServiceTests

Fix AttachmentLoadingTest

Fix DistributedServiceTests and LargeTransactionTests.

Add cordapp packages to Verifier tests.

Refactor DummyContractBackdoor back out of internal package.

Resolve compiler warnings.

Consolidate excluding `isolated` project at top-level.

Fix integration tests for client:rpc.

Fixed issues with node driver and differing ZIPs.

Review changes.

Refactor GeneratedAttachment into node-api module.

Merge branch 'clint/hash-constraint' of https://github.com/corda/corda into clint/hash-constraint

Fixed compile error following rebase.

wip - test to check that app code isn't loaded from attachments sent over the wire.

Use Kotlin copyTo() rather than Apache's IOUtils.

Fixes

more fixes.

Removing unconstrained output.

More fixes.

Fixed another test.

Added missing plugin definition in net.corda.core.node.CordaPluginRegistry: net.corda.finance.contracts.isolated.IsolatedPlugin

Re-added missing magic string used in unit test.

Remove unused FlowSession variable.

* Review fixes.

* More review fixes.

* Moved Cordapp implementation to an internal package.

* More JVMOverloads.
2017-09-25 17:05:18 +01:00
josecoll
7b59f80bb3 Vault Query API parameter rename to aid clarity (#1627)
* Vault Query API `contractType` renamed to `contractStateType` for clarity.

* Vault Query API `contractType` renamed to `contractStateType` for clarity.

* Vault Query Criteria attribute `CONTRACT_TYPE` renamed to `CONTRACT_STATE_TYPE` for clarity.

* All references to `contractType` renamed to `contractStateType` for clarity.
2017-09-25 16:02:32 +01:00
Clinton Alexander
0de6994ef5 Base types and changes required for the Contract Constraints work. 2017-09-22 18:22:40 +02:00
Joel Dudley
095d94f2c7 Updates key types page. (#1616)
* Updates key types page.

* Adds ToC.

* Addresses review feedback.
2017-09-22 17:11:22 +01:00
Shams Asari
11be5dd417 Cleaned up ContractUpgradeFlow API (#1591) 2017-09-22 10:17:01 +01:00
Shams Asari
a11577840c Moved ServiceInfo and ServiceType into internal package (#1599) 2017-09-22 10:15:03 +01:00
Ross Nicoll
22be9fd6df CORDA-579: Move X509EdDSAEngine into net.corda.core.internal package (#1563)
* Add reflection based X509EdDSAEngine

* Rewrite X509EdDSAEngine to use public API rather than the direct equivalent functions

* Add unit tests for X509EdDSAEngine

* Remove unused imports

* Add unit tests for X509Key verification

* Add explicit x509 construct from eddsa key

This allows testing of conversion engine

* Review Comments
2017-09-21 18:18:37 +01:00
Ross Nicoll
c05e482c8f Change public constant values to Kotlin constants (#1588)
* Make string constants into Kotlin constants

* Add JvmName annotation to KeyStoreUtilities
2017-09-21 15:32:02 +01:00
Matthew Nesbit
c108637df6 Remove unused certificate method from IdentityService. (#1582)
Put wellKnownParty in methods that return a Party which is one.

Fixup rebase
2017-09-21 15:31:42 +01:00
Ross Nicoll
b0e9183850 CORDA-499: Dokka cleanup for 1.0 (#1579)
* Clean up Dokka comments on CordaRPCOps

* Remove use of "e.g." which Dokka will take as end of the first sentence
* Move example onto function that it actually works with
* Change comment which refers to comment above it, without any linkage, to directly describe the function
* Move implementation notes out of Dokka comment

* Make functions in CompositeSignature static

* Make contract IDs constant

* Correct contract ID in CashTestsJava
2017-09-21 14:46:36 +01:00
Andras Slemmer
33421bdd44 CORDA-577: FlowSession porting (#1530)
* Throw exception if a flow is initiated twice for the same Party

* Chunk of porting

* Need ReceiveTransactionFlow

(cherry picked from commit 774383e)

* Notaries compile

* TwoPartyTrade

* SimmFlow & StateRevisionFlow

(cherry picked from commit da602b1)

* TwoPArtyDealFlow regulator send

* installCoreFlow

* IRSTradeFlow
UpdateBusinessDayFlow
RatesFixFlow
NodeInterestRates

(cherry picked from commit 6c8d314)

* Added recordTransaction parameter to ReceiveTransactionFlow

* Some Tests, Flows

* Fixed typo in record tx param

* more things

* Fix CollectSignatures

* FlowFrameworkTests

(cherry picked from commit 2c50bc3)

* Fix TwoPartyTradeFlow

* CustomVaultQuery

(cherry picked from commit 48f88e8)

* FlowsInJavaTest

* WorkflowTransactionBuildTutorial

* PersistentNetworkMapCacheTest

* FlowCookBookJava

(cherry picked from commit 9b48114)

* Fix RatesFixFlow

* Fix TwoPartyDealFlow to get signature of initiating side

* Integration tests

(cherry picked from commit dbcd965)

* CordappSmokeTest

(cherry picked from commit d19cbd6)

* Inlined FinalityFlow

* Updated uses of FinalityFlow

* ContractUpgradeFlowTest passes

* CollectSignaturesFlow refactor

(cherry picked from commit 5e7b1a7)

* Check that we are not the recipient of cash

* Fix Simm demo

* WorkflowTransactionBuildTutorialTest

* Fix CashPaymentFlowTests

* ScheduledFlowTests

* FlowFrameworkTests

* Add cordappPackagesToScan Driver param

* FinalityFlowTests

* Fix LoaderTestFlow

* NodeMonitorModelTest

* BankOfCordaRPCClientTest

* rename to extraCordappPackagesToScan

* Fixed broken merge

* BankOfCordaHttpAPITest

* Fix CollectSignaturesFlow

* Fix annotation on DummyFlow to stop warning

* Fix TraderDemoTest

* Review feedback

* Doc improvements and minor changes

* Address some PR comments

* Looping regulators into the FinalityFlow broadcast rather than sending separately in TwoPartyDealFlow.

* Add Uninitiated FlowState

* Add test for double initiateFlow exception

* Some more s&r victims

* FlowSession utilities (#1562)

* Merge fix

* CollectSignatureFlow can handle several signing keys

* Actually handle several signing keys

* update kdoc

* Correct SignTransactionFlow error message

* Create deprecated flows package

* Add internal deprecated flows

* Reverted FinalityFlow to auto-broadcast all tx participants

* Move the deprecated packages into another PR
2017-09-21 12:12:25 +01:00
Ross Nicoll
78500205df Move IdentitySyncFlow into confidential-identities (#1583) 2017-09-21 11:22:01 +01:00
Andrius Dagys
0314e650a4 Clean up API for selecting notaries (#1573)
* Remove getAnyNotary() from network map API.
Change notaryIdentities() signature to return a Party instead of PartyAndCertificate.
Some API doc updates.

* Minor API doc formatting and typo fix

* Update changelog

* Address comments

* Address comments
2017-09-21 10:28:18 +01:00
Katarzyna Streich
002c6c4687 Remove notaryIdentityKey from ServiceHub (#1541)
* Remove notaryIdentityKey from ServiceHub

It was redundant, as we have notary field on a transaction. Notaries can
use this field to check if the transaction was meant for them and then
use that information while choosing a key to sign a transaction.

* Move notaryIdentityKey to NotaryService

* Address comments

* Fixes after rebase
2017-09-20 17:47:45 +01:00
Katarzyna Streich
fd57cf1c0c Remove advertised services from NodeInfo (#1521)
* Remove advertisedServices from NodeInfo.

Introduce notaryIdentities in NetworkMapCache, that will be filled in
later from NetworkParameters. Clean up NetworkMapCache API. Expose
notaryIdentities through RPC. For now we assume as temporary solution
that notaries in NetworkMap have to contain "notary" in name.

* Further clean up of NetworkMapCache API

Remve partyNodes. Introduce getAllNodeInfos function

* Remove notaryIdentity from ServiceHub

* Address Shams review comments

* Address Andrius review comments

* Add comments, cleanup

* Fixes

* Address comments

* Yet another commit with comments addressed

* Move ServiceType and ServiceInfo to node-api

Add changelog entry. Address rest of comments.

* Minor comments
2017-09-20 13:19:57 +01:00
Konstantinos Chalkias
6887947a4d CORDA-521: Backwards compatible Transactions using sub-Merkle trees (#1481)
* tx backwards compatibility + rebase

* SHA256d definition
2017-09-20 13:11:58 +01:00
Ross Nicoll
49a70cdbd6 CORDA-579: Add EdDSA engine that understands X.509 keys (#1540)
* Add EdDSA engine that understands X.509 keys

* Add test for Certificate serialization

* Address PR comments from Kostas
2017-09-19 17:50:04 +01:00
Shams Asari
1d6bd85f8a Clean up to NotaryFlow API (#1554) 2017-09-19 17:36:53 +01:00
Shams Asari
838e753164 Moved PhysicalLocationStructures into finance (#1557) 2017-09-19 17:36:26 +01:00
Shams Asari
8e0b8477af Changed FlowLogic.ourIdentity to return Party and added FlowLogic.ourIdentityAndCert which returns PartyAndCertificate. (#1537)
Updated code base to make use of these instead of chooseIdentity(). Also improved the serialisation of fiber checkpoints so that it doesn't store the entire cert parth of this identity.
2017-09-18 15:28:23 +01:00
Ross Nicoll
8f86068807 Move SwapIdentitiesFlow to confidential-identities module (#1531)
* Move SwapIdentitiesFlow to confidential-identities module

* Clean up confidential-identities build.gradle

* Change description to include Experimental

* Move confidential-identities to a dependency of node rather than node-api
2017-09-18 14:19:20 +01:00
Shams Asari
4c40c764c3 Cleaned up NodeInfo API (#1535) 2017-09-18 13:09:29 +01:00
Katarzyna Streich
495e870b74 NodeInfo remove main identity (#1284)
* Remove node's main identitiy from NodeInfo.

Preparation for getting rid of services + supporting multiple identities
on the node.
NodeInfo keeps multiple identities as a list. For now the first one is treated as a special one.
Introduced function chooseIdentity in CoreTestUtils as a preparation for proper handling of multiple identities in the future.
Remove legalIdentityKey from ServiceHub, add extension function - chooseIdentity on ServiceHub.
Add `me` field on FlowStateMachineImplemetation, flows should know what the calling identity is.
Remove SERVICES_PREFIX in artemis messaging layer.

* Address minor comments.

* Fixes after rebase.

Remove chooseIdentity from ServiceHub

* Rename me to ourIdentity on FlowLogic

* Fixes after rebase

* Address Ross comments, fixes

* Fix after rebase

* Fix services certificate paths

Apply Patrick's patch.
2017-09-15 14:39:34 +01:00
Andras Slemmer
c44fce1e47 Introduce FlowSession, startCounterFlow, Deprecate send/receive expec… (#1506)
* Introduce FlowSession, startCounterFlow, Deprecate send/receive expecting a Party

* FlowSessionImpl

* Change flow construtors to accept FlowSession

* Add some docs and a small guide to porting

* otherParty -> counterparty

* minor kdoc fixes
2017-09-15 10:31:44 +01:00
Ross Nicoll
3d577e5eed CORDA-499: Remove further Kt classes (#1489)
* Change how NetworkHostAndPort is parsed

Change from using a global extension function to parse
NetworkHostAndPort strings, into using a function on the companion
object. This is a lot easier for Java interop and matches the common
style used elsewhere both in Corda and in Java libraries.

* Move JAR extraction into new utils file

* Move path verification function to ArtemisUtils

Move path verification function "requireOnDefaultFileSystem()" to new
ArtemisUtils.kt file, as this makes more sense from a Java interop
perspective.

* Add JvmName to AMQPSchemaExtensions

* Add JvmName to AMQPSerializationScheme

* Revert "Move JAR extraction into new utils file"

This reverts commit 1f0f41909b68ff21cc24b5efd6a1a360393a0a14.

* Reformat code

* Run formatter on ArtemisUtils
2017-09-14 17:34:01 +01:00
Shams Asari
573987d929 Removed X509CertificateHolder from public API, using java.security.X509Certificate instead (#1510) 2017-09-14 15:48:33 +01:00
Shams Asari
943e873ff0 Moved AttachmentsClassLoader out of core (#1504) 2017-09-14 15:40:39 +01:00
Ross Nicoll
ae2183c8a1 Reduce use of X500Name bridges (#1483)
* Change to using strings in CordformContext; X500Name is an external API dependency we're trying to avoid, X500Principal rearranges the order of the elements in a way we don't want, and trying to put CordaX500Name into Groovy in the time available is impractical. As such having pre-formatted strings used in the Cordform plugin makes most sense right now.
* Remove uses of CordaX500Name.x500
* Remove old X.500 parsing tools
* Move CordaX500Name.x500 into X500NameUtils
* Move X500NameUtils into internal
2017-09-14 11:56:14 +01:00
Shams Asari
8f0c0c784b Removed PluginServiceHub 2017-09-14 09:30:37 +01:00
Viktor Kolomeyko
abac314b31 CORDA-540: Correctly mark AttachmentConstraint to be CordaSerializable (#1496)
Or else many core/contract unit tests failing in AMQP mode
2017-09-14 09:28:17 +01:00
Rick Parker
988e3e5007 Some additional serializers to fill in the blanks vs. our default whitelist (#1490) 2017-09-14 09:14:09 +01:00
Ross Nicoll
eeb51527a1 Correct ordering of parameters in CordaX500Name (#1501)
Correct ordering of parameters in CordaX500Name and change to named parameters so they can't get incorrect. A constructor with identical types is at high risk of incorrect ordering of values, and therefore it's worth ensuring this can't happen again.
2017-09-13 18:31:22 +01:00
Andrzej Cichocki
cfd6739d23 Introduce StartedNode (#1491) 2017-09-13 17:34:52 +01:00
Shams Asari
ed0aede1f1 In preparation for the removal of advertised services, @CordaService no longer expects a static "type" field for the ServiceType.
Instead @CordaServices will use the main identity of the node.
2017-09-13 15:53:50 +01:00
Michele Sollecito
ea61e6e9d5 [CORDA-461] Remove deprecated APIs. (#1480)
https://r3-cev.atlassian.net/browse/CORDA-461
2017-09-13 15:39:39 +01:00
Ross Nicoll
024285b007 Rename TransactionKeyFlow to SwapIdentitiesFlow (#1499) 2017-09-13 15:01:42 +01:00
josecoll
5504493c8d Improved support for testing custom schemas using a MockNetwork. (#1450)
* Improved support for testing custom schemas using a MockNetwork.

* Removed `requiredSchemas` from CordaPluginREgistry configuration
Custom schema registration now uses classpath scanning (CorDapps) and explicit registration (tests) following same mechanisms as flow registration.

* Updated following PR review feedback.

* Helper function to return Kotlin object instance fixed and moved to core InternalUtils class.

* Fixed auto-scanning Unit test to assert correct registration of custom schema.

* cleanup comment.

* Changes following rebase from master.
2017-09-13 12:06:24 +01:00
Andrzej Cichocki
93101f7c7d Restore ContractState and TransactionState to docs. (#1495) 2017-09-13 11:49:05 +01:00
Shams Asari
0a41a0fd8c Moved CountryCode into internal and cleanup of CordaX500Name validation 2017-09-12 13:26:59 +01:00
Ross Nicoll
c18b0ecdc3 Clean up CordaX500Name (#1487)
* Remove unused imports
* Move X500 name generation into test code as it's no longer used in the main code
2017-09-12 13:08:43 +01:00
Ross Nicoll
de3468f8a7 Replace X500Name with CordaX500Name (#1447)
Replace X500Name with CordaX500Name, which enforces the specific constraints Corda expects on legal/service identity names.
2017-09-12 01:03:10 +01:00
Shams Asari
9d76c66e5e Cleanup of FinalityFlow 2017-09-11 20:34:36 +01:00
Viktor Kolomeyko
64963d587c CORDA-540: Expose and fix AMQP serialization problem with UniquenessException (#1470) 2017-09-11 18:43:26 +01:00
Andrzej Cichocki
1565b395b6 Introduce AttachmentConstraint (#1370)
Introduced attachment constraint interface to TransactionState as a base for extension.
2017-09-11 17:51:03 +01:00
Clinton
bc6628a072 ContractState now references contract by class name (#1407)
* ContractState's contract type has been moved to TransactionState and is now a string representing the class name of the contract class to allow classloading of arbitrary contracts from custom classloaders.

* Upgraded isolated JAR to new version.
2017-09-11 16:44:18 +01:00
Ross Nicoll
65dcfe4abe Enable anonymisation (#1073)
* Enabled confidential identities in:
** IssuerFlow
** Trader demo
** Two party deal flows
** Two party trade flows
** Corda RPC tests
** Cash flows
** Integration testing tutorial
** Node monitor model tests
** CollectSignatureFlow
* Relay local node's confidential identities to counterparties when requesting transaction
signatures, so counterparties know where the inputs come from.
* Require all identities are known in finality flow
* Ensure all identities in FxTransactionBuildTutorial are known to each other

* Add flow for syncing identities to a number of counterparties

* Address PR comments

* Disable anonymisation in example code

* Revert unnecessary changes remaining from earlier rebases

* Corrections after rebase

* Remove unneeded identity registration

Remove unneeded identity registrations from tests, which sometimes cause duplicated entries in the database

* Revert accidental change in examples

* Revert unneeded imports

* Revert changes to CoreFlowHandlers.kt
2017-09-11 14:29:37 +01:00
Shams Asari
c269642fcf Minor: Legal name validator checks org name length is less than 128, not 127 2017-09-11 12:11:26 +01:00
Shams Asari
763539b5f0 Moved stuff out of X500NameUtils.kt not related to X500Name 2017-09-10 20:01:18 +01:00
Shams Asari
40f791a5d0 Moved X500Name hiberate converter out of core 2017-09-10 16:17:46 +01:00
Shams Asari
4c3ac89d6b Try.Failure is no longer parameterised on Nothing, to avoid any issues with Java 2017-09-10 14:54:32 +01:00
Ross Nicoll
4e18937326 CORDA-499: Restructure TransactionGraphSearch to be Dokka-friendly (#1409)
* Remove internal state of TransactionGraphSearch from being publicly visible.
* Add Dokka comments for TransactionGraphSearch.Query values.
* Move query into TransactionGraphSearch constructor as it should always be set except for test cases.
* Move TransactionGraphSearch into trader demo
2017-09-08 17:27:01 +01:00
Viktor Kolomeyko
0edaea81d2 CORDA-540: Add a property to make sending stacktraces optional in AMQP mode (#1458) 2017-09-08 17:25:42 +01:00
Ross Nicoll
df87731043 CORDA-499: Dokka 'Kt' class cleanup (#1433)
* Remove unneeded identity registrations from tests, which sometimes cause duplicated entries in the database
* Add JvmName annotations to ObservableFold and ObservableUtilities
* Move createMapChange() into ReadOnlyBackedObservableMapBase as the only place it's used, to
improve Java interop.
* Clean up Generator by moving extension functions into the class/companion class.
* Add documentation to the actual functions rather than being only on the top level class. 
* Add JvmName to Generators
* Move extension functions into the classes they're used in to try supressing generation of empty RPCClientProxyHandlerKt class.
* Add JvmName to ConcurrencyUtils
* Move Iterable<ServiceInfo>.containsType() into Simulation, as it's only useful when verifying
setup of a simulated case. Resolves ServiceInfoKt class being generated.
* Move FlowHandle.notUsed() into the one place it's actually called, so Kotlin stops creating a FlowHandleKt class.
2017-09-08 14:37:18 +01:00
Viktor Kolomeyko
8710090887 CORDA-540: Fixes to make "node" tests pass in AMQP mode, part 1 (#1455) 2017-09-08 13:46:22 +01:00
Rick Parker
691d9ea0bc Correctly unwrap MissingAttachmentException. (#1454) 2017-09-08 13:41:53 +01:00
Joel Dudley
88a6002246 Allows flow exceptions in CheckTransaction. 2017-09-08 13:21:48 +01:00
Rick Parker
79f1e1ae7f Introduce current context concept for serialization in preparation for WireTransaction changes (#1448) 2017-09-08 08:16:38 +01:00
Patrick Kuo
57412d4498 Enforce X500Name format defined in design doc (#1427)
* Standardise X500Name format - WIP

* address PR issues

* failing test fix and replace X500Name with getX500Name

* gradle plugin fix

* Added country code validation
2017-09-07 14:47:42 +01:00
Shams Asari
c293d6b18a Added check to receive and sendAndReceive to make sure the primitive classes aren't used (#1400) 2017-09-07 11:46:35 +01:00
Andrzej Cichocki
df2ec0ca9b Suppress output of jarsigner and friends. (#1426) 2017-09-05 17:17:33 +01:00
josecoll
ebc9cacb53 Contract Upgrade API improvements + persistence (#1392)
* All Contract Upgrade functionality performed within a corresponding flow.
Removed RPC API calls for contract upgrade authorisation / de-authorisation.
Added persistence using AppendOnlyPersistentMap.

* Changed to using a PersistentMap to ensure entries can be removed (was causing failing de-authorisation tests).
Fixed all warnings.

* Added mandatory @Suspendable annotations to flows.

* Do not instantiate object unless overridden.

* Updated changelog and CordaDocs.

* Persistence simplification: only store upgrade contract class name (not serialized object)

* Remove nullability from contract_class_name DB column.
2017-09-05 13:23:19 +01:00
Matthew Nesbit
5bb9556380 Merge pull request #1414 from corda/mnesbit-persistent-identityservice
Create Persistent Identity Service
2017-09-05 11:54:23 +01:00
Rick Parker
875cfabd50 Make SignedTransaction serializable and fix a test by adjusting constructor (#1420) 2017-09-05 11:34:55 +01:00
Matthew Nesbit
8ef29d4736 Persistent Identity
Fixup tests after rebase

Add unit tests of Persistent Identity. Fix bugs in PersistentMap.

Wrap identity and network map RPC calls in database transaction

Address PR comments
2017-09-05 11:19:54 +01:00
mkit
cbf89ba98b Deprecating verifiedTransactions from the public API (#1418) 2017-09-05 10:07:55 +01:00
Andrzej Cichocki
15f741f315 Spinoff driver into own project with demorun (#1401) 2017-09-05 09:50:51 +01:00
mkit
30687592c2 Making Quasar Jar to be copied from dependencies after the gradle build (#1388)
* Making Quasar Jar to be copied from dependencies after the gradle build

* Addressing review comments
2017-09-05 07:47:35 +01:00
Andrzej Cichocki
0e250e9279 Add support for signed attachments (#1369) 2017-09-04 16:19:12 +01:00
Ross Nicoll
4150316367 Add package descriptions to Dokka 2017-09-04 15:40:37 +01:00
Konstantinos Chalkias
7ec5bd789e Composite Signature OID fix and crypto comments clean up (#1393) 2017-09-04 10:44:22 +01:00
Konstantinos Chalkias
39e44382be Helper SignedTransaction.buildFilteredTransaction(filtering) (#1394) 2017-09-01 19:26:00 +01:00
Joel Dudley
c0278a60ba Renames AuthenticatedObject to CommandWithParties for clarity. 2017-09-01 15:56:35 +01:00
josecoll
a286f7553b Enable RPC start of Flows that return nothing (eg. Void). (#1374)
* Enable RPC start of Flows that return nothing (eg. Void).

* Fix blocking test (caused by not running mockNetwork).
Improve execution times by moving redundant setup() initialisation to only tests that use it.
2017-09-01 15:44:53 +01:00
Viktor Kolomeyko
954ed69102 CORDA-540: Introduce mandatory reason for "kryoSpecific" (#1386)
* CORDA-540: Introduce mandatory reason for "kryoSpecific"

... before we forget why they are ignored in such a way

* CORDA-540: Write a test that exposes list serialization problem in AMQP mode

* Revert "Remove CompositeSignaturesWithKeys"

This reverts commit 9b3cad3
2017-09-01 14:45:14 +01:00
joeldudleyr3
d1ee84044d Renames AuthenticatedObject to CommandWithParties for clarity. 2017-09-01 14:10:35 +01:00
Viktor Kolomeyko
6bc44b96f1 CORDA-540: Stop breaking PartyAndCertificate when persisting it in binary form (#1384)
Breaking on multiple parts causes a problem in AMQP mode when X509 Certificate path cannot be serialized on its own
2017-09-01 13:14:39 +01:00
Chris Rankin
66c35bbffa Demote quasar-core to a runtime dependency, and capsule to "compileOnly". (#1381) 2017-09-01 11:12:04 +01:00
Ross Nicoll
7e3dd4c12c Restructure net.corda.core.crypto package
* Rename KeyFactory to CompositeKeyFactory
* Move expandedCompositeKeys into TestDSL as the only place that uses it
* Move NullKeys out of their own package
* Move remaining crypto classes into superpackage
* Move utility classes out of crypto and into utilities package
2017-09-01 10:55:58 +01:00
Konstantinos Chalkias
62c64ace23 Adding createSignature(filteredTransaction) to serviceHub (#1380) 2017-09-01 10:45:01 +01:00
Viktor Kolomeyko
485c2feb83 CORDA-540: Ensure that registration of a test node was a success prior to performing further testing with it (#1379)
Registration may fail due to low level serialization problems especially when running in AMQP mode
Also some minor improvements for exceptions reporting and test coverage
2017-08-31 18:38:29 +01:00
Joel Dudley
574c476709 Moves filterFun and indexOffsets into MerkleTransaction. 2017-08-31 17:11:44 +01:00
Ross Nicoll
e1943e2b51 Move ContentSignerBuilder into net.corda.node.utilities
Move `ContentSignerBuilder` into `net.corda.node.utilities` so it's not part of the API visible to CorDapp developers, when it's only needed inside the node itself.
2017-08-31 16:55:40 +01:00
Joel Dudley
d485441c27 Adds JVMStatic annotation to getServiceType. 2017-08-31 15:57:18 +01:00
josecoll
b63df0ea39 Vault Service API final clean-up (#1348)
* Remove notify/notifyAll from public Vault Service API.

* 1st pass - remove ContractUpgrade public API calls from VaultService into self contained ContractUpgradeService.

* Fix compile error caused by cut'n'paste refactoring.
2017-08-31 14:01:10 +01:00
Rick Parker
35dec9abdc Make addToWhitelist vararg for compactness. (#1361) 2017-08-31 13:24:45 +01:00
Ross Nicoll
9b3cad30b2 Remove CompositeSignaturesWithKeys
Remove CompositeSignaturesWithKeys class, as other refactors mean it is
now superfluous. Instead serialization of the TransactionSignature can
be used directly.
2017-08-31 11:42:46 +01:00
Katarzyna Streich
472ecc65c6 NetworkMapCache database backed (#1135)
Work on database backed NetworkMapCache

Make NodeInfo JPA entity.

Enable node startup with it's database network map cache. Fix schema.
Make node not wait for finishing network map service registration if it
successfully loaded data from database.

Add tests for startup without NetworkMapService.

* Rename networkMapRegistrationFuture

Change networkMapRegistrationFuture to nodeReadyFuture, it no longer
indicates the NetworkMapService registration, because we are able to run
network without map service configured.

* Partially integrate database into NetworkMapCache

Full integrtion will come with service removal.

Move MockServiceHubInternal to net.corda.node.testing

* Add workaround to transaction scope race

Temporary workaround to force isolated transaction (otherwise it causes race conditions when processing
network map registration on network map node).

* Remove WorldMapLocation from NodeInfo

Infer the node's location based on X500 name

Add serial number on NodeInfo

For tests of running without NetworkMap, start nodes with nonexistent NetworkMap address

Make clearNetworkMapCache callable via RPC.
2017-08-31 11:00:11 +01:00
Patrick Kuo
9bd4342039 Removed is relevant from LinearState (#1294) 2017-08-30 16:26:34 +01:00
Viktor Kolomeyko
4387be0c4b CORDA-540: Mark CompositeKeyTests which works with cyclic graphs as Kryo specific (#1354) 2017-08-30 11:41:04 +01:00
Andrius Dagys
73664c3383 Test DSL: update tests to handle new transaction constraints 2017-08-29 17:05:13 +01:00
Andrius Dagys
f5776d6bd7 Enforce transaction validity rules 2017-08-29 17:05:13 +01:00
mkit
a84cd567d8 Removing Kt suffixed Java class (#1344) 2017-08-29 13:41:17 +01:00
josecoll
a027e51ca3 Revert linearId (UniqueIdentifier) Vault Query search attribute (#1325)
* Revert `linearId` (UniqueIdentifier) search attribute for developer convenience.

* Introduced secondary LinearStateQueryCriteria constructor as per MN review comments.

* Fix broken test.
2017-08-29 10:27:43 +01:00
Andrzej Cichocki
cd0ab40b2e Core doesn't need a compile dep on guava (#1283) 2017-08-29 09:56:26 +01:00
Ross Nicoll
8f0ea714b3 Add IdentitySyncFlow
Add IdentitySyncFlow for synchronizing the certificate paths for confidential identities in a transaction with all counterparties of the transaction.
2017-08-25 17:53:31 +01:00
Rick Parker
c61b036844 Some custom serializers, fixes to generics handling, some annotations and added NonEmptySet as a special case of Set. (#1330) 2017-08-25 15:09:43 +01:00
Viktor Kolomeyko
e2f402f0e4 Correct misleading comment in CompositeKey and minor changes to its unit test (#1321) 2017-08-25 11:37:55 +01:00
Katelyn Baker
2b5e3e39a2 Merge pull request #1302 from corda/feature/kat/evolvability
Add evolvability to the deserializer
2017-08-25 10:38:52 +01:00