Commit Graph

530 Commits

Author SHA1 Message Date
Christian Sailer
bc330bd989
ENT-2414 Named caches (#3848)
* Add named caches and apply to NonInvalidingUnboundCache and all usages.

* Add named caches and apply to NonInvalidingCache and all usages.

* Add named caches and apply to NonInvalidingWeightBasedCache and all usages.

* Move NamedCache to core/internal

* Remove type `NamedCache` and `NamedLoadingCache`

* Suppressed 'name not used' warning, added comment, and fixed generic parameters on the buildNamed functions.

* Use `buildNamed` in all caffeine instances in production code. Not using it for caches that are created in test code.

* Add checks for the cache name

* Formatting

* Minor code review revisions
2018-08-24 17:17:22 +01:00
Mike Hearn
8fd4d0d218 RPC: propagate failures when they occur during deserialization.
Before this change, a failure to deserialize an RPC reply would leave
the caller hanging because we'd never set the future.
2018-08-24 15:16:55 +02:00
Chris Rankin
ff62df8d5a
CORDA-1907: Allow Corda's shell to deserialise using generic type information. (#3810) 2018-08-20 13:22:07 +01:00
Chris Rankin
494661cc0c
CORDA-1905: Extend JSON deserialisation to handle Amount<T> for any T. (#3790)
* Extend JSON deserialisation to handle Amount<T> for any T.
* Rewrite message for @Deprecated.
2018-08-17 17:20:26 +01:00
Viktor Kolomeyko
76d87b67ce
CORDA-1844: Support for high throughput Observables shipped via RPC (#3698)
* CORDA-1844: Exposing a problem via Unit test.

* CORDA-1844: Unit test update following input from Andras.

* CORDA-1844: Add optional parameter to reduce the time it takes to shutdown RPCServer.

* CORDA-1844: Add optional parameter to reduce the time it takes to shutdown RPCServer and sensibly default it.

Minor changes.
2018-08-06 13:14:53 +01:00
Viktor Kolomeyko
c24d916f5a
RPC changes (#3697)
* Eliminate un-necessary reference to Kryo in the comment

* RPC documentation update.

* Rename RpcClientObservableSerializer into RpcClientObservableDeSerializer
2018-08-06 09:11:15 +01:00
Dominic Fox
f5b86d32f8
Eliminate StartedNode (#3690)
* Shrink StartedNode

* Eliminate StartedNode
2018-07-25 13:49:34 +01:00
Dominic Fox
6b320026a1
CORDA-916 separate test startednode (#3675)
* Push start() implementation back into base

* Narrow access

* Optimise imports

* Fix tests

* Get Java test compiling
2018-07-25 10:05:50 +01:00
Michele Sollecito
abc1d99eaa
[CORDA-1799]: Avoid generating test CorDapp JARs from each out of process node started by the driver (#3641) 2018-07-23 11:18:11 +01:00
Shams Asari
921b132658
Deprecated freeLocalHostAndPort, freePort and getFreeLocalPorts of TestUtils (#3630)
They're prone to cause flaky tests due to the "allocated" ports already being taken by the system when eventually needed. Replaced usages with PortAllocation.Incremental.

Affected unit tests made into integration tests to avoid any issues in the future when unit tests are made to run in parallel.
2018-07-17 14:42:30 +01:00
Mike Hearn
493d4d5890 Minor: slightly improve an exception message with clarifying quotes 2018-07-12 18:42:19 +02: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
Shams Asari
2833ec2a88
Avoiding starting notaries in driver-based integration tests to speed them up (#3544) 2018-07-11 11:36:36 +01:00
Viktor Kolomeyko
d481c55b82
CORDA-1743: Remove isDebug = true from Node driver to speed-up integration tests execution. (#3535)
* CORDA-1743: Remove `isDebug = true` from Node driver to speed-up integration tests execution.

* CORDA-1743: Undo removal of "isDebug = true" from the test that specifically checks for this condition.

* CORDA-1743: Address input from @shamsasari
2018-07-09 16:37:01 +01:00
Shams Asari
aefd90f062
Minor: ProcessUtilities clean up (#3533) 2018-07-09 12:29:33 +01:00
Maksymilian Pawlak
30d5d45c87
[CORDA-1568] Omit synthetic methods in shell (#3517) 2018-07-05 14:59:13 +01:00
Maksymilian Pawlak
f7dd4f7880
Use in-memory H2 for integration test (#2508)
* Default integration tests running with in-memory H2
2018-07-05 14:58:51 +01:00
Chris Rankin
02978fc174
Resolve warnings for Kotlin ByteArray. (#3521) 2018-07-05 13:00:29 +01:00
Shams Asari
244167d3e9
Enabled warnings as errors (#3514) 2018-07-04 17:17:27 +01:00
Shams Asari
b8e6c47cfd
Added missing JacksonSupport unit test for Instant (#3507) 2018-07-04 15:39:22 +01:00
Chris Rankin
76c114502e
CORDA-1686: Make Node Explorer release its RPC connection on shutdown. (#3457)
* Make Node Explorer release its RPC connection on shutdown.
* Declare Explorer's login() function as tail-recursive.
* Replace lateinit rpcConnection with oridinary var.
* Notify the node when closing an RPC connection gracefully.
2018-06-28 13:33:07 +01:00
Shams Asari
84a86d32b7
Fixed broken smoke test caused by no notaries in the network parameters (#3461)
For now the workaround is to manually select the notary. The proper solution is to add notaries to the network parameters in smoke tests.
2018-06-28 09:43:29 +01:00
Viktor Kolomeyko
34923506f4
CORDA-1686: Make "rpc-client-sender" daemon (#3455)
Such that they do not prevent application that started them from exiting.
2018-06-28 08:53:30 +01:00
Shams Asari
e401eb604d
Fixed CordaRPCClient test to avoid potential flakiness (#3459) 2018-06-27 20:23:26 +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
Viktor Kolomeyko
21d06a8aa9 ENT-2132 Introduce a boolean flag which controls whether we should re-try RPC connection. (#3433)
In case of initial logon - it will not be re-tried to cater for invalid endpoint and/or credentials.
However, if connection been successfully established once, re-try logic is getting activated.
2018-06-25 14:13:21 +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
Tudor Malene
41776ed374
CORDA-1407 Node Explorer - fix total column (#3395) 2018-06-19 09:19:19 +01:00
Rick Parker
999ee49804
ENT-2053 Fix messaging TTL related settings causing disconnects (#3384)
* ENT-2053 Revert RPC TTL due to hanging RPC clients.

* ENT-2053 Set TTL correctly.
2018-06-15 16:57:49 +01:00
Florian Friemel
8f4973cd00
[CORDA-1617] Fix explorer login error handling. (#3365)
When specifying incorrect connection details for the nodes (e.g.,
  wrong port), an RPCException would be thrown which was not
  handled correctly, resulting in busy waiting on the UI thread.

  Ideally the login should not block the UI thread anyways, but
  for now this fix is the most pragmatic solution.
2018-06-14 13:09:03 +01:00
Tommy Lillehagen
3bbf7258a1 CORDA-1609 - Update snapshot for CordaRPCClientConfiguration to reflect recent additions 2018-06-13 16:38:58 +01:00
Tommy Lillehagen
fe313951ea CORDA-1609 - Don't use reserved keyword as method name
As reported in [CORDA-1609](https://r3-cev.atlassian.net/browse/CORDA-1609),
`CordaRPCClientConfiguration.default` is not accessible from Java since
`default` is a reserved keyword.

As part of the refactor made in #2831, `CordaRPCClientConfiguration` went
from being a data class to an interface with a backing implementation of
type `CordaRPCClientConfigurationImpl`.

This resulted in Java users having to rewrite code that was on the form:

```java
final CordaRPCClient client = new CordaRPCClient(
    nodeAddress, CordaRPCClientConfiguration.DEFAULT
);
```

to something like this:

```java
final CordaRPCClient client = new CordaRPCClient(
    nodeAddress, CordaRPCClientConfiguration.Companion.default()
);
```

However, this does not work. The user would get a compilation error because
`default` is a reserved keyword in Java.

Since `CordaRPCClientConfiguration` has been made an interface, there is no
easy way of introducing a static final field on the interface from Kotlin.

Consequently, I've changed this back to using a `class` with a static field
named `DEFAULT` instead of the static method `default()`.

It should be noted that `default()` / `DEFAULT` is currently only used
internally to pass in default values in `CordaRPCClient.kt` and
`CordaRPCClientUtils.kt`. That said, it is exposed as part of our API
surface and consequently shouldn't be broken.

The latter means that in the above example, the user would actually not
have to provide the parameter at all:

```java
final CordaRPCClient client = new CordaRPCClient(nodeAddress);
```

As can be seen from the definition of `CordaRPCClient`:

```kotlin
class CordaRPCClient private constructor(...) {
    @JvmOverloads
    constructor(
        hostAndPort: NetworkHostAndPort,
        configuration: CordaRPCClientConfiguration = CordaRPCClientConfiguration.DEFAULT
    ) : this(hostAndPort, configuration, null)
```

The mentioned [refactor](7a077e76f0 (diff-0948c125db93a22263eb81eaf3161c17R65))
did not make it into the 3.1 release, so from an API-stability perspective,
this change can be applied without affecting our commitment to a
backwards compatible API..
2018-06-13 15:39:03 +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
Shams Asari
d620e71bb6
Replaced all uses of assert with require (#3309)
JVM assertions have to be enabled with the -ea flag so it's possible for these checks to be ignored.
2018-06-06 00:31:41 +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
Viktor Kolomeyko
8a5978e881
CORDA-1536: Fix client infinitely re-trying when incorrect endpoint specified. (#3243)
Apparently, if incorrect endpoint provided, ActiveMQNotConnectedException is thrown
which is different to ActiveMQSecurityException. Extend catch block to: ActiveMQException
to cater for all such cases.
2018-05-29 14:05:51 +01:00
Shams Asari
d772bc8b7f
Added back support for parsing OpaqueBytes as UTF-8 strings in JacksonSupport (#3240) 2018-05-25 17:07:19 +01:00
Katelyn Baker
7cbc316b9d
CORDA-1521 - Fix rpc attachment smoke test / better AMQP logging (#3213)
* CORDA-1521 - Fix rpc attachment smoke test / better AMQP logging

* Remove poor debug message

* Review comments

* reduce debug spam
2018-05-25 13:00:04 +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
Katelyn Baker
cba83aca13
Move RxNotification serializer into the serialization package (#3214) 2018-05-22 15:17:18 +01:00
Michele Sollecito
48b126321b
Reverting API breaking change in PermissionException. (#3209) 2018-05-22 09:48:29 +01:00
bpaunescu
bff419e9af
Corda-1505 catch connection failure exception and re-throw as RPCException (#3203)
* CORDA-1505: catch connection failure exception and rethrow as RPCException

* CORDA-1443: remove incorrect import

* CORDA-1443: fix some failing tests

* CORDA-1505: fix broken CordaRPCClient test

* fix tests

* CORDA-1505: catch connection failure exception and rethrow as RPCException

* CORDA-1443: remove incorrect import

* CORDA-1443: fix some failing tests

* CORDA-1505: fix broken CordaRPCClient test

* fix tests

* CORDA-1505: changed exception handling to RPCException

* CORDA-1505: changed exception handling to RPCException
2018-05-21 18:01:31 +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
Viktor Kolomeyko
215e54f1ab
ENT-1902: If we are already in the JavaFX thread - perform direct invocation without postponing it. (#3177)
Or else if we are operating in JavaFX thread the sequence of invocations will change.
2018-05-18 11:09:02 +01:00
Shams Asari
824adca6c0
CORDA-1238: Updated JacksonSupport to serialise pojos annotated with @CordaSerializable with the same properties as the AMQP serialisation framework. (#3162)
This fixes an issue for pojos with getters that aren't c'tor-based properties. Jackson serialises these out but is then unable to deserialise the pojo back.
2018-05-17 18:34:12 +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
Shams Asari
b031e66ab9
CORDA-1238: Updated JacksonSupport to support SerializedBytes, CertPath, X509Certificate and the signature classes (#3145)
SerializedBytes are first converted to the object it represents before being serialised as a pojo.

These changes will be needed to support the the blob inspector when it will output to YAML/JSON.
2018-05-15 17:02:43 +01:00
Tudor Malene
26c6ba6118
CORDA-1461 Fix smoke tests (#3150) 2018-05-15 13:25:28 +01:00
Michele Sollecito
d027b5b8f2
[CORDA-1472]: Crackdown on warnings. (#3136) 2018-05-14 21:15:52 +07: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
Shams Asari
3bb95c3ed1
Cleanup and improvements to the serialisation format of JacksonSupport (needed for CORDA-1238) (#3102)
Also deprecated all the public members that shouldn't have leaked into the public API.
2018-05-09 21:42:55 +01:00
Michele Sollecito
c369680ccb
[CORDA-1383]: Make SignedTransaction fully Jackson de/serialisable. (#3097) 2018-05-09 22:47:06 +07:00
Mike Hearn
327f3383f9 Revert "TEST FIX"
This reverts commit 57b617c7d9.
2018-05-04 16:14:23 +01:00
Kat Baker
57b617c7d9 TEST FIX 2018-05-04 12:36:45 +01:00
Katelyn Baker
e338414cd4
CORDA-847 - RPC Clent lib refactoring (#3052)
Move Kryo into it's own sub module
2018-05-01 20:52:19 +01:00
Shams Asari
adef57f127
Including FlowException in the RPC exception whitelist (CORDA-1264) (#3037)
These exceptions are designed to be propagated in P2P and so makes sense to keep them visible if the recipient is an RPC user.
2018-05-01 07:48:50 +01:00
Patrick Kuo
99129c1141
Merge pull request #3010 from corda/pat/explorer-networkview-bugfix
[Bug fix] - explorer doesn't remove node from network view.
2018-04-26 16:52:21 +01:00
Patrick Kuo
1b31574512 [Bug fix] - explorer doesn't remove node from network view. (#779)
(cherry picked from commit eb5b03e)
2018-04-26 13:23:16 +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
bpaunescu
e51878417b Address PR comments 2018-04-23 11:20:08 +01:00
bpaunescu
be083d6763 Added helper method for creating tcp transports from a list of host:port 2018-04-22 15:04:19 +01:00
bpaunescu
3a17d4726f ENT-1775: reworked client to handle failover in HA mode instead of relying on artemis (#759)
* ENT-1775: reworked client to handle failover in HA mode instead of relying on artemis

* ENT-1775: address PR comments
2018-04-22 14:48:16 +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
bpaunescu
47c7be62c0
ENT-1670: update kdocs and unit test for better user experience (#2875)
* ENT-1670: update kdocs and unit test for better user experience regarding
RPC connection loss

* RPCStabilityTests: move doOnError logic to onError handler
2018-03-26 14:27:35 +01:00
bpaunescu
ac9cb59a6e
Fix RPC flaky test (#2849)
* fix rpc reconnect flaky test; remove obsolete rpcproxy log message

* rpc client proxy: replace lock with atomic variable

* rpc client proxy: removed volatile property

* RPCStabilityTests: used eventually() method to test async response

* RPCStabilityTests: remove unused import
2018-03-20 16:23:29 +00:00
Michele Sollecito
7a077e76f0
CORDA-1099: Orchestrated clean shutdown from Shell (#2831) 2018-03-19 14:20:10 +00:00
Viktor Kolomeyko
c964e50696
Trying to improve stability of RPCStabilityTests.client reconnects to rebooted server (#2842)
Prior to this change it was intermittently failing with:
```
net.corda.client.rpc.RPCException: RPC server is not available.
    at net.corda.client.rpc.internal.RPCClientProxyHandler.invoke(RPCClientProxyHandler.kt:222)
    at com.sun.proxy.$Proxy79.ping(Unknown Source)
    at net.corda.client.rpc.RPCStabilityTests$client reconnects to rebooted server$1$pingFuture$1.invoke(RPCStabilityTests.kt:251)
    at net.corda.client.rpc.RPCStabilityTests$client reconnects to rebooted server$1$pingFuture$1.invoke(RPCStabilityTests.kt:36)
    at net.corda.core.internal.concurrent.ValueOrException$DefaultImpls.capture(CordaFutureImpl.kt:107)
    at net.corda.core.internal.concurrent.OpenFuture$DefaultImpls.capture(CordaFutureImpl.kt:65535)
    at net.corda.core.internal.concurrent.CordaFutureImpl.capture(CordaFutureImpl.kt:119)
    at net.corda.core.internal.concurrent.CordaFutureImplKt$fork$$inlined$also$lambda$1.run(CordaFutureImpl.kt:22)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)
```
2018-03-19 13:19:40 +00:00
Viktor Kolomeyko
a2d65f1a6b
Improve error reporting in case of failure of flaky tests (#2828)
* Improve error reporting in case of failure of flaky tests

Also eliminate warnings and other minor changes.

* Address code review comments raised by @exFalso

Also improve output for stack traces.
2018-03-16 10:55:48 +00:00
Andrius Dagys
f454b949e8 CORDA-1142: Fix explorer to support all transaction types 2018-03-14 18:22:52 +00:00
Rick Parker
a24a2105b1
CORDA-1217 Replace Guava caches with Caffeine (#2818) 2018-03-14 16:07:31 +00:00
bpaunescu
3502186572
Bogdan - small rework of RPC client sending (#2812)
* rework message handling while connection is down: do not send anything, throw on all obs and futures when failure detected

* RPC calls will throw if used during failover; adapted tests
2018-03-14 11:45:18 +00:00
Thomas Schroeter
721728c8ab
Terminate observables on RPC connection failures (#2770) 2018-03-13 10:01:44 +00:00
bpaunescu
98a6c71480
CORDA-296: added handler for connection failover (#2639)
* CORDA-296: added handler for connection failover
print rpc address during node startup

* address PR comments: typo, whitespace, onError observables

* reworked rpc client msg buffering to avoid race conditions when failure happens while the request is being prepared to be sent; added unit test for 8 threads sharing same client sending 1000 requests

* decreased sleep time in rpc test, code cleanup
2018-03-08 08:21:35 +00:00
szymonsztuka
72074c76c7
[CORDA-792] Standalone Shell (#2663)
- Existing embedded Shell connects via RPC including checking RPC user credentials (before was a direct use of CordaRPCOps):  in dev mode when console terminal is enabled, node created `shell` user.
- New Standalone Shell app with the same functionalities as Shell: connects to a node via RPC Client,  can use SSL and run SSH server.
2018-03-07 09:57:32 +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
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
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
Michele Sollecito
5be0e4b39e
[CORDA-941]: Add NetworkParameters contract implementation whitelist. (#2580) 2018-02-23 14:29:02 +00:00
Viktor Kolomeyko
18f81ba973 Eliminate references to Java target "1.6"
Also for "client/rpc" explicitly specify "jvmTarget" (similar to what "experimental/behave" does) to avoid ambiguity.

Without this change the following compilation error been observed in IntelliJ:
Z:\corda\experimental\behave\src\main\kotlin\net\corda\behave\node\Node.kt
Error:(163, 44) Kotlin: Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper '-jvm-target' option
2018-02-20 14:05:55 +00:00
Andras Slemmer
dc268ebe63
Merge pull request #2477 from corda/aslemmer-corda/issues/2300
Add RPC deduplication to client and server
2018-02-19 16:25:36 +00:00
Andras Slemmer
7f1bfac8b0 Write better test for dupes 2018-02-19 14:53:28 +00:00
Anthony Keenan
117f4a721e
CORDA-939 Remove sslConfiguration from public constructor of CordaRPCClient (#2522)
* Remove sslConfiguration from public constructor of CordaRPCClient

* Address review comments

* Update api-current.txt

* sslConfiguration doesn't need to be a property
2018-02-13 21:39:31 +00:00
Andras Slemmer
7924a5a834 Add RPC deduplication to client and server 2018-02-13 18:51:59 +00:00
Maksymilian Pawlak
b91dd43a83
Test driver default parameters removal (#2519)
* Removed long parameter list in test driver, replaced with DriverParameters object
2018-02-13 13:15:05 +00:00
Michele Sollecito
da591363fd
CORDA-990: Flows Draining Mode (#2483)
[CORDA-990]: Flows draining mode.
2018-02-12 16:13:43 +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
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
Mike Hearn
cbe947694d Minor: upgrade some Spring Boot deps and tweak the Jackson version it uses to avoid a conflict with Kotlin 1.2.20 2018-02-08 13:31:47 +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
Michele Sollecito
9783f11ba8
Exposed RPC SSL settings through Cordformation (#2419) 2018-01-25 14:32:58 +00:00
Michele Sollecito
142f52fa82
[CORDA:936]: Enable RPC layer to work with SSL 2018-01-23 16:23:37 +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
Matthew Nesbit
6edf95506b
Rename the inbox (#2360)
Add changelog entry

Address review comments

Alternate solution to service queues

Fixup after merge
2018-01-17 16:06:31 +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
szymonsztuka
cb0b311077
CordaRPCJavaClientTest refactoring to align with enterprise repo. (#2299)
* Align CordaRPCJavaClientTest with Kotlin version of the test ((byte)0 instead of "1".getBytes())
* Refactoring to align with enterprise repo (exceptions).
2017-12-28 14:56:27 +01:00
Andrzej Cichocki
8114a20abd
CORDA-716 Move non-API things to internal (#2256) 2017-12-17 18:44:35 +00:00